@bleedingdev/modern-js-runtime 3.2.0-ultramodern.11 → 3.2.0-ultramodern.111

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 (229) hide show
  1. package/dist/cjs/boundary-debugger/index.js +303 -0
  2. package/dist/cjs/cache/index.js +9 -5
  3. package/dist/cjs/cli/alias.js +9 -5
  4. package/dist/cjs/cli/code.js +9 -5
  5. package/dist/cjs/cli/constants.js +20 -16
  6. package/dist/cjs/cli/entry.js +9 -5
  7. package/dist/cjs/cli/index.js +9 -5
  8. package/dist/cjs/cli/ssr/index.js +14 -20
  9. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +9 -5
  10. package/dist/cjs/cli/ssr/mode.js +12 -8
  11. package/dist/cjs/cli/template.js +9 -5
  12. package/dist/cjs/cli/template.server.js +10 -5
  13. package/dist/cjs/common.js +14 -10
  14. package/dist/cjs/core/browser/hydrate.js +9 -5
  15. package/dist/cjs/core/browser/index.js +9 -5
  16. package/dist/cjs/core/browser/withCallback.js +9 -5
  17. package/dist/cjs/core/compat/hooks.js +14 -10
  18. package/dist/cjs/core/compat/index.js +9 -5
  19. package/dist/cjs/core/compat/requestContext.js +13 -9
  20. package/dist/cjs/core/config.js +12 -8
  21. package/dist/cjs/core/constants.js +15 -10
  22. package/dist/cjs/core/context/index.js +9 -5
  23. package/dist/cjs/core/context/monitors/default.js +12 -8
  24. package/dist/cjs/core/context/monitors/index.js +9 -5
  25. package/dist/cjs/core/context/monitors/index.server.js +9 -5
  26. package/dist/cjs/core/context/request/index.js +12 -8
  27. package/dist/cjs/core/context/request/index.server.js +9 -5
  28. package/dist/cjs/core/context/response/index.js +15 -11
  29. package/dist/cjs/core/context/response/index.server.js +9 -5
  30. package/dist/cjs/core/context/runtime.js +9 -5
  31. package/dist/cjs/core/context/serverPayload/index.js +13 -9
  32. package/dist/cjs/core/context/serverPayload/index.server.js +9 -5
  33. package/dist/cjs/core/index.js +9 -5
  34. package/dist/cjs/core/plugin/index.js +9 -5
  35. package/dist/cjs/core/react/index.js +9 -5
  36. package/dist/cjs/core/react/wrapper.js +18 -8
  37. package/dist/cjs/core/server/constants.js +15 -11
  38. package/dist/cjs/core/server/federatedCss.js +51 -0
  39. package/dist/cjs/core/server/helmet.js +17 -7
  40. package/dist/cjs/core/server/index.js +9 -5
  41. package/dist/cjs/core/server/react/index.js +9 -5
  42. package/dist/cjs/core/server/react/no-ssr-cache/index.js +9 -5
  43. package/dist/cjs/core/server/react/nossr/index.js +9 -5
  44. package/dist/cjs/core/server/requestHandler.js +9 -5
  45. package/dist/cjs/core/server/scriptOrder.js +63 -0
  46. package/dist/cjs/core/server/server.js +9 -5
  47. package/dist/cjs/core/server/shared.js +12 -8
  48. package/dist/cjs/core/server/stream/afterTemplate.js +22 -10
  49. package/dist/cjs/core/server/stream/beforeTemplate.js +22 -25
  50. package/dist/cjs/core/server/stream/beforeTemplate.worker.js +102 -0
  51. package/dist/cjs/core/server/stream/createReadableStream.js +16 -7
  52. package/dist/cjs/core/server/stream/createReadableStream.worker.js +13 -7
  53. package/dist/cjs/core/server/stream/deferredScript.js +9 -5
  54. package/dist/cjs/core/server/stream/index.js +9 -5
  55. package/dist/cjs/core/server/stream/shared.js +12 -6
  56. package/dist/cjs/core/server/stream/template.js +9 -5
  57. package/dist/cjs/core/server/string/index.js +25 -14
  58. package/dist/cjs/core/server/string/loadable.js +83 -15
  59. package/dist/cjs/core/server/string/ssrData.js +9 -5
  60. package/dist/cjs/core/server/tracer.js +13 -9
  61. package/dist/cjs/core/server/utils.js +9 -5
  62. package/dist/cjs/document/Body.js +9 -5
  63. package/dist/cjs/document/Comment.js +9 -5
  64. package/dist/cjs/document/DocumentContext.js +9 -5
  65. package/dist/cjs/document/DocumentStructureContext.js +9 -5
  66. package/dist/cjs/document/Head.js +9 -5
  67. package/dist/cjs/document/Html.js +9 -5
  68. package/dist/cjs/document/Links.js +9 -5
  69. package/dist/cjs/document/Root.js +9 -5
  70. package/dist/cjs/document/Script.js +9 -5
  71. package/dist/cjs/document/Scripts.js +9 -5
  72. package/dist/cjs/document/Style.js +9 -5
  73. package/dist/cjs/document/Title.js +9 -5
  74. package/dist/cjs/document/cli/index.js +12 -6
  75. package/dist/cjs/document/constants.js +9 -5
  76. package/dist/cjs/document/index.js +9 -5
  77. package/dist/cjs/exports/config-routes.js +12 -8
  78. package/dist/cjs/exports/head.js +209 -10
  79. package/dist/cjs/exports/loadable.js +51 -12
  80. package/dist/cjs/exports/tanstack-router.js +320 -59
  81. package/dist/cjs/index.js +9 -5
  82. package/dist/cjs/internal.js +9 -5
  83. package/dist/cjs/react-server.js +9 -5
  84. package/dist/cjs/router/cli/code/getClientRoutes/getRoutes.js +9 -5
  85. package/dist/cjs/router/cli/code/getClientRoutes/index.js +9 -5
  86. package/dist/cjs/router/cli/code/getClientRoutes/utils.js +9 -5
  87. package/dist/cjs/router/cli/code/index.js +9 -5
  88. package/dist/cjs/router/cli/code/inspect.js +9 -5
  89. package/dist/cjs/router/cli/code/makeLegalIdentifier.js +12 -8
  90. package/dist/cjs/router/cli/code/nestedRoutes.js +9 -5
  91. package/dist/cjs/router/cli/code/tanstackTypes.js +125 -56
  92. package/dist/cjs/router/cli/code/templates.js +24 -14
  93. package/dist/cjs/router/cli/code/utils.js +9 -5
  94. package/dist/cjs/router/cli/config-routes/converter.js +9 -5
  95. package/dist/cjs/router/cli/config-routes/parseRouteConfig.js +9 -5
  96. package/dist/cjs/router/cli/constants.js +23 -19
  97. package/dist/cjs/router/cli/entry.js +9 -5
  98. package/dist/cjs/router/cli/handler.js +9 -5
  99. package/dist/cjs/router/cli/index.js +9 -5
  100. package/dist/cjs/router/index.js +9 -5
  101. package/dist/cjs/router/internal.js +12 -8
  102. package/dist/cjs/router/runtime/CSSLinks.js +9 -5
  103. package/dist/cjs/router/runtime/DefaultNotFound.js +9 -5
  104. package/dist/cjs/router/runtime/DeferredDataScripts.js +12 -8
  105. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +9 -5
  106. package/dist/cjs/router/runtime/PrefetchLink.js +162 -26
  107. package/dist/cjs/router/runtime/constants.js +9 -5
  108. package/dist/cjs/router/runtime/hooks.js +9 -5
  109. package/dist/cjs/router/runtime/index.js +15 -10
  110. package/dist/cjs/router/runtime/internal.js +9 -5
  111. package/dist/cjs/router/runtime/lifecycle.js +18 -14
  112. package/dist/cjs/router/runtime/plugin.js +9 -5
  113. package/dist/cjs/router/runtime/plugin.node.js +9 -5
  114. package/dist/cjs/router/runtime/routerHelper.js +9 -5
  115. package/dist/cjs/router/runtime/rsc-router.js +9 -5
  116. package/dist/cjs/router/runtime/rsc.js +9 -5
  117. package/dist/cjs/router/runtime/server.js +9 -5
  118. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +12 -8
  119. package/dist/cjs/router/runtime/tanstack/dataMutation.js +9 -5
  120. package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +48 -0
  121. package/dist/cjs/router/runtime/tanstack/outlet.js +58 -0
  122. package/dist/cjs/router/runtime/tanstack/plugin.js +199 -96
  123. package/dist/cjs/router/runtime/tanstack/plugin.node.js +13 -19
  124. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +10 -6
  125. package/dist/cjs/router/runtime/tanstack/routeTree.js +73 -17
  126. package/dist/cjs/router/runtime/tanstack/rsc/ClientSlot.js +9 -5
  127. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +9 -5
  128. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +14 -9
  129. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +9 -5
  130. package/dist/cjs/router/runtime/tanstack/rsc/SlotContext.js +9 -5
  131. package/dist/cjs/router/runtime/tanstack/rsc/client.js +9 -5
  132. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +9 -5
  133. package/dist/cjs/router/runtime/tanstack/rsc/index.js +9 -5
  134. package/dist/cjs/router/runtime/tanstack/rsc/server.js +9 -5
  135. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +9 -5
  136. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +20 -15
  137. package/dist/cjs/router/runtime/utils.js +9 -5
  138. package/dist/cjs/router/runtime/withRouter.js +9 -5
  139. package/dist/cjs/rsc/client.js +12 -8
  140. package/dist/cjs/rsc/server.js +9 -5
  141. package/dist/cjs/rsc/server.worker.js +62 -0
  142. package/dist/cjs/ssr/index.node.js +13 -9
  143. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +9 -5
  144. package/dist/cjs/ssr/serverRender/renderToString/entry.js +18 -13
  145. package/dist/cjs/ssr/serverRender/types.js +9 -5
  146. package/dist/esm/boundary-debugger/index.mjs +263 -0
  147. package/dist/esm/cli/ssr/index.mjs +5 -15
  148. package/dist/esm/cli/template.server.mjs +1 -0
  149. package/dist/esm/core/react/wrapper.mjs +9 -3
  150. package/dist/esm/core/server/federatedCss.mjs +13 -0
  151. package/dist/esm/core/server/helmet.mjs +5 -2
  152. package/dist/esm/core/server/scriptOrder.mjs +25 -0
  153. package/dist/esm/core/server/stream/afterTemplate.mjs +14 -6
  154. package/dist/esm/core/server/stream/beforeTemplate.mjs +14 -11
  155. package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +64 -0
  156. package/dist/esm/core/server/stream/createReadableStream.mjs +7 -2
  157. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +4 -2
  158. package/dist/esm/core/server/stream/shared.mjs +3 -1
  159. package/dist/esm/core/server/string/index.mjs +17 -9
  160. package/dist/esm/core/server/string/loadable.mjs +70 -9
  161. package/dist/esm/document/cli/index.mjs +3 -1
  162. package/dist/esm/exports/head.mjs +193 -4
  163. package/dist/esm/exports/loadable.mjs +26 -3
  164. package/dist/esm/exports/tanstack-router.mjs +2 -1
  165. package/dist/esm/router/cli/code/tanstackTypes.mjs +116 -51
  166. package/dist/esm/router/cli/code/templates.mjs +15 -9
  167. package/dist/esm/router/runtime/PrefetchLink.mjs +153 -21
  168. package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +10 -0
  169. package/dist/esm/router/runtime/tanstack/outlet.mjs +17 -0
  170. package/dist/esm/router/runtime/tanstack/plugin.mjs +193 -94
  171. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +5 -15
  172. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +1 -1
  173. package/dist/esm/router/runtime/tanstack/routeTree.mjs +65 -13
  174. package/dist/esm/rsc/server.worker.mjs +1 -0
  175. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +9 -6
  176. package/dist/esm-node/boundary-debugger/index.mjs +264 -0
  177. package/dist/esm-node/cli/ssr/index.mjs +5 -15
  178. package/dist/esm-node/cli/template.server.mjs +1 -0
  179. package/dist/esm-node/core/react/wrapper.mjs +9 -3
  180. package/dist/esm-node/core/server/federatedCss.mjs +14 -0
  181. package/dist/esm-node/core/server/helmet.mjs +5 -2
  182. package/dist/esm-node/core/server/scriptOrder.mjs +26 -0
  183. package/dist/esm-node/core/server/stream/afterTemplate.mjs +14 -6
  184. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +14 -11
  185. package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +65 -0
  186. package/dist/esm-node/core/server/stream/createReadableStream.mjs +7 -2
  187. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +4 -2
  188. package/dist/esm-node/core/server/stream/shared.mjs +3 -1
  189. package/dist/esm-node/core/server/string/index.mjs +17 -9
  190. package/dist/esm-node/core/server/string/loadable.mjs +70 -9
  191. package/dist/esm-node/document/cli/index.mjs +3 -1
  192. package/dist/esm-node/exports/head.mjs +193 -4
  193. package/dist/esm-node/exports/loadable.mjs +26 -3
  194. package/dist/esm-node/exports/tanstack-router.mjs +2 -1
  195. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +116 -51
  196. package/dist/esm-node/router/cli/code/templates.mjs +15 -9
  197. package/dist/esm-node/router/runtime/PrefetchLink.mjs +153 -21
  198. package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +11 -0
  199. package/dist/esm-node/router/runtime/tanstack/outlet.mjs +18 -0
  200. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +193 -94
  201. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +5 -15
  202. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +1 -1
  203. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +65 -13
  204. package/dist/esm-node/rsc/server.worker.mjs +2 -0
  205. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +9 -6
  206. package/dist/types/boundary-debugger/index.d.ts +28 -0
  207. package/dist/types/cli/entry.d.ts +2 -2
  208. package/dist/types/core/context/response/index.server.d.ts +4 -1
  209. package/dist/types/core/context/runtime.d.ts +4 -0
  210. package/dist/types/core/plugin/index.d.ts +1 -1
  211. package/dist/types/core/server/federatedCss.d.ts +5 -0
  212. package/dist/types/core/server/helmet.d.ts +5 -3
  213. package/dist/types/core/server/scriptOrder.d.ts +1 -0
  214. package/dist/types/core/server/stream/beforeTemplate.d.ts +1 -0
  215. package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +10 -0
  216. package/dist/types/core/server/stream/shared.d.ts +8 -0
  217. package/dist/types/core/server/string/loadable.d.ts +11 -0
  218. package/dist/types/core/server/utils.d.ts +11 -1
  219. package/dist/types/document/constants.d.ts +3 -1
  220. package/dist/types/exports/head.d.ts +10 -3
  221. package/dist/types/exports/loadable.d.ts +8 -1
  222. package/dist/types/exports/tanstack-router.d.ts +3 -1
  223. package/dist/types/router/cli/code/utils.d.ts +1 -1
  224. package/dist/types/router/cli/entry.d.ts +1 -1
  225. package/dist/types/router/runtime/PrefetchLink.d.ts +5 -1
  226. package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +2 -0
  227. package/dist/types/router/runtime/tanstack/outlet.d.ts +2 -0
  228. package/dist/types/rsc/server.worker.d.ts +1 -0
  229. package/package.json +31 -25
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,10 +27,10 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- default: ()=>__rspack_default_export
28
- });
29
30
  const __rspack_default_export = ()=>null;
