@bleedingdev/modern-js-runtime 3.2.0-ultramodern.12 → 3.2.0-ultramodern.121

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 (330) hide show
  1. package/dist/cjs/boundary-debugger/index.js +307 -0
  2. package/dist/cjs/cache/index.js +9 -5
  3. package/dist/cjs/cli/alias.js +9 -5
  4. package/dist/cjs/cli/code.js +9 -5
  5. package/dist/cjs/cli/constants.js +20 -16
  6. package/dist/cjs/cli/entry.js +9 -5
  7. package/dist/cjs/cli/index.js +20 -5
  8. package/dist/cjs/cli/ssr/index.js +14 -20
  9. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +9 -5
  10. package/dist/cjs/cli/ssr/mode.js +12 -8
  11. package/dist/cjs/cli/template.js +9 -5
  12. package/dist/cjs/cli/template.server.js +10 -5
  13. package/dist/cjs/common.js +14 -10
  14. package/dist/cjs/core/browser/hydrate.js +9 -5
  15. package/dist/cjs/core/browser/index.js +9 -5
  16. package/dist/cjs/core/browser/withCallback.js +9 -5
  17. package/dist/cjs/core/compat/hooks.js +14 -10
  18. package/dist/cjs/core/compat/index.js +9 -5
  19. package/dist/cjs/core/compat/requestContext.js +13 -9
  20. package/dist/cjs/core/config.js +12 -8
  21. package/dist/cjs/core/constants.js +15 -10
  22. package/dist/cjs/core/context/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 +21 -9
  39. package/dist/cjs/core/server/constants.js +15 -11
  40. package/dist/cjs/core/server/federatedCss.js +51 -0
  41. package/dist/cjs/core/server/helmet.js +18 -7
  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 +134 -0
  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 +16 -16
  52. package/dist/cjs/core/server/stream/beforeTemplate.js +22 -25
  53. package/dist/cjs/core/server/stream/beforeTemplate.worker.js +102 -0
  54. package/dist/cjs/core/server/stream/createReadableStream.js +16 -7
  55. package/dist/cjs/core/server/stream/createReadableStream.worker.js +13 -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 +12 -6
  59. package/dist/cjs/core/server/stream/template.js +9 -5
  60. package/dist/cjs/core/server/string/index.js +19 -14
  61. package/dist/cjs/core/server/string/loadable.js +56 -15
  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 +40 -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 +12 -6
  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 +271 -10
  82. package/dist/cjs/exports/loadable.js +51 -12
  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 +10 -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 -13
  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 -28
  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 +9 -5
  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 -14
  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 +62 -0
  127. package/dist/esm/boundary-debugger/index.mjs +267 -0
  128. package/dist/esm/cli/index.mjs +4 -2
  129. package/dist/esm/cli/ssr/index.mjs +5 -15
  130. package/dist/esm/cli/template.server.mjs +1 -0
  131. package/dist/esm/core/context/extensions.mjs +28 -0
  132. package/dist/esm/core/context/helmetContext.mjs +13 -0
  133. package/dist/esm/core/context/index.mjs +5 -0
  134. package/dist/esm/core/react/wrapper.mjs +12 -4
  135. package/dist/esm/core/server/federatedCss.mjs +13 -0
  136. package/dist/esm/core/server/helmet.mjs +6 -2
  137. package/dist/esm/core/server/requestHandler.mjs +43 -30
  138. package/dist/esm/core/server/routerCleanup.mjs +66 -0
  139. package/dist/esm/core/server/scriptOrder.mjs +84 -0
  140. package/dist/esm/core/server/stream/afterTemplate.mjs +7 -11
  141. package/dist/esm/core/server/stream/beforeTemplate.mjs +14 -11
  142. package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +64 -0
  143. package/dist/esm/core/server/stream/createReadableStream.mjs +7 -2
  144. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +4 -2
  145. package/dist/esm/core/server/stream/deferredScript.mjs +4 -1
  146. package/dist/esm/core/server/stream/shared.mjs +3 -1
  147. package/dist/esm/core/server/string/index.mjs +12 -10
  148. package/dist/esm/core/server/string/loadable.mjs +43 -9
  149. package/dist/esm/core/server/string/ssrData.mjs +2 -2
  150. package/dist/esm/core/server/utils.mjs +31 -8
  151. package/dist/esm/document/cli/index.mjs +3 -1
  152. package/dist/esm/exports/head.mjs +255 -4
  153. package/dist/esm/exports/loadable.mjs +26 -3
  154. package/dist/esm/exports/tanstack-router.mjs +30 -3
  155. package/dist/esm/module-federation/index.mjs +109 -0
  156. package/dist/esm/router/cli/code/index.mjs +1 -47
  157. package/dist/esm/router/cli/code/templates.mjs +1 -8
  158. package/dist/esm/router/cli/handler.mjs +1 -1
  159. package/dist/esm/router/cli/index.mjs +3 -24
  160. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +16 -4
  161. package/dist/esm/router/runtime/PrefetchLink.mjs +152 -21
  162. package/dist/esm/router/runtime/internal.mjs +16 -15
  163. package/dist/esm/router/runtime/lifecycle.mjs +22 -13
  164. package/dist/esm/router/runtime/plugin.mjs +4 -11
  165. package/dist/esm/router/runtime/plugin.node.mjs +4 -9
  166. package/dist/esm/router/runtime/provider.mjs +57 -0
  167. package/dist/esm/router/runtime/utils.mjs +35 -9
  168. package/dist/esm/rsc/server.worker.mjs +1 -0
  169. package/dist/esm-node/boundary-debugger/index.mjs +268 -0
  170. package/dist/esm-node/cli/index.mjs +4 -2
  171. package/dist/esm-node/cli/ssr/index.mjs +5 -15
  172. package/dist/esm-node/cli/template.server.mjs +1 -0
  173. package/dist/esm-node/core/context/extensions.mjs +29 -0
  174. package/dist/esm-node/core/context/helmetContext.mjs +14 -0
  175. package/dist/esm-node/core/context/index.mjs +5 -0
  176. package/dist/esm-node/core/react/wrapper.mjs +12 -4
  177. package/dist/esm-node/core/server/federatedCss.mjs +14 -0
  178. package/dist/esm-node/core/server/helmet.mjs +6 -2
  179. package/dist/esm-node/core/server/requestHandler.mjs +43 -30
  180. package/dist/esm-node/core/server/routerCleanup.mjs +67 -0
  181. package/dist/esm-node/core/server/scriptOrder.mjs +85 -0
  182. package/dist/esm-node/core/server/stream/afterTemplate.mjs +7 -11
  183. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +14 -11
  184. package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +65 -0
  185. package/dist/esm-node/core/server/stream/createReadableStream.mjs +7 -2
  186. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +4 -2
  187. package/dist/esm-node/core/server/stream/deferredScript.mjs +4 -1
  188. package/dist/esm-node/core/server/stream/shared.mjs +3 -1
  189. package/dist/esm-node/core/server/string/index.mjs +12 -10
  190. package/dist/esm-node/core/server/string/loadable.mjs +43 -9
  191. package/dist/esm-node/core/server/string/ssrData.mjs +2 -2
  192. package/dist/esm-node/core/server/utils.mjs +31 -8
  193. package/dist/esm-node/document/cli/index.mjs +3 -1
  194. package/dist/esm-node/exports/head.mjs +255 -4
  195. package/dist/esm-node/exports/loadable.mjs +26 -3
  196. package/dist/esm-node/exports/tanstack-router.mjs +30 -3
  197. package/dist/esm-node/module-federation/index.mjs +110 -0
  198. package/dist/esm-node/router/cli/code/index.mjs +1 -47
  199. package/dist/esm-node/router/cli/code/templates.mjs +1 -8
  200. package/dist/esm-node/router/cli/handler.mjs +1 -1
  201. package/dist/esm-node/router/cli/index.mjs +3 -24
  202. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +16 -4
  203. package/dist/esm-node/router/runtime/PrefetchLink.mjs +152 -21
  204. package/dist/esm-node/router/runtime/internal.mjs +16 -15
  205. package/dist/esm-node/router/runtime/lifecycle.mjs +22 -13
  206. package/dist/esm-node/router/runtime/plugin.mjs +4 -11
  207. package/dist/esm-node/router/runtime/plugin.node.mjs +4 -9
  208. package/dist/esm-node/router/runtime/provider.mjs +58 -0
  209. package/dist/esm-node/router/runtime/utils.mjs +35 -9
  210. package/dist/esm-node/rsc/server.worker.mjs +2 -0
  211. package/dist/types/boundary-debugger/index.d.ts +28 -0
  212. package/dist/types/cli/entry.d.ts +2 -2
  213. package/dist/types/cli/index.d.ts +3 -1
  214. package/dist/types/core/context/extensions.d.ts +37 -0
  215. package/dist/types/core/context/helmetContext.d.ts +10 -0
  216. package/dist/types/core/context/index.d.ts +6 -0
  217. package/dist/types/core/context/response/index.server.d.ts +4 -1
  218. package/dist/types/core/context/runtime.d.ts +1 -7
  219. package/dist/types/core/plugin/index.d.ts +1 -1
  220. package/dist/types/core/server/federatedCss.d.ts +5 -0
  221. package/dist/types/core/server/helmet.d.ts +5 -3
  222. package/dist/types/core/server/routerCleanup.d.ts +28 -0
  223. package/dist/types/core/server/scriptOrder.d.ts +25 -0
  224. package/dist/types/core/server/stream/beforeTemplate.d.ts +1 -0
  225. package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +10 -0
  226. package/dist/types/core/server/stream/shared.d.ts +8 -0
  227. package/dist/types/core/server/string/loadable.d.ts +5 -0
  228. package/dist/types/core/server/utils.d.ts +12 -1
  229. package/dist/types/document/constants.d.ts +3 -1
  230. package/dist/types/exports/head.d.ts +10 -3
  231. package/dist/types/exports/loadable.d.ts +8 -1
  232. package/dist/types/exports/tanstack-router.d.ts +88 -5
  233. package/dist/types/module-federation/index.d.ts +65 -0
  234. package/dist/types/router/cli/code/index.d.ts +1 -3
  235. package/dist/types/router/cli/code/utils.d.ts +1 -1
  236. package/dist/types/router/cli/entry.d.ts +1 -1
  237. package/dist/types/router/cli/handler.d.ts +0 -3
  238. package/dist/types/router/runtime/PrefetchLink.d.ts +5 -1
  239. package/dist/types/router/runtime/internal.d.ts +1 -0
  240. package/dist/types/router/runtime/lifecycle.d.ts +2 -0
  241. package/dist/types/router/runtime/plugin.d.ts +1 -1
  242. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  243. package/dist/types/router/runtime/provider.d.ts +61 -0
  244. package/dist/types/rsc/server.worker.d.ts +1 -0
  245. package/package.json +37 -27
  246. package/rstest.config.mts +2 -4
  247. package/dist/cjs/router/cli/code/tanstackTypes.js +0 -378
  248. package/dist/cjs/router/runtime/tanstack/basepathRewrite.js +0 -62
  249. package/dist/cjs/router/runtime/tanstack/dataMutation.js +0 -345
  250. package/dist/cjs/router/runtime/tanstack/plugin.js +0 -239
  251. package/dist/cjs/router/runtime/tanstack/plugin.node.js +0 -278
  252. package/dist/cjs/router/runtime/tanstack/prefetchLink.js +0 -55
  253. package/dist/cjs/router/runtime/tanstack/routeTree.js +0 -469
  254. package/dist/cjs/router/runtime/tanstack/rsc/ClientSlot.js +0 -53
  255. package/dist/cjs/router/runtime/tanstack/rsc/CompositeComponent.js +0 -75
  256. package/dist/cjs/router/runtime/tanstack/rsc/ReplayableStream.js +0 -141
  257. package/dist/cjs/router/runtime/tanstack/rsc/RscNodeRenderer.js +0 -65
  258. package/dist/cjs/router/runtime/tanstack/rsc/SlotContext.js +0 -54
  259. package/dist/cjs/router/runtime/tanstack/rsc/client.js +0 -93
  260. package/dist/cjs/router/runtime/tanstack/rsc/createRscProxy.js +0 -141
  261. package/dist/cjs/router/runtime/tanstack/rsc/index.js +0 -42
  262. package/dist/cjs/router/runtime/tanstack/rsc/server.js +0 -246
  263. package/dist/cjs/router/runtime/tanstack/rsc/slotUsageSanitizer.js +0 -65
  264. package/dist/cjs/router/runtime/tanstack/rsc/symbols.js +0 -72
  265. package/dist/cjs/ssr/index.node.js +0 -121
  266. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -84
  267. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -195
  268. package/dist/cjs/ssr/serverRender/types.js +0 -36
  269. package/dist/esm/router/cli/code/tanstackTypes.mjs +0 -331
  270. package/dist/esm/router/runtime/tanstack/basepathRewrite.mjs +0 -28
  271. package/dist/esm/router/runtime/tanstack/dataMutation.mjs +0 -305
  272. package/dist/esm/router/runtime/tanstack/plugin.mjs +0 -205
  273. package/dist/esm/router/runtime/tanstack/plugin.node.mjs +0 -244
  274. package/dist/esm/router/runtime/tanstack/prefetchLink.mjs +0 -18
  275. package/dist/esm/router/runtime/tanstack/routeTree.mjs +0 -429
  276. package/dist/esm/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -19
  277. package/dist/esm/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -41
  278. package/dist/esm/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -104
  279. package/dist/esm/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -31
  280. package/dist/esm/router/runtime/tanstack/rsc/SlotContext.mjs +0 -17
  281. package/dist/esm/router/runtime/tanstack/rsc/client.mjs +0 -53
  282. package/dist/esm/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -107
  283. package/dist/esm/router/runtime/tanstack/rsc/index.mjs +0 -1
  284. package/dist/esm/router/runtime/tanstack/rsc/server.mjs +0 -200
  285. package/dist/esm/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -31
  286. package/dist/esm/router/runtime/tanstack/rsc/symbols.mjs +0 -17
  287. package/dist/esm/ssr/index.node.mjs +0 -44
  288. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -50
  289. package/dist/esm/ssr/serverRender/renderToString/entry.mjs +0 -148
  290. package/dist/esm/ssr/serverRender/types.mjs +0 -1
  291. package/dist/esm-node/router/cli/code/tanstackTypes.mjs +0 -332
  292. package/dist/esm-node/router/runtime/tanstack/basepathRewrite.mjs +0 -29
  293. package/dist/esm-node/router/runtime/tanstack/dataMutation.mjs +0 -306
  294. package/dist/esm-node/router/runtime/tanstack/plugin.mjs +0 -206
  295. package/dist/esm-node/router/runtime/tanstack/plugin.node.mjs +0 -245
  296. package/dist/esm-node/router/runtime/tanstack/prefetchLink.mjs +0 -19
  297. package/dist/esm-node/router/runtime/tanstack/routeTree.mjs +0 -430
  298. package/dist/esm-node/router/runtime/tanstack/rsc/ClientSlot.mjs +0 -20
  299. package/dist/esm-node/router/runtime/tanstack/rsc/CompositeComponent.mjs +0 -42
  300. package/dist/esm-node/router/runtime/tanstack/rsc/ReplayableStream.mjs +0 -105
  301. package/dist/esm-node/router/runtime/tanstack/rsc/RscNodeRenderer.mjs +0 -32
  302. package/dist/esm-node/router/runtime/tanstack/rsc/SlotContext.mjs +0 -18
  303. package/dist/esm-node/router/runtime/tanstack/rsc/client.mjs +0 -54
  304. package/dist/esm-node/router/runtime/tanstack/rsc/createRscProxy.mjs +0 -108
  305. package/dist/esm-node/router/runtime/tanstack/rsc/index.mjs +0 -2
  306. package/dist/esm-node/router/runtime/tanstack/rsc/server.mjs +0 -201
  307. package/dist/esm-node/router/runtime/tanstack/rsc/slotUsageSanitizer.mjs +0 -32
  308. package/dist/esm-node/router/runtime/tanstack/rsc/symbols.mjs +0 -18
  309. package/dist/esm-node/ssr/index.node.mjs +0 -45
  310. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.mjs +0 -51
  311. package/dist/esm-node/ssr/serverRender/renderToString/entry.mjs +0 -149
  312. package/dist/esm-node/ssr/serverRender/types.mjs +0 -2
  313. package/dist/types/router/cli/code/tanstackTypes.d.ts +0 -10
  314. package/dist/types/router/runtime/tanstack/basepathRewrite.d.ts +0 -8
  315. package/dist/types/router/runtime/tanstack/dataMutation.d.ts +0 -29
  316. package/dist/types/router/runtime/tanstack/plugin.d.ts +0 -6
  317. package/dist/types/router/runtime/tanstack/plugin.node.d.ts +0 -6
  318. package/dist/types/router/runtime/tanstack/prefetchLink.d.ts +0 -11
  319. package/dist/types/router/runtime/tanstack/routeTree.d.ts +0 -8
  320. package/dist/types/router/runtime/tanstack/rsc/ClientSlot.d.ts +0 -5
  321. package/dist/types/router/runtime/tanstack/rsc/CompositeComponent.d.ts +0 -3
  322. package/dist/types/router/runtime/tanstack/rsc/ReplayableStream.d.ts +0 -24
  323. package/dist/types/router/runtime/tanstack/rsc/RscNodeRenderer.d.ts +0 -5
  324. package/dist/types/router/runtime/tanstack/rsc/SlotContext.d.ts +0 -11
  325. package/dist/types/router/runtime/tanstack/rsc/client.d.ts +0 -11
  326. package/dist/types/router/runtime/tanstack/rsc/createRscProxy.d.ts +0 -7
  327. package/dist/types/router/runtime/tanstack/rsc/index.d.ts +0 -2
  328. package/dist/types/router/runtime/tanstack/rsc/server.d.ts +0 -14
  329. package/dist/types/router/runtime/tanstack/rsc/slotUsageSanitizer.d.ts +0 -2
  330. package/dist/types/router/runtime/tanstack/rsc/symbols.d.ts +0 -46
