@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
@@ -1,306 +0,0 @@
1
- import "node:module";
2
- import { jsx } from "react/jsx-runtime";
3
- import { useRouter } from "@tanstack/react-router";
4
- import { useCallback, useRef, useState } from "react";
5
- class RouteActionResponseError extends Error {
6
- constructor(response, data){
7
- super(`Route action failed with status ${response.status}`);
8
- this.name = 'RouteActionResponseError';
9
- this.response = response;
10
- this.data = data;
11
- }
12
- }
13
- function formDataToUrlSearchParams(formData) {
14
- const searchParams = new URLSearchParams();
15
- formData.forEach((value, key)=>{
16
- if ('string' == typeof value) searchParams.append(key, value);
17
- });
18
- return searchParams;
19
- }
20
- function formDataToTextPlain(formData) {
21
- return Array.from(formData.entries()).map(([key, value])=>`${key}=${String(value)}`).join('\n');
22
- }
23
- function toFormData(target) {
24
- if (target instanceof HTMLFormElement) return new FormData(target);
25
- if (target instanceof FormData) return target;
26
- if (target instanceof URLSearchParams) {
27
- const formData = new FormData();
28
- target.forEach((value, key)=>{
29
- formData.append(key, value);
30
- });
31
- return formData;
32
- }
33
- const formData = new FormData();
34
- Object.entries(target).forEach(([key, value])=>{
35
- if (null == value) return;
36
- formData.append(key, String(value));
37
- });
38
- return formData;
39
- }
40
- function getSubmitter(event) {
41
- const nativeEvent = event.nativeEvent;
42
- const submitter = nativeEvent?.submitter;
43
- if (submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement) return submitter;
44
- return null;
45
- }
46
- function createFormDataFromSubmit({ form, submitter }) {
47
- if (submitter) try {
48
- return new FormData(form, submitter);
49
- } catch {}
50
- return new FormData(form);
51
- }
52
- function resolveSubmitOptionsFromForm({ form, submitter, action, method, encType }) {
53
- const resolvedAction = submitter?.getAttribute('formaction') || action || form.getAttribute('action') || '.';
54
- const resolvedMethod = (submitter?.getAttribute('formmethod') || method || form.getAttribute('method') || 'get').toLowerCase();
55
- const resolvedEncType = submitter?.getAttribute('formenctype') || encType || form.getAttribute('enctype') || 'application/x-www-form-urlencoded';
56
- return {
57
- action: resolvedAction,
58
- method: resolvedMethod,
59
- encType: resolvedEncType
60
- };
61
- }
62
- function resolveRouteHandlers(router, actionTo) {
63
- const builtLocation = router.buildLocation({
64
- to: actionTo
65
- });
66
- const href = router.getParsedLocationHref(builtLocation);
67
- const matchedRoutes = router.getMatchedRoutes(builtLocation.pathname);
68
- const routeStaticData = matchedRoutes.foundRoute?.options?.staticData;
69
- const action = routeStaticData?.modernRouteAction;
70
- const loader = routeStaticData?.modernRouteLoader;
71
- return {
72
- action,
73
- loader,
74
- href,
75
- params: matchedRoutes.routeParams || {}
76
- };
77
- }
78
- function isRedirectResponse(value) {
79
- if (!(value instanceof Response)) return false;
80
- return [
81
- 301,
82
- 302,
83
- 303,
84
- 307,
85
- 308
86
- ].includes(value.status);
87
- }
88
- async function parseResponseData(response) {
89
- if (204 === response.status) return null;
90
- const contentType = response.headers.get('Content-Type') || '';
91
- if (contentType.includes('application/json')) return response.json();
92
- return response.text();
93
- }
94
- async function parseResponseResultOrThrow(response) {
95
- const parsed = await parseResponseData(response);
96
- if (!response.ok) throw new RouteActionResponseError(response, parsed);
97
- return parsed;
98
- }
99
- async function submitRouteAction({ router, target, options = {}, isFetcher = false, onInvalidateStart }) {
100
- const method = (options.method || 'post').toLowerCase();
101
- const encType = options.encType || 'application/x-www-form-urlencoded';
102
- const actionTo = options.action || '.';
103
- const formData = toFormData(target);
104
- const resolved = resolveRouteHandlers(router, actionTo);
105
- if ('get' === method) {
106
- const search = formDataToUrlSearchParams(formData).toString();
107
- const requestUrl = new URL(resolved.href, window.location.origin);
108
- requestUrl.search = search;
109
- if (isFetcher && resolved.loader) {
110
- const result = await resolved.loader({
111
- request: new Request(requestUrl, {
112
- method: 'GET'
113
- }),
114
- params: resolved.params
115
- });
116
- if (result instanceof Response) {
117
- const redirectTo = result.headers.get('X-Modernjs-Redirect') || result.headers.get('Location');
118
- if (redirectTo || isRedirectResponse(result)) {
119
- await router.navigate({
120
- to: redirectTo || '/'
121
- });
122
- return parseResponseData(result);
123
- }
124
- return parseResponseResultOrThrow(result);
125
- }
126
- return result;
127
- }
128
- await router.navigate({
129
- href: search ? `${resolved.href}?${search}` : resolved.href
130
- });
131
- return;
132
- }
133
- if (!resolved.action) throw new Error(`No route action found for "${actionTo}"`);
134
- const headers = new Headers();
135
- let body = null;
136
- if (encType.includes('application/json')) {
137
- headers.set('Content-Type', 'application/json');
138
- body = JSON.stringify(Object.fromEntries(formDataToUrlSearchParams(formData).entries()));
139
- } else if (encType.includes('text/plain')) {
140
- headers.set('Content-Type', 'text/plain;charset=UTF-8');
141
- body = formDataToTextPlain(formData);
142
- } else if (encType.includes('application/x-www-form-urlencoded')) {
143
- headers.set('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
144
- body = formDataToUrlSearchParams(formData);
145
- } else body = formData;
146
- const request = new Request(new URL(resolved.href, window.location.origin), {
147
- method: method.toUpperCase(),
148
- headers,
149
- body
150
- });
151
- const result = await resolved.action({
152
- request,
153
- params: resolved.params
154
- });
155
- if (result instanceof Response) {
156
- const redirectTo = result.headers.get('X-Modernjs-Redirect') || result.headers.get('Location');
157
- if (redirectTo || isRedirectResponse(result)) {
158
- await router.navigate({
159
- to: redirectTo || '/'
160
- });
161
- return parseResponseData(result);
162
- }
163
- const parsed = isFetcher ? await parseResponseResultOrThrow(result) : await parseResponseData(result);
164
- onInvalidateStart?.();
165
- await router.invalidate();
166
- return parsed;
167
- }
168
- onInvalidateStart?.();
169
- await router.invalidate();
170
- return result;
171
- }
172
- function Form({ action, method = 'get', encType, reloadDocument, onSubmit, ...rest }) {
173
- const router = useRouter();
174
- const handleSubmit = useCallback(async (event)=>{
175
- onSubmit?.(event);
176
- if (event.defaultPrevented || reloadDocument) return;
177
- event.preventDefault();
178
- const submitter = getSubmitter(event);
179
- const formData = createFormDataFromSubmit({
180
- form: event.currentTarget,
181
- submitter
182
- });
183
- const normalizedOptions = resolveSubmitOptionsFromForm({
184
- form: event.currentTarget,
185
- submitter,
186
- action,
187
- method,
188
- encType
189
- });
190
- await submitRouteAction({
191
- router,
192
- target: formData,
193
- options: normalizedOptions
194
- });
195
- }, [
196
- action,
197
- encType,
198
- method,
199
- onSubmit,
200
- reloadDocument,
201
- router
202
- ]);
203
- return /*#__PURE__*/ jsx("form", {
204
- ...rest,
205
- action: action,
206
- method: method,
207
- encType: encType,
208
- onSubmit: handleSubmit
209
- });
210
- }
211
- function useFetcher() {
212
- const router = useRouter();
213
- const [state, setState] = useState('idle');
214
- const [data, setData] = useState(void 0);
215
- const [error, setError] = useState(void 0);
216
- const requestStatesRef = useRef(new Map());
217
- const requestIdRef = useRef(0);
218
- const syncStateFromRequests = useCallback(()=>{
219
- let hasSubmitting = false;
220
- let hasLoading = false;
221
- requestStatesRef.current.forEach((requestState)=>{
222
- if ('submitting' === requestState) hasSubmitting = true;
223
- else if ('loading' === requestState) hasLoading = true;
224
- });
225
- if (hasSubmitting) return void setState('submitting');
226
- if (hasLoading) return void setState('loading');
227
- setState('idle');
228
- }, []);
229
- const setRequestState = useCallback((requestId, requestState)=>{
230
- requestStatesRef.current.set(requestId, requestState);
231
- syncStateFromRequests();
232
- }, [
233
- syncStateFromRequests
234
- ]);
235
- const clearRequestState = useCallback((requestId)=>{
236
- requestStatesRef.current.delete(requestId);
237
- syncStateFromRequests();
238
- }, [
239
- syncStateFromRequests
240
- ]);
241
- const submit = useCallback(async (target, options)=>{
242
- setError(void 0);
243
- const requestId = ++requestIdRef.current;
244
- const normalizedMethod = (options?.method || 'post').toLowerCase();
245
- const isLoaderSubmit = 'get' === normalizedMethod;
246
- setRequestState(requestId, isLoaderSubmit ? 'loading' : 'submitting');
247
- try {
248
- const result = await submitRouteAction({
249
- router,
250
- target,
251
- options,
252
- isFetcher: true,
253
- onInvalidateStart: ()=>{
254
- if (!isLoaderSubmit) setRequestState(requestId, 'loading');
255
- }
256
- });
257
- setData(result);
258
- } catch (err) {
259
- setError(err);
260
- throw err;
261
- } finally{
262
- clearRequestState(requestId);
263
- }
264
- }, [
265
- clearRequestState,
266
- router,
267
- setRequestState
268
- ]);
269
- const FetcherForm = useCallback(({ action, method = 'get', encType, reloadDocument, onSubmit, ...rest })=>{
270
- const handleSubmit = async (event)=>{
271
- onSubmit?.(event);
272
- if (event.defaultPrevented || reloadDocument) return;
273
- event.preventDefault();
274
- const submitter = getSubmitter(event);
275
- const formData = createFormDataFromSubmit({
276
- form: event.currentTarget,
277
- submitter
278
- });
279
- const normalizedOptions = resolveSubmitOptionsFromForm({
280
- form: event.currentTarget,
281
- submitter,
282
- action,
283
- method,
284
- encType
285
- });
286
- await submit(formData, normalizedOptions);
287
- };
288
- return /*#__PURE__*/ jsx("form", {
289
- ...rest,
290
- action: action,
291
- method: method,
292
- encType: encType,
293
- onSubmit: handleSubmit
294
- });
295
- }, [
296
- submit
297
- ]);
298
- return {
299
- state,
300
- data,
301
- error,
302
- Form: FetcherForm,
303
- submit
304
- };
305
- }
306
- export { Form, RouteActionResponseError, useFetcher };
@@ -1,10 +0,0 @@
1
- import "node:module";
2
- import { jsx } from "react/jsx-runtime";
3
- import { Suspense } from "react";
4
- function wrapTanstackSsrHydrationBoundary(routerContent, shouldWrap) {
5
- return shouldWrap ? /*#__PURE__*/ jsx(Suspense, {
6
- fallback: null,
7
- children: routerContent
8
- }) : routerContent;
9
- }
10
- export { wrapTanstackSsrHydrationBoundary };
@@ -1,207 +0,0 @@
1
- import "node:module";
2
- import { jsx } from "react/jsx-runtime";
3
- import { merge } from "@modern-js/runtime-utils/merge";
4
- import { normalizePathname } from "@modern-js/runtime-utils/url";
5
- import { RouterProvider, createBrowserHistory, createHashHistory, createRouter, useLocation, useMatches, useNavigate, useRouter } from "@tanstack/react-router";
6
- import { RouterClient } from "@tanstack/react-router/ssr/client";
7
- import { useContext, useMemo } from "react";
8
- import { InternalRuntimeContext, getGlobalEnableRsc, getGlobalLayoutApp, getGlobalRoutes } from "../../../core/context/index.mjs";
9
- import { onAfterCreateRouter, onAfterHydrateRouter, onBeforeCreateRouter, onBeforeHydrateRouter } from "../hooks.mjs";
10
- import { applyRouterRuntimeState } from "../lifecycle.mjs";
11
- import { createRouteObjectsFromConfig, urlJoin } from "../utils.mjs";
12
- import { createModernBasepathRewrite } from "./basepathRewrite.mjs";
13
- import { wrapTanstackSsrHydrationBoundary } from "./hydrationBoundary.mjs";
14
- import { Link } from "./prefetchLink.mjs";
15
- import { createRouteTreeFromRouteObjects } from "./routeTree.mjs";
16
- import { getTanstackRscSerializationAdapters } from "./rsc/client.mjs";
17
- const BLOCKING_SUBSCRIBE_SYMBOL = Symbol.for('@modern-js/plugin-runtime:tanstack-blocking-subscribe');
18
- const BLOCKING_STATE_SYMBOL = Symbol.for('@modern-js/plugin-runtime:tanstack-blocking-state');
19
- function normalizeBase(b) {
20
- if (b.length > 1 && b.endsWith('/')) return b.slice(0, -1);
21
- return b || '/';
22
- }
23
- function isSegmentPrefix(pathname, base) {
24
- const b = normalizeBase(base);
25
- const p = pathname || '/';
26
- return p === b || p.startsWith(`${b}/`);
27
- }
28
- function wrapRouterSubscribeWithBlockState(router, getBlockNavState) {
29
- if (!router || 'object' != typeof router) return;
30
- const target = router;
31
- target[BLOCKING_STATE_SYMBOL] = getBlockNavState;
32
- if (target[BLOCKING_SUBSCRIBE_SYMBOL] || 'function' != typeof target.subscribe) return;
33
- const originSubscribe = target.subscribe.bind(target);
34
- target.subscribe = (eventType, listener)=>{
35
- const wrappedListener = (...args)=>{
36
- const blockRoute = target[BLOCKING_STATE_SYMBOL]?.() || false;
37
- if (blockRoute) return;
38
- return listener(...args);
39
- };
40
- return originSubscribe(eventType, wrappedListener);
41
- };
42
- target[BLOCKING_SUBSCRIBE_SYMBOL] = true;
43
- }
44
- function stripSyntheticNotFoundRoute(routes) {
45
- return routes.filter((route)=>!('*' === route.path && !route.id && !route.loader)).map((route)=>{
46
- if (!route.children?.length) return route;
47
- return {
48
- ...route,
49
- children: stripSyntheticNotFoundRoute(route.children)
50
- };
51
- });
52
- }
53
- const tanstackRouterPlugin = (userConfig = {})=>({
54
- name: '@modern-js/plugin-router-tanstack',
55
- registryHooks: {
56
- onAfterCreateRouter: onAfterCreateRouter,
57
- onAfterHydrateRouter: onAfterHydrateRouter,
58
- onBeforeCreateRouter: onBeforeCreateRouter,
59
- onBeforeHydrateRouter: onBeforeHydrateRouter
60
- },
61
- setup: (api)=>{
62
- api.onBeforeRender((context)=>{
63
- const pluginConfig = api.getRuntimeConfig();
64
- const mergedConfig = merge(pluginConfig.router || {}, userConfig);
65
- if ("u" > typeof window && window._SSR_DATA && mergedConfig.unstable_reloadOnURLMismatch) {
66
- const { ssrContext } = context;
67
- const currentPathname = normalizePathname(window.location.pathname);
68
- const initialPathname = ssrContext?.request?.pathname && normalizePathname(ssrContext.request.pathname);
69
- if (initialPathname && initialPathname !== currentPathname) {
70
- const errorMsg = `The initial URL ${initialPathname} and the URL ${currentPathname} to be hydrated do not match, reload.`;
71
- console.error(errorMsg);
72
- window.location.reload();
73
- }
74
- }
75
- context.router = {
76
- Link: Link,
77
- useMatches: useMatches,
78
- useLocation: useLocation,
79
- useNavigate: useNavigate,
80
- useRouter: useRouter
81
- };
82
- });
83
- api.wrapRoot((App)=>{
84
- const mergedConfig = merge(api.getRuntimeConfig().router || {}, userConfig);
85
- const { serverBase = [], supportHtml5History = true, basename = '', routesConfig, createRoutes } = mergedConfig;
86
- const finalRouteConfig = {
87
- routes: getGlobalRoutes(),
88
- globalApp: getGlobalLayoutApp(),
89
- ...routesConfig
90
- };
91
- if (!finalRouteConfig.routes && !createRoutes) return App;
92
- const hooks = api.getHooks();
93
- let cachedRouteObjects;
94
- const getRouteObjects = ()=>{
95
- if (void 0 !== cachedRouteObjects) return cachedRouteObjects;
96
- const routeObjects = createRoutes ? createRoutes() : createRouteObjectsFromConfig({
97
- routesConfig: finalRouteConfig
98
- }) || [];
99
- const normalizedRouteObjects = createRoutes ? routeObjects : stripSyntheticNotFoundRoute(routeObjects);
100
- cachedRouteObjects = hooks.modifyRoutes.call(normalizedRouteObjects);
101
- return cachedRouteObjects;
102
- };
103
- const selectBasePath = (pathname)=>{
104
- const match = serverBase.find((baseUrl)=>isSegmentPrefix(pathname, baseUrl));
105
- return match || '/';
106
- };
107
- let cachedRouteTree = null;
108
- let cachedRouter = null;
109
- let cachedRouterBasepath = null;
110
- const RouterWrapper = ()=>{
111
- const runtimeContext = useContext(InternalRuntimeContext);
112
- const baseUrl = selectBasePath(location.pathname).replace(/^\/*/, '/');
113
- const _basename = '/' === baseUrl ? urlJoin(baseUrl, runtimeContext._internalRouterBaseName || basename || '') : baseUrl;
114
- const routeTree = useMemo(()=>{
115
- if (cachedRouteTree) return cachedRouteTree;
116
- const routeObjects = getRouteObjects();
117
- if (!routeObjects.length) return null;
118
- cachedRouteTree = createRouteTreeFromRouteObjects(routeObjects);
119
- return cachedRouteTree;
120
- }, []);
121
- if (!routeTree) return App ? /*#__PURE__*/ jsx(App, {}) : null;
122
- const router = useMemo(()=>{
123
- const lifecycleContext = {
124
- framework: 'tanstack',
125
- phase: 'client-create',
126
- routes: getRouteObjects(),
127
- runtimeContext,
128
- basename: _basename
129
- };
130
- hooks.onBeforeCreateRouter.call(lifecycleContext);
131
- if (cachedRouter && cachedRouterBasepath === _basename) {
132
- wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
133
- hooks.onAfterCreateRouter.call({
134
- ...lifecycleContext,
135
- router: cachedRouter,
136
- runtimeContext
137
- });
138
- return cachedRouter;
139
- }
140
- const history = supportHtml5History ? createBrowserHistory() : createHashHistory();
141
- const rewrite = createModernBasepathRewrite(_basename);
142
- const serializationAdapters = getGlobalEnableRsc() ? getTanstackRscSerializationAdapters() : void 0;
143
- cachedRouter = createRouter({
144
- routeTree,
145
- basepath: '/',
146
- rewrite,
147
- history,
148
- context: {},
149
- ...serializationAdapters ? {
150
- serializationAdapters
151
- } : {}
152
- });
153
- cachedRouterBasepath = _basename;
154
- wrapRouterSubscribeWithBlockState(cachedRouter, runtimeContext.unstable_getBlockNavState);
155
- hooks.onAfterCreateRouter.call({
156
- ...lifecycleContext,
157
- router: cachedRouter,
158
- runtimeContext
159
- });
160
- return cachedRouter;
161
- }, [
162
- _basename,
163
- routeTree,
164
- supportHtml5History,
165
- runtimeContext
166
- ]);
167
- const runtimeState = applyRouterRuntimeState(runtimeContext, {
168
- framework: 'tanstack',
169
- basename: _basename,
170
- instance: router
171
- });
172
- const lifecycleContext = {
173
- framework: 'tanstack',
174
- phase: 'client-create',
175
- routes: getRouteObjects(),
176
- runtimeContext: runtimeState,
177
- basename: _basename,
178
- router
179
- };
180
- const hasSSRBootstrap = "u" > typeof window && Boolean(window.$_TSR);
181
- if (hasSSRBootstrap) hooks.onBeforeHydrateRouter.call({
182
- ...lifecycleContext,
183
- phase: 'hydrate',
184
- router,
185
- runtimeContext: runtimeState
186
- });
187
- const RouterContent = hasSSRBootstrap ? /*#__PURE__*/ jsx(RouterClient, {
188
- router: router
189
- }) : /*#__PURE__*/ jsx(RouterProvider, {
190
- router: router
191
- });
192
- const HydratableRouterContent = wrapTanstackSsrHydrationBoundary(RouterContent, hasSSRBootstrap);
193
- if (hasSSRBootstrap) hooks.onAfterHydrateRouter.call({
194
- ...lifecycleContext,
195
- phase: 'hydrate',
196
- router,
197
- runtimeContext: runtimeState
198
- });
199
- return App ? /*#__PURE__*/ jsx(App, {
200
- children: HydratableRouterContent
201
- }) : HydratableRouterContent;
202
- };
203
- return RouterWrapper;
204
- });
205
- }
206
- });
207
- export { tanstackRouterPlugin };