@bleedingdev/modern-js-runtime 3.2.0-ultramodern.120 → 3.2.0-ultramodern.122

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 (203) hide show
  1. package/dist/cjs/boundary-debugger/index.js +4 -0
  2. package/dist/cjs/cli/index.js +11 -0
  3. package/dist/cjs/{router/runtime/tanstack/rsc/ClientSlot.js → core/context/extensions.js} +33 -21
  4. package/dist/cjs/{router/runtime/tanstack/rsc/SlotContext.js → core/context/helmetContext.js} +16 -20
  5. package/dist/cjs/core/context/index.js +65 -0
  6. package/dist/cjs/core/react/wrapper.js +6 -4
  7. package/dist/cjs/core/server/helmet.js +2 -1
  8. package/dist/cjs/core/server/requestHandler.js +42 -29
  9. package/dist/cjs/core/server/routerCleanup.js +110 -0
  10. package/dist/cjs/core/server/scriptOrder.js +75 -4
  11. package/dist/cjs/core/server/stream/afterTemplate.js +6 -18
  12. package/dist/cjs/core/server/stream/deferredScript.js +4 -1
  13. package/dist/cjs/core/server/string/index.js +1 -7
  14. package/dist/cjs/core/server/string/loadable.js +13 -40
  15. package/dist/cjs/core/server/string/ssrData.js +1 -1
  16. package/dist/cjs/core/server/utils.js +31 -8
  17. package/dist/cjs/exports/head.js +135 -74
  18. package/dist/cjs/exports/tanstack-router.js +36 -305
  19. package/dist/cjs/module-federation/index.js +178 -0
  20. package/dist/cjs/router/cli/code/index.js +1 -47
  21. package/dist/cjs/router/cli/code/templates.js +1 -14
  22. package/dist/cjs/router/cli/handler.js +1 -1
  23. package/dist/cjs/router/cli/index.js +2 -23
  24. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +16 -4
  25. package/dist/cjs/router/runtime/PrefetchLink.js +2 -3
  26. package/dist/cjs/router/runtime/internal.js +20 -13
  27. package/dist/cjs/router/runtime/lifecycle.js +37 -22
  28. package/dist/cjs/router/runtime/plugin.js +2 -9
  29. package/dist/cjs/router/runtime/plugin.node.js +2 -7
  30. package/dist/cjs/router/runtime/provider.js +107 -0
  31. package/dist/cjs/router/runtime/utils.js +35 -9
  32. package/dist/esm/boundary-debugger/index.mjs +4 -0
  33. package/dist/esm/cli/index.mjs +4 -2
  34. package/dist/esm/core/context/extensions.mjs +28 -0
  35. package/dist/esm/core/context/helmetContext.mjs +13 -0
  36. package/dist/esm/core/context/index.mjs +5 -0
  37. package/dist/esm/core/react/wrapper.mjs +6 -4
  38. package/dist/esm/core/server/helmet.mjs +2 -1
  39. package/dist/esm/core/server/requestHandler.mjs +43 -30
  40. package/dist/esm/core/server/routerCleanup.mjs +66 -0
  41. package/dist/esm/core/server/scriptOrder.mjs +60 -1
  42. package/dist/esm/core/server/stream/afterTemplate.mjs +8 -20
  43. package/dist/esm/core/server/stream/deferredScript.mjs +4 -1
  44. package/dist/esm/core/server/string/index.mjs +3 -9
  45. package/dist/esm/core/server/string/loadable.mjs +11 -38
  46. package/dist/esm/core/server/string/ssrData.mjs +2 -2
  47. package/dist/esm/core/server/utils.mjs +31 -8
  48. package/dist/esm/exports/head.mjs +135 -74
  49. package/dist/esm/exports/tanstack-router.mjs +30 -4
  50. package/dist/esm/module-federation/index.mjs +109 -0
  51. package/dist/esm/router/cli/code/index.mjs +1 -47
  52. package/dist/esm/router/cli/code/templates.mjs +1 -14
  53. package/dist/esm/router/cli/handler.mjs +1 -1
  54. package/dist/esm/router/cli/index.mjs +3 -24
  55. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +16 -4
  56. package/dist/esm/router/runtime/PrefetchLink.mjs +2 -3
  57. package/dist/esm/router/runtime/internal.mjs +16 -15
  58. package/dist/esm/router/runtime/lifecycle.mjs +22 -13
  59. package/dist/esm/router/runtime/plugin.mjs +4 -11
  60. package/dist/esm/router/runtime/plugin.node.mjs +4 -9
  61. package/dist/esm/router/runtime/provider.mjs +57 -0
  62. package/dist/esm/router/runtime/utils.mjs +35 -9
  63. package/dist/esm-node/boundary-debugger/index.mjs +4 -0
  64. package/dist/esm-node/cli/index.mjs +4 -2
  65. package/dist/esm-node/core/context/extensions.mjs +29 -0
  66. package/dist/esm-node/core/context/helmetContext.mjs +14 -0
  67. package/dist/esm-node/core/context/index.mjs +5 -0
  68. package/dist/esm-node/core/react/wrapper.mjs +6 -4
  69. package/dist/esm-node/core/server/helmet.mjs +2 -1
  70. package/dist/esm-node/core/server/requestHandler.mjs +43 -30
  71. package/dist/esm-node/core/server/routerCleanup.mjs +67 -0
  72. package/dist/esm-node/core/server/scriptOrder.mjs +60 -1
  73. package/dist/esm-node/core/server/stream/afterTemplate.mjs +8 -20
  74. package/dist/esm-node/core/server/stream/deferredScript.mjs +4 -1
  75. package/dist/esm-node/core/server/string/index.mjs +3 -9
  76. package/dist/esm-node/core/server/string/loadable.mjs +11 -38
  77. package/dist/esm-node/core/server/string/ssrData.mjs +2 -2
  78. package/dist/esm-node/core/server/utils.mjs +31 -8
  79. package/dist/esm-node/exports/head.mjs +135 -74
  80. package/dist/esm-node/exports/tanstack-router.mjs +30 -4
  81. package/dist/esm-node/module-federation/index.mjs +110 -0
  82. package/dist/esm-node/router/cli/code/index.mjs +1 -47
  83. package/dist/esm-node/router/cli/code/templates.mjs +1 -14
  84. package/dist/esm-node/router/cli/handler.mjs +1 -1
  85. package/dist/esm-node/router/cli/index.mjs +3 -24
  86. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +16 -4
  87. package/dist/esm-node/router/runtime/PrefetchLink.mjs +2 -3
  88. package/dist/esm-node/router/runtime/internal.mjs +16 -15
  89. package/dist/esm-node/router/runtime/lifecycle.mjs +22 -13
  90. package/dist/esm-node/router/runtime/plugin.mjs +4 -11
  91. package/dist/esm-node/router/runtime/plugin.node.mjs +4 -9
  92. package/dist/esm-node/router/runtime/provider.mjs +58 -0
  93. package/dist/esm-node/router/runtime/utils.mjs +35 -9
  94. package/dist/types/cli/index.d.ts +3 -1
  95. package/dist/types/core/context/extensions.d.ts +37 -0
  96. package/dist/types/core/context/helmetContext.d.ts +10 -0
  97. package/dist/types/core/context/index.d.ts +6 -0
  98. package/dist/types/core/context/runtime.d.ts +1 -11
  99. package/dist/types/core/server/routerCleanup.d.ts +28 -0
  100. package/dist/types/core/server/scriptOrder.d.ts +24 -0
  101. package/dist/types/core/server/string/loadable.d.ts +1 -7
  102. package/dist/types/core/server/utils.d.ts +1 -0
  103. package/dist/types/exports/tanstack-router.d.ts +88 -7
  104. package/dist/types/module-federation/index.d.ts +65 -0
  105. package/dist/types/router/cli/code/index.d.ts +1 -3
  106. package/dist/types/router/cli/handler.d.ts +0 -3
  107. package/dist/types/router/runtime/internal.d.ts +1 -0
  108. package/dist/types/router/runtime/lifecycle.d.ts +2 -0
  109. package/dist/types/router/runtime/plugin.d.ts +1 -1
  110. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  111. package/dist/types/router/runtime/provider.d.ts +61 -0
  112. package/package.json +16 -12
  113. package/rstest.config.mts +2 -4
  114. package/dist/cjs/router/cli/code/tanstackTypes.js +0 -447
  115. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +0 -66
  116. package/dist/cjs/router/runtime/tanstack/dataMutation.js +0 -349
  117. package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +0 -48
  118. package/dist/cjs/router/runtime/tanstack/outlet.js +0 -58
  119. package/dist/cjs/router/runtime/tanstack/plugin.js +0 -342
  120. package/dist/cjs/router/runtime/tanstack/plugin.node.js +0 -272
  121. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +0 -59
  122. package/dist/cjs/router/runtime/tanstack/routeTree.js +0 -525
  123. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +0 -79
  124. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +0 -146
  125. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +0 -69
  126. package/dist/cjs/router/runtime/tanstack/rsc/client.js +0 -97
  127. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +0 -145
  128. package/dist/cjs/router/runtime/tanstack/rsc/index.js +0 -46
  129. package/dist/cjs/router/runtime/tanstack/rsc/server.js +0 -250
  130. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +0 -69
  131. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +0 -77
  132. package/dist/cjs/ssr/index.node.js +0 -125
  133. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -88
  134. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -200
  135. package/dist/cjs/ssr/serverRender/types.js +0 -40
  136. package/dist/esm/router/cli/code/tanstackTypes.mjs +0 -396
  137. package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +0 -28
  138. package/dist/esm/router/runtime/tanstack/dataMutation.mjs +0 -305
  139. package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +0 -10
  140. package/dist/esm/router/runtime/tanstack/outlet.mjs +0 -17
  141. package/dist/esm/router/runtime/tanstack/plugin.mjs +0 -304
  142. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +0 -234
  143. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +0 -18
  144. package/dist/esm/router/runtime/tanstack/routeTree.mjs +0 -481
  145. package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -19
  146. package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -41
  147. package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -104
  148. package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -31
  149. package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +0 -17
  150. package/dist/esm/router/runtime/tanstack/rsc/client.mjs +0 -53
  151. package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -107
  152. package/dist/esm/router/runtime/tanstack/rsc/index.mjs +0 -1
  153. package/dist/esm/router/runtime/tanstack/rsc/server.mjs +0 -200
  154. package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -31
  155. package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +0 -17
  156. package/dist/esm/ssr/index.node.mjs +0 -44
  157. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -50
  158. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +0 -151
  159. package/dist/esm/ssr/serverRender/types.mjs +0 -1
  160. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +0 -397
  161. package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +0 -29
  162. package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +0 -306
  163. package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +0 -11
  164. package/dist/esm-node/router/runtime/tanstack/outlet.mjs +0 -18
  165. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +0 -305
  166. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +0 -235
  167. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +0 -19
  168. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +0 -482
  169. package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -20
  170. package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -42
  171. package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -105
  172. package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -32
  173. package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +0 -18
  174. package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +0 -54
  175. package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -108
  176. package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +0 -2
  177. package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +0 -201
  178. package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -32
  179. package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +0 -18
  180. package/dist/esm-node/ssr/index.node.mjs +0 -45
  181. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -51
  182. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +0 -152
  183. package/dist/esm-node/ssr/serverRender/types.mjs +0 -2
  184. package/dist/types/router/cli/code/tanstackTypes.d.ts +0 -10
  185. package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +0 -8
  186. package/dist/types/router/runtime/tanstack/dataMutation.d.ts +0 -29
  187. package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +0 -2
  188. package/dist/types/router/runtime/tanstack/outlet.d.ts +0 -2
  189. package/dist/types/router/runtime/tanstack/plugin.d.ts +0 -6
  190. package/dist/types/router/runtime/tanstack/plugin.node.d.ts +0 -6
  191. package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +0 -11
  192. package/dist/types/router/runtime/tanstack/routeTree.d.ts +0 -8
  193. package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +0 -5
  194. package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +0 -3
  195. package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +0 -24
  196. package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +0 -5
  197. package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +0 -11
  198. package/dist/types/router/runtime/tanstack/rsc/client.d.ts +0 -11
  199. package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +0 -7
  200. package/dist/types/router/runtime/tanstack/rsc/index.d.ts +0 -2
  201. package/dist/types/router/runtime/tanstack/rsc/server.d.ts +0 -14
  202. package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +0 -2
  203. package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +0 -46
