@modern-js/runtime 2.69.7 → 3.0.0-alpha.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 (677) hide show
  1. package/dist/cjs/cache/index.js +55 -19
  2. package/dist/cjs/cli/alias.js +63 -57
  3. package/dist/cjs/cli/code.js +155 -163
  4. package/dist/cjs/cli/constants.js +65 -49
  5. package/dist/cjs/cli/entry.js +50 -41
  6. package/dist/cjs/cli/index.js +143 -178
  7. package/dist/cjs/cli/ssr/index.js +164 -142
  8. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +94 -102
  9. package/dist/cjs/cli/ssr/mode.js +48 -0
  10. package/dist/cjs/cli/template.js +110 -123
  11. package/dist/cjs/cli/template.server.js +55 -47
  12. package/dist/cjs/common.js +41 -31
  13. package/dist/cjs/core/browser/hydrate.js +82 -84
  14. package/dist/cjs/core/browser/index.js +133 -147
  15. package/dist/cjs/core/browser/withCallback.js +43 -37
  16. package/dist/cjs/core/compat/hooks.js +65 -70
  17. package/dist/cjs/core/compat/index.js +42 -38
  18. package/dist/cjs/core/compat/requestContext.js +53 -43
  19. package/dist/cjs/core/config.js +33 -38
  20. package/dist/cjs/core/constants.js +45 -36
  21. package/dist/cjs/core/context/index.js +100 -82
  22. package/dist/cjs/core/context/monitors/default.js +39 -33
  23. package/dist/cjs/core/context/monitors/index.js +34 -28
  24. package/dist/cjs/core/context/monitors/index.server.js +37 -29
  25. package/dist/cjs/core/context/request/index.js +33 -27
  26. package/dist/cjs/core/context/request/index.server.js +36 -28
  27. package/dist/cjs/core/context/response/index.js +46 -39
  28. package/dist/cjs/core/context/response/index.server.js +64 -55
  29. package/dist/cjs/core/context/runtime.js +58 -38
  30. package/dist/cjs/core/context/serverPayload/index.js +37 -31
  31. package/dist/cjs/core/context/serverPayload/index.server.js +42 -35
  32. package/dist/cjs/core/index.js +40 -41
  33. package/dist/cjs/core/plugin/index.js +55 -46
  34. package/dist/cjs/core/plugin/types.js +17 -15
  35. package/dist/cjs/core/react/index.js +45 -37
  36. package/dist/cjs/core/react/wrapper.js +49 -39
  37. package/dist/cjs/core/server/constants.js +45 -34
  38. package/dist/cjs/core/server/helmet.js +64 -63
  39. package/dist/cjs/core/server/index.js +47 -37
  40. package/dist/cjs/core/server/react/index.js +37 -31
  41. package/dist/cjs/core/server/react/no-ssr-cache/index.js +40 -33
  42. package/dist/cjs/core/server/react/nossr/index.js +50 -43
  43. package/dist/cjs/core/server/requestHandler.js +193 -211
  44. package/dist/cjs/core/server/server.js +41 -31
  45. package/dist/cjs/core/server/shared.js +33 -25
  46. package/dist/cjs/core/server/stream/afterTemplate.js +92 -92
  47. package/dist/cjs/core/server/stream/beforeTemplate.js +98 -110
  48. package/dist/cjs/core/server/stream/createReadableStream.js +164 -149
  49. package/dist/cjs/core/server/stream/createReadableStream.worker.js +145 -160
  50. package/dist/cjs/core/server/stream/deferredScript.js +92 -84
  51. package/dist/cjs/core/server/stream/index.js +35 -37
  52. package/dist/cjs/core/server/stream/shared.js +107 -102
  53. package/dist/cjs/core/server/stream/template.js +43 -35
  54. package/dist/cjs/core/server/string/index.js +131 -132
  55. package/dist/cjs/core/server/string/loadable.js +131 -173
  56. package/dist/cjs/core/server/string/ssrData.js +129 -89
  57. package/dist/cjs/core/server/string/types.js +17 -15
  58. package/dist/cjs/core/server/tracer.js +49 -42
  59. package/dist/cjs/core/server/utils.js +70 -68
  60. package/dist/cjs/core/types.js +17 -15
  61. package/dist/cjs/document/Body.js +49 -41
  62. package/dist/cjs/document/Comment.js +44 -35
  63. package/dist/cjs/document/DocumentContext.js +47 -39
  64. package/dist/cjs/document/DocumentStructureContext.js +50 -42
  65. package/dist/cjs/document/Head.js +59 -50
  66. package/dist/cjs/document/Html.js +96 -95
  67. package/dist/cjs/document/Links.js +38 -29
  68. package/dist/cjs/document/Root.js +59 -53
  69. package/dist/cjs/document/Script.js +50 -42
  70. package/dist/cjs/document/Scripts.js +38 -29
  71. package/dist/cjs/document/Style.js +45 -36
  72. package/dist/cjs/document/Title.js +37 -29
  73. package/dist/cjs/document/cli/index.js +361 -210
  74. package/dist/cjs/document/constants.js +125 -95
  75. package/dist/cjs/document/index.js +132 -41
  76. package/dist/cjs/exports/config-routes.js +38 -0
  77. package/dist/cjs/exports/head.js +63 -38
  78. package/dist/cjs/exports/loadable.js +63 -38
  79. package/dist/cjs/index.js +61 -53
  80. package/dist/cjs/internal.js +36 -0
  81. package/dist/cjs/react-server.js +47 -35
  82. package/dist/cjs/router/cli/code/getClientRoutes/getRoutes.js +147 -185
  83. package/dist/cjs/router/cli/code/getClientRoutes/index.js +33 -28
  84. package/dist/cjs/router/cli/code/getClientRoutes/utils.js +57 -54
  85. package/dist/cjs/router/cli/code/index.js +173 -150
  86. package/dist/cjs/router/cli/code/inspect.js +139 -0
  87. package/dist/cjs/router/cli/code/makeLegalIdentifier.js +38 -32
  88. package/dist/cjs/router/cli/code/nestedRoutes.js +225 -286
  89. package/dist/cjs/router/cli/code/templates.js +334 -405
  90. package/dist/cjs/router/cli/code/utils.js +131 -132
  91. package/dist/cjs/router/cli/config-routes/converter.js +129 -0
  92. package/dist/cjs/router/cli/config-routes/parseRouteConfig.js +155 -0
  93. package/dist/cjs/router/cli/constants.js +92 -82
  94. package/dist/cjs/router/cli/entry.js +67 -86
  95. package/dist/cjs/router/cli/handler.js +109 -96
  96. package/dist/cjs/router/cli/index.js +131 -142
  97. package/dist/cjs/router/index.js +55 -19
  98. package/dist/cjs/router/internal.js +61 -27
  99. package/dist/cjs/router/runtime/DefaultNotFound.js +44 -35
  100. package/dist/cjs/router/runtime/DeferredDataScripts.js +34 -24
  101. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +148 -146
  102. package/dist/cjs/router/runtime/PrefetchLink.js +190 -210
  103. package/dist/cjs/router/runtime/constants.js +61 -46
  104. package/dist/cjs/router/runtime/hooks.js +38 -29
  105. package/dist/cjs/router/runtime/index.js +92 -46
  106. package/dist/cjs/router/runtime/internal.js +44 -33
  107. package/dist/cjs/router/runtime/plugin.js +206 -225
  108. package/dist/cjs/router/runtime/plugin.node.js +177 -203
  109. package/dist/cjs/router/runtime/routerHelper.js +55 -0
  110. package/dist/cjs/router/runtime/rsc-router.js +272 -305
  111. package/dist/cjs/router/runtime/rsc.js +58 -0
  112. package/dist/cjs/router/runtime/server.js +55 -19
  113. package/dist/cjs/router/runtime/types.js +17 -15
  114. package/dist/cjs/router/runtime/utils.js +202 -228
  115. package/dist/cjs/router/runtime/withRouter.js +45 -39
  116. package/dist/cjs/rsc/client.js +65 -30
  117. package/dist/cjs/rsc/server.js +55 -19
  118. package/dist/esm/cli/alias.mjs +24 -0
  119. package/dist/esm/cli/code.mjs +119 -0
  120. package/dist/esm/cli/constants.mjs +10 -0
  121. package/dist/esm/cli/entry.mjs +6 -0
  122. package/dist/esm/cli/index.mjs +89 -0
  123. package/dist/esm/cli/ssr/index.mjs +125 -0
  124. package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +75 -0
  125. package/dist/esm/cli/ssr/mode.mjs +14 -0
  126. package/dist/{esm-node/cli/template.js → esm/cli/template.mjs} +45 -82
  127. package/dist/esm/cli/template.server.mjs +147 -0
  128. package/dist/esm/common.mjs +4 -0
  129. package/dist/esm/core/browser/hydrate.mjs +53 -0
  130. package/dist/esm/core/browser/index.mjs +96 -0
  131. package/dist/esm/core/browser/withCallback.mjs +13 -0
  132. package/dist/esm/core/compat/hooks.mjs +35 -0
  133. package/dist/esm/core/compat/index.mjs +12 -0
  134. package/dist/esm/core/compat/requestContext.mjs +21 -0
  135. package/dist/esm/core/config.mjs +2 -0
  136. package/dist/esm/core/constants.mjs +8 -0
  137. package/dist/esm/core/context/index.mjs +45 -0
  138. package/dist/esm/core/context/monitors/default.mjs +10 -0
  139. package/dist/esm/core/context/monitors/index.mjs +3 -0
  140. package/dist/esm/core/context/monitors/index.server.mjs +7 -0
  141. package/dist/esm/core/context/request/index.mjs +2 -0
  142. package/dist/esm/core/context/request/index.server.mjs +6 -0
  143. package/dist/esm/core/context/response/index.mjs +7 -0
  144. package/dist/esm/core/context/response/index.server.mjs +28 -0
  145. package/dist/esm/core/context/runtime.mjs +15 -0
  146. package/dist/esm/core/context/serverPayload/index.mjs +3 -0
  147. package/dist/esm/core/context/serverPayload/index.server.mjs +10 -0
  148. package/dist/esm/core/index.mjs +3 -0
  149. package/dist/esm/core/plugin/index.mjs +25 -0
  150. package/dist/esm/core/react/index.mjs +16 -0
  151. package/dist/esm/core/react/wrapper.mjs +20 -0
  152. package/dist/esm/core/server/constants.mjs +5 -0
  153. package/dist/esm/core/server/helmet.mjs +38 -0
  154. package/dist/esm/core/server/index.mjs +7 -0
  155. package/dist/esm/core/server/react/index.mjs +3 -0
  156. package/dist/esm/core/server/react/no-ssr-cache/index.mjs +9 -0
  157. package/dist/esm/core/server/react/nossr/index.mjs +10 -0
  158. package/dist/esm/core/server/requestHandler.mjs +161 -0
  159. package/dist/{esm-node/core/server/server.js → esm/core/server/server.mjs} +1 -5
  160. package/dist/esm/core/server/shared.mjs +4 -0
  161. package/dist/esm/core/server/stream/afterTemplate.mjs +66 -0
  162. package/dist/esm/core/server/stream/beforeTemplate.mjs +63 -0
  163. package/dist/esm/core/server/stream/createReadableStream.mjs +128 -0
  164. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +109 -0
  165. package/dist/esm/core/server/stream/deferredScript.mjs +62 -0
  166. package/dist/esm/core/server/stream/index.mjs +4 -0
  167. package/dist/esm/core/server/stream/shared.mjs +75 -0
  168. package/dist/esm/core/server/stream/template.mjs +13 -0
  169. package/dist/esm/core/server/string/index.mjs +101 -0
  170. package/dist/esm/core/server/string/loadable.mjs +112 -0
  171. package/dist/esm/core/server/string/ssrData.mjs +104 -0
  172. package/dist/esm/core/server/tracer.mjs +15 -0
  173. package/dist/esm/core/server/utils.mjs +39 -0
  174. package/dist/esm/document/Body.mjs +20 -0
  175. package/dist/esm/document/Comment.mjs +15 -0
  176. package/dist/esm/document/DocumentContext.mjs +7 -0
  177. package/dist/esm/document/DocumentStructureContext.mjs +10 -0
  178. package/dist/esm/document/Head.mjs +29 -0
  179. package/dist/esm/document/Html.mjs +74 -0
  180. package/dist/esm/document/Links.mjs +9 -0
  181. package/dist/esm/document/Root.mjs +29 -0
  182. package/dist/esm/document/Script.mjs +21 -0
  183. package/dist/esm/document/Scripts.mjs +9 -0
  184. package/dist/esm/document/Style.mjs +16 -0
  185. package/dist/esm/document/Title.mjs +8 -0
  186. package/dist/esm/document/cli/index.mjs +323 -0
  187. package/dist/esm/document/constants.mjs +34 -0
  188. package/dist/esm/exports/config-routes.mjs +4 -0
  189. package/dist/esm/exports/head.mjs +4 -0
  190. package/dist/esm/exports/loadable.mjs +4 -0
  191. package/dist/esm/index.mjs +6 -0
  192. package/dist/esm/internal.mjs +2 -0
  193. package/dist/esm/react-server.mjs +4 -0
  194. package/dist/esm/router/cli/code/getClientRoutes/getRoutes.mjs +115 -0
  195. package/dist/esm/router/cli/code/getClientRoutes/index.mjs +2 -0
  196. package/dist/esm/router/cli/code/getClientRoutes/utils.mjs +12 -0
  197. package/dist/esm/router/cli/code/index.mjs +132 -0
  198. package/dist/esm/router/cli/code/inspect.mjs +95 -0
  199. package/dist/esm/router/cli/code/makeLegalIdentifier.mjs +9 -0
  200. package/dist/esm/router/cli/code/nestedRoutes.mjs +193 -0
  201. package/dist/esm/router/cli/code/templates.mjs +365 -0
  202. package/dist/esm/router/cli/code/utils.mjs +73 -0
  203. package/dist/esm/router/cli/config-routes/converter.mjs +82 -0
  204. package/dist/esm/router/cli/config-routes/parseRouteConfig.mjs +105 -0
  205. package/dist/esm/router/cli/constants.mjs +32 -0
  206. package/dist/esm/router/cli/entry.mjs +22 -0
  207. package/dist/esm/router/cli/handler.mjs +66 -0
  208. package/dist/esm/router/cli/index.mjs +80 -0
  209. package/dist/{esm-node/router/internal.js → esm/router/internal.mjs} +2 -4
  210. package/dist/esm/router/runtime/DefaultNotFound.mjs +13 -0
  211. package/dist/esm/router/runtime/DeferredDataScripts.mjs +2 -0
  212. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +120 -0
  213. package/dist/esm/router/runtime/PrefetchLink.mjs +161 -0
  214. package/dist/{esm-node/router/runtime/constants.js → esm/router/runtime/constants.mjs} +7 -16
  215. package/dist/esm/router/runtime/hooks.mjs +4 -0
  216. package/dist/esm/router/runtime/index.mjs +9 -0
  217. package/dist/esm/router/runtime/internal.mjs +4 -0
  218. package/dist/esm/router/runtime/plugin.mjs +181 -0
  219. package/dist/esm/router/runtime/plugin.node.mjs +136 -0
  220. package/dist/esm/router/runtime/routerHelper.mjs +15 -0
  221. package/dist/esm/router/runtime/rsc-router.mjs +233 -0
  222. package/dist/esm/router/runtime/rsc.mjs +1 -0
  223. package/dist/esm/router/runtime/server.mjs +1 -0
  224. package/dist/esm/router/runtime/utils.mjs +165 -0
  225. package/dist/esm/router/runtime/withRouter.mjs +14 -0
  226. package/dist/esm/rsc/client.mjs +3 -0
  227. package/dist/esm-node/cli/alias.mjs +24 -0
  228. package/dist/esm-node/cli/code.mjs +119 -0
  229. package/dist/esm-node/cli/constants.mjs +10 -0
  230. package/dist/esm-node/cli/entry.mjs +6 -0
  231. package/dist/esm-node/cli/index.mjs +89 -0
  232. package/dist/esm-node/cli/ssr/index.mjs +125 -0
  233. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +75 -0
  234. package/dist/esm-node/cli/ssr/mode.mjs +14 -0
  235. package/dist/esm-node/cli/template.mjs +168 -0
  236. package/dist/esm-node/cli/{template.server.js → template.server.mjs} +20 -24
  237. package/dist/esm-node/common.mjs +4 -0
  238. package/dist/esm-node/core/browser/hydrate.mjs +53 -0
  239. package/dist/esm-node/core/browser/index.mjs +96 -0
  240. package/dist/esm-node/core/browser/withCallback.mjs +13 -0
  241. package/dist/esm-node/core/compat/hooks.mjs +35 -0
  242. package/dist/esm-node/core/compat/index.mjs +12 -0
  243. package/dist/esm-node/core/compat/requestContext.mjs +21 -0
  244. package/dist/esm-node/core/config.mjs +2 -0
  245. package/dist/esm-node/core/constants.mjs +8 -0
  246. package/dist/esm-node/core/context/index.mjs +45 -0
  247. package/dist/esm-node/core/context/monitors/default.mjs +10 -0
  248. package/dist/esm-node/core/context/monitors/index.mjs +3 -0
  249. package/dist/esm-node/core/context/monitors/index.server.mjs +7 -0
  250. package/dist/esm-node/core/context/request/index.mjs +2 -0
  251. package/dist/esm-node/core/context/request/index.server.mjs +6 -0
  252. package/dist/esm-node/core/context/response/index.mjs +7 -0
  253. package/dist/esm-node/core/context/response/index.server.mjs +28 -0
  254. package/dist/esm-node/core/context/runtime.mjs +15 -0
  255. package/dist/esm-node/core/context/serverPayload/index.mjs +3 -0
  256. package/dist/esm-node/core/context/serverPayload/index.server.mjs +10 -0
  257. package/dist/esm-node/core/index.mjs +3 -0
  258. package/dist/esm-node/core/plugin/index.mjs +25 -0
  259. package/dist/esm-node/core/react/index.mjs +16 -0
  260. package/dist/esm-node/core/react/wrapper.mjs +20 -0
  261. package/dist/esm-node/core/server/constants.mjs +5 -0
  262. package/dist/esm-node/core/server/helmet.mjs +38 -0
  263. package/dist/esm-node/core/server/index.mjs +7 -0
  264. package/dist/esm-node/core/server/react/index.mjs +3 -0
  265. package/dist/esm-node/core/server/react/no-ssr-cache/index.mjs +9 -0
  266. package/dist/esm-node/core/server/react/nossr/index.mjs +10 -0
  267. package/dist/esm-node/core/server/requestHandler.mjs +161 -0
  268. package/dist/esm-node/core/server/server.mjs +4 -0
  269. package/dist/esm-node/core/server/shared.mjs +4 -0
  270. package/dist/esm-node/core/server/stream/afterTemplate.mjs +66 -0
  271. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +63 -0
  272. package/dist/esm-node/core/server/stream/createReadableStream.mjs +128 -0
  273. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +109 -0
  274. package/dist/esm-node/core/server/stream/deferredScript.mjs +62 -0
  275. package/dist/esm-node/core/server/stream/index.mjs +4 -0
  276. package/dist/esm-node/core/server/stream/shared.mjs +75 -0
  277. package/dist/esm-node/core/server/stream/template.mjs +13 -0
  278. package/dist/esm-node/core/server/string/index.mjs +101 -0
  279. package/dist/esm-node/core/server/string/loadable.mjs +112 -0
  280. package/dist/esm-node/core/server/string/ssrData.mjs +104 -0
  281. package/dist/esm-node/core/server/tracer.mjs +15 -0
  282. package/dist/esm-node/core/server/utils.mjs +39 -0
  283. package/dist/esm-node/document/Body.mjs +20 -0
  284. package/dist/esm-node/document/Comment.mjs +15 -0
  285. package/dist/esm-node/document/DocumentContext.mjs +7 -0
  286. package/dist/esm-node/document/DocumentStructureContext.mjs +10 -0
  287. package/dist/esm-node/document/Head.mjs +29 -0
  288. package/dist/esm-node/document/Html.mjs +74 -0
  289. package/dist/esm-node/document/Links.mjs +9 -0
  290. package/dist/esm-node/document/Root.mjs +29 -0
  291. package/dist/esm-node/document/Script.mjs +21 -0
  292. package/dist/esm-node/document/Scripts.mjs +9 -0
  293. package/dist/esm-node/document/Style.mjs +16 -0
  294. package/dist/esm-node/document/Title.mjs +8 -0
  295. package/dist/esm-node/document/cli/index.mjs +323 -0
  296. package/dist/esm-node/document/constants.mjs +34 -0
  297. package/dist/esm-node/document/index.mjs +12 -0
  298. package/dist/esm-node/exports/config-routes.mjs +4 -0
  299. package/dist/esm-node/exports/head.mjs +4 -0
  300. package/dist/esm-node/exports/loadable.mjs +4 -0
  301. package/dist/esm-node/index.mjs +6 -0
  302. package/dist/esm-node/internal.mjs +2 -0
  303. package/dist/esm-node/react-server.mjs +4 -0
  304. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutes.mjs +115 -0
  305. package/dist/esm-node/router/cli/code/getClientRoutes/index.mjs +2 -0
  306. package/dist/esm-node/router/cli/code/getClientRoutes/utils.mjs +12 -0
  307. package/dist/esm-node/router/cli/code/index.mjs +132 -0
  308. package/dist/esm-node/router/cli/code/inspect.mjs +95 -0
  309. package/dist/esm-node/router/cli/code/{makeLegalIdentifier.js → makeLegalIdentifier.mjs} +7 -11
  310. package/dist/esm-node/router/cli/code/nestedRoutes.mjs +193 -0
  311. package/dist/esm-node/router/cli/code/templates.mjs +365 -0
  312. package/dist/esm-node/router/cli/code/utils.mjs +73 -0
  313. package/dist/esm-node/router/cli/config-routes/converter.mjs +82 -0
  314. package/dist/esm-node/router/cli/config-routes/parseRouteConfig.mjs +105 -0
  315. package/dist/esm-node/router/cli/constants.mjs +32 -0
  316. package/dist/esm-node/router/cli/entry.mjs +22 -0
  317. package/dist/esm-node/router/cli/handler.mjs +66 -0
  318. package/dist/esm-node/router/cli/index.mjs +80 -0
  319. package/dist/esm-node/router/index.mjs +1 -0
  320. package/dist/esm-node/router/internal.mjs +3 -0
  321. package/dist/esm-node/router/runtime/DefaultNotFound.mjs +13 -0
  322. package/dist/esm-node/router/runtime/DeferredDataScripts.mjs +2 -0
  323. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +120 -0
  324. package/dist/esm-node/router/runtime/PrefetchLink.mjs +161 -0
  325. package/dist/esm-node/router/runtime/constants.mjs +10 -0
  326. package/dist/esm-node/router/runtime/hooks.mjs +4 -0
  327. package/dist/esm-node/router/runtime/index.mjs +9 -0
  328. package/dist/esm-node/router/runtime/internal.mjs +4 -0
  329. package/dist/esm-node/router/runtime/plugin.mjs +181 -0
  330. package/dist/esm-node/router/runtime/plugin.node.mjs +136 -0
  331. package/dist/esm-node/router/runtime/routerHelper.mjs +15 -0
  332. package/dist/esm-node/router/runtime/rsc-router.mjs +233 -0
  333. package/dist/esm-node/router/runtime/rsc.mjs +1 -0
  334. package/dist/esm-node/router/runtime/server.mjs +1 -0
  335. package/dist/esm-node/router/runtime/utils.mjs +165 -0
  336. package/dist/esm-node/router/runtime/withRouter.mjs +14 -0
  337. package/dist/esm-node/rsc/client.mjs +3 -0
  338. package/dist/types/cli/code.d.ts +1 -1
  339. package/dist/types/cli/index.d.ts +3 -3
  340. package/dist/types/cli/ssr/index.d.ts +2 -2
  341. package/dist/types/cli/ssr/mode.d.ts +15 -0
  342. package/dist/types/cli/template.d.ts +3 -3
  343. package/dist/types/common.d.ts +2 -7
  344. package/dist/types/core/browser/hydrate.d.ts +2 -2
  345. package/dist/types/core/browser/index.d.ts +3 -1
  346. package/dist/types/core/compat/hooks.d.ts +2 -2
  347. package/dist/types/core/compat/index.d.ts +2 -2
  348. package/dist/types/core/compat/requestContext.d.ts +5 -24
  349. package/dist/types/core/config.d.ts +1 -8
  350. package/dist/types/core/constants.d.ts +0 -1
  351. package/dist/types/core/context/index.d.ts +9 -13
  352. package/dist/types/core/context/monitors/index.d.ts +1 -1
  353. package/dist/types/core/context/runtime.d.ts +26 -29
  354. package/dist/types/core/context/serverPayload/index.server.d.ts +1 -1
  355. package/dist/types/core/index.d.ts +4 -7
  356. package/dist/types/core/plugin/index.d.ts +13 -13
  357. package/dist/types/core/plugin/types.d.ts +9 -10
  358. package/dist/types/core/react/wrapper.d.ts +3 -3
  359. package/dist/types/core/server/index.d.ts +3 -3
  360. package/dist/types/core/server/react/index.d.ts +0 -1
  361. package/dist/types/core/server/requestHandler.d.ts +3 -3
  362. package/dist/types/core/server/stream/afterTemplate.d.ts +2 -2
  363. package/dist/types/core/server/stream/beforeTemplate.d.ts +2 -2
  364. package/dist/types/core/server/stream/shared.d.ts +2 -2
  365. package/dist/types/core/server/string/loadable.d.ts +2 -2
  366. package/dist/types/core/server/string/ssrData.d.ts +3 -2
  367. package/dist/types/core/server/tracer.d.ts +1 -3
  368. package/dist/types/core/server/utils.d.ts +2 -3
  369. package/dist/types/core/types.d.ts +4 -16
  370. package/dist/types/document/DocumentContext.d.ts +1 -1
  371. package/dist/types/document/cli/index.d.ts +3 -3
  372. package/dist/types/document/constants.d.ts +3 -1
  373. package/dist/types/exports/config-routes.d.ts +9 -0
  374. package/dist/types/index.d.ts +4 -5
  375. package/dist/types/internal.d.ts +2 -0
  376. package/dist/types/router/cli/code/getClientRoutes/index.d.ts +0 -1
  377. package/dist/types/router/cli/code/getClientRoutes/utils.d.ts +0 -1
  378. package/dist/types/router/cli/code/index.d.ts +7 -3
  379. package/dist/types/router/cli/code/inspect.d.ts +22 -0
  380. package/dist/types/router/cli/code/nestedRoutes.d.ts +10 -4
  381. package/dist/types/router/cli/code/templates.d.ts +3 -2
  382. package/dist/types/router/cli/config-routes/converter.d.ts +15 -0
  383. package/dist/types/router/cli/config-routes/parseRouteConfig.d.ts +32 -0
  384. package/dist/types/router/cli/constants.d.ts +0 -3
  385. package/dist/types/router/cli/entry.d.ts +1 -2
  386. package/dist/types/router/cli/handler.d.ts +4 -4
  387. package/dist/types/router/cli/index.d.ts +2 -4
  388. package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +1 -1
  389. package/dist/types/router/runtime/hooks.d.ts +3 -3
  390. package/dist/types/router/runtime/index.d.ts +0 -1
  391. package/dist/types/router/runtime/plugin.d.ts +2 -2
  392. package/dist/types/router/runtime/plugin.node.d.ts +2 -2
  393. package/dist/types/router/runtime/{routeModule.d.ts → routerHelper.d.ts} +1 -1
  394. package/dist/types/router/runtime/rsc-router.d.ts +2 -2
  395. package/dist/types/router/runtime/rsc.d.ts +1 -0
  396. package/dist/types/router/runtime/server.d.ts +1 -1
  397. package/dist/types/router/runtime/types.d.ts +0 -1
  398. package/dist/types/router/runtime/utils.d.ts +5 -4
  399. package/package.json +90 -80
  400. package/rslib.config.mts +19 -0
  401. package/dist/cjs/cli/ssr/babel-plugin-ssr-loader-id.js +0 -133
  402. package/dist/cjs/config.js +0 -16
  403. package/dist/cjs/core/compatible.js +0 -192
  404. package/dist/cjs/core/loader/index.js +0 -38
  405. package/dist/cjs/core/loader/loaderManager.js +0 -186
  406. package/dist/cjs/core/loader/useLoader.js +0 -114
  407. package/dist/cjs/core/plugin/base.js +0 -16
  408. package/dist/cjs/core/server/react/prerender/index.js +0 -124
  409. package/dist/cjs/core/server/react/prerender/type.js +0 -16
  410. package/dist/cjs/core/server/react/prerender/util.js +0 -121
  411. package/dist/cjs/core/server/string/prefetch.js +0 -93
  412. package/dist/cjs/core/server/string/styledComponent.js +0 -53
  413. package/dist/cjs/exports/server.js +0 -28
  414. package/dist/cjs/exports/styled.js +0 -41
  415. package/dist/cjs/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -195
  416. package/dist/cjs/router/runtime/routeModule.js +0 -52
  417. package/dist/esm/cli/alias.js +0 -30
  418. package/dist/esm/cli/code.js +0 -265
  419. package/dist/esm/cli/constants.js +0 -20
  420. package/dist/esm/cli/entry.js +0 -15
  421. package/dist/esm/cli/index.js +0 -170
  422. package/dist/esm/cli/ssr/babel-plugin-ssr-loader-id.js +0 -118
  423. package/dist/esm/cli/ssr/index.js +0 -143
  424. package/dist/esm/cli/ssr/loadable-bundler-plugin.js +0 -102
  425. package/dist/esm/cli/template.js +0 -98
  426. package/dist/esm/cli/template.server.js +0 -34
  427. package/dist/esm/common.js +0 -10
  428. package/dist/esm/core/browser/hydrate.js +0 -75
  429. package/dist/esm/core/browser/index.js +0 -279
  430. package/dist/esm/core/browser/withCallback.js +0 -18
  431. package/dist/esm/core/compat/hooks.js +0 -88
  432. package/dist/esm/core/compat/index.js +0 -20
  433. package/dist/esm/core/compat/requestContext.js +0 -25
  434. package/dist/esm/core/compatible.js +0 -215
  435. package/dist/esm/core/config.js +0 -19
  436. package/dist/esm/core/constants.js +0 -13
  437. package/dist/esm/core/context/index.js +0 -67
  438. package/dist/esm/core/context/monitors/default.js +0 -20
  439. package/dist/esm/core/context/monitors/index.js +0 -7
  440. package/dist/esm/core/context/monitors/index.server.js +0 -9
  441. package/dist/esm/core/context/request/index.js +0 -6
  442. package/dist/esm/core/context/request/index.server.js +0 -8
  443. package/dist/esm/core/context/response/index.js +0 -16
  444. package/dist/esm/core/context/response/index.server.js +0 -41
  445. package/dist/esm/core/context/runtime.js +0 -18
  446. package/dist/esm/core/context/serverPayload/index.js +0 -9
  447. package/dist/esm/core/context/serverPayload/index.server.js +0 -15
  448. package/dist/esm/core/index.js +0 -12
  449. package/dist/esm/core/loader/index.js +0 -4
  450. package/dist/esm/core/loader/loaderManager.js +0 -234
  451. package/dist/esm/core/loader/useLoader.js +0 -89
  452. package/dist/esm/core/plugin/base.js +0 -0
  453. package/dist/esm/core/plugin/index.js +0 -33
  454. package/dist/esm/core/plugin/types.js +0 -0
  455. package/dist/esm/core/react/index.js +0 -18
  456. package/dist/esm/core/react/wrapper.js +0 -10
  457. package/dist/esm/core/server/constants.js +0 -10
  458. package/dist/esm/core/server/helmet.js +0 -53
  459. package/dist/esm/core/server/index.js +0 -17
  460. package/dist/esm/core/server/react/index.js +0 -8
  461. package/dist/esm/core/server/react/no-ssr-cache/index.js +0 -12
  462. package/dist/esm/core/server/react/nossr/index.js +0 -14
  463. package/dist/esm/core/server/react/prerender/index.js +0 -105
  464. package/dist/esm/core/server/react/prerender/type.js +0 -0
  465. package/dist/esm/core/server/react/prerender/util.js +0 -114
  466. package/dist/esm/core/server/requestHandler.js +0 -330
  467. package/dist/esm/core/server/server.js +0 -8
  468. package/dist/esm/core/server/shared.js +0 -10
  469. package/dist/esm/core/server/stream/afterTemplate.js +0 -107
  470. package/dist/esm/core/server/stream/beforeTemplate.js +0 -188
  471. package/dist/esm/core/server/stream/createReadableStream.js +0 -165
  472. package/dist/esm/core/server/stream/createReadableStream.worker.js +0 -239
  473. package/dist/esm/core/server/stream/deferredScript.js +0 -85
  474. package/dist/esm/core/server/stream/index.js +0 -10
  475. package/dist/esm/core/server/stream/shared.js +0 -113
  476. package/dist/esm/core/server/stream/template.js +0 -42
  477. package/dist/esm/core/server/string/index.js +0 -189
  478. package/dist/esm/core/server/string/loadable.js +0 -336
  479. package/dist/esm/core/server/string/prefetch.js +0 -105
  480. package/dist/esm/core/server/string/ssrData.js +0 -82
  481. package/dist/esm/core/server/string/styledComponent.js +0 -34
  482. package/dist/esm/core/server/string/types.js +0 -0
  483. package/dist/esm/core/server/tracer.js +0 -20
  484. package/dist/esm/core/server/utils.js +0 -80
  485. package/dist/esm/core/types.js +0 -0
  486. package/dist/esm/document/Body.js +0 -26
  487. package/dist/esm/document/Comment.js +0 -16
  488. package/dist/esm/document/DocumentContext.js +0 -9
  489. package/dist/esm/document/DocumentStructureContext.js +0 -12
  490. package/dist/esm/document/Head.js +0 -36
  491. package/dist/esm/document/Html.js +0 -108
  492. package/dist/esm/document/Links.js +0 -10
  493. package/dist/esm/document/Root.js +0 -41
  494. package/dist/esm/document/Script.js +0 -25
  495. package/dist/esm/document/Scripts.js +0 -10
  496. package/dist/esm/document/Style.js +0 -17
  497. package/dist/esm/document/Title.js +0 -10
  498. package/dist/esm/document/cli/index.js +0 -282
  499. package/dist/esm/document/constants.js +0 -56
  500. package/dist/esm/document/index.js +0 -12
  501. package/dist/esm/exports/head.js +0 -6
  502. package/dist/esm/exports/loadable.js +0 -6
  503. package/dist/esm/exports/server.js +0 -6
  504. package/dist/esm/exports/styled.js +0 -6
  505. package/dist/esm/index.js +0 -20
  506. package/dist/esm/react-server.js +0 -10
  507. package/dist/esm/router/cli/code/getClientRoutes/getRoutes.js +0 -185
  508. package/dist/esm/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -183
  509. package/dist/esm/router/cli/code/getClientRoutes/index.js +0 -6
  510. package/dist/esm/router/cli/code/getClientRoutes/utils.js +0 -28
  511. package/dist/esm/router/cli/code/index.js +0 -255
  512. package/dist/esm/router/cli/code/makeLegalIdentifier.js +0 -15
  513. package/dist/esm/router/cli/code/nestedRoutes.js +0 -397
  514. package/dist/esm/router/cli/code/templates.js +0 -554
  515. package/dist/esm/router/cli/code/utils.js +0 -212
  516. package/dist/esm/router/cli/constants.js +0 -51
  517. package/dist/esm/router/cli/entry.js +0 -61
  518. package/dist/esm/router/cli/handler.js +0 -191
  519. package/dist/esm/router/cli/index.js +0 -202
  520. package/dist/esm/router/index.js +0 -1
  521. package/dist/esm/router/internal.js +0 -5
  522. package/dist/esm/router/runtime/DefaultNotFound.js +0 -16
  523. package/dist/esm/router/runtime/DeferredDataScripts.js +0 -7
  524. package/dist/esm/router/runtime/DeferredDataScripts.node.js +0 -138
  525. package/dist/esm/router/runtime/PrefetchLink.js +0 -247
  526. package/dist/esm/router/runtime/constants.js +0 -19
  527. package/dist/esm/router/runtime/hooks.js +0 -7
  528. package/dist/esm/router/runtime/index.js +0 -17
  529. package/dist/esm/router/runtime/internal.js +0 -10
  530. package/dist/esm/router/runtime/plugin.js +0 -216
  531. package/dist/esm/router/runtime/plugin.node.js +0 -235
  532. package/dist/esm/router/runtime/routeModule.js +0 -26
  533. package/dist/esm/router/runtime/rsc-router.js +0 -437
  534. package/dist/esm/router/runtime/server.js +0 -1
  535. package/dist/esm/router/runtime/types.js +0 -0
  536. package/dist/esm/router/runtime/utils.js +0 -296
  537. package/dist/esm/router/runtime/withRouter.js +0 -19
  538. package/dist/esm/rsc/client.js +0 -7
  539. package/dist/esm-node/cli/alias.js +0 -28
  540. package/dist/esm-node/cli/code.js +0 -137
  541. package/dist/esm-node/cli/constants.js +0 -20
  542. package/dist/esm-node/cli/entry.js +0 -9
  543. package/dist/esm-node/cli/index.js +0 -145
  544. package/dist/esm-node/cli/ssr/babel-plugin-ssr-loader-id.js +0 -119
  545. package/dist/esm-node/cli/ssr/index.js +0 -116
  546. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.js +0 -97
  547. package/dist/esm-node/common.js +0 -8
  548. package/dist/esm-node/core/browser/hydrate.js +0 -68
  549. package/dist/esm-node/core/browser/index.js +0 -128
  550. package/dist/esm-node/core/browser/withCallback.js +0 -17
  551. package/dist/esm-node/core/compat/hooks.js +0 -54
  552. package/dist/esm-node/core/compat/index.js +0 -18
  553. package/dist/esm-node/core/compat/requestContext.js +0 -23
  554. package/dist/esm-node/core/compatible.js +0 -156
  555. package/dist/esm-node/core/config.js +0 -15
  556. package/dist/esm-node/core/constants.js +0 -13
  557. package/dist/esm-node/core/context/index.js +0 -67
  558. package/dist/esm-node/core/context/monitors/default.js +0 -14
  559. package/dist/esm-node/core/context/monitors/index.js +0 -7
  560. package/dist/esm-node/core/context/monitors/index.server.js +0 -9
  561. package/dist/esm-node/core/context/request/index.js +0 -6
  562. package/dist/esm-node/core/context/request/index.server.js +0 -8
  563. package/dist/esm-node/core/context/response/index.js +0 -16
  564. package/dist/esm-node/core/context/response/index.server.js +0 -35
  565. package/dist/esm-node/core/context/runtime.js +0 -15
  566. package/dist/esm-node/core/context/serverPayload/index.js +0 -9
  567. package/dist/esm-node/core/context/serverPayload/index.server.js +0 -15
  568. package/dist/esm-node/core/index.js +0 -12
  569. package/dist/esm-node/core/loader/index.js +0 -4
  570. package/dist/esm-node/core/loader/loaderManager.js +0 -151
  571. package/dist/esm-node/core/loader/useLoader.js +0 -84
  572. package/dist/esm-node/core/plugin/index.js +0 -28
  573. package/dist/esm-node/core/react/index.js +0 -18
  574. package/dist/esm-node/core/react/wrapper.js +0 -10
  575. package/dist/esm-node/core/server/constants.js +0 -10
  576. package/dist/esm-node/core/server/helmet.js +0 -49
  577. package/dist/esm-node/core/server/index.js +0 -13
  578. package/dist/esm-node/core/server/react/index.js +0 -8
  579. package/dist/esm-node/core/server/react/no-ssr-cache/index.js +0 -12
  580. package/dist/esm-node/core/server/react/nossr/index.js +0 -13
  581. package/dist/esm-node/core/server/react/prerender/index.js +0 -90
  582. package/dist/esm-node/core/server/react/prerender/util.js +0 -93
  583. package/dist/esm-node/core/server/requestHandler.js +0 -199
  584. package/dist/esm-node/core/server/shared.js +0 -6
  585. package/dist/esm-node/core/server/stream/afterTemplate.js +0 -76
  586. package/dist/esm-node/core/server/stream/beforeTemplate.js +0 -85
  587. package/dist/esm-node/core/server/stream/createReadableStream.js +0 -123
  588. package/dist/esm-node/core/server/stream/createReadableStream.worker.js +0 -134
  589. package/dist/esm-node/core/server/stream/deferredScript.js +0 -76
  590. package/dist/esm-node/core/server/stream/index.js +0 -6
  591. package/dist/esm-node/core/server/stream/shared.js +0 -86
  592. package/dist/esm-node/core/server/stream/template.js +0 -15
  593. package/dist/esm-node/core/server/string/index.js +0 -113
  594. package/dist/esm-node/core/server/string/loadable.js +0 -154
  595. package/dist/esm-node/core/server/string/prefetch.js +0 -69
  596. package/dist/esm-node/core/server/string/ssrData.js +0 -74
  597. package/dist/esm-node/core/server/string/styledComponent.js +0 -29
  598. package/dist/esm-node/core/server/tracer.js +0 -20
  599. package/dist/esm-node/core/server/utils.js +0 -57
  600. package/dist/esm-node/document/Body.js +0 -22
  601. package/dist/esm-node/document/Comment.js +0 -16
  602. package/dist/esm-node/document/DocumentContext.js +0 -9
  603. package/dist/esm-node/document/DocumentStructureContext.js +0 -12
  604. package/dist/esm-node/document/Head.js +0 -32
  605. package/dist/esm-node/document/Html.js +0 -83
  606. package/dist/esm-node/document/Links.js +0 -10
  607. package/dist/esm-node/document/Root.js +0 -35
  608. package/dist/esm-node/document/Script.js +0 -23
  609. package/dist/esm-node/document/Scripts.js +0 -10
  610. package/dist/esm-node/document/Style.js +0 -17
  611. package/dist/esm-node/document/Title.js +0 -10
  612. package/dist/esm-node/document/cli/index.js +0 -188
  613. package/dist/esm-node/document/constants.js +0 -58
  614. package/dist/esm-node/exports/head.js +0 -6
  615. package/dist/esm-node/exports/loadable.js +0 -6
  616. package/dist/esm-node/exports/server.js +0 -4
  617. package/dist/esm-node/exports/styled.js +0 -6
  618. package/dist/esm-node/index.js +0 -20
  619. package/dist/esm-node/react-server.js +0 -10
  620. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutes.js +0 -163
  621. package/dist/esm-node/router/cli/code/getClientRoutes/getRoutesLegacy.js +0 -161
  622. package/dist/esm-node/router/cli/code/getClientRoutes/index.js +0 -6
  623. package/dist/esm-node/router/cli/code/getClientRoutes/utils.js +0 -22
  624. package/dist/esm-node/router/cli/code/index.js +0 -126
  625. package/dist/esm-node/router/cli/code/nestedRoutes.js +0 -258
  626. package/dist/esm-node/router/cli/code/templates.js +0 -452
  627. package/dist/esm-node/router/cli/code/utils.js +0 -101
  628. package/dist/esm-node/router/cli/constants.js +0 -51
  629. package/dist/esm-node/router/cli/entry.js +0 -54
  630. package/dist/esm-node/router/cli/handler.js +0 -67
  631. package/dist/esm-node/router/cli/index.js +0 -110
  632. package/dist/esm-node/router/runtime/DefaultNotFound.js +0 -14
  633. package/dist/esm-node/router/runtime/DeferredDataScripts.js +0 -6
  634. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +0 -132
  635. package/dist/esm-node/router/runtime/PrefetchLink.js +0 -192
  636. package/dist/esm-node/router/runtime/hooks.js +0 -7
  637. package/dist/esm-node/router/runtime/index.js +0 -17
  638. package/dist/esm-node/router/runtime/internal.js +0 -10
  639. package/dist/esm-node/router/runtime/plugin.js +0 -206
  640. package/dist/esm-node/router/runtime/plugin.node.js +0 -174
  641. package/dist/esm-node/router/runtime/routeModule.js +0 -26
  642. package/dist/esm-node/router/runtime/rsc-router.js +0 -284
  643. package/dist/esm-node/router/runtime/server.js +0 -1
  644. package/dist/esm-node/router/runtime/utils.js +0 -218
  645. package/dist/esm-node/router/runtime/withRouter.js +0 -18
  646. package/dist/esm-node/rsc/client.js +0 -7
  647. package/dist/types/cli/ssr/babel-plugin-ssr-loader-id.d.ts +0 -1
  648. package/dist/types/config.d.ts +0 -6
  649. package/dist/types/core/compatible.d.ts +0 -24
  650. package/dist/types/core/loader/index.d.ts +0 -1
  651. package/dist/types/core/loader/loaderManager.d.ts +0 -56
  652. package/dist/types/core/loader/useLoader.d.ts +0 -36
  653. package/dist/types/core/plugin/base.d.ts +0 -15
  654. package/dist/types/core/server/react/prerender/index.d.ts +0 -5
  655. package/dist/types/core/server/react/prerender/type.d.ts +0 -29
  656. package/dist/types/core/server/react/prerender/util.d.ts +0 -6
  657. package/dist/types/core/server/string/prefetch.d.ts +0 -16
  658. package/dist/types/core/server/string/styledComponent.d.ts +0 -11
  659. package/dist/types/exports/server.d.ts +0 -14
  660. package/dist/types/exports/styled.d.ts +0 -3
  661. package/dist/types/router/cli/code/getClientRoutes/getRoutesLegacy.d.ts +0 -9
  662. package/types/index.d.ts +0 -7
  663. package/types/router.d.ts +0 -24
  664. /package/dist/esm/cache/{index.js → index.mjs} +0 -0
  665. /package/dist/{esm-node/core/server/string/types.js → esm/core/plugin/types.mjs} +0 -0
  666. /package/dist/{esm-node/core/types.js → esm/core/server/string/types.mjs} +0 -0
  667. /package/dist/{esm-node/router/runtime/types.js → esm/core/types.mjs} +0 -0
  668. /package/dist/{esm-node/document/index.js → esm/document/index.mjs} +0 -0
  669. /package/dist/{esm-node/router/index.js → esm/router/index.mjs} +0 -0
  670. /package/dist/esm/{config.js → router/runtime/types.mjs} +0 -0
  671. /package/dist/esm/rsc/{server.js → server.mjs} +0 -0
  672. /package/dist/esm-node/cache/{index.js → index.mjs} +0 -0
  673. /package/dist/esm-node/{config.js → core/plugin/types.mjs} +0 -0
  674. /package/dist/esm-node/core/{plugin/base.js → server/string/types.mjs} +0 -0
  675. /package/dist/esm-node/core/{plugin/types.js → types.mjs} +0 -0
  676. /package/dist/esm-node/{core/server/react/prerender/type.js → router/runtime/types.mjs} +0 -0
  677. /package/dist/esm-node/rsc/{server.js → server.mjs} +0 -0
