react-router 0.0.0-experimental-4a4201184 → 0.0.0-experimental-ae6d61df4

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 (57) hide show
  1. package/dist/development/{chunk-C7GK4JJS.mjs → chunk-2ZZVVNV4.mjs} +6 -4
  2. package/dist/development/{chunk-6R4V7NPM.js → chunk-IRJNXLFF.js} +6 -4
  3. package/dist/{production/chunk-2GVDR6RN.mjs → development/chunk-RID2P5US.mjs} +69 -32
  4. package/dist/{production/chunk-AAKBIMAA.js → development/chunk-Y3HHG2TB.js} +131 -131
  5. package/dist/development/{context-EwD9faH7.d.mts → context-BH6Jwdoy.d.mts} +8 -1
  6. package/dist/development/dom-export.d.mts +1 -1
  7. package/dist/development/dom-export.js +10 -10
  8. package/dist/development/dom-export.mjs +10 -10
  9. package/dist/development/{index-react-server-client-DDdP8ud2.d.mts → index-react-server-client-1cWMpKk4.d.mts} +2 -2
  10. package/dist/{production/index-react-server-client-CjrUmqhw.d.ts → development/index-react-server-client-CMC2eQAY.d.ts} +1 -1
  11. package/dist/development/index-react-server-client.d.mts +3 -3
  12. package/dist/development/index-react-server-client.d.ts +2 -2
  13. package/dist/development/index-react-server-client.js +4 -4
  14. package/dist/development/index-react-server-client.mjs +4 -4
  15. package/dist/development/index-react-server.d.mts +194 -2
  16. package/dist/development/index-react-server.d.ts +194 -2
  17. package/dist/development/index-react-server.js +67 -15
  18. package/dist/development/index-react-server.mjs +68 -14
  19. package/dist/development/index.d.mts +22 -15
  20. package/dist/development/index.d.ts +20 -13
  21. package/dist/development/index.js +164 -125
  22. package/dist/development/index.mjs +5 -3
  23. package/dist/development/lib/types/internal.d.mts +39 -14
  24. package/dist/development/lib/types/internal.d.ts +38 -13
  25. package/dist/development/lib/types/internal.js +1 -1
  26. package/dist/development/lib/types/internal.mjs +1 -1
  27. package/dist/development/{route-data-CAnRKu1U.d.mts → route-data-BQkq8Erj.d.mts} +1 -1
  28. package/dist/{production/routeModules-CQWjJ9NX.d.ts → development/routeModules-DSKAn01V.d.ts} +136 -129
  29. package/dist/{development/chunk-S2LDQCL2.mjs → production/chunk-RDSEQDXA.mjs} +69 -32
  30. package/dist/production/{chunk-ITXTNQS4.mjs → chunk-SBKYKNWV.mjs} +6 -4
  31. package/dist/{development/chunk-K76VSH6G.js → production/chunk-TUJHIUWZ.js} +131 -131
  32. package/dist/production/{chunk-QODS6AKA.js → chunk-UKH567WH.js} +6 -4
  33. package/dist/production/{context-EwD9faH7.d.mts → context-BH6Jwdoy.d.mts} +8 -1
  34. package/dist/production/dom-export.d.mts +1 -1
  35. package/dist/production/dom-export.js +10 -10
  36. package/dist/production/dom-export.mjs +10 -10
  37. package/dist/production/{index-react-server-client-DDdP8ud2.d.mts → index-react-server-client-1cWMpKk4.d.mts} +2 -2
  38. package/dist/{development/index-react-server-client-CjrUmqhw.d.ts → production/index-react-server-client-CMC2eQAY.d.ts} +1 -1
  39. package/dist/production/index-react-server-client.d.mts +3 -3
  40. package/dist/production/index-react-server-client.d.ts +2 -2
  41. package/dist/production/index-react-server-client.js +4 -4
  42. package/dist/production/index-react-server-client.mjs +4 -4
  43. package/dist/production/index-react-server.d.mts +194 -2
  44. package/dist/production/index-react-server.d.ts +194 -2
  45. package/dist/production/index-react-server.js +67 -15
  46. package/dist/production/index-react-server.mjs +68 -14
  47. package/dist/production/index.d.mts +22 -15
  48. package/dist/production/index.d.ts +20 -13
  49. package/dist/production/index.js +164 -125
  50. package/dist/production/index.mjs +5 -3
  51. package/dist/production/lib/types/internal.d.mts +39 -14
  52. package/dist/production/lib/types/internal.d.ts +38 -13
  53. package/dist/production/lib/types/internal.js +1 -1
  54. package/dist/production/lib/types/internal.mjs +1 -1
  55. package/dist/production/{route-data-CAnRKu1U.d.mts → route-data-BQkq8Erj.d.mts} +1 -1
  56. package/dist/{development/routeModules-CQWjJ9NX.d.ts → production/routeModules-DSKAn01V.d.ts} +136 -129
  57. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-4a4201184
