@bleedingdev/modern-js-runtime 3.2.0-ultramodern.99 → 3.4.0-ultramodern.0

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 (322) hide show
  1. package/dist/cjs/boundary-debugger/index.js +19 -11
  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 +20 -5
  8. package/dist/cjs/cli/ssr/index.js +9 -5
  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 +9 -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/extensions.js +69 -0
  23. package/dist/cjs/core/context/helmetContext.js +54 -0
  24. package/dist/cjs/core/context/index.js +74 -5
  25. package/dist/cjs/core/context/monitors/default.js +12 -8
  26. package/dist/cjs/core/context/monitors/index.js +9 -5
  27. package/dist/cjs/core/context/monitors/index.server.js +9 -5
  28. package/dist/cjs/core/context/request/index.js +12 -8
  29. package/dist/cjs/core/context/request/index.server.js +9 -5
  30. package/dist/cjs/core/context/response/index.js +15 -11
  31. package/dist/cjs/core/context/response/index.server.js +9 -5
  32. package/dist/cjs/core/context/runtime.js +9 -5
  33. package/dist/cjs/core/context/serverPayload/index.js +13 -9
  34. package/dist/cjs/core/context/serverPayload/index.server.js +9 -5
  35. package/dist/cjs/core/index.js +9 -5
  36. package/dist/cjs/core/plugin/index.js +9 -5
  37. package/dist/cjs/core/react/index.js +9 -5
  38. package/dist/cjs/core/react/wrapper.js +15 -9
  39. package/dist/cjs/core/server/constants.js +15 -11
  40. package/dist/cjs/core/server/federatedCss.js +11 -7
  41. package/dist/cjs/core/server/helmet.js +11 -6
  42. package/dist/cjs/core/server/index.js +9 -5
  43. package/dist/cjs/core/server/react/index.js +9 -5
  44. package/dist/cjs/core/server/react/no-ssr-cache/index.js +9 -5
  45. package/dist/cjs/core/server/react/nossr/index.js +9 -5
  46. package/dist/cjs/core/server/requestHandler.js +51 -34
  47. package/dist/cjs/core/server/routerCleanup.js +110 -0
  48. package/dist/cjs/core/server/scriptOrder.js +84 -9
  49. package/dist/cjs/core/server/server.js +9 -5
  50. package/dist/cjs/core/server/shared.js +12 -8
  51. package/dist/cjs/core/server/stream/afterTemplate.js +15 -23
  52. package/dist/cjs/core/server/stream/beforeTemplate.js +11 -7
  53. package/dist/cjs/core/server/stream/beforeTemplate.worker.js +10 -6
  54. package/dist/cjs/core/server/stream/createReadableStream.js +16 -10
  55. package/dist/cjs/core/server/stream/createReadableStream.worker.js +15 -7
  56. package/dist/cjs/core/server/stream/deferredScript.js +13 -6
  57. package/dist/cjs/core/server/stream/index.js +9 -5
  58. package/dist/cjs/core/server/stream/shared.js +9 -5
  59. package/dist/cjs/core/server/stream/template.js +9 -5
  60. package/dist/cjs/core/server/string/index.js +10 -12
  61. package/dist/cjs/core/server/string/loadable.js +24 -54
  62. package/dist/cjs/core/server/string/ssrData.js +10 -6
  63. package/dist/cjs/core/server/tracer.js +13 -9
  64. package/dist/cjs/core/server/utils.js +63 -13
  65. package/dist/cjs/document/Body.js +9 -5
  66. package/dist/cjs/document/Comment.js +9 -5
  67. package/dist/cjs/document/DocumentContext.js +9 -5
  68. package/dist/cjs/document/DocumentStructureContext.js +9 -5
  69. package/dist/cjs/document/Head.js +9 -5
  70. package/dist/cjs/document/Html.js +9 -5
  71. package/dist/cjs/document/Links.js +9 -5
  72. package/dist/cjs/document/Root.js +9 -5
  73. package/dist/cjs/document/Script.js +9 -5
  74. package/dist/cjs/document/Scripts.js +9 -5
  75. package/dist/cjs/document/Style.js +9 -5
  76. package/dist/cjs/document/Title.js +9 -5
  77. package/dist/cjs/document/cli/index.js +14 -11
  78. package/dist/cjs/document/constants.js +9 -5
  79. package/dist/cjs/document/index.js +9 -5
  80. package/dist/cjs/exports/config-routes.js +12 -8
  81. package/dist/cjs/exports/head.js +153 -83
  82. package/dist/cjs/exports/loadable.js +27 -18
  83. package/dist/cjs/exports/tanstack-router.js +50 -58
  84. package/dist/cjs/index.js +9 -5
  85. package/dist/cjs/internal.js +9 -5
  86. package/dist/cjs/module-federation/index.js +178 -0
  87. package/dist/cjs/react-server.js +9 -5
  88. package/dist/cjs/router/cli/code/getClientRoutes/getRoutes.js +9 -5
  89. package/dist/cjs/router/cli/code/getClientRoutes/index.js +9 -5
  90. package/dist/cjs/router/cli/code/getClientRoutes/utils.js +9 -5
  91. package/dist/cjs/router/cli/code/index.js +16 -52
  92. package/dist/cjs/router/cli/code/inspect.js +9 -5
  93. package/dist/cjs/router/cli/code/makeLegalIdentifier.js +12 -8
  94. package/dist/cjs/router/cli/code/nestedRoutes.js +9 -5
  95. package/dist/cjs/router/cli/code/templates.js +10 -19
  96. package/dist/cjs/router/cli/code/utils.js +9 -5
  97. package/dist/cjs/router/cli/config-routes/converter.js +9 -5
  98. package/dist/cjs/router/cli/config-routes/parseRouteConfig.js +9 -5
  99. package/dist/cjs/router/cli/constants.js +23 -19
  100. package/dist/cjs/router/cli/entry.js +9 -5
  101. package/dist/cjs/router/cli/handler.js +10 -6
  102. package/dist/cjs/router/cli/index.js +11 -29
  103. package/dist/cjs/router/index.js +9 -5
  104. package/dist/cjs/router/internal.js +12 -8
  105. package/dist/cjs/router/runtime/CSSLinks.js +9 -5
  106. package/dist/cjs/router/runtime/DefaultNotFound.js +9 -5
  107. package/dist/cjs/router/runtime/DeferredDataScripts.js +12 -8
  108. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +25 -9
  109. package/dist/cjs/router/runtime/PrefetchLink.js +161 -26
  110. package/dist/cjs/router/runtime/constants.js +9 -5
  111. package/dist/cjs/router/runtime/hooks.js +9 -5
  112. package/dist/cjs/router/runtime/index.js +15 -10
  113. package/dist/cjs/router/runtime/internal.js +29 -18
  114. package/dist/cjs/router/runtime/lifecycle.js +38 -19
  115. package/dist/cjs/router/runtime/plugin.js +11 -14
  116. package/dist/cjs/router/runtime/plugin.node.js +11 -12
  117. package/dist/cjs/router/runtime/provider.js +107 -0
  118. package/dist/cjs/router/runtime/routerHelper.js +9 -5
  119. package/dist/cjs/router/runtime/rsc-router.js +19 -9
  120. package/dist/cjs/router/runtime/rsc.js +9 -5
  121. package/dist/cjs/router/runtime/server.js +9 -5
  122. package/dist/cjs/router/runtime/utils.js +44 -15
  123. package/dist/cjs/router/runtime/withRouter.js +9 -5
  124. package/dist/cjs/rsc/client.js +12 -8
  125. package/dist/cjs/rsc/server.js +9 -5
  126. package/dist/cjs/rsc/server.worker.js +9 -5
  127. package/dist/esm/boundary-debugger/index.mjs +10 -6
  128. package/dist/esm/cli/index.mjs +4 -2
  129. package/dist/esm/core/context/extensions.mjs +28 -0
  130. package/dist/esm/core/context/helmetContext.mjs +13 -0
  131. package/dist/esm/core/context/index.mjs +5 -0
  132. package/dist/esm/core/react/wrapper.mjs +6 -4
  133. package/dist/esm/core/server/federatedCss.mjs +2 -2
  134. package/dist/esm/core/server/helmet.mjs +2 -1
  135. package/dist/esm/core/server/requestHandler.mjs +43 -30
  136. package/dist/esm/core/server/routerCleanup.mjs +66 -0
  137. package/dist/esm/core/server/scriptOrder.mjs +62 -3
  138. package/dist/esm/core/server/stream/afterTemplate.mjs +8 -20
  139. package/dist/esm/core/server/stream/beforeTemplate.mjs +3 -3
  140. package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +1 -1
  141. package/dist/esm/core/server/stream/createReadableStream.mjs +7 -5
  142. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +6 -2
  143. package/dist/esm/core/server/stream/deferredScript.mjs +4 -1
  144. package/dist/esm/core/server/string/index.mjs +3 -9
  145. package/dist/esm/core/server/string/loadable.mjs +14 -48
  146. package/dist/esm/core/server/string/ssrData.mjs +2 -2
  147. package/dist/esm/core/server/utils.mjs +52 -9
  148. package/dist/esm/document/cli/index.mjs +5 -6
  149. package/dist/esm/exports/head.mjs +144 -78
  150. package/dist/esm/exports/loadable.mjs +12 -6
  151. package/dist/esm/exports/tanstack-router.mjs +30 -3
  152. package/dist/esm/module-federation/index.mjs +109 -0
  153. package/dist/esm/router/cli/code/index.mjs +8 -48
  154. package/dist/esm/router/cli/code/templates.mjs +1 -14
  155. package/dist/esm/router/cli/handler.mjs +1 -1
  156. package/dist/esm/router/cli/index.mjs +3 -25
  157. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +16 -4
  158. package/dist/esm/router/runtime/PrefetchLink.mjs +152 -21
  159. package/dist/esm/router/runtime/internal.mjs +16 -15
  160. package/dist/esm/router/runtime/lifecycle.mjs +22 -13
  161. package/dist/esm/router/runtime/plugin.mjs +4 -11
  162. package/dist/esm/router/runtime/plugin.node.mjs +4 -9
  163. package/dist/esm/router/runtime/provider.mjs +57 -0
  164. package/dist/esm/router/runtime/rsc-router.mjs +10 -4
  165. package/dist/esm/router/runtime/utils.mjs +35 -10
  166. package/dist/esm-node/boundary-debugger/index.mjs +10 -6
  167. package/dist/esm-node/cli/index.mjs +4 -2
  168. package/dist/esm-node/core/context/extensions.mjs +29 -0
  169. package/dist/esm-node/core/context/helmetContext.mjs +14 -0
  170. package/dist/esm-node/core/context/index.mjs +5 -0
  171. package/dist/esm-node/core/react/wrapper.mjs +6 -4
  172. package/dist/esm-node/core/server/federatedCss.mjs +2 -2
  173. package/dist/esm-node/core/server/helmet.mjs +2 -1
  174. package/dist/esm-node/core/server/requestHandler.mjs +43 -30
  175. package/dist/esm-node/core/server/routerCleanup.mjs +67 -0
  176. package/dist/esm-node/core/server/scriptOrder.mjs +62 -3
  177. package/dist/esm-node/core/server/stream/afterTemplate.mjs +8 -20
  178. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +3 -3
  179. package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +1 -1
  180. package/dist/esm-node/core/server/stream/createReadableStream.mjs +7 -5
  181. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +6 -2
  182. package/dist/esm-node/core/server/stream/deferredScript.mjs +4 -1
  183. package/dist/esm-node/core/server/string/index.mjs +3 -9
  184. package/dist/esm-node/core/server/string/loadable.mjs +14 -48
  185. package/dist/esm-node/core/server/string/ssrData.mjs +2 -2
  186. package/dist/esm-node/core/server/utils.mjs +52 -9
  187. package/dist/esm-node/document/cli/index.mjs +5 -6
  188. package/dist/esm-node/exports/head.mjs +144 -78
  189. package/dist/esm-node/exports/loadable.mjs +12 -6
  190. package/dist/esm-node/exports/tanstack-router.mjs +30 -3
  191. package/dist/esm-node/module-federation/index.mjs +110 -0
  192. package/dist/esm-node/router/cli/code/index.mjs +8 -48
  193. package/dist/esm-node/router/cli/code/templates.mjs +1 -14
  194. package/dist/esm-node/router/cli/handler.mjs +1 -1
  195. package/dist/esm-node/router/cli/index.mjs +3 -25
  196. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +16 -4
  197. package/dist/esm-node/router/runtime/PrefetchLink.mjs +152 -21
  198. package/dist/esm-node/router/runtime/internal.mjs +16 -15
  199. package/dist/esm-node/router/runtime/lifecycle.mjs +22 -13
  200. package/dist/esm-node/router/runtime/plugin.mjs +4 -11
  201. package/dist/esm-node/router/runtime/plugin.node.mjs +4 -9
  202. package/dist/esm-node/router/runtime/provider.mjs +58 -0
  203. package/dist/esm-node/router/runtime/rsc-router.mjs +10 -4
  204. package/dist/esm-node/router/runtime/utils.mjs +35 -10
  205. package/dist/types/cli/entry.d.ts +2 -2
  206. package/dist/types/cli/index.d.ts +3 -1
  207. package/dist/types/core/context/extensions.d.ts +37 -0
  208. package/dist/types/core/context/helmetContext.d.ts +10 -0
  209. package/dist/types/core/context/index.d.ts +6 -0
  210. package/dist/types/core/context/response/index.server.d.ts +4 -1
  211. package/dist/types/core/context/runtime.d.ts +1 -11
  212. package/dist/types/core/plugin/index.d.ts +1 -1
  213. package/dist/types/core/server/routerCleanup.d.ts +28 -0
  214. package/dist/types/core/server/scriptOrder.d.ts +24 -0
  215. package/dist/types/core/server/string/loadable.d.ts +1 -7
  216. package/dist/types/core/server/utils.d.ts +19 -1
  217. package/dist/types/document/constants.d.ts +3 -1
  218. package/dist/types/exports/head.d.ts +4 -4
  219. package/dist/types/exports/loadable.d.ts +1 -1
  220. package/dist/types/exports/tanstack-router.d.ts +88 -5
  221. package/dist/types/module-federation/index.d.ts +65 -0
  222. package/dist/types/router/cli/code/index.d.ts +1 -3
  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/cli/handler.d.ts +0 -3
  226. package/dist/types/router/runtime/DeferredDataScripts.d.ts +1 -1
  227. package/dist/types/router/runtime/PrefetchLink.d.ts +5 -1
  228. package/dist/types/router/runtime/internal.d.ts +1 -0
  229. package/dist/types/router/runtime/lifecycle.d.ts +2 -0
  230. package/dist/types/router/runtime/plugin.d.ts +1 -1
  231. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  232. package/dist/types/router/runtime/provider.d.ts +61 -0
  233. package/package.json +34 -26
  234. package/rstest.config.mts +2 -4
  235. package/dist/cjs/router/cli/code/tanstackTypes.js +0 -443
  236. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +0 -62
  237. package/dist/cjs/router/runtime/tanstack/dataMutation.js +0 -345
  238. package/dist/cjs/router/runtime/tanstack/hydrationBoundary.js +0 -43
  239. package/dist/cjs/router/runtime/tanstack/plugin.js +0 -240
  240. package/dist/cjs/router/runtime/tanstack/plugin.node.js +0 -268
  241. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +0 -55
  242. package/dist/cjs/router/runtime/tanstack/routeTree.js +0 -510
  243. package/dist/cjs/router/runtime/tanstack/rsc/ClientSlot.js +0 -53
  244. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +0 -75
  245. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +0 -141
  246. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +0 -65
  247. package/dist/cjs/router/runtime/tanstack/rsc/SlotContext.js +0 -54
  248. package/dist/cjs/router/runtime/tanstack/rsc/client.js +0 -93
  249. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +0 -141
  250. package/dist/cjs/router/runtime/tanstack/rsc/index.js +0 -42
  251. package/dist/cjs/router/runtime/tanstack/rsc/server.js +0 -246
  252. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +0 -65
  253. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +0 -72
  254. package/dist/cjs/ssr/index.node.js +0 -121
  255. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -84
  256. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -196
  257. package/dist/cjs/ssr/serverRender/types.js +0 -36
  258. package/dist/esm/router/cli/code/tanstackTypes.mjs +0 -396
  259. package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +0 -28
  260. package/dist/esm/router/runtime/tanstack/dataMutation.mjs +0 -305
  261. package/dist/esm/router/runtime/tanstack/hydrationBoundary.mjs +0 -9
  262. package/dist/esm/router/runtime/tanstack/plugin.mjs +0 -206
  263. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +0 -234
  264. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +0 -18
  265. package/dist/esm/router/runtime/tanstack/routeTree.mjs +0 -470
  266. package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -19
  267. package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -41
  268. package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -104
  269. package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -31
  270. package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +0 -17
  271. package/dist/esm/router/runtime/tanstack/rsc/client.mjs +0 -53
  272. package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -107
  273. package/dist/esm/router/runtime/tanstack/rsc/index.mjs +0 -1
  274. package/dist/esm/router/runtime/tanstack/rsc/server.mjs +0 -200
  275. package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -31
  276. package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +0 -17
  277. package/dist/esm/ssr/index.node.mjs +0 -44
  278. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -50
  279. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +0 -151
  280. package/dist/esm/ssr/serverRender/types.mjs +0 -1
  281. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +0 -397
  282. package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +0 -29
  283. package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +0 -306
  284. package/dist/esm-node/router/runtime/tanstack/hydrationBoundary.mjs +0 -10
  285. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +0 -207
  286. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +0 -235
  287. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +0 -19
  288. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +0 -471
  289. package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -20
  290. package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -42
  291. package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -105
  292. package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -32
  293. package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +0 -18
  294. package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +0 -54
  295. package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -108
  296. package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +0 -2
  297. package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +0 -201
  298. package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -32
  299. package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +0 -18
  300. package/dist/esm-node/ssr/index.node.mjs +0 -45
  301. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -51
  302. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +0 -152
  303. package/dist/esm-node/ssr/serverRender/types.mjs +0 -2
  304. package/dist/types/router/cli/code/tanstackTypes.d.ts +0 -10
  305. package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +0 -8
  306. package/dist/types/router/runtime/tanstack/dataMutation.d.ts +0 -29
  307. package/dist/types/router/runtime/tanstack/hydrationBoundary.d.ts +0 -2
  308. package/dist/types/router/runtime/tanstack/plugin.d.ts +0 -6
  309. package/dist/types/router/runtime/tanstack/plugin.node.d.ts +0 -6
  310. package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +0 -11
  311. package/dist/types/router/runtime/tanstack/routeTree.d.ts +0 -8
  312. package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +0 -5
  313. package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +0 -3
  314. package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +0 -24
  315. package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +0 -5
  316. package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +0 -11
  317. package/dist/types/router/runtime/tanstack/rsc/client.d.ts +0 -11
  318. package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +0 -7
  319. package/dist/types/router/runtime/tanstack/rsc/index.d.ts +0 -2
  320. package/dist/types/router/runtime/tanstack/rsc/server.d.ts +0 -14
  321. package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +0 -2
  322. package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +0 -46
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Fork-owned runtime-context extension mechanism.
3
+ *
4
+ * Plugins must not add ad-hoc fields to `TRuntimeContext` /
5
+ * `TInternalRuntimeContext`. Instead they store state in a single internal
6
+ * slot (a `Map` keyed by symbol) attached to the context object under a
7
+ * symbol property, so nothing leaks into string-key enumeration
8
+ * (`Object.keys`, `JSON.stringify`, `{ ...context }` rest patterns over
9
+ * named keys).
10
+ *
11
+ * `Symbol.for` is used for both the slot and the extension keys so that the
12
+ * mechanism stays coherent even if this module is instantiated twice
13
+ * (e.g. esm/cjs interop in test runners).
14
+ */
15
+ export interface RuntimeContextExtension<T> {
16
+ /** Stable identity of this extension. */
17
+ readonly key: symbol;
18
+ get(context: object): T | undefined;
19
+ set(context: object, value: T): void;
20
+ remove(context: object): void;
21
+ }
22
+ /**
23
+ * Removes the extension slot from a context object.
24
+ *
25
+ * The slot is an enumerable symbol-keyed property, so object spreads copy it
26
+ * onto derived objects. Call this on *copies* that form the public
27
+ * `RuntimeContext` value to keep internal state (router instances, helmet
28
+ * state, ...) unreachable from the public context object.
29
+ */
30
+ export declare function stripRuntimeContextExtensions(context: object): void;
31
+ /**
32
+ * Creates a typed accessor pair over the shared extension slot.
33
+ *
34
+ * The `id` must be globally unique (it is interned via `Symbol.for`); use a
35
+ * package-prefixed name such as `@modern-js/plugin-tanstack:router-state`.
36
+ */
37
+ export declare function createRuntimeContextExtension<T>(id: string): RuntimeContextExtension<T>;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Fork-owned helmet state, stored via the runtime-context extension slot
3
+ * instead of an ad-hoc `_helmetContext` field on `TInternalRuntimeContext`.
4
+ */
5
+ import type { HelmetServerState } from 'react-helmet-async';
6
+ export interface HelmetContextSlot {
7
+ helmet?: HelmetServerState | null;
8
+ }
9
+ export declare function getHelmetContext(context: object): HelmetContextSlot | undefined;
10
+ export declare function ensureHelmetContext(context: object): HelmetContextSlot;
@@ -3,6 +3,12 @@ import type { NestedRoute, PageRoute } from '@modern-js/types';
3
3
  import type React from 'react';