@@ -0,0 +1,161 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { Link as router_Link, NavLink, matchRoutes, useHref, useMatches, useResolvedPath } from "@modern-js/runtime-utils/router";
4
+ import react, { useContext, useMemo } from "react";
5
+ import { InternalRuntimeContext } from "../../core/context";
6
+ var __webpack_require__ = {};
7
+ (()=>{
8
+ __webpack_require__.e = ()=>Promise.resolve();
9
+ })();
10
+ function composeEventHandlers(theirHandler, ourHandler) {
11
+ return (event)=>{
12
+ theirHandler?.(event);
13
+ if (!event.defaultPrevented) ourHandler(event);
14
+ };
15
+ }
16
+ const ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
17
+ function usePrefetchBehavior(prefetch, theirElementProps) {
18
+ const [maybePrefetch, setMaybePrefetch] = react.useState(false);
19
+ const [shouldPrefetch, setShouldPrefetch] = react.useState(false);
20
+ const { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;
21
+ react.useEffect(()=>{
22
+ if ('render' === prefetch) setShouldPrefetch(true);
23
+ }, [
24
+ prefetch
25
+ ]);
26
+ const setIntent = ()=>{
27
+ if ('intent' === prefetch) setMaybePrefetch(true);
28
+ };
29
+ const cancelIntent = ()=>{
30
+ if ('intent' === prefetch) {
31
+ setMaybePrefetch(false);
32
+ setShouldPrefetch(false);
33
+ }
34
+ };
35
+ react.useEffect(()=>{
36
+ if (maybePrefetch) {
37
+ const id = setTimeout(()=>{
38
+ setShouldPrefetch(true);
39
+ }, 100);
40
+ return ()=>{
41
+ clearTimeout(id);
42
+ };
43
+ }
44
+ }, [
45
+ maybePrefetch
46
+ ]);
47
+ return [
48
+ shouldPrefetch,
49
+ {
50
+ onFocus: composeEventHandlers(onFocus, setIntent),
51
+ onBlur: composeEventHandlers(onBlur, cancelIntent),
52
+ onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),
53
+ onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),
54
+ onTouchStart: composeEventHandlers(onTouchStart, setIntent)
55
+ }
56
+ ];
57
+ }
58
+ async function loadRouteModule(route, routeAssets) {
59
+ const routeId = route.id;
60
+ if (!routeId) return;
61
+ if (!routeAssets[routeId]) return;
62
+ const { chunkIds } = routeAssets[routeId];
63
+ if (!chunkIds) return;
64
+ try {
65
+ await Promise.all(chunkIds.map((chunkId)=>{
66
+ if ('test' === process.env.NODE_ENV) return __webpack_require__.e?.(chunkId);
67
+ return __webpack_chunk_load__?.(chunkId);
68
+ }));
69
+ } catch (error) {
70
+ console.error(error);
71
+ }
72
+ }
73
+ const getRequestUrl = (pathname, routeId)=>{
74
+ const LOADER_ID_PARAM = '__loader';
75
+ const DIRECT_PARAM = '__ssrDirect';
76
+ const { protocol, host } = window.location;
77
+ const url = new URL(pathname, `${protocol}//${host}`);
78
+ url.searchParams.append(LOADER_ID_PARAM, routeId);
79
+ url.searchParams.append(DIRECT_PARAM, 'true');
80
+ return url;
81
+ };
82
+ const createDataHref = (href)=>/*#__PURE__*/ jsx("link", {
83
+ rel: "prefetch",
84
+ as: "fetch",
85
+ href: href
86
+ }, href);
87
+ const getDataHref = (route, pathname, basename)=>{
88
+ const { id } = route;
89
+ const path = '/' === basename ? pathname : `${basename}${pathname}`;
90
+ const url = getRequestUrl(path, id);
91
+ return createDataHref(url.toString());
92
+ };
93
+ const PrefetchPageLinks = ({ path })=>{
94
+ const { pathname } = path;
95
+ const context = useContext(InternalRuntimeContext);
96
+ const { routeManifest, routes } = context;
97
+ const { routeAssets } = routeManifest || {};
98
+ const matches = Array.isArray(routes) ? matchRoutes(routes, pathname) : [];
99
+ if (Array.isArray(matches) && routeAssets) matches?.forEach((match)=>loadRouteModule(match.route, routeAssets));
100
+ if (!window._SSR_DATA) return null;
101
+ return /*#__PURE__*/ jsx(PrefetchDataLinks, {
102
+ matches: matches,
103
+ path: path,
104
+ routeManifest: routeManifest
105
+ });
106
+ };
107
+ const PrefetchDataLinks = ({ matches, path, routeManifest })=>{
108
+ const { pathname, search, hash } = path;
109
+ const currentMatches = useMatches();
110
+ const basename = useHref('/');
111
+ const dataHrefs = useMemo(()=>matches?.filter((match, index)=>{
112
+ if (!match.route.loader || 'function' != typeof match.route.loader || 0 === match.route.loader.length) return false;
113
+ if (match.route.shouldRevalidate) {
114
+ const currentUrl = new URL(location.pathname + location.search + location.hash, window.origin);
115
+ const nextUrl = new URL(pathname + search + hash, window.origin);
116
+ const shouldLoad = match.route.shouldRevalidate({
117
+ currentUrl,
118
+ currentParams: currentMatches[0]?.params || {},
119
+ nextUrl,
120
+ nextParams: match.params,
121
+ defaultShouldRevalidate: true
122
+ });
123
+ if ('boolean' == typeof shouldLoad) return shouldLoad;
124
+ }
125
+ const currentMatch = currentMatches[index];
126
+ if (!currentMatch || currentMatch.id !== match.route.id) return true;
127
+ if (currentMatch.pathname !== match.pathname) return true;
128
+ if (currentMatch.pathname.endsWith('*') && currentMatch.params['*'] !== match.params['*']) return true;
129
+ return false;
130
+ }).map((match)=>getDataHref(match.route, pathname, basename)), [
131
+ matches,
132
+ pathname,
133
+ routeManifest
134
+ ]);
135
+ return /*#__PURE__*/ jsx(Fragment, {
136
+ children: dataHrefs
137
+ });
138
+ };
139
+ const createPrefetchLink = (Link)=>/*#__PURE__*/ react.forwardRef(({ to, prefetch = 'none', ...props }, forwardedRef)=>{
140
+ const isAbsolute = 'string' == typeof to && ABSOLUTE_URL_REGEX.test(to);
141
+ const [shouldPrefetch, prefetchHandlers] = usePrefetchBehavior(prefetch, props);
142
+ const resolvedPath = useResolvedPath(to);
143
+ return /*#__PURE__*/ jsxs(Fragment, {
144
+ children: [
145
+ /*#__PURE__*/ jsx(Link, {
146
+ ref: forwardedRef,
147
+ to: to,
148
+ ...props,
149
+ ...prefetchHandlers
150
+ }),
151
+ shouldPrefetch && __webpack_require__.e && !isAbsolute ? /*#__PURE__*/ jsx(PrefetchPageLinks, {
152
+ path: resolvedPath
153
+ }) : null
154
+ ]
155
+ });
156
+ });
157
+ const PrefetchLink_Link = createPrefetchLink(router_Link);
158
+ PrefetchLink_Link.displayName = 'Link';
159
+ const PrefetchLink_NavLink = createPrefetchLink(NavLink);
160
+ PrefetchLink_NavLink.displayName = 'NavLink';
161
+ export { PrefetchLink_Link as Link, PrefetchLink_NavLink as NavLink };
@@ -1,19 +1,10 @@
1
1
  import { ROUTER_DATA_JSON_ID } from "../../core/constants";