@@ -229,9 +229,13 @@ function BoundaryDebugger({ controlMode = 'visible', enabledByDefault = false, l
229
229
  enabled ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
230
230
  "aria-hidden": "true",
231
231
  children: boxes.map((box)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
232
+ "data-modern-boundary-overlay": "",
233
+ "data-modern-boundary-overlay-id": box.id,
234
+ "data-modern-boundary-overlay-label": box.label,
232
235
  style: {
233
236
  border: `2px solid ${box.color}`,
234
237
  borderRadius: 8,
238
+ boxSizing: 'border-box',
235
239
  boxShadow: `0 0 0 1px rgba(255,255,255,.72), 0 6px 20px color-mix(in srgb, ${box.color} 20%, transparent)`,
236
240
  height: box.height,
237
241
  left: box.left,
@@ -40,11 +40,14 @@ __webpack_require__.d(__webpack_exports__, {
40
40
  default: ()=>cli,
41
41
  documentPlugin: ()=>index_js_namespaceObject.documentPlugin,
42
42
  getEntrypointRoutesDir: ()=>external_router_cli_index_js_namespaceObject.getEntrypointRoutesDir,
43
+ getEntrypointRoutesOwner: ()=>external_router_cli_index_js_namespaceObject.getEntrypointRoutesOwner,
44
+ getPathWithoutExt: ()=>utils_js_namespaceObject.getPathWithoutExt,
43
45
  handleFileChange: ()=>external_router_cli_index_js_namespaceObject.handleFileChange,
44
46
  handleGeneratorEntryCode: ()=>external_router_cli_index_js_namespaceObject.handleGeneratorEntryCode,
45
47
  handleModifyEntrypoints: ()=>external_router_cli_index_js_namespaceObject.handleModifyEntrypoints,
46
48
  isRouteEntry: ()=>external_router_cli_index_js_namespaceObject.isRouteEntry,
47
49
  isRuntimeEntry: ()=>external_entry_js_namespaceObject.isRuntimeEntry,
50
+ makeLegalIdentifier: ()=>makeLegalIdentifier_js_namespaceObject.makeLegalIdentifier,
48
51
  routerPlugin: ()=>external_router_cli_index_js_namespaceObject.routerPlugin,
49
52
  runtimePlugin: ()=>runtimePlugin,
50
53
  ssrPlugin: ()=>external_ssr_index_js_namespaceObject.ssrPlugin
@@ -59,6 +62,8 @@ const external_code_js_namespaceObject = require("./code.js");
59
62
  const external_constants_js_namespaceObject = require("./constants.js");
60
63
  const external_entry_js_namespaceObject = require("./entry.js");
61
64
  const external_ssr_index_js_namespaceObject = require("./ssr/index.js");
65
+ const makeLegalIdentifier_js_namespaceObject = require("../router/cli/code/makeLegalIdentifier.js");
66
+ const utils_js_namespaceObject = require("../router/cli/code/utils.js");
62
67
  const runtimePlugin = (params)=>({
63
68
  name: '@modern-js/runtime',
64
69
  post: [
@@ -144,11 +149,14 @@ const cli = runtimePlugin;
144
149
  exports["default"] = __webpack_exports__["default"];
145
150
  exports.documentPlugin = __webpack_exports__.documentPlugin;
146
151
  exports.getEntrypointRoutesDir = __webpack_exports__.getEntrypointRoutesDir;
152
+ exports.getEntrypointRoutesOwner = __webpack_exports__.getEntrypointRoutesOwner;
153
+ exports.getPathWithoutExt = __webpack_exports__.getPathWithoutExt;
147
154
  exports.handleFileChange = __webpack_exports__.handleFileChange;
148
155
  exports.handleGeneratorEntryCode = __webpack_exports__.handleGeneratorEntryCode;
149
156
  exports.handleModifyEntrypoints = __webpack_exports__.handleModifyEntrypoints;
150
157
  exports.isRouteEntry = __webpack_exports__.isRouteEntry;
151
158
  exports.isRuntimeEntry = __webpack_exports__.isRuntimeEntry;
159
+ exports.makeLegalIdentifier = __webpack_exports__.makeLegalIdentifier;
152
160
  exports.routerPlugin = __webpack_exports__.routerPlugin;
153
161
  exports.runtimePlugin = __webpack_exports__.runtimePlugin;
154
162
  exports.ssrPlugin = __webpack_exports__.ssrPlugin;
@@ -156,11 +164,14 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
156
164
  "default",
157
165
  "documentPlugin",
158
166
  "getEntrypointRoutesDir",
167
+ "getEntrypointRoutesOwner",
168
+ "getPathWithoutExt",
159
169
  "handleFileChange",
160
170
  "handleGeneratorEntryCode",
161
171
  "handleModifyEntrypoints",
162
172
  "isRouteEntry",
163
173
  "isRuntimeEntry",
174
+ "makeLegalIdentifier",
164
175
  "routerPlugin",
165
176
  "runtimePlugin",
166
177
  "ssrPlugin"
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __webpack_require__ = {};
4
3
  (()=>{
5
4
  __webpack_require__.d = (exports1, getters, values)=>{
@@ -28,29 +27,42 @@ var __webpack_require__ = {};
28
27
  })();
29
28
  var __webpack_exports__ = {};
30
29
  __webpack_require__.r(__webpack_exports__);
30
+ const EXTENSIONS_SLOT = Symbol.for('@modern-js/runtime:context-extensions');
31
+ function getStore(context) {
32
+ return context[EXTENSIONS_SLOT];
33
+ }
34
+ function ensureStore(context) {
35
+ const target = context;
36
+ target[EXTENSIONS_SLOT] ??= new Map();
37
+ return target[EXTENSIONS_SLOT];
38
+ }
39
+ function stripRuntimeContextExtensions(context) {
40
+ delete context[EXTENSIONS_SLOT];
41
+ }
42
+ function createRuntimeContextExtension(id) {
43
+ const key = Symbol.for(`@modern-js/runtime:context-extension:${id}`);
44
+ return {
45
+ key,
46
+ get (context) {
47
+ return getStore(context)?.get(key);
48
+ },
49
+ set (context, value) {
50
+ ensureStore(context).set(key, value);
51
+ },
52
+ remove (context) {
53
+ getStore(context)?.delete(key);
54
+ }
55
+ };
56
+ }
31
57
  __webpack_require__.d(__webpack_exports__, {
32
- ClientSlot: ()=>ClientSlot
58
+ createRuntimeContextExtension: ()=>createRuntimeContextExtension,
59
+ stripRuntimeContextExtensions: ()=>stripRuntimeContextExtensions
33
60
  });
34
- const jsx_runtime_namespaceObject = require("react/jsx-runtime");
35
- const external_SlotContext_js_namespaceObject = require("./SlotContext.js");
36
- function ClientSlot({ args, slot }) {
37
- const context = (0, external_SlotContext_js_namespaceObject.useSlotContext)();
38
- if (!context) throw new Error('ClientSlot must be rendered inside CompositeComponent.');
39
- const implementation = context.implementations[slot];
40
- if (void 0 === implementation) {
41
- if (context.strict) throw new Error(`Missing RSC slot implementation for "${slot}".`);
42
- return null;
43
- }
44
- if ('function' == typeof implementation) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(jsx_runtime_namespaceObject.Fragment, {
45
- children: implementation(...args)
46
- });
47
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(jsx_runtime_namespaceObject.Fragment, {
48
- children: implementation
49
- });
50
- }
51
- exports.ClientSlot = __webpack_exports__.ClientSlot;
61
+ exports.createRuntimeContextExtension = __webpack_exports__.createRuntimeContextExtension;
62
+ exports.stripRuntimeContextExtensions = __webpack_exports__.stripRuntimeContextExtensions;
52
63
  for(var __rspack_i in __webpack_exports__)if (-1 === [
53
- "ClientSlot"
64
+ "createRuntimeContextExtension",
65
+ "stripRuntimeContextExtensions"
54
66
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
55
67
  Object.defineProperty(exports, '__esModule', {
56
68
  value: true
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __webpack_require__ = {};
4
3
  (()=>{
5
4
  __webpack_require__.d = (exports1, getters, values)=>{
@@ -29,29 +28,26 @@ var __webpack_require__ = {};
29
28
  var __webpack_exports__ = {};
30
29
  __webpack_require__.r(__webpack_exports__);
31
30
  __webpack_require__.d(__webpack_exports__, {
32
- SlotProvider: ()=>SlotProvider,
33
- useSlotContext: ()=>useSlotContext
31
+ ensureHelmetContext: ()=>ensureHelmetContext,
32
+ getHelmetContext: ()=>getHelmetContext
34
33
  });
35
- const jsx_runtime_namespaceObject = require("react/jsx-runtime");
36
- const external_react_namespaceObject = require("react");
37
- const SlotContext = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(null);
38
- function useSlotContext() {
39
- return (0, external_react_namespaceObject.use)(SlotContext);
34
+ const external_extensions_js_namespaceObject = require("./extensions.js");
35
+ const helmetContextExtension = (0, external_extensions_js_namespaceObject.createRuntimeContextExtension)('@modern-js/runtime:helmet-context');
36
+ function getHelmetContext(context) {
37
+ return helmetContextExtension.get(context);
40
38
  }
41
- function SlotProvider({ children, implementations, strict }) {
42
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(SlotContext, {
43
- value: {
44
- implementations,
45
- strict: true === strict
46
- },
47
- children: children
48
- });
39
+ function ensureHelmetContext(context) {
40
+ const existing = helmetContextExtension.get(context);
41
+ if (void 0 !== existing) return existing;
42
+ const created = {};
43
+ helmetContextExtension.set(context, created);
44
+ return created;
49
45
  }
50
- exports.SlotProvider = __webpack_exports__.SlotProvider;
51
- exports.useSlotContext = __webpack_exports__.useSlotContext;
46
+ exports.ensureHelmetContext = __webpack_exports__.ensureHelmetContext;
47
+ exports.getHelmetContext = __webpack_exports__.getHelmetContext;
52
48
  for(var __rspack_i in __webpack_exports__)if (-1 === [
53
- "SlotProvider",
54
- "useSlotContext"
49
+ "ensureHelmetContext",
50
+ "getHelmetContext"
55
51
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
56
52
  Object.defineProperty(exports, '__esModule', {
57
53
  value: true
@@ -28,8 +28,15 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
+ DefaultNotFound: ()=>DefaultNotFound_js_namespaceObject.DefaultNotFound,
31
32
  InternalRuntimeContext: ()=>external_runtime_js_namespaceObject.InternalRuntimeContext,
32
33
  RuntimeContext: ()=>external_runtime_js_namespaceObject.RuntimeContext,
34
+ applyRouterRuntimeState: ()=>lifecycle_js_namespaceObject.applyRouterRuntimeState,
35
+ applyRouterServerPrepareResult: ()=>lifecycle_js_namespaceObject.applyRouterServerPrepareResult,
36
+ cleanupRouterRuntimeState: ()=>lifecycle_js_namespaceObject.cleanupRouterRuntimeState,
37
+ createRouterRuntimeState: ()=>lifecycle_js_namespaceObject.createRouterRuntimeState,
38
+ createRouterServerSnapshot: ()=>lifecycle_js_namespaceObject.createRouterServerSnapshot,
39
+ createRuntimeContextExtension: ()=>external_extensions_js_namespaceObject.createRuntimeContextExtension,
33
40
  getCurrentEntryName: ()=>getCurrentEntryName,
34
41
  getGlobalApp: ()=>getGlobalApp,
35
42
  getGlobalBasename: ()=>getGlobalBasename,
@@ -40,11 +47,29 @@ __webpack_require__.d(__webpack_exports__, {
40
47
  getGlobalRSCRoot: ()=>getGlobalRSCRoot,
41
48
  getGlobalRoutes: ()=>getGlobalRoutes,
42
49
  getInitialContext: ()=>external_runtime_js_namespaceObject.getInitialContext,
50
+ getRouterHydrationScripts: ()=>lifecycle_js_namespaceObject.getRouterHydrationScripts,
51
+ getRouterMatchedRouteIds: ()=>lifecycle_js_namespaceObject.getRouterMatchedRouteIds,
52
+ getRouterRuntimeState: ()=>lifecycle_js_namespaceObject.getRouterRuntimeState,
53
+ getRouterServerSnapshot: ()=>lifecycle_js_namespaceObject.getRouterServerSnapshot,
43
54
  getServerPayload: ()=>index_js_namespaceObject.getServerPayload,
55
+ modifyRoutes: ()=>hooks_js_namespaceObject.modifyRoutes,
56
+ onAfterCreateRouter: ()=>hooks_js_namespaceObject.onAfterCreateRouter,
57
+ onAfterHydrateRouter: ()=>hooks_js_namespaceObject.onAfterHydrateRouter,
58
+ onBeforeCreateRouter: ()=>hooks_js_namespaceObject.onBeforeCreateRouter,
59
+ onBeforeCreateRoutes: ()=>hooks_js_namespaceObject.onBeforeCreateRoutes,
60
+ onBeforeHydrateRouter: ()=>hooks_js_namespaceObject.onBeforeHydrateRouter,
61
+ registerRouterProvider: ()=>provider_js_namespaceObject.registerRouterProvider,
62
+ resolveRouterProvider: ()=>provider_js_namespaceObject.resolveRouterProvider,
63
+ routerProviderRegistryHooks: ()=>provider_js_namespaceObject.routerProviderRegistryHooks,
44
64
  setGlobalContext: ()=>setGlobalContext,
45
65
  setGlobalInternalRuntimeContext: ()=>setGlobalInternalRuntimeContext,
46
66
  setServerPayload: ()=>index_js_namespaceObject.setServerPayload
47
67
  });
68
+ const DefaultNotFound_js_namespaceObject = require("../../router/runtime/DefaultNotFound.js");
69
+ const hooks_js_namespaceObject = require("../../router/runtime/hooks.js");
70
+ const lifecycle_js_namespaceObject = require("../../router/runtime/lifecycle.js");
71
+ const provider_js_namespaceObject = require("../../router/runtime/provider.js");
72
+ const external_extensions_js_namespaceObject = require("./extensions.js");
48
73
  const external_runtime_js_namespaceObject = require("./runtime.js");
49
74
  const index_js_namespaceObject = require("./serverPayload/index.js");
50
75
  const globalContext = {};
@@ -89,8 +114,15 @@ function getGlobalLayoutApp() {
89
114
  function getGlobalBasename() {
90
115
  return globalContext.basename;
91
116
  }
117
+ exports.DefaultNotFound = __webpack_exports__.DefaultNotFound;
92
118
  exports.InternalRuntimeContext = __webpack_exports__.InternalRuntimeContext;
93
119
  exports.RuntimeContext = __webpack_exports__.RuntimeContext;
120
+ exports.applyRouterRuntimeState = __webpack_exports__.applyRouterRuntimeState;
121
+ exports.applyRouterServerPrepareResult = __webpack_exports__.applyRouterServerPrepareResult;
122
+ exports.cleanupRouterRuntimeState = __webpack_exports__.cleanupRouterRuntimeState;
123
+ exports.createRouterRuntimeState = __webpack_exports__.createRouterRuntimeState;
124
+ exports.createRouterServerSnapshot = __webpack_exports__.createRouterServerSnapshot;
125
+ exports.createRuntimeContextExtension = __webpack_exports__.createRuntimeContextExtension;
94
126
  exports.getCurrentEntryName = __webpack_exports__.getCurrentEntryName;
95
127
  exports.getGlobalApp = __webpack_exports__.getGlobalApp;
96
128
  exports.getGlobalBasename = __webpack_exports__.getGlobalBasename;
@@ -101,13 +133,33 @@ exports.getGlobalLayoutApp = __webpack_exports__.getGlobalLayoutApp;
101
133
  exports.getGlobalRSCRoot = __webpack_exports__.getGlobalRSCRoot;
102
134
  exports.getGlobalRoutes = __webpack_exports__.getGlobalRoutes;
103
135
  exports.getInitialContext = __webpack_exports__.getInitialContext;
136
+ exports.getRouterHydrationScripts = __webpack_exports__.getRouterHydrationScripts;
137
+ exports.getRouterMatchedRouteIds = __webpack_exports__.getRouterMatchedRouteIds;
138
+ exports.getRouterRuntimeState = __webpack_exports__.getRouterRuntimeState;
139
+ exports.getRouterServerSnapshot = __webpack_exports__.getRouterServerSnapshot;
104
140
  exports.getServerPayload = __webpack_exports__.getServerPayload;
141
+ exports.modifyRoutes = __webpack_exports__.modifyRoutes;
142
+ exports.onAfterCreateRouter = __webpack_exports__.onAfterCreateRouter;
143
+ exports.onAfterHydrateRouter = __webpack_exports__.onAfterHydrateRouter;
144
+ exports.onBeforeCreateRouter = __webpack_exports__.onBeforeCreateRouter;
145
+ exports.onBeforeCreateRoutes = __webpack_exports__.onBeforeCreateRoutes;
146
+ exports.onBeforeHydrateRouter = __webpack_exports__.onBeforeHydrateRouter;
147
+ exports.registerRouterProvider = __webpack_exports__.registerRouterProvider;
148
+ exports.resolveRouterProvider = __webpack_exports__.resolveRouterProvider;
149
+ exports.routerProviderRegistryHooks = __webpack_exports__.routerProviderRegistryHooks;
105
150
  exports.setGlobalContext = __webpack_exports__.setGlobalContext;
106
151
  exports.setGlobalInternalRuntimeContext = __webpack_exports__.setGlobalInternalRuntimeContext;
107
152
  exports.setServerPayload = __webpack_exports__.setServerPayload;
108
153
  for(var __rspack_i in __webpack_exports__)if (-1 === [
154
+ "DefaultNotFound",
109
155
  "InternalRuntimeContext",
110
156
  "RuntimeContext",
157
+ "applyRouterRuntimeState",
158
+ "applyRouterServerPrepareResult",
159
+ "cleanupRouterRuntimeState",
160
+ "createRouterRuntimeState",
161
+ "createRouterServerSnapshot",
162
+ "createRuntimeContextExtension",
111
163
  "getCurrentEntryName",
112
164
  "getGlobalApp",
113
165
  "getGlobalBasename",
@@ -118,7 +170,20 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
118
170
  "getGlobalRSCRoot",
119
171
  "getGlobalRoutes",
120
172
  "getInitialContext",
173
+ "getRouterHydrationScripts",
174
+ "getRouterMatchedRouteIds",
175
+ "getRouterRuntimeState",
176
+ "getRouterServerSnapshot",
121
177
  "getServerPayload",
178
+ "modifyRoutes",
179
+ "onAfterCreateRouter",
180
+ "onAfterHydrateRouter",
181
+ "onBeforeCreateRouter",
182
+ "onBeforeCreateRoutes",
183
+ "onBeforeHydrateRouter",
184
+ "registerRouterProvider",
185
+ "resolveRouterProvider",
186
+ "routerProviderRegistryHooks",
122
187
  "setGlobalContext",
123
188
  "setGlobalInternalRuntimeContext",
124
189
  "setServerPayload"
@@ -33,24 +33,26 @@ __webpack_require__.d(__webpack_exports__, {
33
33
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
34
34
  const external_react_helmet_async_namespaceObject = require("react-helmet-async");
35
35
  const index_js_namespaceObject = require("../context/index.js");
36
+ const extensions_js_namespaceObject = require("../context/extensions.js");
37
+ const helmetContext_js_namespaceObject = require("../context/helmetContext.js");
36
38
  function wrapRuntimeContextProvider(App, contextValue) {
37
- const { isBrowser, initialData, routes, routerFramework, context, routeManifest, routerRuntime, routerInstance, routerHydrationScript, routerMatchedRouteIds, routerServerSnapshot, routerContext, unstable_getBlockNavState, ssrContext, _internalContext, _internalRouterBaseName, _helmetContext, ...rest } = contextValue;
39
+ const { isBrowser, initialData, routes, context, routeManifest, routerContext, unstable_getBlockNavState, ssrContext, _internalContext, _internalRouterBaseName, ...rest } = contextValue;
38
40
  const internalContextValue = contextValue;
39
- internalContextValue._helmetContext ??= {};
41
+ const helmetContext = (0, helmetContext_js_namespaceObject.ensureHelmetContext)(internalContextValue);
40
42
  const runtimeContextValue = {
41
43
  isBrowser,
42
44
  initialData,
43
45
  routes,
44
- routerFramework,
45
46
  context,
46
47
  ...rest
47
48
  };
49
+ (0, extensions_js_namespaceObject.stripRuntimeContextExtensions)(runtimeContextValue);
48
50
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.InternalRuntimeContext.Provider, {
49
51
  value: internalContextValue,
50
52
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.RuntimeContext.Provider, {
51
53
  value: runtimeContextValue,
52
54
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_helmet_async_namespaceObject.HelmetProvider, {
53
- context: internalContextValue._helmetContext,
55
+ context: helmetContext,
54
56
  children: App
55
57
  })
56
58
  })
@@ -32,6 +32,7 @@ __webpack_require__.d(__webpack_exports__, {
32
32
  getHelmetData: ()=>getHelmetData,
33
33
  helmetReplace: ()=>helmetReplace
34
34
  });
35
+ const helmetContext_js_namespaceObject = require("../context/helmetContext.js");
35
36
  const external_utils_js_namespaceObject = require("./utils.js");
36
37
  const EOL = '\n';
37
38
  const RE_HTML_ATTR = /<html[^>]*>/;
@@ -40,7 +41,7 @@ const RE_LAST_IN_HEAD = /<\/head>/;
40
41
  const RE_TITLE = /<title[^>]*>([\s\S\n\r]*?)<\/title>/;
41
42
  const TEST_TITLE_CONTENT = /(?<=<title[^>]*>)([\s\S\n\r]*?)([.|\S])([\s\S\n\r]*?)(?=<\/title>)/;
42
43
  function getHelmetData(runtimeContext) {
43
- return runtimeContext._helmetContext?.helmet ?? void 0;
44
+ return (0, helmetContext_js_namespaceObject.getHelmetContext)(runtimeContext)?.helmet ?? void 0;
44
45
  }
45
46
  function createReplaceHelemt(helmetData) {
46
47
  return helmetData ? (template)=>helmetReplace(template, helmetData) : (tempalte)=>tempalte;
@@ -51,6 +51,7 @@ const runtime_js_namespaceObject = require("../context/runtime.js");
51
51
  const serverPayload_index_js_namespaceObject = require("../context/serverPayload/index.js");
52
52
  const external_react_index_js_namespaceObject = require("../react/index.js");
53
53
  const external_constants_js_namespaceObject = require("./constants.js");
54
+ const external_routerCleanup_js_namespaceObject = require("./routerCleanup.js");
54
55
  const external_tracer_js_namespaceObject = require("./tracer.js");
55
56
  const external_utils_js_namespaceObject = require("./utils.js");
56
57
  async function handleRSCRequest(request, Root, context, options, handleRequest) {
@@ -79,6 +80,39 @@ const processRedirect = (headers, status, ctx)=>{
79
80
  headers
80
81
  });
81
82
  };
83
+ const applyRouterSnapshotResult = (context, onError)=>{
84
+ const routerServerSnapshot = (0, lifecycle_js_namespaceObject.getRouterServerSnapshot)(context);
85
+ const routerStatusCode = routerServerSnapshot?.statusCode ?? context.routerContext?.statusCode;
86
+ if (routerStatusCode && 200 !== routerStatusCode) context.ssrContext?.response.status(routerStatusCode);
87
+ const errors = Object.values(routerServerSnapshot?.errors || context.routerContext?.errors || {});
88
+ if (errors.length > 0) onError(errors[0], external_tracer_js_namespaceObject.SSRErrors.LOADER_ERROR);
89
+ };
90
+ const createLoaderRedirectResponse = (beforeRenderResult, redirectCtx)=>{
91
+ if (!beforeRenderResult || !isRedirectStatus(beforeRenderResult.status)) return;
92
+ if (beforeRenderResult.headers.has('X-Modernjs-Redirect')) return beforeRenderResult;
93
+ const redirectUrl = beforeRenderResult.headers.get('Location') || '/';
94
+ return processRedirect(new Headers({
95
+ Location: redirectUrl
96
+ }), beforeRenderResult.status, redirectCtx);
97
+ };
98
+ const renderRequest = async (request, Root, context, options, handleRequest, enableRsc)=>{
99
+ if (enableRsc) return handleRSCRequest(request, Root, context, options, handleRequest);
100
+ return handleRequest(request, Root, {
101
+ ...options,
102
+ runtimeContext: context
103
+ });
104
+ };
105
+ const finalizeRenderResponse = (response, responseProxy, redirectCtx, routerCleanup)=>{
106
+ if (-1 !== responseProxy.status && isRedirectStatus(responseProxy.status) && responseProxy.headers.Location) return processRedirect(new Headers(responseProxy.headers), responseProxy.status, redirectCtx);
107
+ Object.entries(responseProxy.headers).forEach(([key, value])=>{
108
+ response.headers.set(key, value);
109
+ });
110
+ if (-1 !== responseProxy.status) return routerCleanup.deferUntilBodyDone(new Response(response.body, {
111
+ status: responseProxy.status,
112
+ headers: response.headers
113
+ }));
114
+ return routerCleanup.deferUntilBodyDone(response);
115
+ };
82
116
  function createSSRContext(request, options) {
83
117
  const { config, loaderContext, onError, onTiming, locals, resource, params, responseProxy, reporter } = options;
84
118
  const { nonce, useJsonScript } = config;
@@ -174,41 +208,20 @@ const createRequestHandler = async (handleRequest, createRequestOptions)=>{
174
208
  isRSCNavigation: 'true' === request.headers.get('x-rsc-tree'),
175
209
  basename: ssrContext.baseUrl || '/'
176
210
  };
177
- try {
211
+ return (0, external_routerCleanup_js_namespaceObject.withRouterCleanup)(context, options.onError, async (routerCleanup)=>{
178
212
  const beforeRenderResult = await runBeforeRender(context);
179
- const routerServerSnapshot = context.routerServerSnapshot;
180
- const routerStatusCode = routerServerSnapshot?.statusCode ?? context.routerContext?.statusCode;
181
- if (routerStatusCode && 200 !== routerStatusCode) context.ssrContext?.response.status(routerStatusCode);
182
- const errors = Object.values(routerServerSnapshot?.errors || context.routerContext?.errors || {});
183
- if (errors.length > 0) options.onError(errors[0], external_tracer_js_namespaceObject.SSRErrors.LOADER_ERROR);
184
- if ("u" > typeof Response && beforeRenderResult instanceof Response && isRedirectStatus(beforeRenderResult.status)) {
185
- if (beforeRenderResult.headers.has('X-Modernjs-Redirect')) return beforeRenderResult;
186
- const redirectUrl = beforeRenderResult.headers.get('Location') || '/';
187
- return processRedirect(new Headers({
188
- Location: redirectUrl
189
- }), beforeRenderResult.status, redirectCtx);
213
+ applyRouterSnapshotResult(context, options.onError);
214
+ if ("u" > typeof Response) {
215
+ const redirectResponse = createLoaderRedirectResponse(beforeRenderResult, redirectCtx);
216
+ if (redirectResponse) return redirectResponse;
190
217
  }
191
218
  if (!createRequestOptions?.enableRsc) {
192
219
  const { htmlTemplate } = options.resource;
193
220
  options.resource.htmlTemplate = htmlTemplate.replace('</head>', `${external_constants_js_namespaceObject.CHUNK_CSS_PLACEHOLDER}</head>`);
194
221
  }
195
- let response;
196
- response = createRequestOptions?.enableRsc ? await handleRSCRequest(request, Root, context, options, handleRequest) : await handleRequest(request, Root, {
197
- ...options,
198
- runtimeContext: context
199
- });
200
- if (-1 !== responseProxy.status && isRedirectStatus(responseProxy.status) && responseProxy.headers.Location) return processRedirect(new Headers(responseProxy.headers), responseProxy.status, redirectCtx);
201
- Object.entries(responseProxy.headers).forEach(([key, value])=>{
202
- response.headers.set(key, value);
203
- });
204
- if (-1 !== responseProxy.status) return new Response(response.body, {
205
- status: responseProxy.status,
206
- headers: response.headers
207
- });
208
- return response;
209
- } finally{
210
- await (0, lifecycle_js_namespaceObject.cleanupRouterRuntimeState)(context);
211
- }
222
+ const response = await renderRequest(request, Root, context, options, handleRequest, !!createRequestOptions?.enableRsc);
223
+ return finalizeRenderResponse(response, responseProxy, redirectCtx, routerCleanup);
224
+ });
212
225
  });
213
226
  };
214
227
  return requestHandler;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ ROUTER_CLEANUP_ERROR: ()=>ROUTER_CLEANUP_ERROR,
32
+ createRouterCleanup: ()=>createRouterCleanup,
33
+ withRouterCleanup: ()=>withRouterCleanup
34
+ });
35
+ const lifecycle_js_namespaceObject = require("../../router/runtime/lifecycle.js");
36
+ const ROUTER_CLEANUP_ERROR = 'An error occurs during router runtime cleanup';
37
+ async function withRouterCleanup(runtimeContext, onError, callback) {
38
+ const routerCleanup = createRouterCleanup(runtimeContext, onError);
39
+ try {
40
+ return await callback(routerCleanup);
41
+ } finally{
42
+ if (!routerCleanup.deferred) await routerCleanup.run();
43
+ }
44
+ }
45
+ function createRouterCleanup(runtimeContext, onError) {
46
+ let deferred = false;
47
+ let finished = false;
48
+ const run = async ()=>{
49
+ if (finished) return;
50
+ finished = true;
51
+ try {
52
+ await (0, lifecycle_js_namespaceObject.getRouterRuntimeState)(runtimeContext)?.cleanup?.();
53
+ } catch (error) {
54
+ onError(error, ROUTER_CLEANUP_ERROR);
55
+ }
56
+ };
57
+ const deferUntilBodyDone = (response)=>{
58
+ const { body } = response;
59
+ if (!body || body.locked) return response;
60
+ deferred = true;
61
+ const reader = body.getReader();
62
+ const wrappedBody = new ReadableStream({
63
+ async pull (controller) {
64
+ let result;
65
+ try {
66
+ result = await reader.read();
67
+ } catch (error) {
68
+ controller.error(error);
69
+ await run();
70
+ return;
71
+ }
72
+ if (result.done) {
73
+ controller.close();
74
+ await run();
75
+ return;
76
+ }
77
+ controller.enqueue(result.value);
78
+ },
79
+ async cancel (reason) {
80
+ try {
81
+ await reader.cancel(reason);
82
+ } catch {}
83
+ await run();
84
+ }
85
+ });
86
+ return new Response(wrappedBody, {
87
+ status: response.status,
88
+ statusText: response.statusText,
89
+ headers: response.headers
90
+ });
91
+ };
92
+ return {
93
+ get deferred () {
94
+ return deferred;
95
+ },
96
+ run,
97
+ deferUntilBodyDone
98
+ };
99
+ }
100
+ exports.ROUTER_CLEANUP_ERROR = __webpack_exports__.ROUTER_CLEANUP_ERROR;
101
+ exports.createRouterCleanup = __webpack_exports__.createRouterCleanup;
102
+ exports.withRouterCleanup = __webpack_exports__.withRouterCleanup;
103
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
104
+ "ROUTER_CLEANUP_ERROR",
105
+ "createRouterCleanup",
106
+ "withRouterCleanup"
107
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
108
+ Object.defineProperty(exports, '__esModule', {
109
+ value: true
110
+ });