31
+ __webpack_require__.d(__webpack_exports__, {}, {
32
+ default: __rspack_default_export
33
+ });
30
34
  exports["default"] = __webpack_exports__["default"];
31
35
  for(var __rspack_i in __webpack_exports__)if (-1 === [
32
36
  "default"
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -11,11 +11,15 @@ var __webpack_require__ = {};
11
11
  };
12
12
  })();
13
13
  (()=>{
14
- __webpack_require__.d = (exports1, definition)=>{
15
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
- enumerable: true,
17
- get: definition[key]
18
- });
14
+ __webpack_require__.d = (exports1, getters, values)=>{
15
+ var define = (defs, kind)=>{
16
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
17
+ enumerable: true,
18
+ [kind]: defs[key]
19
+ });
20
+ };
21
+ define(getters, "get");
22
+ define(values, "value");
19
23
  };
20
24
  })();
21
25
  (()=>{
@@ -49,45 +53,142 @@ function composeEventHandlers(theirHandler, ourHandler) {
49
53
  };
50
54
  }
51
55
  const ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
52
- function usePrefetchBehavior(prefetch, theirElementProps) {
53
- const [maybePrefetch, setMaybePrefetch] = external_react_default().useState(false);
56
+ const DEFAULT_PREFETCH_BEHAVIOR = 'render';
57
+ const DEFAULT_PRELOAD_BEHAVIOR = 'viewport';
58
+ const INTENT_DELAY = 100;
59
+ const VIEWPORT_ROOT_MARGIN = '200px';
60
+ const MAX_CONCURRENT_WARMUPS = 4;
61
+ const WARMUP_TTL = 30000;
62
+ const SLOW_EFFECTIVE_TYPES = new Set([
63
+ 'slow-2g',
64
+ '2g'
65
+ ]);
66
+ const warmupCache = new Map();
67
+ const warmupQueue = [];
68
+ let activeWarmups = 0;
69
+ const getWarmupTimestamp = ()=>performance.now();
70
+ const getConnection = ()=>{
71
+ const nav = globalThis.navigator;
72
+ return nav?.connection || nav?.mozConnection || nav?.webkitConnection;
73
+ };
74
+ const shouldWarmupOnCurrentNetwork = ()=>{
75
+ const connection = getConnection();
76
+ if (connection?.saveData) return false;
77
+ if ('string' == typeof connection?.effectiveType && SLOW_EFFECTIVE_TYPES.has(connection.effectiveType)) return false;
78
+ return true;
79
+ };
80
+ const pruneWarmupCache = (now = getWarmupTimestamp())=>{
81
+ for (const [key, timestamp] of warmupCache)if (now - timestamp > WARMUP_TTL) warmupCache.delete(key);
82
+ };
83
+ const runNextWarmup = ()=>{
84
+ while(activeWarmups < MAX_CONCURRENT_WARMUPS && warmupQueue.length > 0){
85
+ const task = warmupQueue.shift();
86
+ if (task.cancelled) continue;
87
+ activeWarmups += 1;
88
+ task.run().catch((error)=>{
89
+ console.error(error);
90
+ warmupCache.delete(task.key);
91
+ }).finally(()=>{
92
+ activeWarmups -= 1;
93
+ runNextWarmup();
94
+ });
95
+ }
96
+ };
97
+ const scheduleWarmup = (key, run)=>{
98
+ if (!shouldWarmupOnCurrentNetwork()) return ()=>{};
99
+ pruneWarmupCache();
100
+ if (warmupCache.has(key)) return ()=>{};
101
+ warmupCache.set(key, getWarmupTimestamp());
102
+ const task = {
103
+ key,
104
+ run,
105
+ cancelled: false
106
+ };
107
+ warmupQueue.push(task);
108
+ runNextWarmup();
109
+ return ()=>{
110
+ task.cancelled = true;
111
+ };
112
+ };
113
+ const setRef = (ref, value)=>{
114
+ if (!ref) return;
115
+ if ('function' == typeof ref) return void ref(value);
116
+ try {
117
+ ref.current = value;
118
+ } catch {}
119
+ };
120
+ const isDataWarmupEnabled = (route)=>{
121
+ const handle = route.handle;
122
+ return handle?.navigationWarmup?.data === true;
123
+ };
124
+ function usePrefetchBehavior(prefetch, preload, theirElementProps) {
125
+ const [maybeWarmup, setMaybeWarmup] = external_react_default().useState(false);
54
126
  const [shouldPrefetch, setShouldPrefetch] = external_react_default().useState(false);
127
+ const [shouldPreload, setShouldPreload] = external_react_default().useState(false);
128
+ const [viewportElement, setViewportElement] = external_react_default().useState(null);
55
129
  const { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;
56
130
  external_react_default().useEffect(()=>{
57
131
  if ('render' === prefetch) setShouldPrefetch(true);
132
+ if ('render' === preload) setShouldPreload(true);
58
133
  }, [
59
- prefetch
134
+ prefetch,
135
+ preload
60
136
  ]);
61
137
  const setIntent = ()=>{
62
- if ('intent' === prefetch) setMaybePrefetch(true);
138
+ if ('intent' === prefetch || 'intent' === preload) setMaybeWarmup(true);
63
139
  };
64
140
  const cancelIntent = ()=>{
65
- if ('intent' === prefetch) {
66
- setMaybePrefetch(false);
141
+ if ('intent' === prefetch || 'intent' === preload) {
142
+ setMaybeWarmup(false);
67
143
  setShouldPrefetch(false);
144
+ setShouldPreload(false);
68
145
  }
69
146
  };
70
147
  external_react_default().useEffect(()=>{
71
- if (maybePrefetch) {
148
+ if (maybeWarmup) {
72
149
  const id = setTimeout(()=>{
73
- setShouldPrefetch(true);
74
- }, 100);
150
+ if ('intent' === prefetch) setShouldPrefetch(true);
151
+ if ('intent' === preload) setShouldPreload(true);
152
+ }, INTENT_DELAY);
75
153
  return ()=>{
76
154
  clearTimeout(id);
77
155
  };
78
156
  }
79
157
  }, [
80
- maybePrefetch
158
+ maybeWarmup,
159
+ prefetch,
160
+ preload
161
+ ]);
162
+ external_react_default().useEffect(()=>{
163
+ if (!viewportElement || 'viewport' !== prefetch && 'viewport' !== preload || "u" < typeof IntersectionObserver) return;
164
+ const observer = new IntersectionObserver((entries)=>{
165
+ if (!entries.some((entry)=>entry.isIntersecting)) return;
166
+ if ('viewport' === prefetch) setShouldPrefetch(true);
167
+ if ('viewport' === preload) setShouldPreload(true);
168
+ observer.disconnect();
169
+ }, {
170
+ rootMargin: VIEWPORT_ROOT_MARGIN
171
+ });
172
+ observer.observe(viewportElement);
173
+ return ()=>{
174
+ observer.disconnect();
175
+ };
176
+ }, [
177
+ prefetch,
178
+ preload,
179
+ viewportElement
81
180
  ]);
82
181
  return [
83
182
  shouldPrefetch,
183
+ shouldPreload,
84
184
  {
85
185
  onFocus: composeEventHandlers(onFocus, setIntent),
86
186
  onBlur: composeEventHandlers(onBlur, cancelIntent),
87
187
  onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),
88
188
  onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),
89
189
  onTouchStart: composeEventHandlers(onTouchStart, setIntent)
90
- }
190
+ },
191
+ setViewportElement
91
192
  ];
92
193
  }