2
- const setupFnStr = `function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};`;
3
- const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
4
- const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};`;
5
- const mergeLoaderDataStr = `function mergeLoaderData(e,n){var r=n.reduce((function(e,{key:n,routerDataFnName:r,routerDataFnArgs:a}){var t=a.map((e=>{if("undefined"!==e&&null!==e)return JSON.parse(e)}));return console.info("args",t),{...e,[n]:_ROUTER_DATA[r](...t)}}),{});Object.assign(_ROUTER_DATA.loaderData[e],r)}`;
2
+ const setupFnStr = "function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};";
3
+ const resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
4
+ const preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};";
5
+ const mergeLoaderDataStr = 'function mergeLoaderData(e,n){var r=n.reduce((function(e,{key:n,routerDataFnName:r,routerDataFnArgs:a}){var t=a.map((e=>{if("undefined"!==e&&null!==e)return JSON.parse(e)}));return console.info("args",t),{...e,[n]:_ROUTER_DATA[r](...t)}}),{});Object.assign(_ROUTER_DATA.loaderData[e],r)}';
6
6
  const initRouterDataAttrs = `_ROUTER_DATA.s = ${setupFnStr}_ROUTER_DATA.r = ${resolveFnStr}_ROUTER_DATA.p = ${preResolvedFnStr}${mergeLoaderDataStr}`;
7
7
  const modernInline = `function runWindowFn(){window[document.currentScript.getAttribute("data-fn-name")].apply(window,JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function runRouterDataFn(){_ROUTER_DATA[document.currentScript.getAttribute("data-fn-name")].apply(_ROUTER_DATA,JSON.parse(document.currentScript.getAttribute("data-fn-args")))}function initRouterData(e){var r=document.getElementById(e);if(r)try{_ROUTER_DATA=JSON.parse(r.textContent)}catch(r){console.error("parse ".concat(e," error"),t),_ROUTER_DATA={}}};initRouterData('${ROUTER_DATA_JSON_ID}');${initRouterDataAttrs}`;
8
- const runRouterDataFnStr = `runRouterDataFn();`;
9
- const runWindowFnStr = `runWindowFn();`;
10
- export {
11
- initRouterDataAttrs,
12
- mergeLoaderDataStr,
13
- modernInline,
14
- preResolvedFnStr,
15
- resolveFnStr,
16
- runRouterDataFnStr,
17
- runWindowFnStr,
18
- setupFnStr
19
- };
8
+ const runRouterDataFnStr = "runRouterDataFn();";
9
+ const runWindowFnStr = "runWindowFn();";
10
+ export { initRouterDataAttrs, mergeLoaderDataStr, modernInline, preResolvedFnStr, resolveFnStr, runRouterDataFnStr, runWindowFnStr, setupFnStr };
@@ -0,0 +1,4 @@
1
+ import { createSyncHook } from "@modern-js/plugin";
2
+ const modifyRoutes = createSyncHook();
3
+ const onBeforeCreateRoutes = createSyncHook();
4
+ export { modifyRoutes, onBeforeCreateRoutes };
@@ -0,0 +1,9 @@
1
+ import { useRouteLoaderData } from "@modern-js/runtime-utils/router";
2
+ import { Link, NavLink } from "./PrefetchLink";
3
+ export * from "@modern-js/runtime-utils/router";
4
+ export * from "./withRouter";
5
+ const runtime_useRouteLoaderData = (routeId)=>{
6
+ const realRouteId = routeId.replace(/\[(.*?)\]/g, '($1)');
7
+ return useRouteLoaderData(realRouteId);
8
+ };
9
+ export { Link, NavLink, runtime_useRouteLoaderData as useRouteLoaderData };
@@ -0,0 +1,4 @@
1
+ import { modifyRoutes, routerPlugin } from "./plugin";
2
+ import { renderRoutes } from "./utils";
3
+ const internal = routerPlugin;
4
+ export { internal as default, modifyRoutes, renderRoutes, routerPlugin };
@@ -0,0 +1,181 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { merge } from "@modern-js/runtime-utils/merge";
3
+ import { RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, useHref, useLocation, useMatches } from "@modern-js/runtime-utils/router";
4
+ import { normalizePathname } from "@modern-js/runtime-utils/url";
5
+ import { InternalRuntimeContext, getGlobalIsRscClient, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context";
6
+ import { modifyRoutes, onBeforeCreateRoutes } from "./hooks";
7
+ import { createClientRouterFromPayload } from "./rsc-router";
8
+ import { createRouteObjectsFromConfig, deserializeErrors, renderRoutes, urlJoin } from "./utils";
9
+ import * as __rspack_external_react from "react";
10
+ let finalRouteConfig = {
11
+ routes: []
12
+ };
13
+ let beforeCreateRouter = true;
14
+ function plugin_modifyRoutes(modifyFunction) {
15
+ if (beforeCreateRouter) {
16
+ const { routes: originRoutes } = finalRouteConfig;
17
+ const newRoutes = modifyFunction(originRoutes);
18
+ finalRouteConfig.routes = newRoutes;
19
+ } else console.error('It is not allowed to modify routes config after create router.');
20
+ }
21
+ const routerPlugin = (userConfig = {})=>({
22
+ name: '@modern-js/plugin-router',
23
+ registryHooks: {
24
+ modifyRoutes: modifyRoutes,
25
+ onBeforeCreateRoutes: onBeforeCreateRoutes
26
+ },
27
+ setup: (api)=>{
28
+ const routesContainer = {
29
+ current: []
30
+ };
31
+ api.onBeforeRender((context)=>{
32
+ if (window._SSR_DATA && userConfig.unstable_reloadOnURLMismatch) {
33
+ const { ssrContext } = context;
34
+ const currentPathname = normalizePathname(window.location.pathname);
35
+ const initialPathname = ssrContext?.request?.pathname && normalizePathname(ssrContext.request.pathname);
36
+ if (initialPathname && initialPathname !== currentPathname) {
37
+ const errorMsg = `The initial URL ${initialPathname} and the URL ${currentPathname} to be hydrated do not match, reload.`;
38
+ console.error(errorMsg);
39
+ window.location.reload();
40
+ }
41
+ }
42
+ context.router = {
43
+ useMatches: useMatches,
44
+ useLocation: useLocation,
45
+ useHref: useHref
46
+ };
47
+ Object.defineProperty(context, 'routes', {
48
+ get () {
49
+ return routesContainer.current;
50
+ },
51
+ enumerable: true
52
+ });
53
+ });
54
+ api.wrapRoot((App)=>{
55
+ const mergedConfig = merge(api.getRuntimeConfig().router || {}, userConfig);
56
+ const { serverBase = [], supportHtml5History = true, basename = '', routesConfig, createRoutes } = mergedConfig;
57
+ finalRouteConfig = {
58
+ routes: getGlobalRoutes(),
59
+ globalApp: getGlobalLayoutApp(),
60
+ ...routesConfig
61
+ };
62
+ if (!finalRouteConfig.routes && !createRoutes) return App;
63
+ const selectBasePath = (pathname)=>{
64
+ const match = serverBase.find((baseUrl)=>isSegmentPrefix(pathname, baseUrl));
65
+ return match || '/';
66
+ };
67
+ let cachedRouter = null;
68
+ const RouterWrapper = (props)=>{
69
+ const routerResult = useRouterCreation({
70
+ ...props,
71
+ rscPayload: props?.rscPayload
72
+ }, {
73
+ api: api,
74
+ createRoutes,
75
+ supportHtml5History,
76
+ selectBasePath,
77
+ basename
78
+ });
79
+ const router = (0, __rspack_external_react.useMemo)(()=>{
80
+ if (cachedRouter) return cachedRouter;
81
+ cachedRouter = routerResult.router;
82
+ return cachedRouter;
83
+ }, []);
84
+ const { routes } = routerResult;
85
+ routesContainer.current = routes;
86
+ beforeCreateRouter = false;
87
+ const RouterContent = ()=>/*#__PURE__*/ jsxs(Fragment, {
88
+ children: [
89
+ /*#__PURE__*/ jsx(RouterProvider, {
90
+ router: router
91
+ }),
92
+ /*#__PURE__*/ jsx(EmptyComponent, {}),
93
+ /*#__PURE__*/ jsx(EmptyComponent, {})
94
+ ]
95
+ });
96
+ return App ? /*#__PURE__*/ jsx(App, {
97
+ children: /*#__PURE__*/ jsx(RouterContent, {})
98
+ }) : /*#__PURE__*/ jsx(RouterContent, {});
99
+ };
100
+ return RouterWrapper;
101
+ });
102
+ }
103
+ });
104
+ const EmptyComponent = ()=>null;
105
+ const safeUse = (promise)=>{
106
+ const useProp = 'use';
107
+ const useHook = __rspack_external_react && __rspack_external_react[useProp];
108
+ if ('function' == typeof useHook) return useHook(promise);
109
+ return null;
110
+ };
111
+ function normalizeBase(b) {
112
+ if (b.length > 1 && b.endsWith('/')) return b.slice(0, -1);
113
+ return b || '/';
114
+ }
115
+ function isSegmentPrefix(pathname, base) {
116
+ const b = normalizeBase(base);
117
+ const p = pathname || '/';
118
+ return p === b || p.startsWith(`${b}/`);
119
+ }
120
+ function useRouterCreation(props, options) {
121
+ const { api, createRoutes, supportHtml5History, selectBasePath, basename } = options;
122
+ const runtimeContext = (0, __rspack_external_react.useContext)(InternalRuntimeContext);
123
+ const baseUrl = selectBasePath(location.pathname).replace(/^\/*/, '/');
124
+ const _basename = '/' === baseUrl ? urlJoin(baseUrl, runtimeContext._internalRouterBaseName || basename || '') : baseUrl;
125
+ const { unstable_getBlockNavState: getBlockNavState } = runtimeContext;
126
+ const rscPayload = props?.rscPayload ? safeUse(props.rscPayload) : null;
127
+ let hydrationData = window._ROUTER_DATA || rscPayload;
128
+ return (0, __rspack_external_react.useMemo)(()=>{
129
+ if (hydrationData?.errors) hydrationData = {
130
+ ...hydrationData,
131
+ errors: deserializeErrors(hydrationData.errors)
132
+ };
133
+ const isRscClient = getGlobalIsRscClient();
134
+ let routes = null;
135
+ routes = isRscClient ? createRoutes ? createRoutes() : createRouteObjectsFromConfig({
136
+ routesConfig: finalRouteConfig
137
+ }) : createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
138
+ routesConfig: finalRouteConfig,
139
+ props
140
+ }));
141
+ if (!routes) routes = [];
142
+ const hooks = api.getHooks();
143
+ if (rscPayload) try {
144
+ const router = createClientRouterFromPayload(rscPayload, routes, _basename);
145
+ return {
146
+ router,
147
+ routes: router.routes || []
148
+ };
149
+ } catch (e) {
150
+ console.error('Failed to create router from RSC payload:', e);
151
+ }
152
+ const modifiedRoutes = hooks.modifyRoutes.call(routes);
153
+ const router = supportHtml5History ? createBrowserRouter(modifiedRoutes, {
154
+ basename: _basename,
155
+ hydrationData
156
+ }) : createHashRouter(modifiedRoutes, {
157
+ basename: _basename,
158
+ hydrationData
159
+ });
160
+ const originSubscribe = router.subscribe;
161
+ router.subscribe = (listener)=>{
162
+ const wrappedListener = (...args)=>{
163
+ const blockRoute = getBlockNavState ? getBlockNavState() : false;
164
+ if (blockRoute) return;
165
+ return listener(...args);
166
+ };
167
+ return originSubscribe(wrappedListener);
168
+ };
169
+ return {
170
+ router,
171
+ routes: modifiedRoutes
172
+ };
173
+ }, [
174
+ finalRouteConfig,
175
+ props,
176
+ _basename,
177
+ hydrationData,
178
+ getBlockNavState
179
+ ]);
180
+ }
181
+ export { beforeCreateRouter, finalRouteConfig, plugin_modifyRoutes as modifyRoutes, routerPlugin };
@@ -0,0 +1,136 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { merge } from "@modern-js/runtime-utils/merge";
3
+ import { createRequestContext } from "@modern-js/runtime-utils/node";
4
+ import { StaticRouterProvider, createRoutesFromElements, createStaticHandler, createStaticRouter } from "@modern-js/runtime-utils/router";
5
+ import { time } from "@modern-js/runtime-utils/time";
6
+ import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
7
+ import { useContext } from "react";
8
+ import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalLayoutApp, getGlobalRoutes } from "../../core/context";
9
+ import { setServerPayload } from "../../core/context/serverPayload/index.server.mjs";
10
+ import DeferredDataScripts_node from "./DeferredDataScripts.node.mjs";
11
+ import { modifyRoutes, onBeforeCreateRoutes } from "./hooks";
12
+ import { RSCStaticRouter, createServerPayload, handleRSCRedirect, prepareRSCRoutes } from "./rsc-router";
13
+ import { createRouteObjectsFromConfig, renderRoutes, urlJoin } from "./utils";
14
+ function createRemixReuqest(request) {
15
+ const method = 'GET';
16
+ const { headers } = request;
17
+ const controller = new AbortController();
18
+ return new Request(request.url, {
19
+ method,
20
+ headers,
21
+ signal: controller.signal
22
+ });
23
+ }
24
+ const routerPlugin = (userConfig = {})=>({
25
+ name: '@modern-js/plugin-router',
26
+ registryHooks: {
27
+ modifyRoutes: modifyRoutes,
28
+ onBeforeCreateRoutes: onBeforeCreateRoutes
29
+ },
30
+ setup: (api)=>{
31
+ let finalRouteConfig = {};
32
+ api.onBeforeRender(async (context, interrupt)=>{
33
+ const pluginConfig = api.getRuntimeConfig();
34
+ const { basename = '', routesConfig, createRoutes } = merge(pluginConfig.router || {}, userConfig);
35
+ finalRouteConfig = {
36
+ routes: getGlobalRoutes(),
37
+ globalApp: getGlobalLayoutApp(),
38
+ ...routesConfig
39
+ };
40
+ if (!finalRouteConfig.routes && !createRoutes) return;
41
+ const enableRsc = getGlobalEnableRsc();
42
+ if (enableRsc) await prepareRSCRoutes(finalRouteConfig.routes);
43
+ const { request, mode: ssrMode, nonce, loaderFailureMode = 'errorBoundary', baseUrl } = context.ssrContext;
44
+ const _basename = '/' === baseUrl ? urlJoin(baseUrl, basename) : baseUrl;
45
+ const requestContext = createRequestContext(context.ssrContext?.loaderContext);
46
+ const hooks = api.getHooks();
47
+ await hooks.onBeforeCreateRoutes.call(context);
48
+ let routes = [];
49
+ routes = enableRsc ? createRoutes ? createRoutes() : createRouteObjectsFromConfig({
50
+ routesConfig: finalRouteConfig
51
+ }) : createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
52
+ routesConfig: finalRouteConfig,
53
+ ssrMode,
54
+ props: {
55
+ nonce
56
+ }
57
+ }));
58
+ routes = hooks.modifyRoutes.call(routes);
59
+ const { query } = createStaticHandler(routes, {
60
+ basename: _basename
61
+ });
62
+ const remixRequest = createRemixReuqest(context.ssrContext.request.raw);
63
+ const end = time();
64
+ const routerContext = await query(remixRequest, {
65
+ requestContext
66
+ });
67
+ const cost = end();
68
+ context.ssrContext?.onTiming?.(LOADER_REPORTER_NAME, cost);
69
+ const isRSCNavigation = 'true' === remixRequest.headers.get('x-rsc-tree');
70
+ if (routerContext instanceof Response) if (enableRsc && isRSCNavigation) return interrupt(handleRSCRedirect(routerContext.headers, _basename, routerContext.status));
71
+ else return interrupt(routerContext);
72
+ const errors = Object.values(routerContext.errors || {});
73
+ if (errors.length > 0 && 'clientRender' === loaderFailureMode) {
74
+ routerContext.statusCode = 200;
75
+ throw errors[0];
76
+ }
77
+ context.routerContext = routerContext;
78
+ let payload;
79
+ if (enableRsc) {
80
+ if (isRSCNavigation) {
81
+ for (const match of routerContext.matches)if (match.route.hasClientLoader) delete routerContext.loaderData[match.route.id];
82
+ }
83
+ payload = createServerPayload(routerContext, routes);
84
+ setServerPayload(payload);
85
+ }
86
+ Object.defineProperty(context, 'routes', {
87
+ get () {
88
+ return routes;
89
+ },
90
+ enumerable: true
91
+ });
92
+ });
93
+ api.wrapRoot((App)=>{
94
+ if (!finalRouteConfig) return App;
95
+ const getRouteApp = ()=>{
96
+ const enableRsc = getGlobalEnableRsc();
97
+ return (props)=>{
98
+ const context = useContext(InternalRuntimeContext);
99
+ const { routerContext, ssrContext, routes } = context;
100
+ const { nonce, mode, useJsonScript } = ssrContext;
101
+ const { basename } = routerContext;
102
+ const remixRouter = createStaticRouter(routes, routerContext);
103
+ if (enableRsc) return App ? /*#__PURE__*/ jsx(App, {
104
+ children: /*#__PURE__*/ jsx(RSCStaticRouter, {
105
+ basename: basename
106
+ })
107
+ }) : /*#__PURE__*/ jsx(RSCStaticRouter, {
108
+ basename: basename
109
+ });
110
+ {
111
+ const routerWrapper = /*#__PURE__*/ jsxs(Fragment, {
112
+ children: [
113
+ /*#__PURE__*/ jsx(StaticRouterProvider, {
114
+ router: remixRouter,
115
+ context: routerContext,
116
+ hydrate: false
117
+ }),
118
+ 'stream' === mode && /*#__PURE__*/ jsx(DeferredDataScripts_node, {
119
+ nonce: nonce,
120
+ context: routerContext,
121
+ useJsonScript: useJsonScript
122
+ })
123
+ ]
124
+ });
125
+ return App ? /*#__PURE__*/ jsx(App, {
126
+ children: routerWrapper
127
+ }) : routerWrapper;
128
+ }
129
+ };
130
+ };
131
+ return getRouteApp();
132
+ });
133
+ }
134
+ });
135
+ const plugin_node_modifyRoutes = ()=>{};
136
+ export { plugin_node_modifyRoutes as modifyRoutes, routerPlugin };
@@ -0,0 +1,15 @@
1
+ import { ROUTE_MODULES } from "@modern-js/utils/universal/constants";
2
+ const createShouldRevalidate = (routeId)=>(arg)=>{
3
+ const routeModule = window?.[ROUTE_MODULES]?.[routeId];
4
+ if (routeModule && 'function' == typeof routeModule.shouldRevalidate) return routeModule.shouldRevalidate(arg);
5
+ return arg.defaultShouldRevalidate;
6
+ };
7
+ const handleRouteModule = (routeModule, routeId)=>{
8
+ if ("u" > typeof document) window[ROUTE_MODULES][routeId] = routeModule;
9
+ return routeModule;
10
+ };
11
+ const handleRouteModuleError = (error)=>{
12
+ console.error(error);
13
+ return null;
14
+ };
15
+ export { createShouldRevalidate, handleRouteModule, handleRouteModuleError };