react-router 7.18.0 → 8.0.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/development/dom-export.d.ts +6 -172
  2. package/dist/development/dom-export.js +12 -1009
  3. package/dist/development/index-react-server-client.d.ts +7 -4
  4. package/dist/development/index-react-server-client.js +8 -52
  5. package/dist/development/index-react-server.d.ts +1650 -1641
  6. package/dist/development/index-react-server.js +2882 -3664
  7. package/dist/development/index.d.ts +42 -1476
  8. package/dist/development/index.js +36 -2553
  9. package/dist/development/lib/actions.js +50 -0
  10. package/dist/development/lib/components.d.ts +1030 -0
  11. package/dist/development/lib/components.js +841 -0
  12. package/dist/development/lib/context.d.ts +83 -0
  13. package/dist/development/lib/context.js +41 -0
  14. package/dist/development/lib/dom/dom.d.ts +119 -0
  15. package/dist/development/lib/dom/dom.js +143 -0
  16. package/dist/development/lib/dom/lib.d.ts +2053 -0
  17. package/dist/development/lib/dom/lib.js +1271 -0
  18. package/dist/development/lib/dom/server.d.ts +138 -0
  19. package/dist/development/lib/dom/server.js +301 -0
  20. package/dist/development/lib/dom/ssr/components.d.ts +198 -0
  21. package/dist/development/lib/dom/ssr/components.js +589 -0
  22. package/dist/development/lib/dom/ssr/data.js +29 -0
  23. package/dist/development/lib/dom/ssr/entry.d.ts +60 -0
  24. package/dist/development/lib/dom/ssr/errorBoundaries.d.ts +27 -0
  25. package/dist/development/lib/dom/ssr/errorBoundaries.js +87 -0
  26. package/dist/development/lib/dom/ssr/fallback.js +33 -0
  27. package/dist/development/lib/dom/ssr/fog-of-war.d.ts +12 -0
  28. package/dist/development/lib/dom/ssr/fog-of-war.js +180 -0
  29. package/dist/development/lib/dom/ssr/hydration.d.ts +32 -0
  30. package/dist/development/lib/dom/ssr/hydration.js +29 -0
  31. package/dist/development/lib/dom/ssr/invariant.js +16 -0
  32. package/dist/development/lib/dom/ssr/links.js +170 -0
  33. package/dist/development/lib/dom/ssr/markup.js +24 -0
  34. package/dist/development/lib/dom/ssr/routeModules.d.ts +206 -0
  35. package/dist/development/lib/dom/ssr/routeModules.js +31 -0
  36. package/dist/development/lib/dom/ssr/routes-test-stub.d.ts +62 -0
  37. package/dist/development/lib/dom/ssr/routes-test-stub.js +108 -0
  38. package/dist/development/lib/dom/ssr/routes.d.ts +33 -0
  39. package/dist/development/lib/dom/ssr/routes.js +303 -0
  40. package/dist/development/lib/dom/ssr/server.d.ts +48 -0
  41. package/dist/development/lib/dom/ssr/server.js +69 -0
  42. package/dist/development/lib/dom/ssr/single-fetch.d.ts +14 -0
  43. package/dist/development/lib/dom/ssr/single-fetch.js +345 -0
  44. package/dist/development/lib/dom-export/dom-router-provider.d.ts +9 -0
  45. package/dist/development/lib/dom-export/dom-router-provider.js +22 -0
  46. package/dist/development/lib/dom-export/hydrated-router.d.ts +125 -0
  47. package/dist/development/lib/dom-export/hydrated-router.js +150 -0
  48. package/dist/development/lib/errors.js +29 -0
  49. package/dist/development/lib/hooks.d.ts +947 -0
  50. package/dist/development/lib/hooks.js +1388 -0
  51. package/dist/development/lib/href.d.ts +20 -0
  52. package/dist/development/lib/href.js +50 -0
  53. package/dist/development/lib/router/history.d.ts +258 -0
  54. package/dist/development/lib/router/history.js +372 -0
  55. package/dist/development/lib/router/instrumentation.d.ts +86 -0
  56. package/dist/development/lib/router/instrumentation.js +213 -0
  57. package/dist/development/lib/router/links.d.ts +114 -0
  58. package/dist/development/lib/router/router.d.ts +663 -0
  59. package/dist/development/lib/router/router.js +2988 -0
  60. package/dist/development/lib/router/url.js +18 -0
  61. package/dist/development/lib/router/utils.d.ts +948 -0
  62. package/dist/development/lib/router/utils.js +810 -0
  63. package/dist/development/lib/rsc/browser.d.ts +137 -0
  64. package/dist/development/lib/rsc/browser.js +603 -0
  65. package/dist/development/lib/rsc/errorBoundaries.d.ts +11 -0
  66. package/dist/development/lib/rsc/errorBoundaries.js +90 -0
  67. package/dist/development/lib/rsc/html-stream/browser.d.ts +48 -0
  68. package/dist/development/lib/rsc/html-stream/browser.js +74 -0
  69. package/dist/development/lib/rsc/html-stream/server.js +78 -0
  70. package/dist/development/lib/rsc/route-modules.js +27 -0
  71. package/dist/development/lib/rsc/server.rsc.d.ts +219 -0
  72. package/dist/development/lib/rsc/server.ssr.d.ts +129 -0
  73. package/dist/development/lib/rsc/server.ssr.js +404 -0
  74. package/dist/development/lib/server-runtime/build.d.ts +66 -0
  75. package/dist/development/lib/server-runtime/cookies.d.ts +66 -0
  76. package/dist/development/lib/server-runtime/cookies.js +139 -0
  77. package/dist/development/lib/server-runtime/crypto.js +43 -0
  78. package/dist/development/lib/server-runtime/data.d.ts +13 -0
  79. package/dist/development/lib/server-runtime/data.js +25 -0
  80. package/dist/development/lib/server-runtime/dev.d.ts +9 -0
  81. package/dist/development/lib/server-runtime/dev.js +26 -0
  82. package/dist/development/lib/server-runtime/entry.js +20 -0
  83. package/dist/development/lib/server-runtime/errors.js +75 -0
  84. package/dist/development/lib/server-runtime/headers.js +73 -0
  85. package/dist/development/lib/server-runtime/invariant.js +19 -0
  86. package/dist/development/lib/server-runtime/mode.d.ts +12 -0
  87. package/dist/development/lib/server-runtime/mode.js +25 -0
  88. package/dist/development/lib/server-runtime/routeMatching.js +28 -0
  89. package/dist/development/lib/server-runtime/routes.d.ts +13 -0
  90. package/dist/development/lib/server-runtime/routes.js +74 -0
  91. package/dist/development/lib/server-runtime/server.d.ts +10 -0
  92. package/dist/development/lib/server-runtime/server.js +345 -0
  93. package/dist/development/lib/server-runtime/serverHandoff.js +17 -0
  94. package/dist/development/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
  95. package/dist/development/lib/server-runtime/sessions/cookieStorage.js +45 -0
  96. package/dist/development/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
  97. package/dist/development/lib/server-runtime/sessions/memoryStorage.js +52 -0
  98. package/dist/development/lib/server-runtime/sessions.d.ts +145 -0
  99. package/dist/development/lib/server-runtime/sessions.js +98 -0
  100. package/dist/development/lib/server-runtime/single-fetch.d.ts +7 -0
  101. package/dist/development/lib/server-runtime/single-fetch.js +215 -0
  102. package/dist/development/lib/server-runtime/urls.js +28 -0
  103. package/dist/development/lib/server-runtime/warnings.js +20 -0
  104. package/dist/development/lib/types/future.d.ts +9 -0
  105. package/dist/development/lib/types/internal.d.ts +26 -177
  106. package/dist/development/lib/types/internal.js +3 -2
  107. package/dist/development/{register-roq_0qYo.d.ts → lib/types/register.d.ts} +9 -15
  108. package/dist/development/lib/types/route-data.d.ts +113 -0
  109. package/dist/development/lib/types/route-module-annotations.d.ts +149 -0
  110. package/dist/development/lib/types/route-module.d.ts +19 -0
  111. package/dist/development/lib/types/serializes-to.d.ts +13 -0
  112. package/dist/development/lib/types/utils.d.ts +11 -0
  113. package/dist/development/vendor/turbo-stream-v2/flatten.js +159 -0
  114. package/dist/development/vendor/turbo-stream-v2/turbo-stream.js +179 -0
  115. package/dist/development/vendor/turbo-stream-v2/unflatten.js +199 -0
  116. package/dist/development/vendor/turbo-stream-v2/utils.js +39 -0
  117. package/dist/production/dom-export.d.ts +6 -172
  118. package/dist/production/dom-export.js +12 -1009
  119. package/dist/production/index-react-server-client.d.ts +7 -4
  120. package/dist/production/index-react-server-client.js +8 -52
  121. package/dist/production/index-react-server.d.ts +1650 -1641
  122. package/dist/production/index-react-server.js +2873 -3664
  123. package/dist/production/index.d.ts +42 -1476
  124. package/dist/production/index.js +36 -2553
  125. package/dist/production/lib/actions.js +50 -0
  126. package/dist/production/lib/components.d.ts +1030 -0
  127. package/dist/production/lib/components.js +841 -0
  128. package/dist/production/lib/context.d.ts +83 -0
  129. package/dist/production/lib/context.js +41 -0
  130. package/dist/production/lib/dom/dom.d.ts +119 -0
  131. package/dist/production/lib/dom/dom.js +143 -0
  132. package/dist/production/lib/dom/lib.d.ts +2053 -0
  133. package/dist/production/lib/dom/lib.js +1271 -0
  134. package/dist/production/lib/dom/server.d.ts +138 -0
  135. package/dist/production/lib/dom/server.js +301 -0
  136. package/dist/production/lib/dom/ssr/components.d.ts +198 -0
  137. package/dist/production/lib/dom/ssr/components.js +589 -0
  138. package/dist/production/lib/dom/ssr/data.js +29 -0
  139. package/dist/production/lib/dom/ssr/entry.d.ts +60 -0
  140. package/dist/production/lib/dom/ssr/errorBoundaries.d.ts +27 -0
  141. package/dist/production/lib/dom/ssr/errorBoundaries.js +87 -0
  142. package/dist/production/lib/dom/ssr/fallback.js +23 -0
  143. package/dist/production/lib/dom/ssr/fog-of-war.d.ts +12 -0
  144. package/dist/production/lib/dom/ssr/fog-of-war.js +180 -0
  145. package/dist/production/lib/dom/ssr/hydration.d.ts +32 -0
  146. package/dist/production/lib/dom/ssr/hydration.js +29 -0
  147. package/dist/production/lib/dom/ssr/invariant.js +16 -0
  148. package/dist/production/lib/dom/ssr/links.js +170 -0
  149. package/dist/production/lib/dom/ssr/markup.js +24 -0
  150. package/dist/production/lib/dom/ssr/routeModules.d.ts +206 -0
  151. package/dist/production/lib/dom/ssr/routeModules.js +31 -0
  152. package/dist/production/lib/dom/ssr/routes-test-stub.d.ts +62 -0
  153. package/dist/production/lib/dom/ssr/routes-test-stub.js +108 -0
  154. package/dist/production/lib/dom/ssr/routes.d.ts +33 -0
  155. package/dist/production/lib/dom/ssr/routes.js +303 -0
  156. package/dist/production/lib/dom/ssr/server.d.ts +48 -0
  157. package/dist/production/lib/dom/ssr/server.js +69 -0
  158. package/dist/production/lib/dom/ssr/single-fetch.d.ts +14 -0
  159. package/dist/production/lib/dom/ssr/single-fetch.js +345 -0
  160. package/dist/production/lib/dom-export/dom-router-provider.d.ts +9 -0
  161. package/dist/production/lib/dom-export/dom-router-provider.js +22 -0
  162. package/dist/production/lib/dom-export/hydrated-router.d.ts +125 -0
  163. package/dist/production/lib/dom-export/hydrated-router.js +150 -0
  164. package/dist/production/lib/errors.js +29 -0
  165. package/dist/production/lib/hooks.d.ts +947 -0
  166. package/dist/production/lib/hooks.js +1373 -0
  167. package/dist/production/lib/href.d.ts +20 -0
  168. package/dist/production/lib/href.js +50 -0
  169. package/dist/production/lib/router/history.d.ts +258 -0
  170. package/dist/production/lib/router/history.js +372 -0
  171. package/dist/production/lib/router/instrumentation.d.ts +86 -0
  172. package/dist/production/lib/router/instrumentation.js +213 -0
  173. package/dist/production/lib/router/links.d.ts +114 -0
  174. package/dist/production/lib/router/router.d.ts +663 -0
  175. package/dist/production/lib/router/router.js +2988 -0
  176. package/dist/production/lib/router/url.js +18 -0
  177. package/dist/production/lib/router/utils.d.ts +948 -0
  178. package/dist/production/lib/router/utils.js +801 -0
  179. package/dist/production/lib/rsc/browser.d.ts +137 -0
  180. package/dist/production/lib/rsc/browser.js +603 -0
  181. package/dist/production/lib/rsc/errorBoundaries.d.ts +11 -0
  182. package/dist/production/lib/rsc/errorBoundaries.js +90 -0
  183. package/dist/production/lib/rsc/html-stream/browser.d.ts +48 -0
  184. package/dist/production/lib/rsc/html-stream/browser.js +74 -0
  185. package/dist/production/lib/rsc/html-stream/server.js +78 -0
  186. package/dist/production/lib/rsc/route-modules.js +27 -0
  187. package/dist/production/lib/rsc/server.rsc.d.ts +219 -0
  188. package/dist/production/lib/rsc/server.ssr.d.ts +129 -0
  189. package/dist/production/lib/rsc/server.ssr.js +404 -0
  190. package/dist/production/lib/server-runtime/build.d.ts +66 -0
  191. package/dist/production/lib/server-runtime/cookies.d.ts +66 -0
  192. package/dist/production/lib/server-runtime/cookies.js +139 -0
  193. package/dist/production/lib/server-runtime/crypto.js +43 -0
  194. package/dist/production/lib/server-runtime/data.d.ts +13 -0
  195. package/dist/production/lib/server-runtime/data.js +25 -0
  196. package/dist/production/lib/server-runtime/dev.d.ts +9 -0
  197. package/dist/production/lib/server-runtime/dev.js +26 -0
  198. package/dist/production/lib/server-runtime/entry.js +20 -0
  199. package/dist/production/lib/server-runtime/errors.js +75 -0
  200. package/dist/production/lib/server-runtime/headers.js +73 -0
  201. package/dist/production/lib/server-runtime/invariant.js +19 -0
  202. package/dist/production/lib/server-runtime/mode.d.ts +12 -0
  203. package/dist/production/lib/server-runtime/mode.js +25 -0
  204. package/dist/production/lib/server-runtime/routeMatching.js +28 -0
  205. package/dist/production/lib/server-runtime/routes.d.ts +13 -0
  206. package/dist/production/lib/server-runtime/routes.js +74 -0
  207. package/dist/production/lib/server-runtime/server.d.ts +10 -0
  208. package/dist/production/lib/server-runtime/server.js +345 -0
  209. package/dist/production/lib/server-runtime/serverHandoff.js +17 -0
  210. package/dist/production/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
  211. package/dist/production/lib/server-runtime/sessions/cookieStorage.js +45 -0
  212. package/dist/production/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
  213. package/dist/production/lib/server-runtime/sessions/memoryStorage.js +52 -0
  214. package/dist/production/lib/server-runtime/sessions.d.ts +145 -0
  215. package/dist/production/lib/server-runtime/sessions.js +98 -0
  216. package/dist/production/lib/server-runtime/single-fetch.d.ts +7 -0
  217. package/dist/production/lib/server-runtime/single-fetch.js +215 -0
  218. package/dist/production/lib/server-runtime/urls.js +28 -0
  219. package/dist/production/lib/server-runtime/warnings.js +20 -0
  220. package/dist/production/lib/types/future.d.ts +9 -0
  221. package/dist/production/lib/types/internal.d.ts +26 -177
  222. package/dist/production/lib/types/internal.js +3 -2
  223. package/dist/production/{register-roq_0qYo.d.ts → lib/types/register.d.ts} +9 -15
  224. package/dist/production/lib/types/route-data.d.ts +113 -0
  225. package/dist/production/lib/types/route-module-annotations.d.ts +149 -0
  226. package/dist/production/lib/types/route-module.d.ts +19 -0
  227. package/dist/production/lib/types/serializes-to.d.ts +13 -0
  228. package/dist/production/lib/types/utils.d.ts +11 -0
  229. package/dist/production/vendor/turbo-stream-v2/flatten.js +159 -0
  230. package/dist/production/vendor/turbo-stream-v2/turbo-stream.js +179 -0
  231. package/dist/production/vendor/turbo-stream-v2/unflatten.js +199 -0
  232. package/dist/production/vendor/turbo-stream-v2/utils.js +39 -0
  233. package/docs/explanation/code-splitting.md +16 -0
  234. package/docs/how-to/middleware.md +6 -41
  235. package/docs/how-to/react-server-components.md +1 -1
  236. package/docs/upgrading/future.md +0 -249
  237. package/package.json +43 -87
  238. package/dist/development/browser-B2PdsXXH.d.ts +0 -318
  239. package/dist/development/browser-DBmQ1yAR.d.mts +0 -318
  240. package/dist/development/chunk-4ZMWKKQ3.mjs +0 -11606
  241. package/dist/development/chunk-E4MTK73K.mjs +0 -2517
  242. package/dist/development/chunk-U7ORXROY.js +0 -10307
  243. package/dist/development/chunk-WW7PN6QI.js +0 -188
  244. package/dist/development/chunk-YL5M26XI.js +0 -1366
  245. package/dist/development/context-CeD5LmaF.d.mts +0 -1779
  246. package/dist/development/data-CjO11-hU.d.ts +0 -1740
  247. package/dist/development/data-DEjBmEfD.d.mts +0 -1740
  248. package/dist/development/dom-export.d.mts +0 -172
  249. package/dist/development/dom-export.mjs +0 -1010
  250. package/dist/development/index-react-server-client-3ykjivgQ.d.ts +0 -3677
  251. package/dist/development/index-react-server-client-CACgcj2J.d.mts +0 -2614
  252. package/dist/development/index-react-server-client.d.mts +0 -4
  253. package/dist/development/index-react-server-client.mjs +0 -59
  254. package/dist/development/index-react-server.d.mts +0 -2711
  255. package/dist/development/index-react-server.mjs +0 -3803
  256. package/dist/development/index.d.mts +0 -1479
  257. package/dist/development/index.mjs +0 -275
  258. package/dist/development/instrumentation-Dkmpzd13.d.ts +0 -715
  259. package/dist/development/lib/types/internal.d.mts +0 -184
  260. package/dist/development/lib/types/internal.mjs +0 -10
  261. package/dist/development/register-CmkRspdl.d.mts +0 -30
  262. package/dist/production/browser-B2PdsXXH.d.ts +0 -318
  263. package/dist/production/browser-DBmQ1yAR.d.mts +0 -318
  264. package/dist/production/chunk-3Z6WS2WZ.js +0 -188
  265. package/dist/production/chunk-BIP66BKV.js +0 -1366
  266. package/dist/production/chunk-EGOTSXNH.mjs +0 -2517
  267. package/dist/production/chunk-IUPBOWYO.js +0 -10307
  268. package/dist/production/chunk-M7NGGUU6.mjs +0 -11606
  269. package/dist/production/context-CeD5LmaF.d.mts +0 -1779
  270. package/dist/production/data-CjO11-hU.d.ts +0 -1740
  271. package/dist/production/data-DEjBmEfD.d.mts +0 -1740
  272. package/dist/production/dom-export.d.mts +0 -172
  273. package/dist/production/dom-export.mjs +0 -1010
  274. package/dist/production/index-react-server-client-3ykjivgQ.d.ts +0 -3677
  275. package/dist/production/index-react-server-client-CACgcj2J.d.mts +0 -2614
  276. package/dist/production/index-react-server-client.d.mts +0 -4
  277. package/dist/production/index-react-server-client.mjs +0 -59
  278. package/dist/production/index-react-server.d.mts +0 -2711
  279. package/dist/production/index-react-server.mjs +0 -3803
  280. package/dist/production/index.d.mts +0 -1479
  281. package/dist/production/index.mjs +0 -275
  282. package/dist/production/instrumentation-Dkmpzd13.d.ts +0 -715
  283. package/dist/production/lib/types/internal.d.mts +0 -184
  284. package/dist/production/lib/types/internal.mjs +0 -10
  285. package/dist/production/register-CmkRspdl.d.mts +0 -30