93
194
  async function loadRouteModule(route, routeAssets) {
@@ -122,14 +223,34 @@ const getDataHref = (route, pathname, basename)=>{
122
223
  const url = getRequestUrl(path, id);
123
224
  return createDataHref(url.toString());
124
225
  };
125
- const PrefetchPageLinks = ({ path })=>{
226
+ const PrefetchPageLinks = ({ path, includeData })=>{
126
227
  const { pathname } = path;
127
228
  const context = (0, external_react_namespaceObject.useContext)(index_js_namespaceObject.InternalRuntimeContext);
128
229
  const { routeManifest, routes } = context;
129
230
  const { routeAssets } = routeManifest || {};
130
- const matches = Array.isArray(routes) ? (0, router_namespaceObject.matchRoutes)(routes, pathname) : [];
131
- if (Array.isArray(matches) && routeAssets) matches?.forEach((match)=>loadRouteModule(match.route, routeAssets));
132
- if (!window._SSR_DATA) return null;
231
+ const allowNetworkWarmup = shouldWarmupOnCurrentNetwork();
232
+ const matches = (0, external_react_namespaceObject.useMemo)(()=>Array.isArray(routes) ? (0, router_namespaceObject.matchRoutes)(routes, pathname) : [], [
233
+ pathname,
234
+ routes
235
+ ]);
236
+ external_react_default().useEffect(()=>{
237
+ if (!allowNetworkWarmup || !Array.isArray(matches) || !routeAssets || !__webpack_chunk_load__) return;
238
+ const cancellations = matches.map((match)=>{
239
+ const routeId = match.route.id;
240
+ const routeAsset = routeId ? routeAssets[routeId] : void 0;
241
+ const chunkIds = routeAsset?.chunkIds;
242
+ if (!routeId || !Array.isArray(chunkIds) || 0 === chunkIds.length) return ()=>{};
243
+ return scheduleWarmup(`route-module:${routeId}:${chunkIds.join(',')}`, ()=>loadRouteModule(match.route, routeAssets));
244
+ });
245
+ return ()=>{
246
+ cancellations.forEach((cancel)=>cancel());
247
+ };
248
+ }, [
249
+ allowNetworkWarmup,
250
+ matches,
251
+ routeAssets
252
+ ]);
253
+ if (!allowNetworkWarmup || !includeData || !window._SSR_DATA) return null;
133
254
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PrefetchDataLinks, {
134
255
  matches: matches,
135
256
  path: path,
@@ -141,7 +262,7 @@ const PrefetchDataLinks = ({ matches, path, routeManifest })=>{
141
262
  const currentMatches = (0, router_namespaceObject.useMatches)();
142
263
  const basename = (0, router_namespaceObject.useHref)('/');
143
264
  const dataHrefs = (0, external_react_namespaceObject.useMemo)(()=>matches?.filter((match, index)=>{
144
- if (!match.route.loader || 'function' != typeof match.route.loader || 0 === match.route.loader.length) return false;
265
+ if (!isDataWarmupEnabled(match.route) || !match.route.loader || 'function' != typeof match.route.loader || 0 === match.route.loader.length) return false;
145
266
  if (match.route.shouldRevalidate) {
146
267
  const currentUrl = new URL(location.pathname + location.search + location.hash, window.origin);
147
268
  const nextUrl = new URL(pathname + search + hash, window.origin);
@@ -168,20 +289,35 @@ const PrefetchDataLinks = ({ matches, path, routeManifest })=>{
168
289
  children: dataHrefs
169
290
  });
170
291
  };
171
- const createPrefetchLink = (Link)=>/*#__PURE__*/ external_react_default().forwardRef(({ to, prefetch = 'none', ...props }, forwardedRef)=>{
292
+ const normalizePreloadBehavior = (preload, prefetch)=>{
293
+ if (false === preload || 'none' === preload) return 'none';
294
+ if (void 0 !== preload) return preload;
295
+ if ('none' === prefetch) return 'none';
296
+ return DEFAULT_PRELOAD_BEHAVIOR;
297
+ };
298
+ const createPrefetchLink = (Link)=>/*#__PURE__*/ external_react_default().forwardRef(({ to, prefetch = DEFAULT_PREFETCH_BEHAVIOR, preload, ...props }, forwardedRef)=>{
172
299
  const isAbsolute = 'string' == typeof to && ABSOLUTE_URL_REGEX.test(to);
173
- const [shouldPrefetch, prefetchHandlers] = usePrefetchBehavior(prefetch, props);
300
+ const resolvedPreload = normalizePreloadBehavior(preload, prefetch);
301
+ const [shouldPrefetch, shouldPreload, prefetchHandlers, setViewportElement] = usePrefetchBehavior(prefetch, resolvedPreload, props);
302
+ const setAnchorRef = external_react_default().useCallback((element)=>{
303
+ setViewportElement(element);
304
+ setRef(forwardedRef, element);
305
+ }, [
306
+ forwardedRef,
307
+ setViewportElement
308
+ ]);
174
309
  const resolvedPath = (0, router_namespaceObject.useResolvedPath)(to);
175
310
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
176
311
  children: [
177
312
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Link, {
178
- ref: forwardedRef,
313
+ ref: setAnchorRef,
179
314
  to: to,
180
315
  ...props,
181
316
  ...prefetchHandlers
182
317
  }),
183
- shouldPrefetch && __webpack_chunk_load__ && !isAbsolute ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PrefetchPageLinks, {
184
- path: resolvedPath
318
+ (shouldPrefetch || shouldPreload) && !isAbsolute ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(PrefetchPageLinks, {
319
+ path: resolvedPath,
320
+ includeData: shouldPrefetch
185
321
  }) : null
186
322
  ]
187
323
  });
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -30,11 +30,15 @@ function __webpack_require__(moduleId) {
30
30
  };
31
31
  })();
32
32
  (()=>{
33
- __webpack_require__.d = (exports1, definition)=>{
34
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
35
- enumerable: true,
36
- get: definition[key]
37
- });
33
+ __webpack_require__.d = (exports1, getters, values)=>{
34
+ var define = (defs, kind)=>{
35
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
36
+ enumerable: true,
37
+ [kind]: defs[key]
38
+ });
39
+ };
40
+ define(getters, "get");
41
+ define(values, "value");
38
42
  };
39
43
  })();
40
44
  (()=>{
@@ -53,11 +57,6 @@ function __webpack_require__(moduleId) {
53
57
  var __webpack_exports__ = {};
54
58
  (()=>{
55
59
  __webpack_require__.r(__webpack_exports__);
56
- __webpack_require__.d(__webpack_exports__, {
57
- Link: ()=>_PrefetchLink__rspack_import_1.Link,
58
- NavLink: ()=>_PrefetchLink__rspack_import_1.NavLink,
59
- useRouteLoaderData: ()=>useRouteLoaderData
60
- });
61
60
  var _modern_js_runtime_utils_router__rspack_import_0 = __webpack_require__("@modern-js/runtime-utils/router");
62
61
  var __rspack_reexport = {};
63
62
  for(const __rspack_import_key in _modern_js_runtime_utils_router__rspack_import_0)if ([
@@ -81,6 +80,12 @@ var __webpack_exports__ = {};
81
80
  const realRouteId = routeId.replace(/\[(.*?)\]/g, '($1)');
82
81
  return (0, _modern_js_runtime_utils_router__rspack_import_0.useRouteLoaderData)(realRouteId);
83
82
  };
83
+ __webpack_require__.d(__webpack_exports__, {
84
+ Link: ()=>_PrefetchLink__rspack_import_1.Link,
85
+ NavLink: ()=>_PrefetchLink__rspack_import_1.NavLink
86
+ }, {
87
+ useRouteLoaderData: useRouteLoaderData
88
+ });
84
89
  })();
85
90
  exports.Link = __webpack_exports__.Link;
86
91
  exports.NavLink = __webpack_exports__.NavLink;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -23,15 +27,6 @@ var __webpack_require__ = {};
23
27
  })();
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- applyRouterRuntimeState: ()=>applyRouterRuntimeState,
28
- applyRouterServerPrepareResult: ()=>applyRouterServerPrepareResult,
29
- cleanupRouterRuntimeState: ()=>cleanupRouterRuntimeState,
30
- createRouterRuntimeState: ()=>createRouterRuntimeState,
31
- createRouterServerSnapshot: ()=>createRouterServerSnapshot,
32
- getRouterHydrationScripts: ()=>getRouterHydrationScripts,
33
- getRouterMatchedRouteIds: ()=>getRouterMatchedRouteIds
34
- });
35
30
  function toHydrationScripts(state) {
36
31
  if (state.hydrationScripts?.length) return state.hydrationScripts;
37
32
  return state.hydrationScript ? [
@@ -127,6 +122,15 @@ async function cleanupRouterRuntimeState(runtimeContext) {
127
122
  await runtimeContext.routerRuntime?.cleanup?.();
128
123
  } catch {}
129
124
  }
125
+ __webpack_require__.d(__webpack_exports__, {
126
+ applyRouterRuntimeState: ()=>applyRouterRuntimeState,
127
+ applyRouterServerPrepareResult: ()=>applyRouterServerPrepareResult,
128
+ cleanupRouterRuntimeState: ()=>cleanupRouterRuntimeState,
129
+ createRouterRuntimeState: ()=>createRouterRuntimeState,
130
+ createRouterServerSnapshot: ()=>createRouterServerSnapshot,
131
+ getRouterHydrationScripts: ()=>getRouterHydrationScripts,
132
+ getRouterMatchedRouteIds: ()=>getRouterMatchedRouteIds
133
+ });
130
134
  exports.applyRouterRuntimeState = __webpack_exports__.applyRouterRuntimeState;
131
135
  exports.applyRouterServerPrepareResult = __webpack_exports__.applyRouterServerPrepareResult;
132
136
  exports.cleanupRouterRuntimeState = __webpack_exports__.cleanupRouterRuntimeState;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
18
22
  };
19
23
  })();
20
24
  (()=>{
@@ -24,11 +24,15 @@ function __webpack_require__(moduleId) {
24
24
  };
25
25
  })();
26
26
  (()=>{
27
- __webpack_require__.d = (exports1, definition)=>{
28
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
29
- enumerable: true,
30
- get: definition[key]
31
- });
27
+ __webpack_require__.d = (exports1, getters, values)=>{
28
+ var define = (defs, kind)=>{
29
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
30
+ enumerable: true,
31
+ [kind]: defs[key]
32
+ });
33
+ };
34
+ define(getters, "get");
35
+ define(values, "value");
32
36
  };
33
37
  })();
34
38
  (()=>{