@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,196 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.n = (module)=>{
5
- var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
- __webpack_require__.d(getter, {
7
- a: getter
8
- });
9
- return getter;
10
- };
11
- })();
12
- (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
17
- });
18
- };
19
- })();
20
- (()=>{
21
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
- })();
23
- (()=>{
24
- __webpack_require__.r = (exports1)=>{
25
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
- value: 'Module'
27
- });
28
- Object.defineProperty(exports1, '__esModule', {
29
- value: true
30
- });
31
- };
32
- })();
33
- var __webpack_exports__ = {};
34
- __webpack_require__.r(__webpack_exports__);
35
- __webpack_require__.d(__webpack_exports__, {
36
- default: ()=>Entry
37
- });
38
- const node_namespaceObject = require("@modern-js/runtime-utils/node");
39
- const time_namespaceObject = require("@modern-js/runtime-utils/time");
40
- const external_react_namespaceObject = require("react");
41
- var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
42
- const external_react_helmet_async_namespaceObject = require("react-helmet-async");
43
- const helmet_js_namespaceObject = require("../../../core/server/helmet.js");
44
- const utils_js_namespaceObject = require("../../../router/runtime/utils.js");
45
- const external_prefetch_namespaceObject = require("../../prefetch");
46
- var external_prefetch_default = /*#__PURE__*/ __webpack_require__.n(external_prefetch_namespaceObject);
47
- const external_tracker_namespaceObject = require("../tracker");
48
- const external_types_js_namespaceObject = require("../types.js");
49
- const external_utils_namespaceObject = require("../utils");
50
- const external_buildHtml_namespaceObject = require("./buildHtml");
51
- const external_loadable_namespaceObject = require("./loadable");
52
- const external_render_namespaceObject = require("./render");
53
- const external_styledComponent_namespaceObject = require("./styledComponent");
54
- const buildTemplateData = (context, data, renderLevel, tracker)=>{
55
- const { request, enableUnsafeCtx } = context;
56
- const unsafeContext = {
57
- headers: request.headers
58
- };
59
- return {
60
- data,
61
- context: {
62
- request: {
63
- params: request.params,
64
- query: request.query,
65
- pathname: request.pathname,
66
- host: request.host,
67
- url: request.url,
68
- ...enableUnsafeCtx ? unsafeContext : {}
69
- },
70
- reporter: {
71
- sessionId: tracker.sessionId
72
- }
73
- },
74
- renderLevel
75
- };
76
- };
77
- class Entry {
78
- async renderToHtml(context) {
79
- const ssrContext = context.ssrContext;
80
- if (ssrContext.redirection?.url) return '';
81
- const prefetchData = await this.prefetch(context);
82
- if (ssrContext.redirection?.url) return '';
83
- if (this.result.renderLevel >= external_types_js_namespaceObject.RenderLevel.SERVER_PREFETCH) this.result.html = await this.renderToString(context);
84
- if (ssrContext.redirection?.url) return '';
85
- const { routerContext, routerServerSnapshot } = context;
86
- const routerData = routerServerSnapshot?.routerData ? {
87
- loaderData: routerServerSnapshot.routerData.loaderData,
88
- errors: (0, utils_js_namespaceObject.serializeErrors)(routerServerSnapshot.routerData.errors)
89
- } : routerContext ? {
90
- loaderData: routerContext.loaderData,
91
- errors: (0, utils_js_namespaceObject.serializeErrors)(routerContext.errors)
92
- } : void 0;
93
- const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel, this.tracker);
94
- const ssrDataScripts = this.getSSRDataScript(templateData, routerData);
95
- const html = (0, external_buildHtml_namespaceObject.buildHtml)(this.template, [
96
- (0, external_buildHtml_namespaceObject.createReplaceChunkCss)(this.result.chunksMap.css),
97
- (0, external_buildHtml_namespaceObject.createReplaceChunkJs)(this.result.chunksMap.js),
98
- (0, external_buildHtml_namespaceObject.createReplaceHtml)(this.result.html || ''),
99
- (0, external_buildHtml_namespaceObject.createReplaceSSRDataScript)(ssrDataScripts),
100
- ...this.htmlModifiers
101
- ]);
102
- const helmetData = (0, helmet_js_namespaceObject.getHelmetData)(context);
103
- return helmetData ? (0, helmet_js_namespaceObject.helmetReplace)(html, helmetData) : html;
104
- }
105
- async prefetch(context) {
106
- let prefetchData;
107
- const end = (0, time_namespaceObject.time)();
108
- try {
109
- prefetchData = await external_prefetch_default()(this.App, context, this.pluginConfig);
110
- this.result.renderLevel = external_types_js_namespaceObject.RenderLevel.SERVER_PREFETCH;
111
- const prefetchCost = end();
112
- this.tracker.trackTiming(external_tracker_namespaceObject.SSRTimings.SSR_PREFETCH, prefetchCost);
113
- } catch (e) {
114
- this.result.renderLevel = external_types_js_namespaceObject.RenderLevel.CLIENT_RENDER;
115
- this.tracker.trackError(external_tracker_namespaceObject.SSRErrors.PREFETCH, e);
116
- }
117
- return prefetchData || {};
118
- }
119
- async renderToString(context) {
120
- let html = '';
121
- const end = (0, time_namespaceObject.time)();
122
- const { ssrContext } = context;
123
- try {
124
- const helmetContext = context._helmetContext ??= {};
125
- const App = external_react_default().createElement(external_react_helmet_async_namespaceObject.HelmetProvider, {
126
- context: helmetContext
127
- }, external_react_default().createElement(this.App, {
128
- context: Object.assign(context, {
129
- ssr: true
130
- })
131
- }));
132
- html = await (0, external_render_namespaceObject.createRender)(App).addCollector((0, external_styledComponent_namespaceObject.createStyledCollector)(this.result)).addCollector((0, external_loadable_namespaceObject.createLoadableCollector)({
133
- stats: ssrContext.loadableStats,
134
- result: this.result,
135
- entryName: this.entryName,
136
- config: this.pluginConfig,
137
- nonce: this.nonce,
138
- template: this.template,
139
- routeManifest: this.routeManifest
140
- })).finish();
141
- const cost = end();
142
- this.tracker.trackTiming(external_tracker_namespaceObject.SSRTimings.SSR_RENDER_HTML, cost);
143
- this.result.renderLevel = external_types_js_namespaceObject.RenderLevel.SERVER_RENDER;
144
- } catch (e) {
145
- this.tracker.trackError(external_tracker_namespaceObject.SSRErrors.RENDER_HTML, e);
146
- }
147
- return html;
148
- }
149
- getSSRDataScript(templateData, routerData) {
150
- const useInlineScript = false !== this.pluginConfig.inlineScript;
151
- const sanitizedTemplateData = (0, node_namespaceObject.sanitizeSSRPayload)(templateData, {
152
- unsafeHeaders: this.pluginConfig.unsafeHeaders
153
- }).payload;
154
- const ssrData = (0, node_namespaceObject.serializeJson)(sanitizedTemplateData);
155
- const attrsStr = (0, external_utils_namespaceObject.attributesToString)({
156
- nonce: this.nonce
157
- });
158
- let ssrDataScripts = useInlineScript ? `<script${attrsStr}>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${external_utils_namespaceObject.SSR_DATA_JSON_ID}">${ssrData}</script>`;
159
- if (routerData) {
160
- const sanitizedRouterData = (0, node_namespaceObject.sanitizeSSRPayload)(routerData, {
161
- unsafeHeaders: this.pluginConfig.unsafeHeaders
162
- }).payload;
163
- const serializedRouterData = (0, node_namespaceObject.serializeJson)(sanitizedRouterData);
164
- ssrDataScripts += useInlineScript ? `\n<script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>` : `\n<script type="application/json" id="${external_utils_namespaceObject.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
165
- }
166
- return ssrDataScripts;
167
- }
168
- constructor(options){
169
- const { ctx, config } = options;
170
- const { entryName, template, nonce } = ctx;
171
- this.template = template;
172
- this.entryName = entryName;
173
- this.App = options.App;
174
- this.pluginConfig = config;
175
- this.routeManifest = ctx.routeManifest;
176
- this.tracker = ctx.tracker;
177
- this.metrics = ctx.metrics;
178
- this.htmlModifiers = ctx.htmlModifiers;
179
- this.nonce = nonce;
180
- this.result = {
181
- renderLevel: external_types_js_namespaceObject.RenderLevel.CLIENT_RENDER,
182
- html: '',
183
- chunksMap: {
184
- js: '',
185
- css: ''
186
- }
187
- };
188
- }
189
- }
190
- exports["default"] = __webpack_exports__["default"];
191
- for(var __rspack_i in __webpack_exports__)if (-1 === [
192
- "default"
193
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
194
- Object.defineProperty(exports, '__esModule', {
195
- value: true
196
- });
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- RenderLevel: ()=>type_namespaceObject.RenderLevel
28
- });
29
- const type_namespaceObject = require("./renderToString/type");
30
- exports.RenderLevel = __webpack_exports__.RenderLevel;
31
- for(var __rspack_i in __webpack_exports__)if (-1 === [
32
- "RenderLevel"
33
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
34
- Object.defineProperty(exports, '__esModule', {
35
- value: true
36
- });
@@ -1,396 +0,0 @@
1
- import { findExists, formatImportPath, fs, slash } from "@modern-js/utils";
2
- import path from "path";
3
- import { makeLegalIdentifier } from "./makeLegalIdentifier.mjs";
4
- import { getPathWithoutExt } from "./utils.mjs";
5
- const JS_OR_TS_EXTS = [
6
- '.js',
7
- '.jsx',
8
- '.ts',
9
- '.tsx',
10
- '.mjs',
11
- '.mts',
12
- '.cjs',
13
- '.cts'
14
- ];
15
- function toTanstackPath(pathname) {
16
- return pathname.split('/').map((segment)=>{
17
- if (!segment) return segment;
18
- if ('*' === segment) return '$';
19
- if (segment.startsWith(':')) {
20
- const name = segment.slice(1);
21
- if (name.endsWith('?')) return `{-$${name.slice(0, -1)}}`;
22
- return `$${name}`;
23
- }
24
- return segment;
25
- }).join('/');
26
- }
27
- async function resolveFileNoExt(inputNoExtPath) {
28
- const file = findExists(JS_OR_TS_EXTS.map((ext)=>`${inputNoExtPath}${ext}`));
29
- return file ? getPathWithoutExt(file) : null;
30
- }
31
- function quote(str) {
32
- return JSON.stringify(str);
33
- }
34
- function normalizeRelativeImport(p) {
35
- const normalized = formatImportPath(slash(p));
36
- if (normalized.startsWith('.')) return normalized;
37
- return `./${normalized}`;
38
- }
39
- function pickModernLoaderModule(route) {
40
- const loaderPath = route.data || route.loader;
41
- if (!loaderPath || 'string' != typeof loaderPath) return null;
42
- const inline = Boolean(route.data);
43
- return {
44
- loaderPath,
45
- inline
46
- };
47
- }
48
- function isPathlessLayout(route) {
49
- return 'nested' === route.type && 'boolean' != typeof route.index && void 0 === route.path;
50
- }
51
- function isIndexRoute(route) {
52
- return 'nested' === route.type && Boolean(route.index);
53
- }
54
- function createRouteStaticDataSnippet(opts) {
55
- const staticDataLines = [];
56
- if (opts.modernRouteId) staticDataLines.push(`modernRouteId: ${quote(opts.modernRouteId)},`);
57
- if (opts.loaderName) staticDataLines.push(`modernRouteLoader: ${opts.loaderName},`);
58
- if (opts.actionName) staticDataLines.push(`modernRouteAction: ${opts.actionName},`);
59
- if (!staticDataLines.length) return null;
60
- return `staticData: createRouteStaticData({\n ${staticDataLines.join('\n ')}\n }),`;
61
- }
62
- async function isTanstackRouterFrameworkEnabled(appContext) {
63
- const runtimeConfigBase = path.join(appContext.srcDirectory, appContext.runtimeConfigFile);
64
- const runtimeConfigFile = findExists(JS_OR_TS_EXTS.map((ext)=>`${runtimeConfigBase}${ext}`));
65
- if (!runtimeConfigFile) return false;
66
- try {
67
- const content = await fs.readFile(runtimeConfigFile, 'utf-8');
68
- return /framework\s*:\s*['"]tanstack['"]/.test(content);
69
- } catch {
70
- return false;
71
- }
72
- }
73
- async function generateTanstackRouterTypesSourceForEntry(opts) {
74
- const { appContext, entryName, routes } = opts;
75
- const outDir = path.join(appContext.srcDirectory, 'modern-tanstack', entryName);
76
- const rootModern = routes.find((r)=>r && 'nested' === r.type && r.isRoot);
77
- const topLevel = rootModern ? rootModern.children || [] : routes;
78
- const imports = [];
79
- const statements = [];
80
- const componentImportMap = new Map();
81
- const loaderImportMap = new Map();
82
- const usedRouteVarNames = new Set();
83
- let componentIndex = 0;
84
- let loaderIndex = 0;
85
- let routeIndex = 0;
86
- const getImportNameForComponent = (componentPath)=>{
87
- if ('string' != typeof componentPath || 0 === componentPath.length) return null;
88
- const existing = componentImportMap.get(componentPath);
89
- if (existing) return existing;
90
- const componentName = `component_${componentIndex++}`;
91
- imports.push(`import ${componentName} from ${quote(componentPath)};`);
92
- componentImportMap.set(componentPath, componentName);
93
- return componentName;
94
- };
95
- const getImportNamesForLoader = async (aliasedNoExtPath, inline, hasAction)=>{
96
- const key = `${inline ? 'inline' : 'default'}:${hasAction ? 'action' : 'loader'}:${aliasedNoExtPath}`;
97
- const existing = loaderImportMap.get(key);
98
- if (existing) return {
99
- loaderName: existing,
100
- actionName: hasAction ? existing.replace(/^loader_/, 'action_') : null
101
- };
102
- const prefix = `${appContext.internalSrcAlias}/`;
103
- let absNoExt = null;
104
- if (aliasedNoExtPath.startsWith(prefix)) {
105
- const rel = aliasedNoExtPath.slice(prefix.length);
106
- absNoExt = path.join(appContext.srcDirectory, rel);
107
- } else absNoExt = path.isAbsolute(aliasedNoExtPath) ? aliasedNoExtPath : path.join(appContext.srcDirectory, aliasedNoExtPath);
108
- const resolvedNoExt = await resolveFileNoExt(absNoExt);
109
- if (!resolvedNoExt) return null;
110
- const relImport = normalizeRelativeImport(path.relative(outDir, resolvedNoExt));
111
- const importName = `loader_${loaderIndex++}`;
112
- const actionName = hasAction ? importName.replace(/^loader_/, 'action_') : null;
113
- if (inline) {
114
- const specifiers = [
115
- `loader as ${importName}`
116
- ];
117
- if (actionName) specifiers.push(`action as ${actionName}`);
118
- imports.push(`import { ${specifiers.join(', ')} } from ${quote(relImport)};`);
119
- } else imports.push(`import ${importName} from ${quote(relImport)};`);
120
- loaderImportMap.set(key, importName);
121
- return {
122
- loaderName: importName,
123
- actionName
124
- };
125
- };
126
- const reserveRouteVarName = (preferred)=>{
127
- let candidate = preferred;
128
- let suffix = 1;
129
- while(usedRouteVarNames.has(candidate))candidate = `${preferred}_${suffix++}`;
130
- usedRouteVarNames.add(candidate);
131
- return candidate;
132
- };
133
- const createRouteVarName = (route)=>{
134
- const id = route.id;
135
- const base = id ? makeLegalIdentifier(id) : `r_${routeIndex++}`;
136
- return reserveRouteVarName(`route_${base}`);
137
- };
138
- const buildRoute = async (opts)=>{
139
- const { parentVar, route } = opts;
140
- const varName = createRouteVarName(route);
141
- const loaderInfo = pickModernLoaderModule(route);
142
- const routeAction = route.action;
143
- const loaderImports = loaderInfo ? await getImportNamesForLoader(loaderInfo.loaderPath, loaderInfo.inline, Boolean(loaderInfo.inline && routeAction === loaderInfo.loaderPath)) : null;
144
- const loaderName = loaderImports?.loaderName || null;
145
- const actionName = loaderImports?.actionName || null;
146
- const rawPath = route.path;
147
- const hasSplat = 'string' == typeof rawPath && rawPath.includes('*');
148
- const routeOpts = [
149
- `getParentRoute: () => ${parentVar},`
150
- ];
151
- const componentName = getImportNameForComponent(route._component);
152
- if (componentName) routeOpts.push(`component: ${componentName},`);
153
- if (isPathlessLayout(route)) {
154
- const id = route.id;
155
- routeOpts.push(`id: ${quote(id || 'pathless')},`);
156
- } else {
157
- const p = isIndexRoute(route) ? '/' : toTanstackPath(rawPath || '');
158
- routeOpts.push(`path: ${quote(p)},`);
159
- }
160
- if (loaderName) routeOpts.push(`loader: modernLoaderToTanstack({ hasSplat: ${hasSplat} }, ${loaderName}),`);
161
- const staticDataSnippet = createRouteStaticDataSnippet({
162
- modernRouteId: route.id,
163
- loaderName,
164
- actionName
165
- });
166
- if (staticDataSnippet) routeOpts.push(staticDataSnippet);
167
- const children = route.children;
168
- const hasChildren = Boolean(children && children.length > 0);
169
- const routeCtorVarName = hasChildren ? reserveRouteVarName(`${varName}__base`) : varName;
170
- statements.push(`const ${routeCtorVarName} = createRoute({\n ${routeOpts.join('\n ')}\n});`);
171
- if (children && children.length > 0) {
172
- const childVars = await Promise.all(children.map((child)=>buildRoute({
173
- parentVar: routeCtorVarName,
174
- route: child
175
- })));
176
- statements.push(`const ${varName} = ${routeCtorVarName}.addChildren([${childVars.join(', ')}]);`);
177
- }
178
- return varName;
179
- };
180
- const rootLoaderInfo = rootModern ? pickModernLoaderModule(rootModern) : null;
181
- const rootAction = rootModern?.action;
182
- const rootLoaderImports = rootLoaderInfo?.loaderPath ? await getImportNamesForLoader(rootLoaderInfo.loaderPath, rootLoaderInfo.inline, Boolean(rootLoaderInfo.inline && rootAction === rootLoaderInfo.loaderPath)) : null;
183
- const rootLoaderName = rootLoaderImports?.loaderName || null;
184
- const rootActionName = rootLoaderImports?.actionName || null;
185
- const topLevelVars = await Promise.all(topLevel.map((route)=>buildRoute({
186
- parentVar: 'rootRoute',
187
- route
188
- })));
189
- const rootOpts = [];
190
- const rootComponentName = getImportNameForComponent(rootModern?._component);
191
- if (rootComponentName) rootOpts.push(`component: ${rootComponentName},`);
192
- if (rootLoaderName) rootOpts.push(`loader: modernLoaderToTanstack({ hasSplat: false }, ${rootLoaderName}),`);
193
- const routerGenTs = `/* eslint-disable */
194
- // This file is auto-generated by Modern.js. Do not edit manually.
195
-
196
- import {
197
- createMemoryHistory,
198
- createRootRouteWithContext,
199
- createRoute,
200
- createRouter,
201
- notFound,
202
- redirect,
203
- } from '@modern-js/runtime/tanstack-router';
204
-
205
- type ModernRouterContext = {
206
- request?: Request;
207
- requestContext?: unknown;
208
- };
209
-
210
- function isResponse(value: unknown): value is Response {
211
- return (
212
- value != null &&
213
- typeof value === 'object' &&
214
- typeof (value as any).status === 'number' &&
215
- typeof (value as any).headers === 'object'
216
- );
217
- }
218
-
219
- const redirectStatusCodes = new Set([301, 302, 303, 307, 308]);
220
- function isRedirectResponse(res: Response) {
221
- return redirectStatusCodes.has(res.status);
222
- }
223
-
224
- function throwTanstackRedirect(location: string) {
225
- const target = location.length > 0 ? location : '/';
226
- try {
227
- void new URL(target);
228
- throw redirect({ href: target });
229
- } catch {
230
- throw redirect({ to: target });
231
- }
232
- }
233
-
234
- function mapParamsForModernLoader(params: Record<string, string>, hasSplat: boolean) {
235
- if (!hasSplat) {
236
- return params;
237
- }
238
-
239
- const { _splat, ...rest } = params as any;
240
- if (typeof _splat !== 'undefined') {
241
- return { ...rest, '*': _splat };
242
- }
243
- return rest;
244
- }
245
-
246
- function createRouteStaticData(opts: {
247
- modernRouteId?: string;
248
- modernRouteAction?: unknown;
249
- modernRouteLoader?: unknown;
250
- }) {
251
- const staticData: {
252
- modernRouteId?: string;
253
- modernRouteAction?: unknown;
254
- modernRouteLoader?: unknown;
255
- } = {};
256
-
257
- if (typeof opts.modernRouteId === 'string' && opts.modernRouteId.length > 0) {
258
- staticData.modernRouteId = opts.modernRouteId;
259
- }
260
-
261
- if (typeof opts.modernRouteLoader !== 'undefined') {
262
- staticData.modernRouteLoader = opts.modernRouteLoader;
263
- }
264
-
265
- if (typeof opts.modernRouteAction !== 'undefined') {
266
- staticData.modernRouteAction = opts.modernRouteAction;
267
- }
268
-
269
- return staticData;
270
- }
271
-
272
- function getLoaderSignal(ctx: any): AbortSignal {
273
- const abortSignal = ctx?.abortController?.signal;
274
- if (abortSignal instanceof AbortSignal) {
275
- return abortSignal;
276
- }
277
- if (ctx?.signal instanceof AbortSignal) {
278
- return ctx.signal;
279
- }
280
- return new AbortController().signal;
281
- }
282
-
283
- function getLoaderHref(ctx: any): string {
284
- if (typeof ctx?.location === 'string') {
285
- return ctx.location;
286
- }
287
-
288
- const publicHref = ctx?.location?.publicHref;
289
- if (typeof publicHref === 'string') {
290
- return publicHref;
291
- }
292
-
293
- const href = ctx?.location?.href;
294
- if (typeof href === 'string') {
295
- return href;
296
- }
297
-
298
- const urlHref = ctx?.location?.url?.href;
299
- return typeof urlHref === 'string' ? urlHref : '';
300
- }
301
-
302
- function getLoaderParams(ctx: any): Record<string, string> {
303
- return typeof ctx?.params === 'object' && ctx.params !== null ? ctx.params : {};
304
- }
305
-
306
- function handleModernLoaderResult<LoaderResult>(result: LoaderResult): LoaderResult {
307
- if (isResponse(result)) {
308
- if (isRedirectResponse(result)) {
309
- const location = result.headers.get('Location') ?? '/';
310
- throwTanstackRedirect(location);
311
- }
312
- if (result.status === 404) {
313
- throw notFound();
314
- }
315
- }
316
-
317
- return result;
318
- }
319
-
320
- function handleModernLoaderError(err: unknown): never {
321
- if (isResponse(err)) {
322
- if (isRedirectResponse(err)) {
323
- const location = err.headers.get('Location') ?? '/';
324
- throwTanstackRedirect(location);
325
- }
326
- if (err.status === 404) {
327
- throw notFound();
328
- }
329
- }
330
-
331
- throw err;
332
- }
333
-
334
- function modernLoaderToTanstack<TLoader extends (args: any) => any>(
335
- opts: { hasSplat: boolean },
336
- modernLoader: TLoader,
337
- ) {
338
- type LoaderResult = Awaited<ReturnType<TLoader>>;
339
-
340
- return (ctx: any): Promise<LoaderResult> => {
341
- try {
342
- const signal = getLoaderSignal(ctx);
343
- const baseRequest: Request | undefined =
344
- ctx?.context?.request instanceof Request ? ctx.context.request : undefined;
345
-
346
- const href = getLoaderHref(ctx);
347
-
348
- const request = baseRequest !== undefined
349
- ? new Request(baseRequest, { signal })
350
- : new Request(href, { signal });
351
-
352
- const params = mapParamsForModernLoader(getLoaderParams(ctx), opts.hasSplat);
353
-
354
- return Promise.resolve(
355
- (modernLoader as any)({
356
- request,
357
- params,
358
- context: ctx?.context?.requestContext,
359
- }),
360
- )
361
- .then((result: LoaderResult) => handleModernLoaderResult(result))
362
- .catch(handleModernLoaderError);
363
- } catch (err) {
364
- handleModernLoaderError(err);
365
- }
366
- };
367
- }
368
-
369
- ${imports.join('\n')}
370
-
371
- export const rootRoute = createRootRouteWithContext<ModernRouterContext>()({
372
- ${rootOpts.join('\n ')}
373
- ${createRouteStaticDataSnippet({
374
- modernRouteId: rootModern?.id,
375
- loaderName: rootLoaderName,
376
- actionName: rootActionName
377
- }) || ''}
378
- });
379
-
380
- ${statements.join('\n\n')}
381
-
382
- export const routeTree = rootRoute.addChildren([${topLevelVars.join(', ')}]);
383
-
384
- export const router = createRouter({
385
- routeTree,
386
- history: createMemoryHistory({
387
- initialEntries: ['/'],
388
- }),
389
- context: {} as ModernRouterContext,
390
- });
391
- `;
392
- return {
393
- routerGenTs
394
- };
395
- }
396
- export { generateTanstackRouterTypesSourceForEntry, isTanstackRouterFrameworkEnabled };
@@ -1,28 +0,0 @@
1
- function normalizeBasepath(basepath) {
2
- if (!basepath) return '/';
3
- let normalized = basepath.startsWith('/') ? basepath : `/${basepath}`;
4
- if (normalized.length > 1 && normalized.endsWith('/')) normalized = normalized.slice(0, -1);
5
- return normalized || '/';
6
- }
7
- function createModernBasepathRewrite(basepath, caseSensitive = false) {
8
- const normalizedBasepath = normalizeBasepath(basepath);
9
- if ('/' === normalizedBasepath) return;
10
- const normalizedBasepathWithSlash = `${normalizedBasepath}/`;
11
- const checkBasepath = caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase();
12
- const checkBasepathWithSlash = caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase();
13
- return {
14
- input: ({ url })=>{
15
- const pathname = caseSensitive ? url.pathname : url.pathname.toLowerCase();
16
- if (pathname === checkBasepath) url.pathname = '/';
17
- else if (pathname.startsWith(checkBasepathWithSlash)) url.pathname = url.pathname.slice(normalizedBasepath.length) || '/';
18
- return url;
19
- },
20
- output: ({ url })=>{
21
- const pathname = url.pathname || '/';
22
- if ('/' === pathname) url.pathname = normalizedBasepath;
23
- else url.pathname = `${normalizedBasepath}${pathname.startsWith('/') ? '' : '/'}${pathname}`;
24
- return url;
25
- }
26
- };
27
- }
28
- export { createModernBasepathRewrite };