4
4
  import type { RuntimeExtends } from '../plugin/types';
5
5
  import type { ServerPayload } from './serverPayload/index';
6
+ export { DefaultNotFound } from '../../router/runtime/DefaultNotFound';
7
+ export { modifyRoutes, onAfterCreateRouter, onAfterHydrateRouter, onBeforeCreateRouter, onBeforeCreateRoutes, onBeforeHydrateRouter, type RouterExtendsHooks, } from '../../router/runtime/hooks';
8
+ export { applyRouterRuntimeState, applyRouterServerPrepareResult, cleanupRouterRuntimeState, createRouterRuntimeState, createRouterServerSnapshot, getRouterHydrationScripts, getRouterMatchedRouteIds, getRouterRuntimeState, getRouterServerSnapshot, type RouterLifecycleContext, type RouterLifecyclePhase, } from '../../router/runtime/lifecycle';
9
+ export { type RouterProviderFactory, type RouterProviderPlugin, registerRouterProvider, resolveRouterProvider, routerProviderRegistryHooks, } from '../../router/runtime/provider';
10
+ export type { BuiltInRouterFramework, InternalRouterRuntimeState, InternalRouterServerSnapshot, RouterFramework, RouterRouteMatchSnapshot, RouterServerPrepareResult, } from '../../router/runtime/types';
11
+ export { createRuntimeContextExtension, type RuntimeContextExtension, } from './extensions';
6
12
  export { getInitialContext, InternalRuntimeContext, RuntimeContext, type TInternalRuntimeContext, type TRuntimeContext, } from './runtime';