2
+ * react-router v0.0.0-experimental-ae6d61df4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -2835,7 +2835,7 @@ function createStaticHandler(routes, opts) {
2835
2835
  dataStrategy || null,
2836
2836
  skipLoaderErrorBubbling === true,
2837
2837
  null,
2838
- "filterMatchesToLoad" in opts2 ? opts2.filterMatchesToLoad ?? null : null,
2838
+ "filterMatchesToLoad" in opts2 ? opts2.filterMatchesToLoad ?? null : filterMatchesToLoad ?? null,
2839
2839
  skipRevalidation === true
2840
2840
  );
2841
2841
  if (isResponse(result2)) {
@@ -4926,6 +4926,7 @@ var FetchersContext = React.createContext(
4926
4926
  FetchersContext.displayName = "Fetchers";
4927
4927
  var AwaitContext = React.createContext(null);
4928
4928
  AwaitContext.displayName = "Await";
4929
+ var AwaitContextProvider = (props) => React.createElement(AwaitContext.Provider, props);
4929
4930
  var NavigationContext = React.createContext(
4930
4931
  null
4931
4932
  );
@@ -8264,7 +8265,7 @@ function getManifestPath(_manifestPath, basename) {
8264
8265
  var MANIFEST_VERSION_STORAGE_KEY = "react-router-manifest-version";
8265
8266
  async function fetchAndApplyManifestPatches(paths, errorReloadPath, manifest, routeModules, ssr, isSpaMode, basename, manifestPath, patchRoutes, signal) {
8266
8267
  const searchParams = new URLSearchParams();
8267
- paths.sort().forEach((path) => searchParams.append("p", path));
8268
+ searchParams.set("paths", paths.sort().join(","));
8268
8269
  searchParams.set("version", manifest.version);
8269
8270
  let url = new URL(
8270
8271
  getManifestPath(manifestPath, basename),
@@ -8966,7 +8967,7 @@ var isBrowser = typeof window !== "undefined" && typeof window.document !== "und
8966
8967
  try {
8967
8968
  if (isBrowser) {
8968
8969
  window.__reactRouterVersion = // @ts-expect-error
8969
- "0.0.0-experimental-4a4201184";
8970
+ "0.0.0-experimental-ae6d61df4";
8970
8971
  }
8971
8972
  } catch (e) {
8972
8973
  }
@@ -10093,6 +10094,7 @@ export {
10093
10094
  RSCRouterContext,
10094
10095
  ViewTransitionContext,
10095
10096
  FetchersContext,
10097
+ AwaitContextProvider,
10096
10098
  NavigationContext,
10097
10099
  LocationContext,
10098
10100
  RouteContext,
@@ -1,5 +1,5 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }/**
2
- * react-router v0.0.0-experimental-4a4201184
2
+ * react-router v0.0.0-experimental-ae6d61df4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -2835,7 +2835,7 @@ function createStaticHandler(routes, opts) {
2835
2835
  dataStrategy || null,
2836
2836
  skipLoaderErrorBubbling === true,
2837
2837
  null,
2838
- "filterMatchesToLoad" in opts2 ? _nullishCoalesce(opts2.filterMatchesToLoad, () => ( null)) : null,
2838
+ "filterMatchesToLoad" in opts2 ? _nullishCoalesce(opts2.filterMatchesToLoad, () => ( null)) : _nullishCoalesce(filterMatchesToLoad, () => ( null)),
2839
2839
  skipRevalidation === true
2840
2840
  );
2841
2841
  if (isResponse(result2)) {
@@ -6107,6 +6107,7 @@ var FetchersContext = React2.createContext(
6107
6107
  FetchersContext.displayName = "Fetchers";
6108
6108
  var AwaitContext = React2.createContext(null);
6109
6109
  AwaitContext.displayName = "Await";
6110
+ var AwaitContextProvider = (props) => React2.createElement(AwaitContext.Provider, props);
6110
6111
  var NavigationContext = React2.createContext(
6111
6112
  null
6112
6113
  );
@@ -7501,7 +7502,7 @@ function getManifestPath(_manifestPath, basename) {
7501
7502
  var MANIFEST_VERSION_STORAGE_KEY = "react-router-manifest-version";
7502
7503
  async function fetchAndApplyManifestPatches(paths, errorReloadPath, manifest, routeModules, ssr, isSpaMode, basename, manifestPath, patchRoutes, signal) {
7503
7504
  const searchParams = new URLSearchParams();
7504
- paths.sort().forEach((path) => searchParams.append("p", path));
7505
+ searchParams.set("paths", paths.sort().join(","));
7505
7506
  searchParams.set("version", manifest.version);
7506
7507
  let url = new URL(
7507
7508
  getManifestPath(manifestPath, basename),
@@ -8298,4 +8299,5 @@ function BoundaryShell({
8298
8299
 
8299
8300
 
8300
8301
 
8301
- exports.Action = Action; exports.createMemoryHistory = createMemoryHistory; exports.createBrowserHistory = createBrowserHistory; exports.createHashHistory = createHashHistory; exports.invariant = invariant; exports.warning = warning; exports.createPath = createPath; exports.parsePath = parsePath; exports.createContext = createContext; exports.RouterContextProvider = RouterContextProvider; exports.convertRoutesToDataRoutes = convertRoutesToDataRoutes; exports.matchRoutes = matchRoutes; exports.generatePath = generatePath; exports.matchPath = matchPath; exports.stripBasename = stripBasename; exports.resolvePath = resolvePath; exports.getResolveToMatches = getResolveToMatches; exports.resolveTo = resolveTo; exports.joinPaths = joinPaths; exports.data = data; exports.redirect = redirect; exports.redirectDocument = redirectDocument; exports.replace = replace; exports.ErrorResponseImpl = ErrorResponseImpl; exports.isRouteErrorResponse = isRouteErrorResponse; exports.encode = encode; exports.IDLE_NAVIGATION = IDLE_NAVIGATION; exports.IDLE_FETCHER = IDLE_FETCHER; exports.IDLE_BLOCKER = IDLE_BLOCKER; exports.createRouter = createRouter; exports.createStaticHandler = createStaticHandler; exports.getStaticContextFromError = getStaticContextFromError; exports.isDataWithResponseInit = isDataWithResponseInit; exports.isResponse = isResponse; exports.isRedirectStatusCode = isRedirectStatusCode; exports.isRedirectResponse = isRedirectResponse; exports.isMutationMethod = isMutationMethod; exports.createRequestInit = createRequestInit; exports.SingleFetchRedirectSymbol = SingleFetchRedirectSymbol; exports.SINGLE_FETCH_REDIRECT_STATUS = SINGLE_FETCH_REDIRECT_STATUS; exports.NO_BODY_STATUS_CODES = NO_BODY_STATUS_CODES; exports.StreamTransfer = StreamTransfer; exports.getTurboStreamSingleFetchDataStrategy = getTurboStreamSingleFetchDataStrategy; exports.getSingleFetchDataStrategyImpl = getSingleFetchDataStrategyImpl; exports.stripIndexParam = stripIndexParam; exports.singleFetchUrl = singleFetchUrl; exports.decodeViaTurboStream = decodeViaTurboStream; exports.DataRouterContext = DataRouterContext; exports.DataRouterStateContext = DataRouterStateContext; exports.RSCRouterContext = RSCRouterContext; exports.ViewTransitionContext = ViewTransitionContext; exports.FetchersContext = FetchersContext; exports.AwaitContext = AwaitContext; exports.NavigationContext = NavigationContext; exports.LocationContext = LocationContext; exports.RouteContext = RouteContext; exports.ENABLE_DEV_WARNINGS = ENABLE_DEV_WARNINGS; exports.warnOnce = warnOnce; exports.useHref = useHref; exports.useInRouterContext = useInRouterContext; exports.useLocation = useLocation; exports.useNavigationType = useNavigationType; exports.useMatch = useMatch; exports.useNavigate = useNavigate; exports.useOutletContext = useOutletContext; exports.useOutlet = useOutlet; exports.useParams = useParams; exports.useResolvedPath = useResolvedPath; exports.useRoutes = useRoutes; exports.useRoutesImpl = useRoutesImpl; exports._renderMatches = _renderMatches; exports.useRouteId = useRouteId; exports.useNavigation = useNavigation; exports.useRevalidator = useRevalidator; exports.useMatches = useMatches; exports.useLoaderData = useLoaderData; exports.useRouteLoaderData = useRouteLoaderData; exports.useActionData = useActionData; exports.useRouteError = useRouteError; exports.useAsyncValue = useAsyncValue; exports.useAsyncError = useAsyncError; exports.useBlocker = useBlocker; exports.RemixErrorBoundary = RemixErrorBoundary; exports.createServerRoutes = createServerRoutes; exports.createClientRoutesWithHMRRevalidationOptOut = createClientRoutesWithHMRRevalidationOptOut; exports.noActionDefinedError = noActionDefinedError; exports.createClientRoutes = createClientRoutes; exports.shouldHydrateRouteLoader = shouldHydrateRouteLoader; exports.getPatchRoutesOnNavigationFunction = getPatchRoutesOnNavigationFunction; exports.useFogOFWarDiscovery = useFogOFWarDiscovery; exports.getManifestPath = getManifestPath; exports.FrameworkContext = FrameworkContext; exports.usePrefetchBehavior = usePrefetchBehavior; exports.CRITICAL_CSS_DATA_ATTRIBUTE = CRITICAL_CSS_DATA_ATTRIBUTE; exports.Links = Links; exports.PrefetchPageLinks = PrefetchPageLinks; exports.Meta = Meta; exports.setIsHydrated = setIsHydrated; exports.Scripts = Scripts; exports.mergeRefs = mergeRefs;
8302
+
8303
+ exports.Action = Action; exports.createMemoryHistory = createMemoryHistory; exports.createBrowserHistory = createBrowserHistory; exports.createHashHistory = createHashHistory; exports.invariant = invariant; exports.warning = warning; exports.createPath = createPath; exports.parsePath = parsePath; exports.createContext = createContext; exports.RouterContextProvider = RouterContextProvider; exports.convertRoutesToDataRoutes = convertRoutesToDataRoutes; exports.matchRoutes = matchRoutes; exports.generatePath = generatePath; exports.matchPath = matchPath; exports.stripBasename = stripBasename; exports.resolvePath = resolvePath; exports.getResolveToMatches = getResolveToMatches; exports.resolveTo = resolveTo; exports.joinPaths = joinPaths; exports.data = data; exports.redirect = redirect; exports.redirectDocument = redirectDocument; exports.replace = replace; exports.ErrorResponseImpl = ErrorResponseImpl; exports.isRouteErrorResponse = isRouteErrorResponse; exports.encode = encode; exports.IDLE_NAVIGATION = IDLE_NAVIGATION; exports.IDLE_FETCHER = IDLE_FETCHER; exports.IDLE_BLOCKER = IDLE_BLOCKER; exports.createRouter = createRouter; exports.createStaticHandler = createStaticHandler; exports.getStaticContextFromError = getStaticContextFromError; exports.isDataWithResponseInit = isDataWithResponseInit; exports.isResponse = isResponse; exports.isRedirectStatusCode = isRedirectStatusCode; exports.isRedirectResponse = isRedirectResponse; exports.isMutationMethod = isMutationMethod; exports.createRequestInit = createRequestInit; exports.SingleFetchRedirectSymbol = SingleFetchRedirectSymbol; exports.SINGLE_FETCH_REDIRECT_STATUS = SINGLE_FETCH_REDIRECT_STATUS; exports.NO_BODY_STATUS_CODES = NO_BODY_STATUS_CODES; exports.StreamTransfer = StreamTransfer; exports.getTurboStreamSingleFetchDataStrategy = getTurboStreamSingleFetchDataStrategy; exports.getSingleFetchDataStrategyImpl = getSingleFetchDataStrategyImpl; exports.stripIndexParam = stripIndexParam; exports.singleFetchUrl = singleFetchUrl; exports.decodeViaTurboStream = decodeViaTurboStream; exports.DataRouterContext = DataRouterContext; exports.DataRouterStateContext = DataRouterStateContext; exports.RSCRouterContext = RSCRouterContext; exports.ViewTransitionContext = ViewTransitionContext; exports.FetchersContext = FetchersContext; exports.AwaitContext = AwaitContext; exports.AwaitContextProvider = AwaitContextProvider; exports.NavigationContext = NavigationContext; exports.LocationContext = LocationContext; exports.RouteContext = RouteContext; exports.ENABLE_DEV_WARNINGS = ENABLE_DEV_WARNINGS; exports.warnOnce = warnOnce; exports.useHref = useHref; exports.useInRouterContext = useInRouterContext; exports.useLocation = useLocation; exports.useNavigationType = useNavigationType; exports.useMatch = useMatch; exports.useNavigate = useNavigate; exports.useOutletContext = useOutletContext; exports.useOutlet = useOutlet; exports.useParams = useParams; exports.useResolvedPath = useResolvedPath; exports.useRoutes = useRoutes; exports.useRoutesImpl = useRoutesImpl; exports._renderMatches = _renderMatches; exports.useRouteId = useRouteId; exports.useNavigation = useNavigation; exports.useRevalidator = useRevalidator; exports.useMatches = useMatches; exports.useLoaderData = useLoaderData; exports.useRouteLoaderData = useRouteLoaderData; exports.useActionData = useActionData; exports.useRouteError = useRouteError; exports.useAsyncValue = useAsyncValue; exports.useAsyncError = useAsyncError; exports.useBlocker = useBlocker; exports.RemixErrorBoundary = RemixErrorBoundary; exports.createServerRoutes = createServerRoutes; exports.createClientRoutesWithHMRRevalidationOptOut = createClientRoutesWithHMRRevalidationOptOut; exports.noActionDefinedError = noActionDefinedError; exports.createClientRoutes = createClientRoutes; exports.shouldHydrateRouteLoader = shouldHydrateRouteLoader; exports.getPatchRoutesOnNavigationFunction = getPatchRoutesOnNavigationFunction; exports.useFogOFWarDiscovery = useFogOFWarDiscovery; exports.getManifestPath = getManifestPath; exports.FrameworkContext = FrameworkContext; exports.usePrefetchBehavior = usePrefetchBehavior; exports.CRITICAL_CSS_DATA_ATTRIBUTE = CRITICAL_CSS_DATA_ATTRIBUTE; exports.Links = Links; exports.PrefetchPageLinks = PrefetchPageLinks; exports.Meta = Meta; exports.setIsHydrated = setIsHydrated; exports.Scripts = Scripts; exports.mergeRefs = mergeRefs;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * react-router v0.0.0-experimental-4a4201184
2
+ * react-router v0.0.0-experimental-ae6d61df4
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -58,7 +58,7 @@ import {
58
58
  withComponentProps,
59
59
  withErrorBoundaryProps,
60
60
  withHydrateFallbackProps
61
- } from "./chunk-ITXTNQS4.mjs";
61
+ } from "./chunk-2ZZVVNV4.mjs";
62
62
 
63
63
  // lib/dom/ssr/server.tsx
64
64
  import * as React from "react";
@@ -1246,9 +1246,11 @@ async function handleManifestRequest(build, routes, url) {
1246
1246
  });
1247
1247
  }
1248
1248
  let patches = {};
1249
- if (url.searchParams.has("p")) {
1249
+ if (url.searchParams.has("paths")) {
1250
1250
  let paths = /* @__PURE__ */ new Set();
1251
- url.searchParams.getAll("p").forEach((path) => {
1251
+ let pathParam = url.searchParams.get("paths") || "";
1252
+ let requestedPaths = pathParam.split(",").filter(Boolean);
1253
+ requestedPaths.forEach((path) => {
1252
1254
  if (!path.startsWith("/")) {
1253
1255
  path = `/${path}`;
1254
1256
  }
@@ -1658,22 +1660,27 @@ function createMemorySessionStorage({ cookie } = {}) {
1658
1660
  // lib/href.ts
1659
1661
  function href(path, ...args) {
1660
1662
  let params = args[0];
1661
- return path.split("/").map((segment) => {
1662
- if (segment === "*") {
1663
- return params ? params["*"] : void 0;
1664
- }
1665
- const match = segment.match(/^:([\w-]+)(\?)?/);
1666
- if (!match) return segment;
1667
- const param = match[1];
1668
- const value = params ? params[param] : void 0;
1669
- const isRequired = match[2] === void 0;
1670
- if (isRequired && value === void 0) {
1671
- throw Error(
1672
- `Path '${path}' requires param '${param}' but it was not provided`
1673
- );
1663
+ let result = path.replace(/\/*\*?$/, "").replace(
1664
+ /\/:([\w-]+)(\?)?/g,
1665
+ // same regex as in .\router\utils.ts: compilePath().
1666
+ (_, param, questionMark) => {
1667
+ const isRequired = questionMark === void 0;
1668
+ const value = params ? params[param] : void 0;
1669
+ if (isRequired && value === void 0) {
1670
+ throw new Error(
1671
+ `Path '${path}' requires param '${param}' but it was not provided`
1672
+ );
1673
+ }
1674
+ return value === void 0 ? "" : "/" + value;
1674
1675
  }
1675
- return value;
1676
- }).filter((segment) => segment !== void 0).join("/");
1676
+ );
1677
+ if (path.endsWith("*")) {
1678
+ const value = params ? params["*"] : void 0;
1679
+ if (value !== void 0) {
1680
+ result += "/" + value;
1681
+ }
1682
+ }
1683
+ return result || "/";
1677
1684
  }
1678
1685
 
1679
1686
  // lib/rsc/browser.tsx
@@ -1681,7 +1688,14 @@ import * as React4 from "react";
1681
1688
  import * as ReactDOM from "react-dom";
1682
1689
 
1683
1690
  // lib/dom/ssr/hydration.tsx
1684
- function getHydrationData(state, routes, getRouteInfo, location2, basename, isSpaMode) {
1691
+ function getHydrationData({
1692
+ state,
1693
+ routes,
1694
+ getRouteInfo,
1695
+ location: location2,
1696
+ basename,
1697
+ isSpaMode
1698
+ }) {
1685
1699
  let hydrationData = {
1686
1700
  ...state,
1687
1701
  loaderData: { ...state.loaderData }
@@ -1974,14 +1988,14 @@ function createRouterFromPayload({
1974
1988
  getContext,
1975
1989
  basename: payload.basename,
1976
1990
  history: createBrowserHistory(),
1977
- hydrationData: getHydrationData(
1978
- {
1991
+ hydrationData: getHydrationData({
1992
+ state: {
1979
1993
  loaderData: payload.loaderData,
1980
1994
  actionData: payload.actionData,
1981
1995
  errors: payload.errors
1982
1996
  },
1983
1997
  routes,
1984
- (routeId) => {
1998
+ getRouteInfo: (routeId) => {
1985
1999
  let match = payload.matches.find((m) => m.id === routeId);
1986
2000
  invariant(match, "Route not found in payload");
1987
2001
  return {
@@ -1990,10 +2004,10 @@ function createRouterFromPayload({
1990
2004
  hasHydrateFallback: match.hydrateFallbackElement != null
1991
2005
  };
1992
2006
  },
1993
- payload.location,
1994
- void 0,
1995
- false
1996
- ),
2007
+ location: payload.location,
2008
+ basename: payload.basename,
2009
+ isSpaMode: false
2010
+ }),
1997
2011
  async patchRoutesOnNavigation({ path, signal }) {
1998
2012
  if (discoveredPaths.has(path)) {
1999
2013
  return;
@@ -2407,7 +2421,7 @@ function getManifestUrl(paths) {
2407
2421
  ""
2408
2422
  );
2409
2423
  let url = new URL(`${basename}/.manifest`, window.location.origin);
2410
- paths.sort().forEach((path) => url.searchParams.append("p", path));
2424
+ url.searchParams.set("paths", paths.sort().join(","));
2411
2425
  return url;
2412
2426
  }
2413
2427
  async function fetchAndApplyManifestPatches(paths, createFromReadableStream, fetchImplementation, signal) {
@@ -2575,11 +2589,34 @@ async function routeRSCServerRequest({
2575
2589
  serverResponseB = serverResponse.clone();
2576
2590
  }
2577
2591
  const body = serverResponse.body;
2578
- let payloadPromise;
2592
+ let buffer;
2593
+ let streamControllers = [];
2594
+ const createStream = () => {
2595
+ if (!buffer) {
2596
+ buffer = [];
2597
+ return body.pipeThrough(
2598
+ new TransformStream({
2599
+ transform(chunk, controller) {
2600
+ buffer.push(chunk);
2601
+ controller.enqueue(chunk);
2602
+ streamControllers.forEach((c) => c.enqueue(chunk));
2603
+ },
2604
+ flush() {
2605
+ streamControllers.forEach((c) => c.close());
2606
+ streamControllers = [];
2607
+ }
2608
+ })
2609
+ );
2610
+ }
2611
+ return new ReadableStream({
2612
+ start(controller) {
2613
+ buffer.forEach((chunk) => controller.enqueue(chunk));
2614
+ streamControllers.push(controller);
2615
+ }
2616
+ });
2617
+ };
2579
2618
  const getPayload = async () => {
2580
- if (payloadPromise) return payloadPromise;
2581
- payloadPromise = createFromReadableStream(body);
2582
- return payloadPromise;
2619
+ return createFromReadableStream(createStream());
2583
2620
  };
2584
2621
  try {
2585
2622
  if (!detectRedirectResponse.body) {