@@ -0,0 +1,90 @@
1
+ /**
2
+ * react-router v8.0.0-pre.1
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ import { isRouteErrorResponse } from "../router/utils.js";
12
+ import { useRouteError } from "../hooks.js";
13
+ import React from "react";
14
+ //#region lib/rsc/errorBoundaries.tsx
15
+ var RSCRouterGlobalErrorBoundary = class extends React.Component {
16
+ constructor(props) {
17
+ super(props);
18
+ this.state = {
19
+ error: null,
20
+ location: props.location
21
+ };
22
+ }
23
+ static getDerivedStateFromError(error) {
24
+ return { error };
25
+ }
26
+ static getDerivedStateFromProps(props, state) {
27
+ if (state.location !== props.location) return {
28
+ error: null,
29
+ location: props.location
30
+ };
31
+ return {
32
+ error: state.error,
33
+ location: state.location
34
+ };
35
+ }
36
+ render() {
37
+ if (this.state.error) return /* @__PURE__ */ React.createElement(RSCDefaultRootErrorBoundaryImpl, {
38
+ error: this.state.error,
39
+ renderAppShell: true
40
+ });
41
+ else return this.props.children;
42
+ }
43
+ };
44
+ function ErrorWrapper({ renderAppShell, title, children }) {
45
+ if (!renderAppShell) return children;
46
+ return /* @__PURE__ */ React.createElement("html", { lang: "en" }, /* @__PURE__ */ React.createElement("head", null, /* @__PURE__ */ React.createElement("meta", { charSet: "utf-8" }), /* @__PURE__ */ React.createElement("meta", {
47
+ name: "viewport",
48
+ content: "width=device-width,initial-scale=1,viewport-fit=cover"
49
+ }), /* @__PURE__ */ React.createElement("title", null, title)), /* @__PURE__ */ React.createElement("body", null, /* @__PURE__ */ React.createElement("main", { style: {
50
+ fontFamily: "system-ui, sans-serif",
51
+ padding: "2rem"
52
+ } }, children)));
53
+ }
54
+ function RSCDefaultRootErrorBoundaryImpl({ error, renderAppShell }) {
55
+ console.error(error);
56
+ let heyDeveloper = /* @__PURE__ */ React.createElement("script", { dangerouslySetInnerHTML: { __html: `
57
+ console.log(
58
+ "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
59
+ );
60
+ ` } });
61
+ if (isRouteErrorResponse(error)) return /* @__PURE__ */ React.createElement(ErrorWrapper, {
62
+ renderAppShell,
63
+ title: "Unhandled Thrown Response!"
64
+ }, /* @__PURE__ */ React.createElement("h1", { style: { fontSize: "24px" } }, error.status, " ", error.statusText), heyDeveloper);
65
+ let errorInstance;
66
+ if (error instanceof Error) errorInstance = error;
67
+ else {
68
+ let errorString = error == null ? "Unknown Error" : typeof error === "object" && "toString" in error ? error.toString() : JSON.stringify(error);
69
+ errorInstance = new Error(errorString);
70
+ }
71
+ return /* @__PURE__ */ React.createElement(ErrorWrapper, {
72
+ renderAppShell,
73
+ title: "Application Error!"
74
+ }, /* @__PURE__ */ React.createElement("h1", { style: { fontSize: "24px" } }, "Application Error"), /* @__PURE__ */ React.createElement("pre", { style: {
75
+ padding: "2rem",
76
+ background: "hsla(10, 50%, 50%, 0.1)",
77
+ color: "red",
78
+ overflow: "auto"
79
+ } }, errorInstance.stack), heyDeveloper);
80
+ }
81
+ function RSCDefaultRootErrorBoundary({ hasRootLayout }) {
82
+ let error = useRouteError();
83
+ if (hasRootLayout === void 0) throw new Error("Missing 'hasRootLayout' prop");
84
+ return /* @__PURE__ */ React.createElement(RSCDefaultRootErrorBoundaryImpl, {
85
+ renderAppShell: !hasRootLayout,
86
+ error
87
+ });
88
+ }
89
+ //#endregion
90
+ export { RSCDefaultRootErrorBoundary, RSCRouterGlobalErrorBoundary };
@@ -0,0 +1,48 @@
1
+
2
+ //#region lib/rsc/html-stream/browser.d.ts
3
+ declare global {
4
+ interface Window {
5
+ __FLIGHT_DATA: any[];
6
+ }
7
+ }
8
+ /**
9
+ * Get the prerendered [RSC](https://react.dev/reference/rsc/server-components)
10
+ * stream for hydration. Usually passed directly to your
11
+ * `react-server-dom-xyz/client`'s `createFromReadableStream`.
12
+ *
13
+ * @example
14
+ * import { startTransition, StrictMode } from "react";
15
+ * import { hydrateRoot } from "react-dom/client";
16
+ * import {
17
+ * unstable_getRSCStream as getRSCStream,
18
+ * unstable_RSCHydratedRouter as RSCHydratedRouter,
19
+ * } from "react-router";
20
+ * import type { unstable_RSCPayload as RSCPayload } from "react-router";
21
+ *
22
+ * createFromReadableStream(getRSCStream()).then(
23
+ * (payload: RSCServerPayload) => {
24
+ * startTransition(async () => {
25
+ * hydrateRoot(
26
+ * document,
27
+ * <StrictMode>
28
+ * <RSCHydratedRouter {...props} />
29
+ * </StrictMode>,
30
+ * {
31
+ * // Options
32
+ * }
33
+ * );
34
+ * });
35
+ * }
36
+ * );
37
+ *
38
+ * @name unstable_getRSCStream
39
+ * @public
40
+ * @category RSC
41
+ * @mode data
42
+ * @returns A [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)
43
+ * that contains the [RSC](https://react.dev/reference/rsc/server-components)
44
+ * data for hydration.
45
+ */
46
+ declare function getRSCStream(): ReadableStream;
47
+ //#endregion
48
+ export { getRSCStream };
@@ -0,0 +1,74 @@
1
+ /**
2
+ * react-router v8.0.0-pre.1
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ //#region lib/rsc/html-stream/browser.ts
12
+ /**
13
+ * Get the prerendered [RSC](https://react.dev/reference/rsc/server-components)
14
+ * stream for hydration. Usually passed directly to your
15
+ * `react-server-dom-xyz/client`'s `createFromReadableStream`.
16
+ *
17
+ * @example
18
+ * import { startTransition, StrictMode } from "react";
19
+ * import { hydrateRoot } from "react-dom/client";
20
+ * import {
21
+ * unstable_getRSCStream as getRSCStream,
22
+ * unstable_RSCHydratedRouter as RSCHydratedRouter,
23
+ * } from "react-router";
24
+ * import type { unstable_RSCPayload as RSCPayload } from "react-router";
25
+ *
26
+ * createFromReadableStream(getRSCStream()).then(
27
+ * (payload: RSCServerPayload) => {
28
+ * startTransition(async () => {
29
+ * hydrateRoot(
30
+ * document,
31
+ * <StrictMode>
32
+ * <RSCHydratedRouter {...props} />
33
+ * </StrictMode>,
34
+ * {
35
+ * // Options
36
+ * }
37
+ * );
38
+ * });
39
+ * }
40
+ * );
41
+ *
42
+ * @name unstable_getRSCStream
43
+ * @public
44
+ * @category RSC
45
+ * @mode data
46
+ * @returns A [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)
47
+ * that contains the [RSC](https://react.dev/reference/rsc/server-components)
48
+ * data for hydration.
49
+ */
50
+ function getRSCStream() {
51
+ let encoder = new TextEncoder();
52
+ let streamController = null;
53
+ let rscStream = new ReadableStream({ start(controller) {
54
+ if (typeof window === "undefined") return;
55
+ let handleChunk = (chunk) => {
56
+ if (typeof chunk === "string") controller.enqueue(encoder.encode(chunk));
57
+ else controller.enqueue(chunk);
58
+ };
59
+ window.__FLIGHT_DATA ||= [];
60
+ window.__FLIGHT_DATA.forEach(handleChunk);
61
+ window.__FLIGHT_DATA.push = (chunk) => {
62
+ handleChunk(chunk);
63
+ return 0;
64
+ };
65
+ streamController = controller;
66
+ } });
67
+ if (typeof document !== "undefined" && document.readyState === "loading") document.addEventListener("DOMContentLoaded", () => {
68
+ streamController?.close();
69
+ });
70
+ else streamController?.close();
71
+ return rscStream;
72
+ }
73
+ //#endregion
74
+ export { getRSCStream };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * react-router v8.0.0-pre.1
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ //#region lib/rsc/html-stream/server.ts
12
+ const encoder = new TextEncoder();
13
+ const trailer = "</body></html>";
14
+ function injectRSCPayload(rscStream) {
15
+ let decoder = new TextDecoder();
16
+ let resolveFlightDataPromise;
17
+ let flightDataPromise = new Promise((resolve) => resolveFlightDataPromise = resolve);
18
+ let startedRSC = false;
19
+ let buffered = [];
20
+ let timeout = null;
21
+ function flushBufferedChunks(controller) {
22
+ for (let chunk of buffered) {
23
+ let buf = decoder.decode(chunk, { stream: true });
24
+ if (buf.endsWith(trailer)) buf = buf.slice(0, -14);
25
+ controller.enqueue(encoder.encode(buf));
26
+ }
27
+ buffered.length = 0;
28
+ timeout = null;
29
+ }
30
+ return new TransformStream({
31
+ transform(chunk, controller) {
32
+ buffered.push(chunk);
33
+ if (timeout) return;
34
+ timeout = setTimeout(async () => {
35
+ flushBufferedChunks(controller);
36
+ if (!startedRSC) {
37
+ startedRSC = true;
38
+ writeRSCStream(rscStream, controller).catch((err) => controller.error(err)).then(resolveFlightDataPromise);
39
+ }
40
+ }, 0);
41
+ },
42
+ async flush(controller) {
43
+ await flightDataPromise;
44
+ if (timeout) {
45
+ clearTimeout(timeout);
46
+ flushBufferedChunks(controller);
47
+ }
48
+ controller.enqueue(encoder.encode("</body></html>"));
49
+ }
50
+ });
51
+ }
52
+ async function writeRSCStream(rscStream, controller) {
53
+ let decoder = new TextDecoder("utf-8", { fatal: true });
54
+ const reader = rscStream.getReader();
55
+ try {
56
+ let read;
57
+ while ((read = await reader.read()) && !read.done) {
58
+ const chunk = read.value;
59
+ try {
60
+ writeChunk(JSON.stringify(decoder.decode(chunk, { stream: true })), controller);
61
+ } catch (e) {
62
+ writeChunk(`Uint8Array.from(atob(${JSON.stringify(btoa(String.fromCodePoint(...chunk)))}), m => m.codePointAt(0))`, controller);
63
+ }
64
+ }
65
+ } finally {
66
+ reader.releaseLock();
67
+ }
68
+ let remaining = decoder.decode();
69
+ if (remaining.length) writeChunk(JSON.stringify(remaining), controller);
70
+ }
71
+ function writeChunk(chunk, controller) {
72
+ controller.enqueue(encoder.encode(`<script>${escapeScript(`(self.__FLIGHT_DATA||=[]).push(${chunk})`)}<\/script>`));
73
+ }
74
+ function escapeScript(script) {
75
+ return script.replace(/<!--/g, "<\\!--").replace(/<\/(script)/gi, "</\\$1");
76
+ }
77
+ //#endregion
78
+ export { injectRSCPayload };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * react-router v8.0.0-pre.1
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ //#region lib/rsc/route-modules.ts
12
+ function createRSCRouteModules(payload) {
13
+ const routeModules = {};
14
+ for (const match of payload.matches) populateRSCRouteModules(routeModules, match);
15
+ return routeModules;
16
+ }
17
+ function populateRSCRouteModules(routeModules, matches) {
18
+ matches = Array.isArray(matches) ? matches : [matches];
19
+ for (const match of matches) routeModules[match.id] = {
20
+ links: match.links,
21
+ meta: match.meta,
22
+ default: noopComponent
23
+ };
24
+ }
25
+ const noopComponent = () => null;
26
+ //#endregion
27
+ export { createRSCRouteModules, populateRSCRouteModules };
@@ -0,0 +1,219 @@
1
+
2
+ import { Location } from "../router/history.js";
3
+ import { ActionFunction, LoaderFunction, Params, RouterContextProvider, ShouldRevalidateFunction } from "../router/utils.js";
4
+ import { ClientActionFunction, ClientLoaderFunction, HeadersFunction, LinksFunction, MetaFunction } from "../dom/ssr/routeModules.js";
5
+ import * as React$1 from "react";
6
+
7
+ //#region lib/rsc/server.rsc.d.ts
8
+ declare function getRequest(): Request;
9
+ type RSCRouteConfigEntryBase = {
10
+ action?: ActionFunction;
11
+ clientAction?: ClientActionFunction;
12
+ clientLoader?: ClientLoaderFunction;
13
+ ErrorBoundary?: React$1.ComponentType<any>;
14
+ handle?: any;
15
+ headers?: HeadersFunction;
16
+ HydrateFallback?: React$1.ComponentType<any>;
17
+ Layout?: React$1.ComponentType<any>;
18
+ links?: LinksFunction;
19
+ loader?: LoaderFunction;
20
+ meta?: MetaFunction;
21
+ shouldRevalidate?: ShouldRevalidateFunction;
22
+ };
23
+ type RSCRouteConfigEntry = RSCRouteConfigEntryBase & {
24
+ id: string;
25
+ path?: string;
26
+ Component?: React$1.ComponentType<any>;
27
+ lazy?: () => Promise<RSCRouteConfigEntryBase & ({
28
+ default?: React$1.ComponentType<any>;
29
+ Component?: never;
30
+ } | {
31
+ default?: never;
32
+ Component?: React$1.ComponentType<any>;
33
+ })>;
34
+ } & ({
35
+ index: true;
36
+ } | {
37
+ children?: RSCRouteConfigEntry[];
38
+ });
39
+ type RSCRouteConfig = Array<RSCRouteConfigEntry>;
40
+ type RSCRouteManifest = {
41
+ clientAction?: ClientActionFunction;
42
+ clientLoader?: ClientLoaderFunction;
43
+ element?: React$1.ReactElement | false;
44
+ errorElement?: React$1.ReactElement;
45
+ handle?: any;
46
+ hasAction: boolean;
47
+ hasComponent: boolean;
48
+ hasLoader: boolean;
49
+ hydrateFallbackElement?: React$1.ReactElement;
50
+ id: string;
51
+ index?: boolean;
52
+ links?: LinksFunction;
53
+ meta?: MetaFunction;
54
+ parentId?: string;
55
+ path?: string;
56
+ shouldRevalidate?: ShouldRevalidateFunction;
57
+ };
58
+ type RSCRouteMatch = RSCRouteManifest & {
59
+ params: Params;
60
+ pathname: string;
61
+ pathnameBase: string;
62
+ };
63
+ type RSCRenderPayload = {
64
+ type: "render";
65
+ actionData: Record<string, any> | null;
66
+ basename: string | undefined;
67
+ errors: Record<string, any> | null;
68
+ loaderData: Record<string, any>;
69
+ location: Location;
70
+ routeDiscovery: RouteDiscovery;
71
+ matches: RSCRouteMatch[];
72
+ patches?: Promise<RSCRouteManifest[]>;
73
+ nonce?: string;
74
+ formState?: unknown;
75
+ };
76
+ type RSCManifestPayload = {
77
+ type: "manifest";
78
+ patches: Promise<RSCRouteManifest[]>;
79
+ };
80
+ type RSCActionPayload = {
81
+ type: "action";
82
+ actionResult: Promise<unknown>;
83
+ rerender?: Promise<RSCRenderPayload | RSCRedirectPayload>;
84
+ };
85
+ type RSCRedirectPayload = {
86
+ type: "redirect";
87
+ status: number;
88
+ location: string;
89
+ replace: boolean;
90
+ reload: boolean;
91
+ actionResult?: Promise<unknown>;
92
+ };
93
+ type RSCPayload = RSCRenderPayload | RSCManifestPayload | RSCActionPayload | RSCRedirectPayload;
94
+ type RSCMatch = {
95
+ statusCode: number;
96
+ headers: Headers;
97
+ payload: RSCPayload;
98
+ };
99
+ type DecodeActionFunction = (formData: FormData) => Promise<() => Promise<unknown>>;
100
+ type DecodeFormStateFunction = (result: unknown, formData: FormData) => unknown;
101
+ type DecodeReplyFunction = (reply: FormData | string, options: {
102
+ temporaryReferences: unknown;
103
+ }) => Promise<unknown[]>;
104
+ type LoadServerActionFunction = (id: string) => Promise<Function>;
105
+ type RouteDiscovery = {
106
+ mode: "lazy";
107
+ manifestPath?: string | undefined;
108
+ } | {
109
+ mode: "initial";
110
+ };
111
+ /**
112
+ * Matches the given routes to a [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
113
+ * and returns an [RSC](https://react.dev/reference/rsc/server-components)
114
+ * [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
115
+ * encoding an {@link unstable_RSCPayload} for consumption by an [RSC](https://react.dev/reference/rsc/server-components)
116
+ * enabled client router.
117
+ *
118
+ * @example
119
+ * import {
120
+ * createTemporaryReferenceSet,
121
+ * decodeAction,
122
+ * decodeReply,
123
+ * loadServerAction,
124
+ * renderToReadableStream,
125
+ * } from "@vitejs/plugin-rsc/rsc";
126
+ * import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router";
127
+ *
128
+ * matchRSCServerRequest({
129
+ * createTemporaryReferenceSet,
130
+ * decodeAction,
131
+ * decodeFormState,
132
+ * decodeReply,
133
+ * loadServerAction,
134
+ * request,
135
+ * routes: routes(),
136
+ * generateResponse(match) {
137
+ * return new Response(
138
+ * renderToReadableStream(match.payload),
139
+ * {
140
+ * status: match.statusCode,
141
+ * headers: match.headers,
142
+ * }
143
+ * );
144
+ * },
145
+ * });
146
+ *
147
+ * @name unstable_matchRSCServerRequest
148
+ * @public
149
+ * @category RSC
150
+ * @mode data
151
+ * @param opts Options
152
+ * @param opts.allowedActionOrigins Origin patterns that are allowed to execute actions.
153
+ * @param opts.basename The basename to use when matching the request.
154
+ * @param opts.createTemporaryReferenceSet A function that returns a temporary
155
+ * reference set for the request, used to track temporary references in the [RSC](https://react.dev/reference/rsc/server-components)
156
+ * stream.
157
+ * @param opts.decodeAction Your `react-server-dom-xyz/server`'s `decodeAction`
158
+ * function, responsible for loading a server action.
159
+ * @param opts.decodeFormState A function responsible for decoding form state for
160
+ * progressively enhanceable forms with React's [`useActionState`](https://react.dev/reference/react/useActionState)
161
+ * using your `react-server-dom-xyz/server`'s `decodeFormState`.
162
+ * @param opts.decodeReply Your `react-server-dom-xyz/server`'s `decodeReply`
163
+ * function, used to decode the server function's arguments and bind them to the
164
+ * implementation for invocation by the router.
165
+ * @param opts.generateResponse A function responsible for using your
166
+ * `renderToReadableStream` to generate a [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
167
+ * encoding the {@link unstable_RSCPayload}.
168
+ * @param opts.loadServerAction Your `react-server-dom-xyz/server`'s
169
+ * `loadServerAction` function, used to load a server action by ID.
170
+ * @param opts.onError An optional error handler that will be called with any
171
+ * errors that occur during the request processing.
172
+ * @param opts.request The [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
173
+ * to match against.
174
+ * @param opts.requestContext An instance of {@link RouterContextProvider}
175
+ * that should be created per request, to be passed to [`action`](../../start/data/route-object#action)s,
176
+ * [`loader`](../../start/data/route-object#loader)s and [middleware](../../how-to/middleware).
177
+ * @param opts.routeDiscovery The route discovery configuration, used to determine how the router should discover new routes during navigations.
178
+ * @param opts.routes Your {@link unstable_RSCRouteConfigEntry | route definitions}.
179
+ * @returns A [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
180
+ * that contains the [RSC](https://react.dev/reference/rsc/server-components)
181
+ * data for hydration.
182
+ */
183
+ declare function matchRSCServerRequest({
184
+ allowedActionOrigins,
185
+ createTemporaryReferenceSet,
186
+ basename,
187
+ decodeReply,
188
+ requestContext,
189
+ routeDiscovery,
190
+ loadServerAction,
191
+ decodeAction,
192
+ decodeFormState,
193
+ onError,
194
+ request,
195
+ routes,
196
+ generateResponse
197
+ }: {
198
+ allowedActionOrigins?: string[];
199
+ createTemporaryReferenceSet: () => unknown;
200
+ basename?: string;
201
+ decodeReply?: DecodeReplyFunction;
202
+ decodeAction?: DecodeActionFunction;
203
+ decodeFormState?: DecodeFormStateFunction;
204
+ requestContext?: RouterContextProvider;
205
+ loadServerAction?: LoadServerActionFunction;
206
+ onError?: (error: unknown) => void;
207
+ request: Request;
208
+ routes: RSCRouteConfigEntry[];
209
+ routeDiscovery?: RouteDiscovery;
210
+ generateResponse: (match: RSCMatch, {
211
+ onError,
212
+ temporaryReferences
213
+ }: {
214
+ onError(error: unknown): string | undefined;
215
+ temporaryReferences: unknown;
216
+ }) => Response;
217
+ }): Promise<Response>;
218
+ //#endregion
219
+ export { DecodeActionFunction, DecodeFormStateFunction, DecodeReplyFunction, LoadServerActionFunction, RSCManifestPayload, RSCMatch, RSCPayload, RSCRenderPayload, RSCRouteConfig, RSCRouteConfigEntry, RSCRouteManifest, RSCRouteMatch, getRequest, matchRSCServerRequest };
@@ -0,0 +1,129 @@
1
+
2
+ import { RSCPayload } from "./server.rsc.js";
3
+ import * as React$1 from "react";
4
+
5
+ //#region lib/rsc/server.ssr.d.ts
6
+ type DecodedPayload = Promise<RSCPayload> & {
7
+ _deepestRenderedBoundaryId?: string | null;
8
+ formState: Promise<any>;
9
+ };
10
+ type SSRCreateFromReadableStreamFunction = (body: ReadableStream<Uint8Array>) => Promise<unknown>;
11
+ /**
12
+ * Routes the incoming [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
13
+ * to the [RSC](https://react.dev/reference/rsc/server-components) server and
14
+ * appropriately proxies the server response for data / resource requests, or
15
+ * renders to HTML for a document request.
16
+ *
17
+ * @example
18
+ * import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
19
+ * import * as ReactDomServer from "react-dom/server.edge";
20
+ * import {
21
+ * unstable_RSCStaticRouter as RSCStaticRouter,
22
+ * unstable_routeRSCServerRequest as routeRSCServerRequest,
23
+ * } from "react-router";
24
+ *
25
+ * routeRSCServerRequest({
26
+ * request,
27
+ * serverResponse,
28
+ * createFromReadableStream,
29
+ * async renderHTML(getPayload) {
30
+ * const payload = getPayload();
31
+ *
32
+ * return await renderHTMLToReadableStream(
33
+ * <RSCStaticRouter getPayload={getPayload} />,
34
+ * {
35
+ * bootstrapScriptContent,
36
+ * formState: await payload.formState,
37
+ * }
38
+ * );
39
+ * },
40
+ * });
41
+ *
42
+ * @name unstable_routeRSCServerRequest
43
+ * @public
44
+ * @category RSC
45
+ * @mode data
46
+ * @param opts Options
47
+ * @param opts.createFromReadableStream Your `react-server-dom-xyz/client`'s
48
+ * `createFromReadableStream` function, used to decode payloads from the server.
49
+ * @param opts.serverResponse A Response or partial response generated by the [RSC](https://react.dev/reference/rsc/server-components) handler containing a serialized {@link unstable_RSCPayload}.
50
+ * @param opts.hydrate Whether to hydrate the server response with the RSC payload.
51
+ * Defaults to `true`.
52
+ * @param opts.renderHTML A function that renders the {@link unstable_RSCPayload} to
53
+ * HTML, usually using a {@link unstable_RSCStaticRouter | `<RSCStaticRouter>`}.
54
+ * @param opts.request The request to route.
55
+ * @returns A [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
56
+ * that either contains the [RSC](https://react.dev/reference/rsc/server-components)
57
+ * payload for data requests, or renders the HTML for document requests.
58
+ */
59
+ declare function routeRSCServerRequest({
60
+ request,
61
+ serverResponse,
62
+ createFromReadableStream,
63
+ renderHTML,
64
+ hydrate
65
+ }: {
66
+ request: Request;
67
+ serverResponse: Response;
68
+ createFromReadableStream: SSRCreateFromReadableStreamFunction;
69
+ renderHTML: (getPayload: () => DecodedPayload, options: {
70
+ onError(error: unknown): string | undefined;
71
+ onHeaders(headers: Headers): void;
72
+ }) => ReadableStream<Uint8Array> | Promise<ReadableStream<Uint8Array>>;
73
+ hydrate?: boolean;
74
+ }): Promise<Response>;
75
+ /**
76
+ * Props for the {@link unstable_RSCStaticRouter} component.
77
+ *
78
+ * @name unstable_RSCStaticRouterProps
79
+ * @category Types
80
+ */
81
+ interface RSCStaticRouterProps {
82
+ /**
83
+ * A function that starts decoding of the {@link unstable_RSCPayload}. Usually passed
84
+ * through from {@link unstable_routeRSCServerRequest}'s `renderHTML`.
85
+ */
86
+ getPayload: () => DecodedPayload;
87
+ }
88
+ /**
89
+ * Pre-renders an {@link unstable_RSCPayload} to HTML. Usually used in
90
+ * {@link unstable_routeRSCServerRequest}'s `renderHTML` callback.
91
+ *
92
+ * @example
93
+ * import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
94
+ * import * as ReactDomServer from "react-dom/server.edge";
95
+ * import {
96
+ * unstable_RSCStaticRouter as RSCStaticRouter,
97
+ * unstable_routeRSCServerRequest as routeRSCServerRequest,
98
+ * } from "react-router";
99
+ *
100
+ * routeRSCServerRequest({
101
+ * request,
102
+ * serverResponse,
103
+ * createFromReadableStream,
104
+ * async renderHTML(getPayload) {
105
+ * const payload = getPayload();
106
+ *
107
+ * return await renderHTMLToReadableStream(
108
+ * <RSCStaticRouter getPayload={getPayload} />,
109
+ * {
110
+ * bootstrapScriptContent,
111
+ * formState: await payload.formState,
112
+ * }
113
+ * );
114
+ * },
115
+ * });
116
+ *
117
+ * @name unstable_RSCStaticRouter
118
+ * @public
119
+ * @category RSC
120
+ * @mode data
121
+ * @param props Props
122
+ * @param {unstable_RSCStaticRouterProps.getPayload} props.getPayload n/a
123
+ * @returns A React component that renders the {@link unstable_RSCPayload} as HTML.
124
+ */
125
+ declare function RSCStaticRouter({
126
+ getPayload
127
+ }: RSCStaticRouterProps): React$1.JSX.Element | null;
128
+ //#endregion
129
+ export { RSCStaticRouter, RSCStaticRouterProps, SSRCreateFromReadableStreamFunction, routeRSCServerRequest };