react-router 7.8.1 → 7.8.2-pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/development/{chunk-IFMMFE4R.mjs → chunk-7QFLQWWN.mjs} +34 -75
- package/dist/{production/chunk-YMYXECPK.js → development/chunk-IVOVRAK2.js} +210 -169
- package/dist/development/{chunk-UH6JLGW7.mjs → chunk-ZVD2KUIM.mjs} +187 -204
- package/dist/development/{chunk-TGXCWGPT.js → chunk-ZVMYUFGA.js} +125 -183
- package/dist/development/{context-DohQKLID.d.mts → context-jKip1TFB.d.mts} +846 -8
- package/dist/development/dom-export.d.mts +20 -2
- package/dist/development/dom-export.d.ts +20 -1
- package/dist/development/dom-export.js +10 -4
- package/dist/development/dom-export.mjs +10 -4
- package/dist/{production/index-react-server-client-BQ6FxdA_.d.ts → development/index-react-server-client-BKpa2trA.d.ts} +6 -816
- package/dist/{production/index-react-server-client-11fLy3qB.d.mts → development/index-react-server-client-DRhjXpk2.d.mts} +2 -3
- package/dist/development/index-react-server-client.d.mts +3 -4
- package/dist/development/index-react-server-client.d.ts +2 -2
- package/dist/development/index-react-server-client.js +4 -4
- package/dist/development/index-react-server-client.mjs +2 -2
- package/dist/development/index-react-server.d.mts +4 -3
- package/dist/development/index-react-server.d.ts +4 -3
- package/dist/development/index-react-server.js +62 -53
- package/dist/development/index-react-server.mjs +62 -53
- package/dist/development/index.d.mts +7 -9
- package/dist/development/index.d.ts +5 -5
- package/dist/development/index.js +122 -163
- package/dist/development/index.mjs +3 -3
- package/dist/development/lib/types/internal.d.mts +3 -3
- package/dist/development/lib/types/internal.d.ts +2 -2
- package/dist/development/lib/types/internal.js +1 -1
- package/dist/development/lib/types/internal.mjs +1 -1
- package/dist/development/{route-data-CNjObrhZ.d.mts → route-data-DAVP2QQ0.d.mts} +3 -3
- package/dist/development/{routeModules-C3oqzPpI.d.ts → routeModules-rOzWJJ9x.d.ts} +848 -10
- package/dist/production/{chunk-KHPQXKYM.js → chunk-5WPGWA23.js} +125 -183
- package/dist/{development/chunk-IIA3TUI2.js → production/chunk-IK7IYG3O.js} +210 -169
- package/dist/production/{chunk-5Y7ELDIJ.mjs → chunk-LR4OTIMG.mjs} +34 -75
- package/dist/production/{chunk-PFDCNQUK.mjs → chunk-VHBXOG2Z.mjs} +187 -204
- package/dist/production/{context-DohQKLID.d.mts → context-jKip1TFB.d.mts} +846 -8
- package/dist/production/dom-export.d.mts +20 -2
- package/dist/production/dom-export.d.ts +20 -1
- package/dist/production/dom-export.js +10 -4
- package/dist/production/dom-export.mjs +10 -4
- package/dist/{development/index-react-server-client-BQ6FxdA_.d.ts → production/index-react-server-client-BKpa2trA.d.ts} +6 -816
- package/dist/{development/index-react-server-client-11fLy3qB.d.mts → production/index-react-server-client-DRhjXpk2.d.mts} +2 -3
- package/dist/production/index-react-server-client.d.mts +3 -4
- package/dist/production/index-react-server-client.d.ts +2 -2
- package/dist/production/index-react-server-client.js +4 -4
- package/dist/production/index-react-server-client.mjs +2 -2
- package/dist/production/index-react-server.d.mts +4 -3
- package/dist/production/index-react-server.d.ts +4 -3
- package/dist/production/index-react-server.js +62 -53
- package/dist/production/index-react-server.mjs +62 -53
- package/dist/production/index.d.mts +7 -9
- package/dist/production/index.d.ts +5 -5
- package/dist/production/index.js +122 -163
- package/dist/production/index.mjs +3 -3
- package/dist/production/lib/types/internal.d.mts +3 -3
- package/dist/production/lib/types/internal.d.ts +2 -2
- package/dist/production/lib/types/internal.js +1 -1
- package/dist/production/lib/types/internal.mjs +1 -1
- package/dist/production/{route-data-CNjObrhZ.d.mts → route-data-DAVP2QQ0.d.mts} +3 -3
- package/dist/production/{routeModules-C3oqzPpI.d.ts → routeModules-rOzWJJ9x.d.ts} +848 -10
- package/package.json +1 -1
- package/dist/development/components-CuPfnyiZ.d.mts +0 -814
- package/dist/production/components-CuPfnyiZ.d.mts +0 -814
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import './
|
|
1
|
+
import { b6 as RouteManifest, M as MiddlewareEnabled, h as unstable_RouterContextProvider, c as LoaderFunctionArgs, A as ActionFunctionArgs, O as StaticHandlerContext, H as HydrationState, F as DataRouteObject, a3 as HTMLFormMethod, a1 as FormEncType, m as RelativeRoutingType, T as To, b7 as History, K as GetScrollRestorationKeyFunction, a as RouterInit, b8 as FutureConfig$1, k as DataStrategyFunction, C as PatchRoutesOnNavigationFunction, N as NavigateOptions, Q as Fetcher, t as RouteObject, j as Router, B as BlockerFunction, L as Location, b9 as CreateStaticHandlerOptions$1, G as StaticHandler } from './context-jKip1TFB.mjs';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { o as ServerRouteModule, A as AppLoadContext, c as RouteModules, h as ClientLoaderFunction, m as PageLinkDescriptor, d as SerializeFrom } from './route-data-CNjObrhZ.mjs';
|
|
3
|
+
import { o as ServerRouteModule, A as AppLoadContext, c as RouteModules, h as ClientLoaderFunction, m as PageLinkDescriptor, d as SerializeFrom } from './route-data-DAVP2QQ0.mjs';
|
|
5
4
|
|
|
6
5
|
type ServerRouteManifest = RouteManifest<Omit<ServerRoute, "children">>;
|
|
7
6
|
interface ServerRoute extends Route {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { l as BrowserRouter, q as Form, m as HashRouter, n as Link, X as Links, W as Meta, p as NavLink, r as ScrollRestoration, T as StaticRouter, V as StaticRouterProvider, o as unstable_HistoryRouter } from './index-react-server-client-
|
|
3
|
-
import './context-DohQKLID.mjs';
|
|
1
|
+
export { aC as Await, aD as MemoryRouter, aE as Navigate, aF as Outlet, aG as Route, aH as Router, aI as RouterProvider, aJ as Routes, b0 as UNSAFE_WithComponentProps, b4 as UNSAFE_WithErrorBoundaryProps, b2 as UNSAFE_WithHydrateFallbackProps } from './context-jKip1TFB.mjs';
|
|
2
|
+
export { l as BrowserRouter, q as Form, m as HashRouter, n as Link, X as Links, W as Meta, p as NavLink, r as ScrollRestoration, T as StaticRouter, V as StaticRouterProvider, o as unstable_HistoryRouter } from './index-react-server-client-DRhjXpk2.mjs';
|
|
4
3
|
import 'react';
|
|
5
|
-
import './route-data-
|
|
4
|
+
import './route-data-DAVP2QQ0.mjs';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export { aW as Await, aX as MemoryRouter, aY as Navigate, aZ as Outlet, a_ as Route, a$ as Router, b0 as RouterProvider, b1 as Routes, br as UNSAFE_WithComponentProps, bv as UNSAFE_WithErrorBoundaryProps, bt as UNSAFE_WithHydrateFallbackProps } from './routeModules-rOzWJJ9x.js';
|
|
2
|
+
export { l as BrowserRouter, q as Form, m as HashRouter, n as Link, X as Links, W as Meta, p as NavLink, r as ScrollRestoration, T as StaticRouter, V as StaticRouterProvider, o as unstable_HistoryRouter } from './index-react-server-client-BKpa2trA.js';
|
|
3
3
|
import 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});/**
|
|
2
|
-
* react-router v7.8.1
|
|
2
|
+
* react-router v7.8.2-pre.1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunkIVOVRAK2js = require('./chunk-IVOVRAK2.js');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
var
|
|
37
|
+
var _chunkZVMYUFGAjs = require('./chunk-ZVMYUFGA.js');
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
@@ -58,4 +58,4 @@ var _chunkTGXCWGPTjs = require('./chunk-TGXCWGPT.js');
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
exports.Await =
|
|
61
|
+
exports.Await = _chunkIVOVRAK2js.Await; exports.BrowserRouter = _chunkIVOVRAK2js.BrowserRouter; exports.Form = _chunkIVOVRAK2js.Form; exports.HashRouter = _chunkIVOVRAK2js.HashRouter; exports.Link = _chunkIVOVRAK2js.Link; exports.Links = _chunkZVMYUFGAjs.Links; exports.MemoryRouter = _chunkIVOVRAK2js.MemoryRouter; exports.Meta = _chunkZVMYUFGAjs.Meta; exports.NavLink = _chunkIVOVRAK2js.NavLink; exports.Navigate = _chunkIVOVRAK2js.Navigate; exports.Outlet = _chunkIVOVRAK2js.Outlet; exports.Route = _chunkIVOVRAK2js.Route; exports.Router = _chunkIVOVRAK2js.Router; exports.RouterProvider = _chunkIVOVRAK2js.RouterProvider; exports.Routes = _chunkIVOVRAK2js.Routes; exports.ScrollRestoration = _chunkIVOVRAK2js.ScrollRestoration; exports.StaticRouter = _chunkIVOVRAK2js.StaticRouter; exports.StaticRouterProvider = _chunkIVOVRAK2js.StaticRouterProvider; exports.UNSAFE_WithComponentProps = _chunkIVOVRAK2js.WithComponentProps; exports.UNSAFE_WithErrorBoundaryProps = _chunkIVOVRAK2js.WithErrorBoundaryProps; exports.UNSAFE_WithHydrateFallbackProps = _chunkIVOVRAK2js.WithHydrateFallbackProps; exports.unstable_HistoryRouter = _chunkIVOVRAK2js.HistoryRouter;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v7.8.1
|
|
2
|
+
* react-router v7.8.2-pre.1
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
WithComponentProps,
|
|
33
33
|
WithErrorBoundaryProps,
|
|
34
34
|
WithHydrateFallbackProps
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-ZVD2KUIM.mjs";
|
|
36
36
|
export {
|
|
37
37
|
Await,
|
|
38
38
|
BrowserRouter,
|
|
@@ -1152,7 +1152,6 @@ type HydrationState = Partial<Pick<RouterState, "loaderData" | "actionData" | "e
|
|
|
1152
1152
|
* Future flags to toggle new feature behavior
|
|
1153
1153
|
*/
|
|
1154
1154
|
interface FutureConfig {
|
|
1155
|
-
unstable_middleware: boolean;
|
|
1156
1155
|
}
|
|
1157
1156
|
/**
|
|
1158
1157
|
* Initialization options for createRouter
|
|
@@ -1196,7 +1195,9 @@ interface StaticHandler {
|
|
|
1196
1195
|
skipLoaderErrorBubbling?: boolean;
|
|
1197
1196
|
skipRevalidation?: boolean;
|
|
1198
1197
|
dataStrategy?: DataStrategyFunction<unknown>;
|
|
1199
|
-
unstable_generateMiddlewareResponse?: (query: (r: Request
|
|
1198
|
+
unstable_generateMiddlewareResponse?: (query: (r: Request, args?: {
|
|
1199
|
+
filterMatchesToLoad?: (match: AgnosticDataRouteMatch) => boolean;
|
|
1200
|
+
}) => Promise<StaticHandlerContext | Response>) => MaybePromise<Response>;
|
|
1200
1201
|
}): Promise<StaticHandlerContext | Response>;
|
|
1201
1202
|
queryRoute(request: Request, opts?: {
|
|
1202
1203
|
routeId?: string;
|
|
@@ -1608,7 +1609,7 @@ type unstable_SerializesTo<T> = {
|
|
|
1608
1609
|
unstable__ReactRouter_SerializesTo: [T];
|
|
1609
1610
|
};
|
|
1610
1611
|
|
|
1611
|
-
type Serialize<T> = T extends unstable_SerializesTo<infer To> ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise<infer U> ? Promise<Serialize<U>> : T extends Map<infer K, infer V> ? Map<Serialize<K>, Serialize<V>> : T extends Set<infer U> ? Set<Serialize<U>> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize<F>, ...Serialize<R>] : T extends Array<infer U> ? Array<Serialize<U>> : T extends readonly unknown[] ? readonly Serialize<T[number]>[] : T extends Record<any, any> ? {
|
|
1612
|
+
type Serialize<T> = T extends unstable_SerializesTo<infer To> ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise<infer U> ? Promise<Serialize<U>> : T extends Map<infer K, infer V> ? Map<Serialize<K>, Serialize<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Serialize<K>, Serialize<V>> : T extends Set<infer U> ? Set<Serialize<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<Serialize<U>> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize<F>, ...Serialize<R>] : T extends Array<infer U> ? Array<Serialize<U>> : T extends readonly unknown[] ? readonly Serialize<T[number]>[] : T extends Record<any, any> ? {
|
|
1612
1613
|
[K in keyof T]: Serialize<T[K]>;
|
|
1613
1614
|
} : undefined;
|
|
1614
1615
|
type VoidToUndefined<T> = Equal<T, void> extends true ? undefined : T;
|
|
@@ -1152,7 +1152,6 @@ type HydrationState = Partial<Pick<RouterState, "loaderData" | "actionData" | "e
|
|
|
1152
1152
|
* Future flags to toggle new feature behavior
|
|
1153
1153
|
*/
|
|
1154
1154
|
interface FutureConfig {
|
|
1155
|
-
unstable_middleware: boolean;
|
|
1156
1155
|
}
|
|
1157
1156
|
/**
|
|
1158
1157
|
* Initialization options for createRouter
|
|
@@ -1196,7 +1195,9 @@ interface StaticHandler {
|
|
|
1196
1195
|
skipLoaderErrorBubbling?: boolean;
|
|
1197
1196
|
skipRevalidation?: boolean;
|
|
1198
1197
|
dataStrategy?: DataStrategyFunction<unknown>;
|
|
1199
|
-
unstable_generateMiddlewareResponse?: (query: (r: Request
|
|
1198
|
+
unstable_generateMiddlewareResponse?: (query: (r: Request, args?: {
|
|
1199
|
+
filterMatchesToLoad?: (match: AgnosticDataRouteMatch) => boolean;
|
|
1200
|
+
}) => Promise<StaticHandlerContext | Response>) => MaybePromise<Response>;
|
|
1200
1201
|
}): Promise<StaticHandlerContext | Response>;
|
|
1201
1202
|
queryRoute(request: Request, opts?: {
|
|
1202
1203
|
routeId?: string;
|
|
@@ -1608,7 +1609,7 @@ type unstable_SerializesTo<T> = {
|
|
|
1608
1609
|
unstable__ReactRouter_SerializesTo: [T];
|
|
1609
1610
|
};
|
|
1610
1611
|
|
|
1611
|
-
type Serialize<T> = T extends unstable_SerializesTo<infer To> ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise<infer U> ? Promise<Serialize<U>> : T extends Map<infer K, infer V> ? Map<Serialize<K>, Serialize<V>> : T extends Set<infer U> ? Set<Serialize<U>> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize<F>, ...Serialize<R>] : T extends Array<infer U> ? Array<Serialize<U>> : T extends readonly unknown[] ? readonly Serialize<T[number]>[] : T extends Record<any, any> ? {
|
|
1612
|
+
type Serialize<T> = T extends unstable_SerializesTo<infer To> ? To : T extends Serializable ? T : T extends (...args: any[]) => unknown ? undefined : T extends Promise<infer U> ? Promise<Serialize<U>> : T extends Map<infer K, infer V> ? Map<Serialize<K>, Serialize<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Serialize<K>, Serialize<V>> : T extends Set<infer U> ? Set<Serialize<U>> : T extends ReadonlySet<infer U> ? ReadonlySet<Serialize<U>> : T extends [] ? [] : T extends readonly [infer F, ...infer R] ? [Serialize<F>, ...Serialize<R>] : T extends Array<infer U> ? Array<Serialize<U>> : T extends readonly unknown[] ? readonly Serialize<T[number]>[] : T extends Record<any, any> ? {
|
|
1612
1613
|
[K in keyof T]: Serialize<T[K]>;
|
|
1613
1614
|
} : undefined;
|
|
1614
1615
|
type VoidToUndefined<T> = Equal<T, void> extends true ? undefined : T;
|
|
@@ -27,7 +27,7 @@ function _interopNamespace(e) {
|
|
|
27
27
|
var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* react-router v7.8.1
|
|
30
|
+
* react-router v7.8.2-pre.1
|
|
31
31
|
*
|
|
32
32
|
* Copyright (c) Remix Software Inc.
|
|
33
33
|
*
|
|
@@ -760,7 +760,7 @@ function createStaticHandler(routes, opts) {
|
|
|
760
760
|
},
|
|
761
761
|
async () => {
|
|
762
762
|
let res = await generateMiddlewareResponse(
|
|
763
|
-
async (revalidationRequest) => {
|
|
763
|
+
async (revalidationRequest, opts2 = {}) => {
|
|
764
764
|
let result2 = await queryImpl(
|
|
765
765
|
revalidationRequest,
|
|
766
766
|
location,
|
|
@@ -769,7 +769,7 @@ function createStaticHandler(routes, opts) {
|
|
|
769
769
|
dataStrategy || null,
|
|
770
770
|
skipLoaderErrorBubbling === true,
|
|
771
771
|
null,
|
|
772
|
-
filterMatchesToLoad
|
|
772
|
+
"filterMatchesToLoad" in opts2 ? opts2.filterMatchesToLoad ?? null : null,
|
|
773
773
|
skipRevalidation === true
|
|
774
774
|
);
|
|
775
775
|
if (isResponse(result2)) {
|
|
@@ -1513,31 +1513,37 @@ async function defaultDataStrategy(args) {
|
|
|
1513
1513
|
});
|
|
1514
1514
|
return keyedResults;
|
|
1515
1515
|
}
|
|
1516
|
-
|
|
1516
|
+
function runServerMiddlewarePipeline(args, handler, errorHandler) {
|
|
1517
|
+
return runMiddlewarePipeline(
|
|
1518
|
+
args,
|
|
1519
|
+
handler,
|
|
1520
|
+
processResult,
|
|
1521
|
+
isResponse,
|
|
1522
|
+
errorHandler
|
|
1523
|
+
);
|
|
1524
|
+
function processResult(result) {
|
|
1525
|
+
return isDataWithResponseInit(result) ? dataWithResponseInitToResponse(result) : result;
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
async function runMiddlewarePipeline(args, handler, processResult, isResult, errorHandler) {
|
|
1517
1529
|
let { matches, request, params, context } = args;
|
|
1518
1530
|
let tuples = matches.flatMap(
|
|
1519
1531
|
(m) => m.route.unstable_middleware ? m.route.unstable_middleware.map((fn) => [m.route.id, fn]) : []
|
|
1520
1532
|
);
|
|
1521
|
-
let result = await
|
|
1533
|
+
let result = await callRouteMiddleware(
|
|
1522
1534
|
{ request, params, context },
|
|
1523
1535
|
tuples,
|
|
1524
1536
|
handler,
|
|
1537
|
+
processResult,
|
|
1538
|
+
isResult,
|
|
1525
1539
|
errorHandler
|
|
1526
1540
|
);
|
|
1527
|
-
|
|
1528
|
-
return result;
|
|
1529
|
-
}
|
|
1530
|
-
invariant(false, `Expected a Response to be returned from route middleware`);
|
|
1541
|
+
return result;
|
|
1531
1542
|
}
|
|
1532
|
-
async function
|
|
1543
|
+
async function callRouteMiddleware(args, middlewares, handler, processResult, isResult, errorHandler, idx = 0) {
|
|
1533
1544
|
let { request } = args;
|
|
1534
1545
|
if (request.signal.aborted) {
|
|
1535
|
-
|
|
1536
|
-
throw request.signal.reason;
|
|
1537
|
-
}
|
|
1538
|
-
throw new Error(
|
|
1539
|
-
`Request aborted without an \`AbortSignal.reason\`: ${request.method} ${request.url}`
|
|
1540
|
-
);
|
|
1546
|
+
throw request.signal.reason ?? new Error(`Request aborted: ${request.method} ${request.url}`);
|
|
1541
1547
|
}
|
|
1542
1548
|
let tuple = middlewares[idx];
|
|
1543
1549
|
if (!tuple) {
|
|
@@ -1545,53 +1551,41 @@ async function callServerRouteMiddleware(args, middlewares, handler, errorHandle
|
|
|
1545
1551
|
return result;
|
|
1546
1552
|
}
|
|
1547
1553
|
let [routeId, middleware] = tuple;
|
|
1548
|
-
let
|
|
1549
|
-
let nextResult = void 0;
|
|
1554
|
+
let nextResult;
|
|
1550
1555
|
let next = async () => {
|
|
1551
|
-
if (
|
|
1556
|
+
if (nextResult) {
|
|
1552
1557
|
throw new Error("You may only call `next()` once per middleware");
|
|
1553
1558
|
}
|
|
1554
|
-
nextCalled = true;
|
|
1555
1559
|
try {
|
|
1556
|
-
let result = await
|
|
1560
|
+
let result = await callRouteMiddleware(
|
|
1557
1561
|
args,
|
|
1558
1562
|
middlewares,
|
|
1559
1563
|
handler,
|
|
1564
|
+
processResult,
|
|
1565
|
+
isResult,
|
|
1560
1566
|
errorHandler,
|
|
1561
1567
|
idx + 1
|
|
1562
1568
|
);
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
nextResult =
|
|
1567
|
-
return nextResult;
|
|
1568
|
-
} catch (e) {
|
|
1569
|
-
nextResult = await errorHandler(e, routeId);
|
|
1570
|
-
return nextResult;
|
|
1569
|
+
nextResult = { value: result };
|
|
1570
|
+
return nextResult.value;
|
|
1571
|
+
} catch (error) {
|
|
1572
|
+
nextResult = { value: await errorHandler(error, routeId, nextResult) };
|
|
1573
|
+
return nextResult.value;
|
|
1571
1574
|
}
|
|
1572
1575
|
};
|
|
1573
1576
|
try {
|
|
1574
|
-
let
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
params: args.params,
|
|
1578
|
-
context: args.context
|
|
1579
|
-
},
|
|
1580
|
-
next
|
|
1581
|
-
);
|
|
1582
|
-
if (isDataWithResponseInit(result)) {
|
|
1583
|
-
result = dataWithResponseInitToResponse(result);
|
|
1584
|
-
}
|
|
1585
|
-
if (nextCalled) {
|
|
1586
|
-
return typeof result === "undefined" ? nextResult : result;
|
|
1587
|
-
} else if (isResponse(result)) {
|
|
1577
|
+
let value = await middleware(args, next);
|
|
1578
|
+
let result = value != null ? processResult(value) : void 0;
|
|
1579
|
+
if (isResult(result)) {
|
|
1588
1580
|
return result;
|
|
1581
|
+
} else if (nextResult) {
|
|
1582
|
+
return result ?? nextResult.value;
|
|
1589
1583
|
} else {
|
|
1590
|
-
nextResult = await next();
|
|
1591
|
-
return nextResult;
|
|
1584
|
+
nextResult = { value: await next() };
|
|
1585
|
+
return nextResult.value;
|
|
1592
1586
|
}
|
|
1593
|
-
} catch (
|
|
1594
|
-
let response = await errorHandler(
|
|
1587
|
+
} catch (error) {
|
|
1588
|
+
let response = await errorHandler(error, routeId, nextResult);
|
|
1595
1589
|
return response;
|
|
1596
1590
|
}
|
|
1597
1591
|
}
|
|
@@ -2339,9 +2333,13 @@ async function processServerAction(request, basename, decodeReply, loadServerAct
|
|
|
2339
2333
|
}
|
|
2340
2334
|
onError?.(error);
|
|
2341
2335
|
}
|
|
2336
|
+
let maybeFormData = actionArgs.length === 1 ? actionArgs[0] : actionArgs[1];
|
|
2337
|
+
let formData = maybeFormData && typeof maybeFormData === "object" && maybeFormData instanceof FormData ? maybeFormData : null;
|
|
2338
|
+
let skipRevalidation = formData?.has("$SKIP_REVALIDATION") ?? false;
|
|
2342
2339
|
return {
|
|
2343
2340
|
actionResult,
|
|
2344
|
-
revalidationRequest: getRevalidationRequest()
|
|
2341
|
+
revalidationRequest: getRevalidationRequest(),
|
|
2342
|
+
skipRevalidation
|
|
2345
2343
|
};
|
|
2346
2344
|
} else if (isFormRequest) {
|
|
2347
2345
|
const formData = await request.clone().formData();
|
|
@@ -2370,7 +2368,8 @@ async function processServerAction(request, basename, decodeReply, loadServerAct
|
|
|
2370
2368
|
}
|
|
2371
2369
|
return {
|
|
2372
2370
|
formState,
|
|
2373
|
-
revalidationRequest: getRevalidationRequest()
|
|
2371
|
+
revalidationRequest: getRevalidationRequest(),
|
|
2372
|
+
skipRevalidation: false
|
|
2374
2373
|
};
|
|
2375
2374
|
}
|
|
2376
2375
|
}
|
|
@@ -2444,9 +2443,12 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2444
2443
|
requestContext,
|
|
2445
2444
|
skipLoaderErrorBubbling: isDataRequest,
|
|
2446
2445
|
skipRevalidation: isSubmission,
|
|
2447
|
-
...routeIdsToLoad ? {
|
|
2446
|
+
...routeIdsToLoad ? {
|
|
2447
|
+
filterMatchesToLoad: (m) => routeIdsToLoad.includes(m.route.id)
|
|
2448
|
+
} : {},
|
|
2448
2449
|
async unstable_generateMiddlewareResponse(query) {
|
|
2449
2450
|
let formState;
|
|
2451
|
+
let skipRevalidation = false;
|
|
2450
2452
|
if (request.method === "POST") {
|
|
2451
2453
|
ctx.runningAction = true;
|
|
2452
2454
|
let result2 = await processServerAction(
|
|
@@ -2471,6 +2473,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2471
2473
|
ctx.redirect?.headers
|
|
2472
2474
|
);
|
|
2473
2475
|
}
|
|
2476
|
+
skipRevalidation = result2?.skipRevalidation ?? false;
|
|
2474
2477
|
actionResult = result2?.actionResult;
|
|
2475
2478
|
formState = result2?.formState;
|
|
2476
2479
|
request = result2?.revalidationRequest ?? request;
|
|
@@ -2486,7 +2489,12 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2486
2489
|
);
|
|
2487
2490
|
}
|
|
2488
2491
|
}
|
|
2489
|
-
let staticContext = await query(
|
|
2492
|
+
let staticContext = await query(
|
|
2493
|
+
request,
|
|
2494
|
+
skipRevalidation ? {
|
|
2495
|
+
filterMatchesToLoad: () => false
|
|
2496
|
+
} : void 0
|
|
2497
|
+
);
|
|
2490
2498
|
if (isResponse(staticContext)) {
|
|
2491
2499
|
return generateRedirectResponse(
|
|
2492
2500
|
staticContext,
|
|
@@ -2510,6 +2518,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2510
2518
|
formState,
|
|
2511
2519
|
staticContext,
|
|
2512
2520
|
temporaryReferences,
|
|
2521
|
+
skipRevalidation,
|
|
2513
2522
|
ctx.redirect?.headers
|
|
2514
2523
|
);
|
|
2515
2524
|
}
|
|
@@ -2561,7 +2570,7 @@ function generateRedirectResponse(response, actionResult, basename, isDataReques
|
|
|
2561
2570
|
{ temporaryReferences }
|
|
2562
2571
|
);
|
|
2563
2572
|
}
|
|
2564
|
-
async function generateStaticContextResponse(routes, basename, generateResponse, statusCode, routeIdsToLoad, isDataRequest, isSubmission, actionResult, formState, staticContext, temporaryReferences, sideEffectRedirectHeaders) {
|
|
2573
|
+
async function generateStaticContextResponse(routes, basename, generateResponse, statusCode, routeIdsToLoad, isDataRequest, isSubmission, actionResult, formState, staticContext, temporaryReferences, skipRevalidation, sideEffectRedirectHeaders) {
|
|
2565
2574
|
statusCode = staticContext.statusCode ?? statusCode;
|
|
2566
2575
|
if (staticContext.errors) {
|
|
2567
2576
|
staticContext.errors = Object.fromEntries(
|
|
@@ -2608,7 +2617,7 @@ async function generateStaticContextResponse(routes, basename, generateResponse,
|
|
|
2608
2617
|
payload = {
|
|
2609
2618
|
type: "action",
|
|
2610
2619
|
actionResult,
|
|
2611
|
-
rerender: renderPayloadPromise()
|
|
2620
|
+
rerender: skipRevalidation ? void 0 : renderPayloadPromise()
|
|
2612
2621
|
};
|
|
2613
2622
|
} else if (isSubmission && isDataRequest) {
|
|
2614
2623
|
payload = {
|
|
@@ -6,7 +6,7 @@ export { Await, BrowserRouter, Form, HashRouter, Link, Links, MemoryRouter, Meta
|
|
|
6
6
|
import { serialize, parse } from 'cookie';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* react-router v7.8.1
|
|
9
|
+
* react-router v7.8.2-pre.1
|
|
10
10
|
*
|
|
11
11
|
* Copyright (c) Remix Software Inc.
|
|
12
12
|
*
|
|
@@ -739,7 +739,7 @@ function createStaticHandler(routes, opts) {
|
|
|
739
739
|
},
|
|
740
740
|
async () => {
|
|
741
741
|
let res = await generateMiddlewareResponse(
|
|
742
|
-
async (revalidationRequest) => {
|
|
742
|
+
async (revalidationRequest, opts2 = {}) => {
|
|
743
743
|
let result2 = await queryImpl(
|
|
744
744
|
revalidationRequest,
|
|
745
745
|
location,
|
|
@@ -748,7 +748,7 @@ function createStaticHandler(routes, opts) {
|
|
|
748
748
|
dataStrategy || null,
|
|
749
749
|
skipLoaderErrorBubbling === true,
|
|
750
750
|
null,
|
|
751
|
-
filterMatchesToLoad
|
|
751
|
+
"filterMatchesToLoad" in opts2 ? opts2.filterMatchesToLoad ?? null : null,
|
|
752
752
|
skipRevalidation === true
|
|
753
753
|
);
|
|
754
754
|
if (isResponse(result2)) {
|
|
@@ -1492,31 +1492,37 @@ async function defaultDataStrategy(args) {
|
|
|
1492
1492
|
});
|
|
1493
1493
|
return keyedResults;
|
|
1494
1494
|
}
|
|
1495
|
-
|
|
1495
|
+
function runServerMiddlewarePipeline(args, handler, errorHandler) {
|
|
1496
|
+
return runMiddlewarePipeline(
|
|
1497
|
+
args,
|
|
1498
|
+
handler,
|
|
1499
|
+
processResult,
|
|
1500
|
+
isResponse,
|
|
1501
|
+
errorHandler
|
|
1502
|
+
);
|
|
1503
|
+
function processResult(result) {
|
|
1504
|
+
return isDataWithResponseInit(result) ? dataWithResponseInitToResponse(result) : result;
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
async function runMiddlewarePipeline(args, handler, processResult, isResult, errorHandler) {
|
|
1496
1508
|
let { matches, request, params, context } = args;
|
|
1497
1509
|
let tuples = matches.flatMap(
|
|
1498
1510
|
(m) => m.route.unstable_middleware ? m.route.unstable_middleware.map((fn) => [m.route.id, fn]) : []
|
|
1499
1511
|
);
|
|
1500
|
-
let result = await
|
|
1512
|
+
let result = await callRouteMiddleware(
|
|
1501
1513
|
{ request, params, context },
|
|
1502
1514
|
tuples,
|
|
1503
1515
|
handler,
|
|
1516
|
+
processResult,
|
|
1517
|
+
isResult,
|
|
1504
1518
|
errorHandler
|
|
1505
1519
|
);
|
|
1506
|
-
|
|
1507
|
-
return result;
|
|
1508
|
-
}
|
|
1509
|
-
invariant(false, `Expected a Response to be returned from route middleware`);
|
|
1520
|
+
return result;
|
|
1510
1521
|
}
|
|
1511
|
-
async function
|
|
1522
|
+
async function callRouteMiddleware(args, middlewares, handler, processResult, isResult, errorHandler, idx = 0) {
|
|
1512
1523
|
let { request } = args;
|
|
1513
1524
|
if (request.signal.aborted) {
|
|
1514
|
-
|
|
1515
|
-
throw request.signal.reason;
|
|
1516
|
-
}
|
|
1517
|
-
throw new Error(
|
|
1518
|
-
`Request aborted without an \`AbortSignal.reason\`: ${request.method} ${request.url}`
|
|
1519
|
-
);
|
|
1525
|
+
throw request.signal.reason ?? new Error(`Request aborted: ${request.method} ${request.url}`);
|
|
1520
1526
|
}
|
|
1521
1527
|
let tuple = middlewares[idx];
|
|
1522
1528
|
if (!tuple) {
|
|
@@ -1524,53 +1530,41 @@ async function callServerRouteMiddleware(args, middlewares, handler, errorHandle
|
|
|
1524
1530
|
return result;
|
|
1525
1531
|
}
|
|
1526
1532
|
let [routeId, middleware] = tuple;
|
|
1527
|
-
let
|
|
1528
|
-
let nextResult = void 0;
|
|
1533
|
+
let nextResult;
|
|
1529
1534
|
let next = async () => {
|
|
1530
|
-
if (
|
|
1535
|
+
if (nextResult) {
|
|
1531
1536
|
throw new Error("You may only call `next()` once per middleware");
|
|
1532
1537
|
}
|
|
1533
|
-
nextCalled = true;
|
|
1534
1538
|
try {
|
|
1535
|
-
let result = await
|
|
1539
|
+
let result = await callRouteMiddleware(
|
|
1536
1540
|
args,
|
|
1537
1541
|
middlewares,
|
|
1538
1542
|
handler,
|
|
1543
|
+
processResult,
|
|
1544
|
+
isResult,
|
|
1539
1545
|
errorHandler,
|
|
1540
1546
|
idx + 1
|
|
1541
1547
|
);
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
nextResult =
|
|
1546
|
-
return nextResult;
|
|
1547
|
-
} catch (e) {
|
|
1548
|
-
nextResult = await errorHandler(e, routeId);
|
|
1549
|
-
return nextResult;
|
|
1548
|
+
nextResult = { value: result };
|
|
1549
|
+
return nextResult.value;
|
|
1550
|
+
} catch (error) {
|
|
1551
|
+
nextResult = { value: await errorHandler(error, routeId, nextResult) };
|
|
1552
|
+
return nextResult.value;
|
|
1550
1553
|
}
|
|
1551
1554
|
};
|
|
1552
1555
|
try {
|
|
1553
|
-
let
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
params: args.params,
|
|
1557
|
-
context: args.context
|
|
1558
|
-
},
|
|
1559
|
-
next
|
|
1560
|
-
);
|
|
1561
|
-
if (isDataWithResponseInit(result)) {
|
|
1562
|
-
result = dataWithResponseInitToResponse(result);
|
|
1563
|
-
}
|
|
1564
|
-
if (nextCalled) {
|
|
1565
|
-
return typeof result === "undefined" ? nextResult : result;
|
|
1566
|
-
} else if (isResponse(result)) {
|
|
1556
|
+
let value = await middleware(args, next);
|
|
1557
|
+
let result = value != null ? processResult(value) : void 0;
|
|
1558
|
+
if (isResult(result)) {
|
|
1567
1559
|
return result;
|
|
1560
|
+
} else if (nextResult) {
|
|
1561
|
+
return result ?? nextResult.value;
|
|
1568
1562
|
} else {
|
|
1569
|
-
nextResult = await next();
|
|
1570
|
-
return nextResult;
|
|
1563
|
+
nextResult = { value: await next() };
|
|
1564
|
+
return nextResult.value;
|
|
1571
1565
|
}
|
|
1572
|
-
} catch (
|
|
1573
|
-
let response = await errorHandler(
|
|
1566
|
+
} catch (error) {
|
|
1567
|
+
let response = await errorHandler(error, routeId, nextResult);
|
|
1574
1568
|
return response;
|
|
1575
1569
|
}
|
|
1576
1570
|
}
|
|
@@ -2318,9 +2312,13 @@ async function processServerAction(request, basename, decodeReply, loadServerAct
|
|
|
2318
2312
|
}
|
|
2319
2313
|
onError?.(error);
|
|
2320
2314
|
}
|
|
2315
|
+
let maybeFormData = actionArgs.length === 1 ? actionArgs[0] : actionArgs[1];
|
|
2316
|
+
let formData = maybeFormData && typeof maybeFormData === "object" && maybeFormData instanceof FormData ? maybeFormData : null;
|
|
2317
|
+
let skipRevalidation = formData?.has("$SKIP_REVALIDATION") ?? false;
|
|
2321
2318
|
return {
|
|
2322
2319
|
actionResult,
|
|
2323
|
-
revalidationRequest: getRevalidationRequest()
|
|
2320
|
+
revalidationRequest: getRevalidationRequest(),
|
|
2321
|
+
skipRevalidation
|
|
2324
2322
|
};
|
|
2325
2323
|
} else if (isFormRequest) {
|
|
2326
2324
|
const formData = await request.clone().formData();
|
|
@@ -2349,7 +2347,8 @@ async function processServerAction(request, basename, decodeReply, loadServerAct
|
|
|
2349
2347
|
}
|
|
2350
2348
|
return {
|
|
2351
2349
|
formState,
|
|
2352
|
-
revalidationRequest: getRevalidationRequest()
|
|
2350
|
+
revalidationRequest: getRevalidationRequest(),
|
|
2351
|
+
skipRevalidation: false
|
|
2353
2352
|
};
|
|
2354
2353
|
}
|
|
2355
2354
|
}
|
|
@@ -2423,9 +2422,12 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2423
2422
|
requestContext,
|
|
2424
2423
|
skipLoaderErrorBubbling: isDataRequest,
|
|
2425
2424
|
skipRevalidation: isSubmission,
|
|
2426
|
-
...routeIdsToLoad ? {
|
|
2425
|
+
...routeIdsToLoad ? {
|
|
2426
|
+
filterMatchesToLoad: (m) => routeIdsToLoad.includes(m.route.id)
|
|
2427
|
+
} : {},
|
|
2427
2428
|
async unstable_generateMiddlewareResponse(query) {
|
|
2428
2429
|
let formState;
|
|
2430
|
+
let skipRevalidation = false;
|
|
2429
2431
|
if (request.method === "POST") {
|
|
2430
2432
|
ctx.runningAction = true;
|
|
2431
2433
|
let result2 = await processServerAction(
|
|
@@ -2450,6 +2452,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2450
2452
|
ctx.redirect?.headers
|
|
2451
2453
|
);
|
|
2452
2454
|
}
|
|
2455
|
+
skipRevalidation = result2?.skipRevalidation ?? false;
|
|
2453
2456
|
actionResult = result2?.actionResult;
|
|
2454
2457
|
formState = result2?.formState;
|
|
2455
2458
|
request = result2?.revalidationRequest ?? request;
|
|
@@ -2465,7 +2468,12 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2465
2468
|
);
|
|
2466
2469
|
}
|
|
2467
2470
|
}
|
|
2468
|
-
let staticContext = await query(
|
|
2471
|
+
let staticContext = await query(
|
|
2472
|
+
request,
|
|
2473
|
+
skipRevalidation ? {
|
|
2474
|
+
filterMatchesToLoad: () => false
|
|
2475
|
+
} : void 0
|
|
2476
|
+
);
|
|
2469
2477
|
if (isResponse(staticContext)) {
|
|
2470
2478
|
return generateRedirectResponse(
|
|
2471
2479
|
staticContext,
|
|
@@ -2489,6 +2497,7 @@ async function generateRenderResponse(request, routes, basename, isDataRequest,
|
|
|
2489
2497
|
formState,
|
|
2490
2498
|
staticContext,
|
|
2491
2499
|
temporaryReferences,
|
|
2500
|
+
skipRevalidation,
|
|
2492
2501
|
ctx.redirect?.headers
|
|
2493
2502
|
);
|
|
2494
2503
|
}
|
|
@@ -2540,7 +2549,7 @@ function generateRedirectResponse(response, actionResult, basename, isDataReques
|
|
|
2540
2549
|
{ temporaryReferences }
|
|
2541
2550
|
);
|
|
2542
2551
|
}
|
|
2543
|
-
async function generateStaticContextResponse(routes, basename, generateResponse, statusCode, routeIdsToLoad, isDataRequest, isSubmission, actionResult, formState, staticContext, temporaryReferences, sideEffectRedirectHeaders) {
|
|
2552
|
+
async function generateStaticContextResponse(routes, basename, generateResponse, statusCode, routeIdsToLoad, isDataRequest, isSubmission, actionResult, formState, staticContext, temporaryReferences, skipRevalidation, sideEffectRedirectHeaders) {
|
|
2544
2553
|
statusCode = staticContext.statusCode ?? statusCode;
|
|
2545
2554
|
if (staticContext.errors) {
|
|
2546
2555
|
staticContext.errors = Object.fromEntries(
|
|
@@ -2587,7 +2596,7 @@ async function generateStaticContextResponse(routes, basename, generateResponse,
|
|
|
2587
2596
|
payload = {
|
|
2588
2597
|
type: "action",
|
|
2589
2598
|
actionResult,
|
|
2590
|
-
rerender: renderPayloadPromise()
|
|
2599
|
+
rerender: skipRevalidation ? void 0 : renderPayloadPromise()
|
|
2591
2600
|
};
|
|
2592
2601
|
} else if (isSubmission && isDataRequest) {
|
|
2593
2602
|
payload = {
|