@@ -12,17 +12,40 @@ function serializeErrors(errors) {
12
12
  if (!errors) return null;
13
13
  const entries = Object.entries(errors);
14
14
  const serialized = {};
15
- for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = {
16
- ...val,
17
- __type: 'RouteErrorResponse'
15
+ for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = serializeRouteErrorResponse(val);
16
+ else if (val instanceof Error) serialized[key] = serializeError(val);
17
+ else serialized[key] = val;
18
+ return serialized;
19
+ }
20
+ function shouldRedactServerError() {
21
+ return 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV;
22
+ }
23
+ function serializeError(error) {
24
+ if (shouldRedactServerError()) return {
25
+ message: 'Unexpected Server Error',
26
+ stack: void 0,
27
+ __type: 'Error'
18
28
  };
19
- else if (val instanceof Error) serialized[key] = {
20
- message: val.message,
21
- stack: val.stack,
29
+ return {
30
+ message: error.message,
31
+ stack: error.stack,
22
32
  __type: 'Error'
23
33
  };
24
- else serialized[key] = val;
25
- return serialized;
34
+ }
35
+ function serializeRouteErrorResponse(error) {
36
+ if (!isRouteErrorResponse(error)) return error;
37
+ if (error.status >= 500 && shouldRedactServerError()) return {
38
+ status: error.status,
39
+ statusText: 'Internal Server Error',
40
+ data: 'Unexpected Server Error',
41
+ __type: 'RouteErrorResponse'
42
+ };
43
+ return {
44
+ status: error.status,
45
+ statusText: error.statusText,
46
+ data: error.data,
47
+ __type: 'RouteErrorResponse'
48
+ };
26
49
  }
27
50
  function getSSRConfigByEntry(entryName, ssr, ssrByEntries) {
28
51
  if (ssrByEntries?.[entryName]) return ssrByEntries[entryName];
@@ -299,7 +299,7 @@ const documentPlugin = ()=>({
299
299
  const { entrypoints, internalDirectory, appDirectory } = api.getAppContext();
300
300
  const documentFilePath = getDocumentByEntryName(entrypoints, entryName, appDirectory);
301
301
  if (!documentFilePath) return null;
302
- return async ({ htmlPlugin })=>{
302
+ return async (templateData)=>{
303
303
  const config = api.getNormalizedConfig();
304
304
  const documentParams = getDocParams({
305
305
  config: config,
@@ -318,6 +318,8 @@ const documentPlugin = ()=>({
318
318
  debug("entry %s's document jsx rendered html: %o", entryName, html);
319
319
  const { partialsByEntrypoint } = api.getAppContext();
320
320
  html = processPartials(html, entryName, partialsByEntrypoint || {});
321
+ const htmlPlugin = templateData.htmlPlugin || templateData.htmlWebpackPlugin || templateData.htmlRspackPlugin;
322
+ if (!htmlPlugin) throw new Error('Failed to get HTML plugin tags from template parameters.');
321
323
  const { scripts, links, metas, titles } = extractHtmlTags(htmlPlugin, templateParameters);
322
324
  return processPlaceholders(html, config, scripts, links, metas, titles);
323
325
  };
@@ -1,5 +1,256 @@
1
1
  "use client";
2
- import react_helmet, { Helmet } from "react-helmet";
3
- const head = react_helmet;
4
- export default head;
5
- export { Helmet };
2
+ import react from "react";
3
+ import { Helmet, HelmetData, HelmetProvider } from "react-helmet-async";
4
+ import { InternalRuntimeContext } from "../core/context/index.mjs";
5
+ import { ensureHelmetContext } from "../core/context/helmetContext.mjs";
6
+ const ATTRIBUTE_NAME_MAP = {
7
+ charSet: 'charset',
8
+ className: 'class',
9
+ contentEditable: 'contenteditable',
10
+ httpEquiv: 'http-equiv',
11
+ hrefLang: 'hreflang',
12
+ itemProp: 'itemprop',
13
+ tabIndex: 'tabindex'
14
+ };
15
+ const CONTENT_PROPERTIES = new Set([
16
+ 'innerHTML',
17
+ 'cssText'
18
+ ]);
19
+ const escapeHtml = (value)=>String(value).replaceAll('&', '&amp;').replaceAll('"', '&quot;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
20
+ const toHtmlAttributeName = (name)=>ATTRIBUTE_NAME_MAP[name] ?? name;
21
+ const attributesToString = (attributes, includeHelmetAttribute = false)=>{
22
+ const pairs = [];
23
+ if (includeHelmetAttribute) pairs.push('data-rh="true"');
24
+ for (const [name, value] of Object.entries(attributes ?? {})){
25
+ if (false === value || null == value) continue;
26
+ if (CONTENT_PROPERTIES.has(name)) continue;
27
+ const htmlName = toHtmlAttributeName(name);
28
+ if (true === value) pairs.push(htmlName);
29
+ else pairs.push(`${htmlName}="${escapeHtml(value)}"`);
30
+ }
31
+ return pairs.join(' ');
32
+ };
33
+ const createDatum = (tagName, tags)=>({
34
+ toComponent: ()=>[],
35
+ toString: ()=>tags.map((tag)=>{
36
+ const attrs = attributesToString(tag, true);
37
+ if ("script" === tagName && 'string' == typeof tag.innerHTML) return `<script ${attrs}>${tag.innerHTML}</script>`;
38
+ if ('style' === tagName && 'string' == typeof tag.cssText) return `<style ${attrs}>${tag.cssText}</style>`;
39
+ if ("noscript" === tagName && 'string' == typeof tag.innerHTML) return `<noscript ${attrs}>${tag.innerHTML}</noscript>`;
40
+ return `<${tagName} ${attrs}>`;
41
+ }).join('')
42
+ });
43
+ const createAttributeDatum = (attributes)=>({
44
+ toComponent: ()=>attributes,
45
+ toString: ()=>attributesToString(attributes)
46
+ });
47
+ const createTitleDatum = (title, attributes)=>({
48
+ toComponent: ()=>[],
49
+ toString: ()=>{
50
+ if (void 0 === title || '' === title) return '';
51
+ const attrs = attributesToString(attributes, true);
52
+ return `<title ${attrs}>${escapeHtml(title)}</title>`;
53
+ }
54
+ });
55
+ const normalizeHelmetTitle = (title)=>{
56
+ if ('string' == typeof title) return title;
57
+ if (Array.isArray(title)) return title.map((part)=>String(part)).join('');
58
+ };
59
+ const mergeAttributes = (current, next)=>({
60
+ ...current,
61
+ ...next ?? {}
62
+ });
63
+ const collectChildren = (children, draft)=>{
64
+ react.Children.forEach(children, (child)=>{
65
+ if (!react.isValidElement(child)) return;
66
+ if (child.type === react.Fragment) return void collectChildren(child.props.children, draft);
67
+ if ('string' != typeof child.type) return;
68
+ const { children: nestedChildren, ...props } = child.props;
69
+ if ('title' === child.type) {
70
+ draft.title = react.Children.toArray(nestedChildren).join('');
71
+ draft.titleAttributes = mergeAttributes(draft.titleAttributes, props);
72
+ return;
73
+ }
74
+ if ('html' === child.type) {
75
+ draft.htmlAttributes = mergeAttributes(draft.htmlAttributes ?? {}, props);
76
+ return;
77
+ }
78
+ if ('body' === child.type) {
79
+ draft.bodyAttributes = mergeAttributes(draft.bodyAttributes ?? {}, props);
80
+ return;
81
+ }
82
+ if ('base' === child.type || 'link' === child.type || 'meta' === child.type || "noscript" === child.type || "script" === child.type || 'style' === child.type) {
83
+ const tag = {
84
+ ...props
85
+ };
86
+ if (("script" === child.type || 'style' === child.type || "noscript" === child.type) && 'string' == typeof nestedChildren) tag['style' === child.type ? 'cssText' : 'innerHTML'] = nestedChildren;
87
+ draft[child.type].push(tag);
88
+ }
89
+ });
90
+ };
91
+ const createHelmetRecord = (props)=>{
92
+ const draft = {
93
+ base: [
94
+ ...void 0 !== props.base ? [
95
+ props.base
96
+ ] : []
97
+ ],
98
+ bodyAttributes: props.bodyAttributes,
99
+ htmlAttributes: props.htmlAttributes,
100
+ link: [
101
+ ...props.link ?? []
102
+ ],
103
+ meta: [
104
+ ...props.meta ?? []
105
+ ],
106
+ noscript: [
107
+ ...props.noscript ?? []
108
+ ],
109
+ script: [
110
+ ...props.script ?? []
111
+ ],
112
+ style: [
113
+ ...props.style ?? []
114
+ ],
115
+ title: normalizeHelmetTitle(props.title),
116
+ titleAttributes: props.titleAttributes ?? {}
117
+ };
118
+ collectChildren(props.children, draft);
119
+ return {
120
+ ...draft,
121
+ titleTemplate: props.titleTemplate,
122
+ defaultTitle: props.defaultTitle
123
+ };
124
+ };
125
+ const getInnermostDefined = (records, pick)=>{
126
+ for(let i = records.length - 1; i >= 0; i -= 1){
127
+ const value = pick(records[i]);
128
+ if (void 0 !== value) return value;
129
+ }
130
+ };
131
+ const deriveTitle = (records)=>{
132
+ const innermostTitle = getInnermostDefined(records, (record)=>record.title);
133
+ const innermostTemplate = getInnermostDefined(records, (record)=>record.titleTemplate);
134
+ if (innermostTemplate && innermostTitle) return innermostTemplate.replaceAll('%s', innermostTitle);
135
+ return innermostTitle || getInnermostDefined(records, (record)=>record.defaultTitle);
136
+ };
137
+ const mergeRecordAttributes = (records, pick)=>records.reduce((merged, record)=>mergeAttributes(merged, pick(record)), {});
138
+ const deriveBaseTags = (records)=>{
139
+ for(let i = records.length - 1; i >= 0; i -= 1){
140
+ const tags = records[i].base;
141
+ for(let j = tags.length - 1; j >= 0; j -= 1)if (tags[j].href) return [
142
+ tags[j]
143
+ ];
144
+ }
145
+ return [];
146
+ };
147
+ const TAG_PRIMARY_ATTRIBUTES = {
148
+ link: [
149
+ 'rel',
150
+ 'href'
151
+ ],
152
+ meta: [
153
+ 'name',
154
+ 'charset',
155
+ 'http-equiv',
156
+ 'property',
157
+ 'itemprop'
158
+ ],
159
+ noscript: [
160
+ 'innerHTML'
161
+ ],
162
+ script: [
163
+ 'src',
164
+ 'innerHTML'
165
+ ],
166
+ style: [
167
+ 'cssText'
168
+ ]
169
+ };
170
+ const getPrimaryAttribute = (tagName, tag)=>{
171
+ const candidates = TAG_PRIMARY_ATTRIBUTES[tagName];
172
+ let selectedKey;
173
+ let selectedValue;
174
+ for (const [key, value] of Object.entries(tag)){
175
+ const normalizedKey = CONTENT_PROPERTIES.has(key) ? key : toHtmlAttributeName(key).toLowerCase();
176
+ if (candidates.includes(normalizedKey)) {
177
+ if ('rel' !== selectedKey || 'canonical' !== String(selectedValue).toLowerCase()) {
178
+ if ('rel' !== normalizedKey || 'stylesheet' !== String(value).toLowerCase()) {
179
+ selectedKey = normalizedKey;
180
+ selectedValue = value;
181
+ }
182
+ }
183
+ }
184
+ }
185
+ if (void 0 === selectedKey || !selectedValue) return;
186
+ return {
187
+ key: selectedKey,
188
+ value: String(selectedValue).toLowerCase()
189
+ };
190
+ };
191
+ const dedupeTags = (tagName, records)=>{
192
+ const approvedValues = new Map();
193
+ const approved = [];
194
+ for(let i = records.length - 1; i >= 0; i -= 1){
195
+ const instanceValues = new Map();
196
+ const kept = [];
197
+ for (const tag of records[i][tagName]){
198
+ const primary = getPrimaryAttribute(tagName, tag);
199
+ if (void 0 === primary) continue;
200
+ if (approvedValues.get(primary.key)?.has(primary.value)) continue;
201
+ let seen = instanceValues.get(primary.key);
202
+ if (void 0 === seen) {
203
+ seen = new Set();
204
+ instanceValues.set(primary.key, seen);
205
+ }
206
+ seen.add(primary.value);
207
+ kept.push(tag);
208
+ }
209
+ approved.unshift(...kept);
210
+ for (const [key, values] of instanceValues){
211
+ const target = approvedValues.get(key);
212
+ if (void 0 === target) approvedValues.set(key, values);
213
+ else for (const value of values)target.add(value);
214
+ }
215
+ }
216
+ return approved;
217
+ };
218
+ const deriveHelmetServerState = (records)=>({
219
+ base: createDatum('base', deriveBaseTags(records)),
220
+ bodyAttributes: createAttributeDatum(mergeRecordAttributes(records, (record)=>record.bodyAttributes)),
221
+ htmlAttributes: createAttributeDatum(mergeRecordAttributes(records, (record)=>record.htmlAttributes)),
222
+ link: createDatum('link', dedupeTags('link', records)),
223
+ meta: createDatum('meta', dedupeTags('meta', records)),
224
+ noscript: createDatum("noscript", dedupeTags("noscript", records)),
225
+ priority: createDatum('meta', []),
226
+ script: createDatum("script", dedupeTags("script", records)),
227
+ style: createDatum('style', dedupeTags('style', records)),
228
+ title: createTitleDatum(deriveTitle(records), mergeRecordAttributes(records, (record)=>record.titleAttributes))
229
+ });
230
+ const serverHelmetRecords = new WeakMap();
231
+ const collectServerHelmet = (runtimeContext, props)=>{
232
+ const helmetContext = ensureHelmetContext(runtimeContext);
233
+ let records = serverHelmetRecords.get(helmetContext);
234
+ if (void 0 === records) {
235
+ records = [];
236
+ serverHelmetRecords.set(helmetContext, records);
237
+ }
238
+ records.push(createHelmetRecord(props));
239
+ helmetContext.helmet = deriveHelmetServerState(records);
240
+ };
241
+ const head_Helmet = (props)=>{
242
+ const runtimeContext = react.useContext(InternalRuntimeContext);
243
+ if (null !== runtimeContext && false === runtimeContext.isBrowser) {
244
+ collectServerHelmet(runtimeContext, props);
245
+ return null;
246
+ }
247
+ return react.createElement(Helmet, props);
248
+ };
249
+ const head = {
250
+ Helmet: head_Helmet,
251
+ HelmetData: HelmetData,
252
+ HelmetProvider: HelmetProvider
253
+ };
254
+ const exports_head = head;
255
+ export default exports_head;
256
+ export { HelmetData, HelmetProvider, head_Helmet as Helmet };
@@ -1,4 +1,27 @@
1
- import component from "@loadable/component";
1
+ import * as __rspack_external__loadable_component_0aaae075 from "@loadable/component";
2
2
  export * from "@loadable/component";
3
- const loadable = component;
4
- export default loadable;
3
+ function asLoadableNamespace(value) {
4
+ return 'object' == typeof value && null !== value ? value : {};
5
+ }
6
+ function resolveLoadable(module) {
7
+ const namespace = asLoadableNamespace(module);
8
+ const defaultExport = asLoadableNamespace(namespace.default);
9
+ const candidates = [
10
+ module,
11
+ namespace.default,
12
+ defaultExport?.default
13
+ ];
14
+ const loadable = candidates.find((candidate)=>'function' == typeof candidate);
15
+ if ('function' != typeof loadable) throw new TypeError('Modern.js runtime loadable export must resolve to a function');
16
+ return loadable;
17
+ }
18
+ const loadable_loadable = resolveLoadable(__rspack_external__loadable_component_0aaae075);
19
+ const loadableNamespace = asLoadableNamespace(__rspack_external__loadable_component_0aaae075);
20
+ const loadableDefaultNamespace = asLoadableNamespace(loadableNamespace.default);
21
+ const callableLoadableNamespace = asLoadableNamespace(loadable_loadable);
22
+ const lazy = loadableNamespace.lazy ?? loadableDefaultNamespace.lazy ?? callableLoadableNamespace.lazy;
23
+ const loadableReady = loadableNamespace.loadableReady ?? loadableDefaultNamespace.loadableReady ?? callableLoadableNamespace.loadableReady;
24
+ const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = loadableNamespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED ?? loadableDefaultNamespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED ?? callableLoadableNamespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
25
+ const exports_loadable = loadable_loadable;
26
+ export default exports_loadable;
27
+ export { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy, loadableReady };
@@ -1,3 +1,30 @@
1
- export * from "@tanstack/react-router";
2
- export { Form, RouteActionResponseError, useFetcher } from "../router/runtime/tanstack/dataMutation.mjs";
3
- export { Link, NavLink } from "../router/runtime/tanstack/prefetchLink.mjs";
1
+ import { createElement } from "react";
2
+ const COMPAT_BINDINGS_SLOT = Symbol.for('@modern-js/plugin-tanstack:runtime-compat-bindings');
3
+ function readCompatBindings() {
4
+ return globalThis[COMPAT_BINDINGS_SLOT];
5
+ }
6
+ function resolveCompatBindings(exportName) {
7
+ const bindings = readCompatBindings();
8
+ if (void 0 === bindings) throw new Error(`[@modern-js/runtime] '${exportName}' from the deprecated '@modern-js/runtime/tanstack-router' alias is provided by @modern-js/plugin-tanstack. Install @modern-js/plugin-tanstack, add \`tanstackRouterPlugin()\` to the \`plugins\` array in modern.config.ts, and make sure '@modern-js/plugin-tanstack/runtime' is imported (e.g. in modern.runtime.ts) before '${exportName}' is used. Prefer importing '${exportName}' from '@modern-js/plugin-tanstack/runtime' directly.`);
9
+ return bindings;
10
+ }
11
+ const Link = (props)=>createElement(resolveCompatBindings('Link').Link, props);
12
+ const NavLink = (props)=>createElement(resolveCompatBindings('NavLink').NavLink, props);
13
+ const Outlet = ()=>createElement(resolveCompatBindings('Outlet').Outlet);
14
+ const Form = (props)=>createElement(resolveCompatBindings('Form').Form, props);
15
+ function useFetcher() {
16
+ return resolveCompatBindings('useFetcher').useFetcher();
17
+ }
18
+ function RouteActionResponseErrorPlaceholder() {}
19
+ const RouteActionResponseError = new Proxy(RouteActionResponseErrorPlaceholder, {
20
+ construct (_target, args) {
21
+ const RealError = resolveCompatBindings('RouteActionResponseError').RouteActionResponseError;
22
+ return new RealError(...args);
23
+ },
24
+ get (target, property, receiver) {
25
+ const RealError = readCompatBindings()?.RouteActionResponseError;
26
+ if (void 0 !== RealError) return Reflect.get(RealError, property);
27
+ return Reflect.get(target, property, receiver);
28
+ }
29
+ });
30
+ export { Form, Link, NavLink, Outlet, RouteActionResponseError, useFetcher };
@@ -0,0 +1,109 @@
1
+ const MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT = 'modernjs:mf-runtime-fallback';
2
+ const MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT = 'modernjs:mf-runtime-recovery';
3
+ const DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT = '/_modern/contract-gates/runtime-fallback';
4
+ const DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER = 'x-modernjs-runtime-signal-token';
5
+ class ModuleFederationRemoteLoadTimeoutError extends Error {
6
+ constructor(remote, timeoutMs){
7
+ super(`Loading remote "${remote}" timed out after ${timeoutMs}ms`);
8
+ this.name = 'ModuleFederationRemoteLoadTimeoutError';
9
+ }
10
+ }
11
+ class ModuleFederationRemoteLoadError extends Error {
12
+ constructor(remote, attempts, causeError){
13
+ super(`Unable to load remote "${remote}" after ${attempts} attempt${attempts > 1 ? 's' : ''}: ${causeError.message}`);
14
+ this.name = 'ModuleFederationRemoteLoadError';
15
+ this.remote = remote;
16
+ this.attempts = attempts;
17
+ this.causeError = causeError;
18
+ }
19
+ }
20
+ class ModuleFederationRemoteComponentContractError extends Error {
21
+ constructor(remote, exportName){
22
+ super(`Remote "${remote}" export "${exportName}" is not a valid React component`);
23
+ this.name = 'ModuleFederationRemoteComponentContractError';
24
+ }
25
+ }
26
+ function toError(error) {
27
+ if (error instanceof Error) return error;
28
+ return new Error('string' == typeof error ? error : 'Unknown remote load error');
29
+ }
30
+ function classifyModuleFederationFallback(error) {
31
+ const normalizedError = toError(error);
32
+ if (normalizedError instanceof ModuleFederationRemoteLoadError) return classifyModuleFederationFallback(normalizedError.causeError);
33
+ if (normalizedError instanceof ModuleFederationRemoteLoadTimeoutError) return 'timeout';
34
+ if (normalizedError instanceof ModuleFederationRemoteComponentContractError) return 'contract';
35
+ const message = normalizedError.message;
36
+ if (/version|requiredVersion|singleton|share scope|shared module/i.test(message)) return 'version-skew';
37
+ if (/network|fetch|script|timeout|chunk|loading/i.test(message)) return 'network';
38
+ return 'remote-unavailable';
39
+ }
40
+ function createModuleFederationFallbackTelemetry(input) {
41
+ const error = void 0 !== input.error ? toError(input.error) : void 0;
42
+ const status = input.status ?? 'degraded';
43
+ const eventName = input.eventName ?? ('recovered' === status ? MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT : MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT);
44
+ const metadata = {
45
+ ...input.metadata ?? {},
46
+ classification: input.classification,
47
+ remote: input.remote,
48
+ status
49
+ };
50
+ if (void 0 !== input.exportName) metadata.exportName = input.exportName;
51
+ if (void 0 !== input.runtimeDigest) metadata.runtimeDigest = input.runtimeDigest;
52
+ if (void 0 !== error) {
53
+ metadata.errorName = error.name;
54
+ metadata.errorMessage = error.message;
55
+ }
56
+ const payload = {
57
+ appName: input.appName,
58
+ eventName,
59
+ metadata,
60
+ phase: input.phase,
61
+ reason: input.classification,
62
+ schemaVersion: 1
63
+ };
64
+ if (void 0 !== input.entry) payload.entry = input.entry;
65
+ if (void 0 !== input.runtimeDigest) payload.runtimeDigest = input.runtimeDigest;
66
+ return payload;
67
+ }
68
+ function toModuleFederationFallbackAttributes(payload) {
69
+ return {
70
+ 'data-mf-fallback-app': payload.appName,
71
+ 'data-mf-fallback-classification': payload.reason,
72
+ 'data-mf-fallback-phase': payload.phase,
73
+ 'data-mf-fallback-remote': String(payload.metadata.remote),
74
+ 'data-mf-fallback-status': String(payload.metadata.status),
75
+ 'data-mf-telemetry-event': payload.eventName
76
+ };
77
+ }
78
+ async function emitModuleFederationFallbackTelemetry(input, options = {}) {
79
+ const payload = createModuleFederationFallbackTelemetry(input);
80
+ if ("u" > typeof window && 'function' == typeof window.dispatchEvent && "u" > typeof CustomEvent) window.dispatchEvent(new CustomEvent(payload.eventName, {
81
+ detail: payload
82
+ }));
83
+ const shouldPost = true === options.postSignal || Boolean(options.endpoint);
84
+ if (!shouldPost) return {
85
+ dispatched: true,
86
+ posted: false
87
+ };
88
+ const fetchImpl = options.fetchImpl ?? globalThis.fetch;
89
+ if ('function' != typeof fetchImpl) return {
90
+ dispatched: true,
91
+ posted: false
92
+ };
93
+ const headers = new Headers({
94
+ 'content-type': 'application/json'
95
+ });
96
+ if (void 0 !== options.authToken && options.authToken.length > 0) headers.set(options.authHeaderName ?? DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER, options.authToken);
97
+ const response = await fetchImpl(options.endpoint ?? DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT, {
98
+ body: JSON.stringify(payload),
99
+ headers,
100
+ method: 'POST',
101
+ keepalive: true
102
+ });
103
+ return {
104
+ dispatched: true,
105
+ posted: true,
106
+ postStatus: response.status
107
+ };
108
+ }
109
+ export { DEFAULT_RUNTIME_FALLBACK_SIGNAL_AUTH_HEADER, DEFAULT_RUNTIME_FALLBACK_SIGNAL_ENDPOINT, MODULE_FEDERATION_FALLBACK_SIGNAL_EVENT, MODULE_FEDERATION_RECOVERY_SIGNAL_EVENT, ModuleFederationRemoteComponentContractError, ModuleFederationRemoteLoadError, ModuleFederationRemoteLoadTimeoutError, classifyModuleFederationFallback, createModuleFederationFallbackTelemetry, emitModuleFederationFallbackTelemetry, toModuleFederationFallbackAttributes };
@@ -5,7 +5,6 @@ import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME } from "../../../cli/const
5
5
  import { resolveSSRMode } from "../../../cli/ssr/mode.mjs";
6
6
  import { FILE_SYSTEM_ROUTES_FILE_NAME } from "../constants.mjs";
7
7
  import { walk } from "./nestedRoutes.mjs";
8
- import { generateTanstackRouterTypesSourceForEntry, isTanstackRouterFrameworkEnabled } from "./tanstackTypes.mjs";
9
8
  import { getServerCombinedModuleFile, getServerLoadersFile } from "./utils.mjs";
10
9
  import * as __rspack_external__templates_mjs_4da4c6c8 from "./templates.mjs";
11
10
  async function generateRoutesForEntry(entrypoint, appContext) {
@@ -40,42 +39,11 @@ async function generateRoutesForEntry(entrypoint, appContext) {
40
39
  }
41
40
  return routes;
42
41
  }
43
- const generateCode = async (appContext, config, entrypoints, api, options)=>{
42
+ const generateCode = async (appContext, config, entrypoints, api)=>{
44
43
  const { internalDirectory, srcDirectory, internalSrcAlias, packageName } = appContext;
45
44
  const hooks = api.getHooks();
46
- const enableTanstackTypes = options?.enableTanstackTypes ?? await isTanstackRouterFrameworkEnabled(appContext);
47
45
  const generatedRoutesByEntry = {};
48
46
  await Promise.all(entrypoints.map(generateEntryCode));
49
- if (enableTanstackTypes) {
50
- const allEntries = Array.from(new Set(entrypoints.map((e)=>e.entryName).filter(Boolean)));
51
- const mainEntry = entrypoints.find((e)=>e.isMainEntry)?.entryName;
52
- const registerEntries = allEntries.sort((a, b)=>{
53
- if (mainEntry && a === mainEntry) return -1;
54
- if (mainEntry && b === mainEntry) return 1;
55
- return a.localeCompare(b);
56
- });
57
- if (registerEntries.length > 0) {
58
- const registerDtsPath = path.join(srcDirectory, 'modern-tanstack', 'register.gen.d.ts');
59
- const importStatements = registerEntries.map((entryName, index)=>`import type { router as router${index} } from './${entryName}/router.gen';`).join('\n');
60
- const routerUnionType = registerEntries.map((_, index)=>`typeof router${index}`).join(' | ');
61
- const registerContent = `// This file is auto-generated by Modern.js. Do not edit manually.
62
-
63
- ${importStatements}
64
-
65
- declare module '@modern-js/runtime/tanstack-router' {
66
- interface Register {
67
- router: ${routerUnionType};
68
- }
69
- }
70
- `;
71
- try {
72
- const prev = await fs.pathExists(registerDtsPath) ? await fs.readFile(registerDtsPath, 'utf-8') : null;
73
- if (prev !== registerContent) await fs.outputFile(registerDtsPath, registerContent, 'utf-8');
74
- } catch {
75
- await fs.outputFile(registerDtsPath, registerContent, 'utf-8');
76
- }
77
- }
78
- }
79
47
  async function generateEntryCode(entrypoint) {
80
48
  const { entryName, isMainEntry, isAutoMount, pageRoutesEntry, nestedRoutesEntry } = entrypoint;
81
49
  const { metaName } = api.getAppContext();
@@ -157,20 +125,6 @@ declare module '@modern-js/runtime/tanstack-router' {
157
125
  await fs.outputFile(serverLoaderFile, serverLoaderCombined);
158
126
  }
159
127
  await fs.outputFile(path.resolve(internalDirectory, `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`), code, 'utf8');
160
- if (enableTanstackTypes) {
161
- const { routerGenTs } = await generateTanstackRouterTypesSourceForEntry({
162
- appContext,
163
- entryName,
164
- routes: routes
165
- });
166
- const outPath = path.join(srcDirectory, 'modern-tanstack', entryName, 'router.gen.ts');
167
- try {
168
- const prev = await fs.pathExists(outPath) ? await fs.readFile(outPath, 'utf-8') : null;
169
- if (prev !== routerGenTs) await fs.outputFile(outPath, routerGenTs, 'utf-8');
170
- } catch {
171
- await fs.outputFile(outPath, routerGenTs, 'utf-8');
172
- }
173
- }
174
128
  }
175
129
  }
176
130
  }
@@ -170,16 +170,9 @@ const fileSystemRoutes = async ({ metaName, routes, ssrMode, nestedRoutesEntry,
170
170
  webpackChunkName: true
171
171
  });
172
172
  component = 'string' === ssrMode ? `loadable(${lazyImport})` : `lazy(${lazyImport})`;
173
- } else if ('string' === ssrMode) {
173
+ } else {
174
174
  components.push(route._component);
175
175
  component = `component_${components.length - 1}`;
176
- } else {
177
- lazyImport = createLazyImport({
178
- componentPath: route._component,
179
- routeId: route.id,
180
- eager: true
181
- });
182
- component = `lazy(${lazyImport})`;
183
176
  }
184
177
  } else if (route._component) if (splitRouteChunks) {
185
178
  lazyImport = `() => import('${route._component}')`;
@@ -20,7 +20,7 @@ async function handleGeneratorEntryCode(api, entrypoints, options = {}) {
20
20
  const { generatorRegisterCode, generateCode, generatorServerRegisterCode } = await import("./code/index.mjs");
21
21
  originEntrypointsByKey.set(entrypointsKey, cloneDeep(entrypoints));
22
22
  const enableRsc = resolvedConfig?.server?.rsc;
23
- const routesByEntry = await generateCode(appContext, resolvedConfig, entrypoints, api, normalizedOptions.generateCodeOptions);
23
+ const routesByEntry = await generateCode(appContext, resolvedConfig, entrypoints, api);
24
24
  await Promise.all(entrypoints.map(async (entrypoint)=>{
25
25
  if (entrypoint.nestedRoutesEntry || entrypoint.pageRoutesEntry) {
26
26
  const route = appContext.serverRoutes.find((r)=>r.entryName === entrypoint.entryName);
@@ -1,28 +1,8 @@
1
1
  import node_path from "node:path";
2
- import { NESTED_ROUTE_SPEC_FILE, filterRoutesForServer, findExists, fs } from "@modern-js/utils";
2
+ import { NESTED_ROUTE_SPEC_FILE, filterRoutesForServer, fs } from "@modern-js/utils";
3
3
  import { NESTED_ROUTES_DIR } from "./constants.mjs";
4
4
  import { BUILT_IN_ROUTES_OWNER, getEntrypointRoutesDir, getEntrypointRoutesOwner, isRouteEntry } from "./entry.mjs";
5
5
  import { handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints } from "./handler.mjs";
6
- const JS_OR_TS_EXTS = [
7
- '.js',
8
- '.jsx',
9
- '.ts',
10
- '.tsx',
11
- '.mjs',
12
- '.mts',
13
- '.cjs',
14
- '.cts'
15
- ];
16
- function hasRouterConfigInRuntimeFile(runtimeConfigBase) {
17
- const runtimeConfigFile = findExists(JS_OR_TS_EXTS.map((ext)=>`${runtimeConfigBase}${ext}`));
18
- if (!runtimeConfigFile) return false;
19
- try {
20
- const content = fs.readFileSync(runtimeConfigFile, 'utf-8');
21
- return /router\s*:/.test(content);
22
- } catch {
23
- return false;
24
- }
25
- }
26
6
  function isBuiltInRouteEntrypoint(entrypoint) {
27
7
  const entrypointRoutesOwner = getEntrypointRoutesOwner(entrypoint);
28
8
  if (entrypointRoutesOwner) return entrypointRoutesOwner === BUILT_IN_ROUTES_OWNER;
@@ -52,12 +32,11 @@ const routerPlugin = ()=>({
52
32
  });
53
33
  });
54
34
  api._internalRuntimePlugins(({ entrypoint, plugins })=>{
55
- const { serverRoutes, metaName, srcDirectory, runtimeConfigFile } = api.getAppContext();
35
+ const { serverRoutes, metaName } = api.getAppContext();
56
36
  const normalizedConfig = api.getNormalizedConfig();
57
37
  const hasUserRouterConfig = normalizedConfig.router && Object.keys(normalizedConfig.router).length > 0;
58
- const hasRuntimeRouterConfig = hasRouterConfigInRuntimeFile(node_path.join(srcDirectory, runtimeConfigFile));
59
38
  const serverBase = serverRoutes.filter((route)=>route.entryName === entrypoint.entryName).map((route)=>route.urlPath).sort((a, b)=>a.length - b.length > 0 ? -1 : 1);
60
- const shouldInstallBuiltInRouter = isBuiltInRouteEntrypoint(entrypoint) || !isPluginOwnedRouteEntrypoint(entrypoint) && (hasUserRouterConfig || hasRuntimeRouterConfig);
39
+ const shouldInstallBuiltInRouter = isBuiltInRouteEntrypoint(entrypoint) || !isPluginOwnedRouteEntrypoint(entrypoint) && hasUserRouterConfig;
61
40
  if (shouldInstallBuiltInRouter) plugins.push({
62
41
  name: 'router',
63
42
  path: `@${metaName}/runtime/router/internal`,