7
13
  export type { PayloadRoute, ServerPayload } from './serverPayload/index';
8
14
  interface GlobalContext {
@@ -1,4 +1,7 @@
1
- export declare const getResponseProxy: () => any;
1
+ export declare const getResponseProxy: () => {
2
+ headers: Record<string, string>;
3
+ status: number;
4
+ } | undefined;
2
5
  export declare const setHeaders: (headers: Record<string, string>) => void;
3
6
  export declare const setStatus: (status: number) => void;
4
7
  export declare const redirect: (url: string, init?: number | ResponseInit) => void;
@@ -1,12 +1,10 @@
1
1
  import type { RouteObject, StaticHandlerContext } from '@modern-js/runtime-utils/router';
2
- import type { HelmetServerState } from 'react-helmet-async';
3
- import type { InternalRouterRuntimeState, InternalRouterServerSnapshot, RouteManifest, RouterFramework } from '../../router/runtime/types';
2
+ import type { RouteManifest } from '../../router/runtime/types';
4
3
  import type { RequestContext, SSRServerContext } from '../types';
5
4
  export interface TRuntimeContext {
6
5
  initialData?: Record<string, unknown>;
7
6
  isBrowser: boolean;
8
7
  routes?: RouteObject[];
9
- routerFramework?: RouterFramework;
10
8
  requestContext: RequestContext;
11
9
  /**
12
10
  * @deprecated Use `requestContext` instead
@@ -19,19 +17,11 @@ export interface TRuntimeContext {
19
17
  */
20
18
  export interface TInternalRuntimeContext extends TRuntimeContext {
21
19
  routeManifest?: RouteManifest;
22
- routerRuntime?: InternalRouterRuntimeState;
23
- routerInstance?: unknown;
24
- routerHydrationScript?: string;
25
- routerMatchedRouteIds?: string[];
26
- routerServerSnapshot?: InternalRouterServerSnapshot;
27
20
  routerContext?: StaticHandlerContext;
28
21
  unstable_getBlockNavState?: () => boolean;
29
22
  ssrContext?: SSRServerContext;
30
23
  _internalContext?: any;
31
24
  _internalRouterBaseName?: any;
32
- _helmetContext?: {
33
- helmet?: HelmetServerState | null;
34
- };
35
25
  }
36
26
  export declare const InternalRuntimeContext: import("react").Context<TInternalRuntimeContext>;
37
27
  export declare const RuntimeContext: import("react").Context<TRuntimeContext>;
@@ -2,4 +2,4 @@ import type { InternalRuntimeContext } from '@modern-js/plugin/runtime';
2
2
  import type { RuntimeConfig, RuntimeExtends, RuntimePlugin } from './types';
3
3
  export type { RuntimePlugin };
4
4
  export declare function registerPlugin(internalPlugins: RuntimePlugin[], runtimeConfig?: RuntimeConfig): InternalRuntimeContext<RuntimeExtends>;
5
- export declare function mergeConfig(config: Record<string, any>, ...otherConfig: Record<string, any>[]): any;
5
+ export declare function mergeConfig(config: Record<string, any>, ...otherConfig: Record<string, any>[]): Record<string, any>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Fork-owned helper for the per-request router runtime cleanup.
3
+ *
4
+ * Router providers (react-router, @modern-js/plugin-tanstack, ...) register a
5
+ * `cleanup` callback in the router runtime state. For streamed SSR the
6
+ * Response is returned at shell-ready while React is still rendering into the
7
+ * body, so the cleanup must not run until the body finishes — otherwise it
8
+ * can dispose router state that the in-flight render is still using. Cleanup
9
+ * failures are reported through the request's `onError` instead of being
10
+ * swallowed.
11
+ */
12
+ import type { OnError } from '@modern-js/app-tools';
13
+ import type { TInternalRuntimeContext } from '../context';
14
+ export declare const ROUTER_CLEANUP_ERROR = "An error occurs during router runtime cleanup";
15
+ export type RouterCleanup = {
16
+ /** True once the cleanup has been tied to a streamed response body. */
17
+ readonly deferred: boolean;
18
+ /** Runs the router cleanup at most once; reports failures via `onError`. */
19
+ run: () => Promise<void>;
20
+ /**
21
+ * Ties the cleanup to the completion (close, error or cancellation) of the
22
+ * response body when it is a stream. Responses without a streaming body are
23
+ * returned as-is and the caller is expected to invoke `run()` itself.
24
+ */
25
+ deferUntilBodyDone: (response: Response) => Response;
26
+ };
27
+ export declare function withRouterCleanup<T>(runtimeContext: TInternalRuntimeContext, onError: OnError, callback: (routerCleanup: RouterCleanup) => Promise<T>): Promise<T>;
28
+ export declare function createRouterCleanup(runtimeContext: TInternalRuntimeContext, onError: OnError): RouterCleanup;
@@ -1 +1,25 @@
1
+ import type { TInternalRuntimeContext } from '../context';
2
+ type RouteAssetManifest = {
3
+ assets?: string[];
4
+ };
5
+ type RouteManifestLike = {
6
+ routeAssets?: Record<string, RouteAssetManifest | undefined>;
7
+ };
8
+ type ScriptChunkLike = {
9
+ filename?: string;
10
+ url?: string;
11
+ };
12
+ export declare function getMatchedRouteAssets(runtimeContext: TInternalRuntimeContext, routeManifest?: RouteManifestLike): string[];
13
+ export declare const orderHydrationScriptChunks: <T extends ScriptChunkLike>({ asyncEntryChunks, collectedChunks, matchedRouteChunks, entryName, }: {
14
+ asyncEntryChunks: T[];
15
+ collectedChunks: T[];
16
+ matchedRouteChunks: T[];
17
+ entryName: string;
18
+ }) => T[];
1
19
  export declare function injectBeforeHydrationEntryScript(template: string, scripts: string, entryName?: string): string;
20
+ export declare function replaceChunkJsPlaceholder(template: string, scripts: string, entryName?: string, placeholder?: string): string;
21
+ export declare function createRouteHydrationScriptTags(runtimeContext: TInternalRuntimeContext, entryName: string, options?: {
22
+ nonce?: string;
23
+ template?: string;
24
+ }): string;
25
+ export {};
@@ -1,19 +1,13 @@
1
- import { type Chunk } from '@loadable/server';
2
1
  import type { ReactElement } from 'react';
3
2
  import type { TInternalRuntimeContext } from '../../context';
4
3
  import type { ChunkSet, Collector } from './types';
4
+ export { orderHydrationScriptChunks } from '../scriptOrder';
5
5
  declare module '@loadable/server' {
6
6
  interface ChunkExtractor {
7
7
  chunks: string[];
8
8
  getChunkAssets: (chunks: string[]) => Chunk[];
9
9
  }
10
10
  }
11
- export declare const orderHydrationScriptChunks: ({ asyncEntryChunks, collectedChunks, matchedRouteChunks, entryName, }: {
12
- asyncEntryChunks: Chunk[];
13
- collectedChunks: Chunk[];
14
- matchedRouteChunks: Chunk[];
15
- entryName: string;
16
- }) => Chunk[];
17
11
  export interface LoadableCollectorOptions {
18
12
  nonce?: string;
19
13
  stats?: Record<string, any>;
@@ -15,5 +15,23 @@ export declare function checkIsNode(): boolean;
15
15
  * license at https://github.com/remix-run/remix/blob/main/LICENSE.md
16
16
  */
17
17
  export declare function serializeErrors(errors: StaticHandlerContext['errors']): StaticHandlerContext['errors'];
18
- export declare function getSSRConfigByEntry(entryName: string, ssr?: ServerUserConfig['ssr'], ssrByEntries?: ServerUserConfig['ssrByEntries']): any;
18
+ export declare function getSSRConfigByEntry(entryName: string, ssr?: ServerUserConfig['ssr'], ssrByEntries?: ServerUserConfig['ssrByEntries']): true | {
19
+ forceCSR?: boolean;
20
+ mode?: import("@modern-js/types").SSRMode;
21
+ preload?: boolean | {
22
+ [x: string]: unknown;
23
+ };
24
+ inlineScript?: boolean;
25
+ disablePrerender?: boolean;
26
+ unsafeHeaders?: string[];
27
+ loaderFailureMode?: 'clientRender' | 'errorBoundary';
28
+ moduleFederationAppSSR?: boolean;
29
+ };
19
30
  export declare function getSSRMode(ssrConfig?: SSRConfig): 'string' | 'stream' | false;
31
+ /**
32
+ * Whether the template already contains a `<link rel="stylesheet">` for `href`.
33
+ * Other link rels (e.g. `<link rel="prefetch">` emitted by `performance.prefetch`,
34
+ * or `<link rel="preload" as="style">`) may reference the same css URL but do not
35
+ * apply styles, so they must not block stylesheet injection during SSR.
36
+ */
37
+ export declare const hasStylesheetLink: (template: string, href: string) => boolean;
@@ -21,5 +21,7 @@ export declare const DOCUMENT_STYLE_PLACEHOLDER_END: string;
21
21
  export declare const DOCUMENT_COMMENT_PLACEHOLDER_START: string;
22
22
  export declare const DOCUMENT_COMMENT_PLACEHOLDER_END: string;
23
23
  export declare const PLACEHOLDER_REPLACER_MAP: {
24
- [x: string]: string;
24
+ [DOCUMENT_SSR_PLACEHOLDER]: string;
25
+ [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: string;
26
+ [DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: string;
25
27
  };
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { Helmet as AsyncHelmet, HelmetData, type HelmetDatum, type HelmetHTMLBodyDatum, type HelmetHTMLElementDatum, type HelmetProps, HelmetProvider, type HelmetServerState, type HelmetTags } from 'react-helmet-async';
2
+ import { Helmet as AsyncHelmet, HelmetData as AsyncHelmetData, type HelmetDatum, type HelmetHTMLBodyDatum, type HelmetHTMLElementDatum, type HelmetProps, HelmetProvider, type HelmetServerState, type HelmetTags } from 'react-helmet-async';
3
3
  export declare const Helmet: (props: React.PropsWithChildren<HelmetProps>) => React.CElement<React.PropsWithChildren<HelmetProps>, AsyncHelmet> | null;
4
4
  declare const head: {
5
5
  Helmet: (props: React.PropsWithChildren<HelmetProps>) => React.CElement<React.PropsWithChildren<HelmetProps>, AsyncHelmet> | null;
6
- HelmetData: typeof HelmetData;
6
+ HelmetData: typeof AsyncHelmetData;
7
7
  HelmetProvider: typeof HelmetProvider;
8
8
  };
9
9
  export default head;
10
- export type { HelmetDatum, HelmetHTMLBodyDatum, HelmetHTMLElementDatum, HelmetProps, HelmetServerState as HelmetData, HelmetTags, };
11
- export { HelmetData, HelmetProvider };
10
+ export type { HelmetDatum, HelmetHTMLBodyDatum, HelmetHTMLElementDatum, HelmetProps, HelmetServerState, HelmetTags, };
11
+ export { AsyncHelmetData as HelmetData, HelmetProvider };
@@ -1,7 +1,7 @@
1
1
  type LoadableDefault = typeof import('@loadable/component').default;
2
2
  type LoadableLazy = typeof import('@loadable/component').lazy;
3
3
  type LoadableReady = typeof import('@loadable/component').loadableReady;
4
- type LoadableInternals = typeof import('@loadable/component').__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
4
+ type LoadableInternals = unknown;
5
5
  declare const loadable: LoadableDefault;
6
6
  export declare const lazy: LoadableLazy;
7
7
  export declare const loadableReady: LoadableReady;
@@ -1,5 +1,88 @@
1
- export * from '@tanstack/react-router';
2
- export type { Fetcher, FetcherState, FetcherSubmitOptions, FormProps, SubmitOptions, } from '../router/runtime/tanstack/dataMutation';
3
- export { Form, RouteActionResponseError, useFetcher, } from '../router/runtime/tanstack/dataMutation';
4
- export type { LinkProps, NavLinkProps, PrefetchBehavior, } from '../router/runtime/tanstack/prefetchLink';
5
- export { Link, NavLink } from '../router/runtime/tanstack/prefetchLink';
1
+ /**
2
+ * @deprecated Legacy alias kept so the published `@modern-js/runtime/tanstack-router`
3
+ * subpath keeps resolving. Use `@modern-js/plugin-tanstack/runtime` instead.
4
+ *
5
+ * Only the Modern.js specific `Link`, `NavLink`, `Outlet`, `Form`,
6
+ * `useFetcher` and `RouteActionResponseError` bindings are still exported from
7
+ * here for compatibility. They are thin delegates: the real implementations
8
+ * live in `@modern-js/plugin-tanstack` and are looked up at use time through a
9
+ * `Symbol.for` slot that '@modern-js/plugin-tanstack/runtime' populates on
10
+ * import. (`@modern-js/runtime` cannot import `@modern-js/plugin-tanstack`
11
+ * directly — the package dependency points the other way.)
12
+ */
13
+ import type React from 'react';
14
+ export type PrefetchBehavior = 'intent' | 'render' | 'viewport' | 'none';
15
+ export type LinkProps<_TRouter = unknown, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {
16
+ prefetch?: PrefetchBehavior;
17
+ from?: TFrom;
18
+ mask?: {
19
+ from?: TMaskFrom;
20
+ to?: TMaskTo;
21
+ };
22
+ params?: unknown;
23
+ search?: unknown;
24
+ to?: TTo;
25
+ };
26
+ export type NavLinkProps<TRouter = unknown, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkProps<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>;
27
+ type LinkComponent = <TRouter = unknown, const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: LinkProps<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => React.ReactElement;
28
+ export type SubmitOptions = {
29
+ action?: string;
30
+ method?: string;
31
+ encType?: string;
32
+ };
33
+ export type FetcherState = 'idle' | 'submitting' | 'loading';
34
+ export type FetcherSubmitOptions = SubmitOptions;
35
+ export type FormProps = Omit<React.FormHTMLAttributes<HTMLFormElement>, 'onSubmit' | 'action'> & {
36
+ action?: string;
37
+ onSubmit?: React.FormEventHandler<HTMLFormElement>;
38
+ reloadDocument?: boolean;
39
+ };
40
+ type SubmitTarget = HTMLFormElement | FormData | URLSearchParams | Record<string, string | number | boolean | null | undefined>;
41
+ export type Fetcher = {
42
+ state: FetcherState;
43
+ data: unknown;
44
+ error: unknown;
45
+ Form: React.ComponentType<FormProps>;
46
+ submit: (target: SubmitTarget, options?: FetcherSubmitOptions) => Promise<void>;
47
+ };
48
+ export interface RouteActionResponseError<TData = unknown> extends Error {
49
+ readonly response: Response;
50
+ readonly data: TData;
51
+ }
52
+ interface RouteActionResponseErrorConstructor {
53
+ new <TData = unknown>(response: Response, data: TData): RouteActionResponseError<TData>;
54
+ readonly prototype: RouteActionResponseError<unknown>;
55
+ }
56
+ /**
57
+ * @deprecated Import `Link` from `@modern-js/plugin-tanstack/runtime` instead.
58
+ */
59
+ export declare const Link: LinkComponent;
60
+ /**
61
+ * @deprecated Import `NavLink` from `@modern-js/plugin-tanstack/runtime` instead.
62
+ */
63
+ export declare const NavLink: LinkComponent;
64
+ /**
65
+ * @deprecated Import `Outlet` from `@modern-js/plugin-tanstack/runtime` instead.
66
+ */
67
+ export declare const Outlet: React.ComponentType;
68
+ /**
69
+ * @deprecated Import `Form` from `@modern-js/plugin-tanstack/runtime` instead.
70
+ */
71
+ export declare const Form: React.ComponentType<FormProps>;
72
+ /**
73
+ * @deprecated Import `useFetcher` from `@modern-js/plugin-tanstack/runtime`
74
+ * instead.
75
+ */
76
+ export declare function useFetcher(): Fetcher;
77
+ /**
78
+ * @deprecated Import `RouteActionResponseError` from
79
+ * `@modern-js/plugin-tanstack/runtime` instead.
80
+ *
81
+ * Delegates to the real class registered by '@modern-js/plugin-tanstack/runtime'
82
+ * so that `instanceof` checks observe the same class identity. Before the
83
+ * registration happens no instance can exist, so `instanceof` is gracefully
84
+ * `false`; constructing without @modern-js/plugin-tanstack installed throws an
85
+ * actionable error.
86
+ */
87
+ export declare const RouteActionResponseError: RouteActionResponseErrorConstructor;
88
+ export {};
@@ -0,0 +1,65 @@
1
+ export declare const MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT = "modernjs:mf-runtime-fallback";
2
+ export declare const MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT = "modernjs:mf-runtime-recovery";
3
+ export declare const DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT = "/_modern/contract-gates/runtime-fallback";
4
+ export declare const DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER = "x-modernjs-runtime-signal-token";
5
+ export type ModuleFederationFallbackClassification = 'timeout' | 'network' | 'contract' | 'version-skew' | 'remote-unavailable';
6
+ export type ModuleFederationFallbackStatus = 'degraded' | 'failed' | 'recovered';
7
+ export type ModuleFederationFallbackTelemetryInput = {
8
+ appName: string;
9
+ classification: ModuleFederationFallbackClassification;
10
+ entry?: string;
11
+ error?: unknown;
12
+ eventName?: string;
13
+ exportName?: string;
14
+ metadata?: Record<string, unknown>;
15
+ phase: 'discovery' | 'load' | 'mount' | 'hydrate' | 'recover';
16
+ remote: string;
17
+ runtimeDigest?: string;
18
+ status?: ModuleFederationFallbackStatus;
19
+ };
20
+ export type ModuleFederationFallbackTelemetryPayload = {
21
+ appName: string;
22
+ entry?: string;
23
+ eventName: string;
24
+ phase: ModuleFederationFallbackTelemetryInput['phase'];
25
+ reason: ModuleFederationFallbackClassification;
26
+ runtimeDigest?: string;
27
+ schemaVersion: 1;
28
+ metadata: {
29
+ classification: ModuleFederationFallbackClassification;
30
+ errorMessage?: string;
31
+ errorName?: string;
32
+ exportName?: string;
33
+ remote: string;
34
+ runtimeDigest?: string;
35
+ status: ModuleFederationFallbackStatus;
36
+ } & Record<string, unknown>;
37
+ };
38
+ export type ModuleFederationFallbackTelemetryEmitOptions = {
39
+ authHeaderName?: string;
40
+ authToken?: string;
41
+ endpoint?: string;
42
+ fetchImpl?: typeof fetch;
43
+ postSignal?: boolean;
44
+ };
45
+ export type ModuleFederationFallbackTelemetryEmitResult = {
46
+ dispatched: boolean;
47
+ posted: boolean;
48
+ postStatus?: number;
49
+ };
50
+ export declare class ModuleFederationRemoteLoadTimeoutError extends Error {
51
+ constructor(remote: string, timeoutMs: number);
52
+ }
53
+ export declare class ModuleFederationRemoteLoadError extends Error {
54
+ readonly remote: string;
55
+ readonly attempts: number;
56
+ readonly causeError: Error;
57
+ constructor(remote: string, attempts: number, causeError: Error);
58
+ }
59
+ export declare class ModuleFederationRemoteComponentContractError extends Error {
60
+ constructor(remote: string, exportName: string);
61
+ }
62
+ export declare function classifyModuleFederationFallback(error: unknown): ModuleFederationFallbackClassification;
63
+ export declare function createModuleFederationFallbackTelemetry(input: ModuleFederationFallbackTelemetryInput): ModuleFederationFallbackTelemetryPayload;
64
+ export declare function toModuleFederationFallbackAttributes(payload: ModuleFederationFallbackTelemetryPayload): Record<string, string>;
65
+ export declare function emitModuleFederationFallbackTelemetry(input: ModuleFederationFallbackTelemetryInput, options?: ModuleFederationFallbackTelemetryEmitOptions): Promise<ModuleFederationFallbackTelemetryEmitResult>;
@@ -5,8 +5,6 @@ import type { Entrypoint, NestedRouteForCli, PageRoute } from '@modern-js/types'
5
5
  * Generate routing information for a single entry point (can be reused by the routes inspect feature)
6
6
  */
7
7
  export declare function generateRoutesForEntry(entrypoint: Entrypoint, appContext: AppToolsContext): Promise<NestedRouteForCli[]>;
8
- export declare const generateCode: (appContext: AppToolsContext, config: AppNormalizedConfig, entrypoints: Entrypoint[], api: CLIPluginAPI<AppTools>, options?: {
9
- enableTanstackTypes?: boolean;
10
- }) => Promise<Record<string, (NestedRouteForCli | PageRoute)[]>>;
8
+ export declare const generateCode: (appContext: AppToolsContext, config: AppNormalizedConfig, entrypoints: Entrypoint[], api: CLIPluginAPI<AppTools>) => Promise<Record<string, (NestedRouteForCli | PageRoute)[]>>;
11
9
  export declare function generatorRegisterCode(internalDirectory: string, entryName: string, code: string): void;
12
10
  export declare function generatorServerRegisterCode(internalDirectory: string, entryName: string, code: string): void;
@@ -1,6 +1,6 @@
1
1
  export declare const walkDirectory: (dir: string) => string[];
2
2
  export declare const isPageComponentFile: (filePath: string) => boolean;
3
- export declare const replaceWithAlias: (base: string, filePath: string, alias: string) => any;
3
+ export declare const replaceWithAlias: (base: string, filePath: string, alias: string) => string;
4
4
  export declare const parseModule: ({ source, filename, }: {
5
5
  source: string;
6
6
  filename: string;
@@ -13,6 +13,6 @@ export declare const getEntrypointRoutesDir: (entrypoint: {
13
13
  export declare const getEntrypointRoutesOwner: (entrypoint: {
14
14
  [ROUTES_OWNER_META_KEY]?: string;
15
15
  }) => string | null;
16
- export declare const hasNestedRoutes: (dir: string, routesDir?: string) => any;
16
+ export declare const hasNestedRoutes: (dir: string, routesDir?: string) => boolean;
17
17
  export declare const isRouteEntry: (dir: string, routesDir?: string) => string | false;
18
18
  export declare const modifyEntrypoints: (entrypoints: Entrypoint[], routesDir?: string, routesOwner?: string) => EntrypointWithRoutesMeta[];
@@ -10,9 +10,6 @@ type RegenerateRoutesFn = (params: {
10
10
  }) => Promise<void>;
11
11
  type HandleGeneratorEntryCodeOptions = {
12
12
  entrypointsKey?: string;
13
- generateCodeOptions?: {
14
- enableTanstackTypes?: boolean;
15
- };
16
13
  };
17
14
  type HandleFileChangeOptions = {
18
15
  includeEntry?: (entrypoint: Entrypoint) => boolean;
@@ -1,2 +1,2 @@
1
- declare const _default: () => null;
2
1
  export default _default;
2
+ declare function _default(): null;
@@ -13,14 +13,18 @@ import React from 'react';
13
13
  *
14
14
  * - "intent": Fetched when the user focuses or hovers the link
15
15
  * - "render": Fetched when the link is rendered
16
+ * - "viewport": Fetched when the link enters the viewport
16
17
  * - "none": Never fetched
17
18
  */
18
- type PrefetchBehavior = 'intent' | 'render' | 'none';
19
+ type PrefetchBehavior = 'intent' | 'render' | 'viewport' | 'none';
20
+ type PreloadBehavior = PrefetchBehavior | false;
19
21
  export interface LinkProps extends RouterLinkProps {
20
22
  prefetch?: PrefetchBehavior;
23
+ preload?: PreloadBehavior;
21
24
  }
22
25
  export interface NavLinkProps extends RouterNavLinkProps {
23
26
  prefetch?: PrefetchBehavior;
27
+ preload?: PreloadBehavior;
24
28
  }
25
29
  declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
26
30
  declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
@@ -7,5 +7,6 @@ export declare const routerPlugin: (userConfig?: Partial<RouterConfig>) => Runti
7
7
  export default routerPlugin;
8
8
  export type { RouterExtendsHooks } from './hooks';
9
9
  export { modifyRoutes } from './plugin';
10
+ export { type RouterProviderFactory, type RouterProviderPlugin, registerRouterProvider, resolveRouterProvider, } from './provider';
10
11
  export { renderRoutes } from './utils';
11
12
  export type { RouterConfig, SingleRouteConfig };
@@ -1,6 +1,8 @@
1
1
  import type { RouteObject } from '@modern-js/runtime-utils/router';
2
2
  import type { TInternalRuntimeContext } from '../../core/context/runtime';
3
3
  import type { InternalRouterRuntimeState, InternalRouterServerSnapshot, RouterFramework, RouterRouteMatchSnapshot, RouterServerPrepareResult } from './types';
4
+ export declare function getRouterRuntimeState(runtimeContext: object): InternalRouterRuntimeState | undefined;
5
+ export declare function getRouterServerSnapshot(runtimeContext: object): InternalRouterServerSnapshot | undefined;
4
6
  export type RouterLifecyclePhase = 'ssr-prepare' | 'client-create' | 'hydrate';
5
7
  export type RouterLifecycleContext = {
6
8
  framework: RouterFramework;
@@ -1,5 +1,5 @@
1
1
  import { type RuntimePlugin } from '../../core';
2
- import { type RouterExtendsHooks } from './hooks';
2
+ import type { RouterExtendsHooks } from './hooks';
3
3
  import type { RouterConfig, Routes } from './types';
4
4
  export declare let finalRouteConfig: RouterConfig['routesConfig'];
5
5
  export declare let beforeCreateRouter: boolean;
@@ -1,5 +1,5 @@
1
1
  import type { RuntimePlugin } from '../../core';
2
- import { type RouterExtendsHooks } from './hooks';
2
+ import type { RouterExtendsHooks } from './hooks';
3
3
  import type { RouterConfig } from './types';
4
4
  export declare const routerPlugin: (userConfig?: Partial<RouterConfig>) => RuntimePlugin<{
5
5
  extendHooks: RouterExtendsHooks;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Fork-owned router-provider registry.
3
+ *
4
+ * `runtime.router.framework` selects the router implementation used by the
5
+ * built-in router runtime plugin (`@modern-js/runtime/router/internal`).
6
+ * Instead of hardcoding every implementation there, providers register
7
+ * themselves here:
8
+ *
9
+ * - `react-router` registers itself as the default provider when the
10
+ * built-in router plugin module is loaded.
11
+ * - `@modern-js/plugin-tanstack` registers the `tanstack` provider when its
12
+ * runtime entry is imported.
13
+ */
14
+ import type { RuntimePlugin } from '../../core';
15
+ import type { RouterExtendsHooks } from './hooks';
16
+ import type { RouterConfig } from './types';
17
+ /**
18
+ * The single declaration source for the router hook registry. Every router
19
+ * provider (built-in react-router, @modern-js/plugin-tanstack, ...) and the
20
+ * framework-resolving wrapper plugin register exactly these instances, so the
21
+ * hook set is defined once and providers cannot drift apart.
22
+ */
23
+ export declare const routerProviderRegistryHooks: RouterExtendsHooks;
24
+ export type RouterProviderPlugin = RuntimePlugin<{
25
+ extendHooks: RouterExtendsHooks;
26
+ }>;
27
+ /**
28
+ * Guard for the wrapper plugin (`router/internal`): a resolved provider is
29
+ * only invoked through `setup`, so registry hooks outside the canonical
30
+ * router hook contract cannot be registered for it. Returns the offending
31
+ * hook names and warns once so they are surfaced instead of silently dropped.
32
+ */
33
+ export declare function reportUnsupportedProviderRegistryHooks(providerPlugin: {
34
+ name?: string;
35
+ registryHooks?: Record<string, unknown>;
36
+ }): string[];
37
+ export type RouterProviderFactory = (userConfig: Partial<RouterConfig>) => RouterProviderPlugin;
38
+ export declare function registerRouterProvider(name: string, factory: RouterProviderFactory, options?: {
39
+ isDefault?: boolean;
40
+ }): void;
41
+ export declare function resolveRouterProvider(framework?: RouterConfig['framework'], options?: {
42
+ /**
43
+ * The resolving module's own copy of a provider. The registry is
44
+ * realm-global with keep-first semantics, so in a page hosting several
45
+ * independent Modern.js apps (Module Federation app-level remotes) the
46
+ * first-loaded copy of a provider would otherwise win for *every* app —
47
+ * a foreign factory closes over the foreign app's global context (routes,
48
+ * App, runtime hooks) and renders the wrong app inside the resolving one.
49
+ * When the resolved name matches `localDefault.name`, the local factory
50
+ * is returned instead of whatever copy registered first.
51
+ */
52
+ localDefault?: {
53
+ name: string;
54
+ factory: RouterProviderFactory;
55
+ };
56
+ }): RouterProviderFactory;
57
+ /**
58
+ * Test-only escape hatch: the registry lives on `globalThis`, so unit tests
59
+ * need a way to restore a pristine state between cases.
60
+ */
61
+ export declare function unsafe_resetRouterProvidersForTesting(): void;