@modern-js/runtime 2.54.6 → 2.55.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 (301) hide show
  1. package/dist/cjs/{ssr/serverRender/renderToString/index.js → cli/alias.js} +29 -18
  2. package/dist/cjs/cli/code.js +124 -0
  3. package/dist/cjs/cli/constants.js +23 -2
  4. package/dist/cjs/cli/index.js +92 -17
  5. package/dist/cjs/{ssr/cli → cli/ssr}/index.js +7 -86
  6. package/dist/cjs/cli/template.js +101 -0
  7. package/dist/cjs/cli/template.server.js +71 -0
  8. package/dist/cjs/core/browser/hydrate.js +116 -0
  9. package/dist/cjs/core/browser/index.js +122 -0
  10. package/dist/cjs/core/compatible.js +39 -74
  11. package/dist/cjs/{ssr/serverRender/types.js → core/constants.js} +3 -3
  12. package/dist/cjs/core/context/index.js +39 -2
  13. package/dist/cjs/core/context/runtime.js +3 -3
  14. package/dist/cjs/core/loader/useLoader.js +2 -2
  15. package/dist/cjs/core/plugin/base.js +0 -4
  16. package/dist/cjs/core/plugin/index.js +6 -0
  17. package/dist/cjs/core/react/index.js +51 -0
  18. package/dist/cjs/{ssr/serverRender → core/server}/helmet.js +11 -2
  19. package/dist/cjs/core/server/index.js +38 -0
  20. package/dist/cjs/core/server/requestHandler.js +156 -0
  21. package/dist/cjs/core/server/server.js +34 -0
  22. package/dist/cjs/{ssr/serverRender/renderToStream/buildTemplate.share.js → core/server/shared.js} +7 -10
  23. package/dist/cjs/core/server/stream/afterTemplate.js +80 -0
  24. package/dist/cjs/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +11 -12
  25. package/dist/cjs/core/server/stream/createReadableStream.js +124 -0
  26. package/dist/cjs/core/server/stream/createReadableStream.worker.js +105 -0
  27. package/dist/cjs/core/server/stream/index.js +30 -0
  28. package/dist/cjs/core/server/stream/shared.js +112 -0
  29. package/dist/cjs/{ssr/serverRender/renderToStream → core/server/stream}/template.js +6 -10
  30. package/dist/cjs/core/server/string/index.js +152 -0
  31. package/dist/cjs/{ssr/serverRender/renderToString → core/server/string}/loadable.js +9 -12
  32. package/dist/cjs/core/server/string/prefetch.js +112 -0
  33. package/dist/cjs/core/server/string/ssrData.js +100 -0
  34. package/dist/cjs/{ssr/serverRender/renderToString → core/server/string}/styledComponent.js +20 -11
  35. package/dist/cjs/core/server/string/types.js +16 -0
  36. package/dist/cjs/core/server/tracer.js +60 -0
  37. package/dist/cjs/{ssr/serverRender → core/server}/utils.js +48 -2
  38. package/dist/cjs/router/cli/code/index.js +10 -6
  39. package/dist/cjs/router/cli/code/templates.js +58 -3
  40. package/dist/cjs/router/cli/constants.js +6 -0
  41. package/dist/cjs/router/cli/entry.js +2 -4
  42. package/dist/cjs/router/cli/handler.js +22 -5
  43. package/dist/cjs/router/cli/index.js +29 -56
  44. package/dist/cjs/router/runtime/index.js +2 -0
  45. package/dist/cjs/router/runtime/plugin.js +13 -40
  46. package/dist/cjs/router/runtime/plugin.node.js +17 -32
  47. package/dist/cjs/state/cli/index.js +7 -35
  48. package/dist/cjs/state/runtime/plugin.js +6 -15
  49. package/dist/esm/cli/alias.js +30 -0
  50. package/dist/esm/cli/code.js +131 -0
  51. package/dist/esm/cli/constants.js +15 -1
  52. package/dist/esm/cli/index.js +111 -18
  53. package/dist/esm/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  54. package/dist/esm/cli/ssr/index.js +110 -0
  55. package/dist/esm/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  56. package/dist/esm/cli/template.js +53 -0
  57. package/dist/esm/cli/template.server.js +26 -0
  58. package/dist/esm/core/browser/hydrate.js +88 -0
  59. package/dist/esm/core/browser/index.js +224 -0
  60. package/dist/esm/core/compatible.js +48 -90
  61. package/dist/esm/core/context/index.js +32 -1
  62. package/dist/esm/core/context/runtime.js +3 -2
  63. package/dist/esm/core/loader/useLoader.js +2 -2
  64. package/dist/esm/core/plugin/base.js +0 -4
  65. package/dist/esm/core/plugin/index.js +10 -0
  66. package/dist/esm/core/react/index.js +31 -0
  67. package/dist/esm/{ssr/serverRender → core/server}/helmet.js +10 -2
  68. package/dist/esm/core/server/index.js +16 -0
  69. package/dist/esm/core/server/react/prerender/type.js +0 -0
  70. package/dist/esm/core/server/requestHandler.js +181 -0
  71. package/dist/esm/core/server/server.js +8 -0
  72. package/dist/esm/core/server/shared.js +10 -0
  73. package/dist/esm/core/server/stream/afterTemplate.js +60 -0
  74. package/dist/esm/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +10 -11
  75. package/dist/esm/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +43 -38
  76. package/dist/esm/core/server/stream/createReadableStream.worker.js +142 -0
  77. package/dist/esm/core/server/stream/index.js +6 -0
  78. package/dist/esm/core/server/stream/shared.js +102 -0
  79. package/dist/esm/core/server/stream/template.js +42 -0
  80. package/dist/esm/core/server/string/index.js +219 -0
  81. package/dist/esm/{ssr/serverRender/renderToString → core/server/string}/loadable.js +10 -13
  82. package/dist/esm/{ssr → core/server/string}/prefetch.js +27 -21
  83. package/dist/esm/core/server/string/ssrData.js +83 -0
  84. package/dist/esm/core/server/string/styledComponent.js +34 -0
  85. package/dist/esm/core/server/string/types.js +0 -0
  86. package/dist/esm/core/server/tracer.js +34 -0
  87. package/dist/esm/core/server/utils.js +83 -0
  88. package/dist/esm/router/cli/code/index.js +11 -8
  89. package/dist/esm/router/cli/code/templates.js +100 -7
  90. package/dist/esm/router/cli/constants.js +4 -0
  91. package/dist/esm/router/cli/entry.js +2 -4
  92. package/dist/esm/router/cli/handler.js +70 -8
  93. package/dist/esm/router/cli/index.js +52 -65
  94. package/dist/esm/router/runtime/index.js +1 -0
  95. package/dist/esm/router/runtime/plugin.js +12 -20
  96. package/dist/esm/router/runtime/plugin.node.js +19 -34
  97. package/dist/esm/state/cli/index.js +9 -38
  98. package/dist/esm/state/runtime/plugin.js +5 -5
  99. package/dist/esm-node/cli/alias.js +28 -0
  100. package/dist/esm-node/cli/code.js +90 -0
  101. package/dist/esm-node/cli/constants.js +15 -1
  102. package/dist/esm-node/cli/index.js +84 -13
  103. package/dist/esm-node/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  104. package/dist/esm-node/cli/ssr/index.js +87 -0
  105. package/dist/esm-node/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  106. package/dist/esm-node/cli/template.js +64 -0
  107. package/dist/esm-node/cli/template.server.js +47 -0
  108. package/dist/esm-node/core/browser/hydrate.js +81 -0
  109. package/dist/esm-node/core/browser/index.js +88 -0
  110. package/dist/esm-node/core/compatible.js +39 -74
  111. package/dist/esm-node/core/context/index.js +32 -1
  112. package/dist/esm-node/core/context/runtime.js +3 -3
  113. package/dist/esm-node/core/loader/useLoader.js +2 -2
  114. package/dist/esm-node/core/plugin/base.js +0 -4
  115. package/dist/esm-node/core/plugin/index.js +5 -0
  116. package/dist/esm-node/core/react/index.js +27 -0
  117. package/dist/esm-node/{ssr/serverRender → core/server}/helmet.js +6 -2
  118. package/dist/esm-node/core/server/index.js +12 -0
  119. package/dist/esm-node/core/server/requestHandler.js +132 -0
  120. package/dist/esm-node/core/server/server.js +8 -0
  121. package/dist/esm-node/core/server/shared.js +6 -0
  122. package/dist/esm-node/core/server/stream/afterTemplate.js +56 -0
  123. package/dist/esm-node/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +8 -9
  124. package/dist/esm-node/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +41 -35
  125. package/dist/esm-node/core/server/stream/createReadableStream.worker.js +71 -0
  126. package/dist/esm-node/core/server/stream/index.js +6 -0
  127. package/dist/esm-node/core/server/stream/shared.js +75 -0
  128. package/dist/esm-node/core/server/stream/template.js +15 -0
  129. package/dist/esm-node/core/server/string/index.js +118 -0
  130. package/dist/esm-node/{ssr/serverRender/renderToString → core/server/string}/loadable.js +8 -11
  131. package/dist/esm-node/core/server/string/prefetch.js +78 -0
  132. package/dist/esm-node/core/server/string/ssrData.js +76 -0
  133. package/dist/esm-node/core/server/string/styledComponent.js +29 -0
  134. package/dist/esm-node/core/server/tracer.js +33 -0
  135. package/dist/esm-node/core/server/utils.js +60 -0
  136. package/dist/esm-node/router/cli/code/index.js +8 -5
  137. package/dist/esm-node/router/cli/code/templates.js +60 -6
  138. package/dist/esm-node/router/cli/constants.js +4 -0
  139. package/dist/esm-node/router/cli/entry.js +2 -4
  140. package/dist/esm-node/router/cli/handler.js +21 -5
  141. package/dist/esm-node/router/cli/index.js +31 -58
  142. package/dist/esm-node/router/runtime/index.js +1 -0
  143. package/dist/esm-node/router/runtime/plugin.js +13 -30
  144. package/dist/esm-node/router/runtime/plugin.node.js +18 -33
  145. package/dist/esm-node/state/cli/index.js +8 -36
  146. package/dist/esm-node/state/runtime/plugin.js +5 -5
  147. package/dist/types/cli/alias.d.ts +7 -0
  148. package/dist/types/cli/code.d.ts +10 -0
  149. package/dist/types/cli/constants.d.ts +7 -0
  150. package/dist/types/cli/index.d.ts +8 -1
  151. package/dist/types/cli/template.d.ts +27 -0
  152. package/dist/types/cli/template.server.d.ts +15 -0
  153. package/dist/types/common.d.ts +9 -0
  154. package/dist/types/core/browser/hydrate.d.ts +5 -0
  155. package/dist/types/core/browser/index.d.ts +2 -0
  156. package/dist/types/core/config.d.ts +5 -6
  157. package/dist/types/core/constants.d.ts +5 -0
  158. package/dist/types/core/context/index.d.ts +34 -1
  159. package/dist/types/core/context/runtime.d.ts +2 -2
  160. package/dist/types/core/plugin/base.d.ts +3 -33
  161. package/dist/types/core/plugin/index.d.ts +2 -11
  162. package/dist/types/core/plugin/runner.d.ts +1 -11
  163. package/dist/types/core/react/index.d.ts +6 -0
  164. package/dist/types/core/server/helmet.d.ts +3 -0
  165. package/dist/types/core/server/index.d.ts +4 -0
  166. package/dist/types/core/server/requestHandler.d.ts +11 -0
  167. package/dist/types/core/server/server.d.ts +4 -0
  168. package/dist/types/core/server/shared.d.ts +9 -0
  169. package/dist/types/core/server/stream/afterTemplate.d.ts +12 -0
  170. package/dist/types/core/server/stream/beforeTemplate.d.ts +8 -0
  171. package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
  172. package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
  173. package/dist/types/core/server/stream/index.d.ts +1 -0
  174. package/dist/types/core/server/stream/shared.d.ts +22 -0
  175. package/dist/types/core/server/stream/template.d.ts +9 -0
  176. package/dist/types/core/server/string/index.d.ts +2 -0
  177. package/dist/types/core/server/string/loadable.d.ts +35 -0
  178. package/dist/types/core/server/string/prefetch.d.ts +15 -0
  179. package/dist/types/core/server/string/ssrData.d.ts +18 -0
  180. package/dist/types/core/server/string/styledComponent.d.ts +11 -0
  181. package/dist/types/core/server/string/types.d.ts +12 -0
  182. package/dist/types/core/server/tracer.d.ts +21 -0
  183. package/dist/types/core/server/utils.d.ts +19 -0
  184. package/dist/types/core/types.d.ts +35 -1
  185. package/dist/types/index.d.ts +1 -1
  186. package/dist/types/router/cli/code/index.d.ts +3 -4
  187. package/dist/types/router/cli/code/templates.d.ts +9 -1
  188. package/dist/types/router/cli/constants.d.ts +2 -0
  189. package/dist/types/router/cli/handler.d.ts +1 -0
  190. package/dist/types/router/runtime/index.d.ts +1 -0
  191. package/dist/types/router/runtime/plugin.d.ts +1 -1
  192. package/dist/types/router/runtime/plugin.node.d.ts +2 -2
  193. package/dist/types/router/runtime/types.d.ts +1 -2
  194. package/dist/types/state/runtime/plugin.d.ts +2 -2
  195. package/package.json +49 -42
  196. package/types/router.d.ts +7 -2
  197. package/dist/cjs/ssr/index.js +0 -183
  198. package/dist/cjs/ssr/index.node.js +0 -86
  199. package/dist/cjs/ssr/prefetch.js +0 -92
  200. package/dist/cjs/ssr/serverRender/index.js +0 -39
  201. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -74
  202. package/dist/cjs/ssr/serverRender/renderToStream/index.js +0 -74
  203. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +0 -104
  204. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -108
  205. package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +0 -52
  206. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -179
  207. package/dist/cjs/ssr/serverRender/renderToString/render.js +0 -61
  208. package/dist/cjs/ssr/serverRender/tracker.js +0 -113
  209. package/dist/cjs/ssr/utils.js +0 -94
  210. package/dist/esm/ssr/cli/index.js +0 -194
  211. package/dist/esm/ssr/index.js +0 -169
  212. package/dist/esm/ssr/index.node.js +0 -78
  213. package/dist/esm/ssr/serverRender/index.js +0 -55
  214. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -48
  215. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -12
  216. package/dist/esm/ssr/serverRender/renderToStream/index.js +0 -49
  217. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -164
  218. package/dist/esm/ssr/serverRender/renderToStream/template.js +0 -46
  219. package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +0 -34
  220. package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -257
  221. package/dist/esm/ssr/serverRender/renderToString/index.js +0 -34
  222. package/dist/esm/ssr/serverRender/renderToString/render.js +0 -55
  223. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +0 -25
  224. package/dist/esm/ssr/serverRender/tracker.js +0 -82
  225. package/dist/esm/ssr/serverRender/utils.js +0 -21
  226. package/dist/esm/ssr/utils.js +0 -59
  227. package/dist/esm-node/ssr/cli/index.js +0 -166
  228. package/dist/esm-node/ssr/index.js +0 -147
  229. package/dist/esm-node/ssr/index.node.js +0 -50
  230. package/dist/esm-node/ssr/prefetch.js +0 -72
  231. package/dist/esm-node/ssr/serverRender/index.js +0 -19
  232. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -50
  233. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -8
  234. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +0 -40
  235. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -88
  236. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +0 -19
  237. package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +0 -24
  238. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -149
  239. package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -17
  240. package/dist/esm-node/ssr/serverRender/renderToString/render.js +0 -27
  241. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +0 -20
  242. package/dist/esm-node/ssr/serverRender/tracker.js +0 -87
  243. package/dist/esm-node/ssr/serverRender/utils.js +0 -17
  244. package/dist/esm-node/ssr/utils.js +0 -57
  245. package/dist/types/ssr/index.d.ts +0 -11
  246. package/dist/types/ssr/index.node.d.ts +0 -5
  247. package/dist/types/ssr/prefetch.d.ts +0 -16
  248. package/dist/types/ssr/serverRender/helmet.d.ts +0 -2
  249. package/dist/types/ssr/serverRender/index.d.ts +0 -2
  250. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -7
  251. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +0 -3
  252. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +0 -2
  253. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +0 -3
  254. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +0 -7
  255. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +0 -12
  256. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +0 -6
  257. package/dist/types/ssr/serverRender/renderToString/buildHtml.d.ts +0 -6
  258. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -24
  259. package/dist/types/ssr/serverRender/renderToString/index.d.ts +0 -2
  260. package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +0 -26
  261. package/dist/types/ssr/serverRender/renderToString/render.d.ts +0 -16
  262. package/dist/types/ssr/serverRender/renderToString/styledComponent.d.ts +0 -15
  263. package/dist/types/ssr/serverRender/tracker.d.ts +0 -20
  264. package/dist/types/ssr/serverRender/types.d.ts +0 -49
  265. package/dist/types/ssr/serverRender/utils.d.ts +0 -9
  266. package/dist/types/ssr/utils.d.ts +0 -10
  267. /package/dist/cjs/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +0 -0
  268. /package/dist/cjs/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +0 -0
  269. /package/dist/cjs/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  270. /package/dist/cjs/{ssr/serverRender → core/server}/constants.js +0 -0
  271. /package/dist/cjs/{ssr → core/server}/react/index.js +0 -0
  272. /package/dist/cjs/{ssr → core/server}/react/nossr/index.js +0 -0
  273. /package/dist/cjs/{ssr → core/server}/react/prerender/index.js +0 -0
  274. /package/dist/cjs/{ssr → core/server}/react/prerender/type.js +0 -0
  275. /package/dist/cjs/{ssr → core/server}/react/prerender/util.js +0 -0
  276. /package/dist/esm/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  277. /package/dist/esm/{ssr/serverRender/types.js → core/constants.js} +0 -0
  278. /package/dist/esm/{ssr/serverRender → core/server}/constants.js +0 -0
  279. /package/dist/esm/{ssr → core/server}/react/index.js +0 -0
  280. /package/dist/esm/{ssr → core/server}/react/nossr/index.js +0 -0
  281. /package/dist/esm/{ssr → core/server}/react/prerender/index.js +0 -0
  282. /package/dist/esm/{ssr → core/server}/react/prerender/util.js +0 -0
  283. /package/dist/esm-node/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  284. /package/dist/esm-node/{ssr/serverRender/types.js → core/constants.js} +0 -0
  285. /package/dist/esm-node/{ssr/serverRender → core/server}/constants.js +0 -0
  286. /package/dist/esm-node/{ssr → core/server}/react/index.js +0 -0
  287. /package/dist/esm-node/{ssr → core/server}/react/nossr/index.js +0 -0
  288. /package/dist/esm-node/{ssr → core/server}/react/prerender/index.js +0 -0
  289. /package/dist/esm-node/{ssr → core/server}/react/prerender/type.js +0 -0
  290. /package/dist/esm-node/{ssr → core/server}/react/prerender/util.js +0 -0
  291. /package/dist/{esm/ssr/react/prerender/type.js → esm-node/core/server/string/types.js} +0 -0
  292. /package/dist/types/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.d.ts +0 -0
  293. /package/dist/types/{ssr/cli → cli/ssr}/index.d.ts +0 -0
  294. /package/dist/types/{ssr/cli → cli/ssr}/loadable-bundler-plugin.d.ts +0 -0
  295. /package/dist/types/{ssr/react/withCallback/index.d.ts → core/browser/withCallback.d.ts} +0 -0
  296. /package/dist/types/{ssr/serverRender → core/server}/constants.d.ts +0 -0
  297. /package/dist/types/{ssr → core/server}/react/index.d.ts +0 -0
  298. /package/dist/types/{ssr → core/server}/react/nossr/index.d.ts +0 -0
  299. /package/dist/types/{ssr → core/server}/react/prerender/index.d.ts +0 -0
  300. /package/dist/types/{ssr → core/server}/react/prerender/type.d.ts +0 -0
  301. /package/dist/types/{ssr → core/server}/react/prerender/util.d.ts +0 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var ssrData_exports = {};
20
+ __export(ssrData_exports, {
21
+ SSRDataCollector: () => SSRDataCollector
22
+ });
23
+ module.exports = __toCommonJS(ssrData_exports);
24
+ var import_class_private_field_get = require("@swc/helpers/_/_class_private_field_get");
25
+ var import_class_private_field_init = require("@swc/helpers/_/_class_private_field_init");
26
+ var import_class_private_field_set = require("@swc/helpers/_/_class_private_field_set");
27
+ var import_class_private_method_get = require("@swc/helpers/_/_class_private_method_get");
28
+ var import_class_private_method_init = require("@swc/helpers/_/_class_private_method_init");
29
+ var import_node = require("@modern-js/runtime-utils/node");
30
+ var import_utils = require("../utils");
31
+ var import_constants = require("../constants");
32
+ var _options = /* @__PURE__ */ new WeakMap(), _getSSRData = /* @__PURE__ */ new WeakSet(), _getSSRDataScripts = /* @__PURE__ */ new WeakSet();
33
+ class SSRDataCollector {
34
+ effect() {
35
+ const { routerContext, chunkSet } = (0, import_class_private_field_get._)(this, _options);
36
+ const ssrData = (0, import_class_private_method_get._)(this, _getSSRData, getSSRData).call(this);
37
+ const routerData = routerContext ? {
38
+ loaderData: routerContext.loaderData,
39
+ errors: (0, import_utils.serializeErrors)(routerContext.errors)
40
+ } : void 0;
41
+ const ssrDataScripts = (0, import_class_private_method_get._)(this, _getSSRDataScripts, getSSRDataScripts).call(this, ssrData, routerData);
42
+ chunkSet.ssrScripts = ssrDataScripts;
43
+ }
44
+ constructor(options) {
45
+ (0, import_class_private_method_init._)(this, _getSSRData);
46
+ (0, import_class_private_method_init._)(this, _getSSRDataScripts);
47
+ (0, import_class_private_field_init._)(this, _options, {
48
+ writable: true,
49
+ value: void 0
50
+ });
51
+ (0, import_class_private_field_set._)(this, _options, options);
52
+ }
53
+ }
54
+ function getSSRData() {
55
+ const { prefetchData, chunkSet, ssrConfig, ssrContext } = (0, import_class_private_field_get._)(this, _options);
56
+ const { reporter, request } = ssrContext;
57
+ const headers = typeof ssrConfig === "object" && ssrConfig.unsafeHeaders ? Object.fromEntries(Object.entries(request.headers).filter(([key, _]) => {
58
+ var _ssrConfig_unsafeHeaders_map, _ssrConfig_unsafeHeaders;
59
+ return (_ssrConfig_unsafeHeaders = ssrConfig.unsafeHeaders) === null || _ssrConfig_unsafeHeaders === void 0 ? void 0 : (_ssrConfig_unsafeHeaders_map = _ssrConfig_unsafeHeaders.map((header) => header.toLowerCase())) === null || _ssrConfig_unsafeHeaders_map === void 0 ? void 0 : _ssrConfig_unsafeHeaders_map.includes(key.toLowerCase());
60
+ })) : void 0;
61
+ return {
62
+ data: prefetchData,
63
+ context: {
64
+ request: {
65
+ params: request.params,
66
+ query: request.query,
67
+ pathname: request.pathname,
68
+ host: request.host,
69
+ url: request.raw.url,
70
+ headers
71
+ },
72
+ reporter: {
73
+ sessionId: reporter === null || reporter === void 0 ? void 0 : reporter.sessionId
74
+ }
75
+ },
76
+ mode: "string",
77
+ renderLevel: chunkSet.renderLevel
78
+ };
79
+ }
80
+ function getSSRDataScripts(ssrData, routerData) {
81
+ const { nonce, ssrConfig } = (0, import_class_private_field_get._)(this, _options);
82
+ const inlineScript = typeof ssrConfig === "boolean" ? true : (ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.inlineScript) !== false;
83
+ const useInlineScript = inlineScript !== false;
84
+ const serializeSSRData = (0, import_node.serializeJson)(ssrData);
85
+ const attrsStr = (0, import_utils.attributesToString)({
86
+ nonce
87
+ });
88
+ let ssrDataScripts = useInlineScript ? `<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>` : `<script type="application/json" id="${import_constants.SSR_DATA_JSON_ID}">${serializeSSRData}</script>`;
89
+ if (routerData) {
90
+ const serializedRouterData = (0, import_node.serializeJson)(routerData);
91
+ ssrDataScripts += useInlineScript ? `
92
+ <script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>` : `
93
+ <script type="application/json" id="${import_constants.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
94
+ }
95
+ return ssrDataScripts;
96
+ }
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ SSRDataCollector
100
+ });
@@ -18,27 +18,36 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var styledComponent_exports = {};
20
20
  __export(styledComponent_exports, {
21
- createStyledCollector: () => createStyledCollector
21
+ StyledCollector: () => StyledCollector
22
22
  });
23
23
  module.exports = __toCommonJS(styledComponent_exports);
24
+ var import_class_private_field_get = require("@swc/helpers/_/_class_private_field_get");
25
+ var import_class_private_field_init = require("@swc/helpers/_/_class_private_field_init");
26
+ var import_class_private_field_set = require("@swc/helpers/_/_class_private_field_set");
24
27
  var import_styled_components = require("styled-components");
28
+ var _sheet = /* @__PURE__ */ new WeakMap(), _chunkSet = /* @__PURE__ */ new WeakMap();
25
29
  class StyledCollector {
26
30
  collect(comopnent) {
27
- return this.sheet.collectStyles(comopnent);
31
+ return (0, import_class_private_field_get._)(this, _sheet).collectStyles(comopnent);
28
32
  }
29
33
  effect() {
30
- const css = this.sheet.getStyleTags();
31
- this.result.chunksMap.css += css;
34
+ const css = (0, import_class_private_field_get._)(this, _sheet).getStyleTags();
35
+ (0, import_class_private_field_get._)(this, _chunkSet).cssChunk += css;
32
36
  }
33
- constructor(result) {
34
- this.sheet = new import_styled_components.ServerStyleSheet();
35
- this.result = result;
37
+ constructor(chunkSet) {
38
+ (0, import_class_private_field_init._)(this, _sheet, {
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ (0, import_class_private_field_init._)(this, _chunkSet, {
43
+ writable: true,
44
+ value: void 0
45
+ });
46
+ (0, import_class_private_field_set._)(this, _sheet, new import_styled_components.ServerStyleSheet());
47
+ (0, import_class_private_field_set._)(this, _chunkSet, chunkSet);
36
48
  }
37
49
  }
38
- function createStyledCollector(result) {
39
- return new StyledCollector(result);
40
- }
41
50
  // Annotate the CommonJS export names for ESM import in node:
42
51
  0 && (module.exports = {
43
- createStyledCollector
52
+ StyledCollector
44
53
  });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var tracer_exports = {};
20
+ __export(tracer_exports, {
21
+ SSRErrors: () => SSRErrors,
22
+ SSRTimings: () => SSRTimings,
23
+ createOnError: () => createOnError,
24
+ createOnTiming: () => createOnTiming
25
+ });
26
+ module.exports = __toCommonJS(tracer_exports);
27
+ var SSRTimings;
28
+ (function(SSRTimings2) {
29
+ SSRTimings2["PRERENDER"] = "ssr-prerender";
30
+ SSRTimings2["RENDER_HTML"] = "ssr-render-html";
31
+ SSRTimings2["RENDER_SHELL"] = "ssr-render-shell";
32
+ SSRTimings2["USE_LOADER"] = "use-loader";
33
+ })(SSRTimings || (SSRTimings = {}));
34
+ var SSRErrors;
35
+ (function(SSRErrors2) {
36
+ SSRErrors2["PRERENDER"] = "App Prerender";
37
+ SSRErrors2["USE_LOADER"] = "App run useLoader";
38
+ SSRErrors2["RENDER_HTML"] = "App Render To HTML";
39
+ SSRErrors2["RENDER_STREAM"] = "An error occurs during streaming SSR";
40
+ SSRErrors2["RENDER_SHELL"] = "An error occurs during streaming render shell";
41
+ })(SSRErrors || (SSRErrors = {}));
42
+ function createOnError(onError) {
43
+ return (key, e) => {
44
+ const error = e instanceof Error ? e : new Error("Unexpected Server Error");
45
+ error.name = key;
46
+ onError === null || onError === void 0 ? void 0 : onError(e);
47
+ };
48
+ }
49
+ function createOnTiming(onTiming) {
50
+ return (key, cost) => {
51
+ onTiming === null || onTiming === void 0 ? void 0 : onTiming(key, cost);
52
+ };
53
+ }
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ SSRErrors,
57
+ SSRTimings,
58
+ createOnError,
59
+ createOnTiming
60
+ });
@@ -20,9 +20,13 @@ var utils_exports = {};
20
20
  __export(utils_exports, {
21
21
  attributesToString: () => attributesToString,
22
22
  checkIsNode: () => checkIsNode,
23
- safeReplace: () => safeReplace
23
+ getSSRConfigByEntry: () => getSSRConfigByEntry,
24
+ getSSRMode: () => getSSRMode,
25
+ safeReplace: () => safeReplace,
26
+ serializeErrors: () => serializeErrors
24
27
  });
25
28
  module.exports = __toCommonJS(utils_exports);
29
+ var import_remix_router = require("@modern-js/runtime-utils/remix-router");
26
30
  function attributesToString(attributes) {
27
31
  return Object.entries(attributes).reduce((str, [key, value]) => {
28
32
  return value === void 0 ? str : `${str} ${key}="${value}"`;
@@ -35,9 +39,51 @@ function checkIsNode() {
35
39
  var _process_release;
36
40
  return typeof process !== "undefined" && ((_process_release = process.release) === null || _process_release === void 0 ? void 0 : _process_release.name) === "node";
37
41
  }
42
+ function serializeErrors(errors) {
43
+ if (!errors) {
44
+ return null;
45
+ }
46
+ const entries = Object.entries(errors);
47
+ const serialized = {};
48
+ for (const [key, val] of entries) {
49
+ if ((0, import_remix_router.isRouteErrorResponse)(val)) {
50
+ serialized[key] = {
51
+ ...val,
52
+ __type: "RouteErrorResponse"
53
+ };
54
+ } else if (val instanceof Error) {
55
+ serialized[key] = {
56
+ message: val.message,
57
+ stack: val.stack,
58
+ __type: "Error"
59
+ };
60
+ } else {
61
+ serialized[key] = val;
62
+ }
63
+ }
64
+ return serialized;
65
+ }
66
+ function getSSRConfigByEntry(entryName, ssr, ssrByEntries, staticGenerate) {
67
+ if (staticGenerate) {
68
+ return true;
69
+ }
70
+ if (ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[entryName]) {
71
+ return ssrByEntries[entryName];
72
+ }
73
+ return ssr;
74
+ }
75
+ function getSSRMode(ssrConfig) {
76
+ if (typeof ssrConfig === "boolean") {
77
+ return ssrConfig ? "string" : false;
78
+ }
79
+ return (ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.mode) === "stream" ? "stream" : "string";
80
+ }
38
81
  // Annotate the CommonJS export names for ESM import in node:
39
82
  0 && (module.exports = {
40
83
  attributesToString,
41
84
  checkIsNode,
42
- safeReplace
85
+ getSSRConfigByEntry,
86
+ getSSRMode,
87
+ safeReplace,
88
+ serializeErrors
43
89
  });
@@ -28,12 +28,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var code_exports = {};
30
30
  __export(code_exports, {
31
- generateCode: () => generateCode
31
+ generateCode: () => generateCode,
32
+ generatorRegisterCode: () => generatorRegisterCode
32
33
  });
33
34
  module.exports = __toCommonJS(code_exports);
34
35
  var import_path = __toESM(require("path"));
35
36
  var import_utils = require("@modern-js/utils");
36
37
  var import_constants = require("../constants");
38
+ var import_constants2 = require("../../../cli/constants");
37
39
  var templates = __toESM(require("./templates"));
38
40
  var import_getClientRoutes = require("./getClientRoutes");
39
41
  var import_utils2 = require("./utils");
@@ -43,14 +45,11 @@ const generateCode = async (appContext, config, entrypoints, api) => {
43
45
  const hookRunners = api.useHookRunners();
44
46
  const isV5 = (0, import_utils.isRouterV5)(config);
45
47
  const getRoutes = isV5 ? import_getClientRoutes.getClientRoutesLegacy : import_getClientRoutes.getClientRoutes;
46
- const importsStatemets = /* @__PURE__ */ new Map();
47
48
  const oldVersion = typeof (config === null || config === void 0 ? void 0 : config.runtime.router) === "object" ? Boolean((config === null || config === void 0 ? void 0 : config.runtime.router).oldVersion) : false;
48
49
  await Promise.all(entrypoints.map(generateEntryCode));
49
- return {
50
- importsStatemets
51
- };
52
50
  async function generateEntryCode(entrypoint) {
53
51
  const { entryName, isMainEntry, isAutoMount, fileSystemRoutes } = entrypoint;
52
+ const { metaName } = api.useAppContext();
54
53
  if (isAutoMount) {
55
54
  if (fileSystemRoutes) {
56
55
  var _config_output;
@@ -102,6 +101,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
102
101
  const { code } = await hookRunners.beforeGenerateRoutes({
103
102
  entrypoint,
104
103
  code: await templates.fileSystemRoutes({
104
+ metaName,
105
105
  routes,
106
106
  ssrMode: useSSG ? "string" : mode,
107
107
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
@@ -128,7 +128,11 @@ const generateCode = async (appContext, config, entrypoints, api) => {
128
128
  }
129
129
  }
130
130
  };
131
+ function generatorRegisterCode(internalDirectory, entryName, code) {
132
+ import_utils.fs.outputFileSync(import_path.default.resolve(internalDirectory, `./${entryName}/${import_constants2.ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME}`), code, "utf8");
133
+ }
131
134
  // Annotate the CommonJS export names for ESM import in node:
132
135
  0 && (module.exports = {
133
- generateCode
136
+ generateCode,
137
+ generatorRegisterCode
134
138
  });
@@ -30,6 +30,7 @@ var templates_exports = {};
30
30
  __export(templates_exports, {
31
31
  fileSystemRoutes: () => fileSystemRoutes,
32
32
  routesForServer: () => routesForServer,
33
+ runtimeGlobalContext: () => runtimeGlobalContext,
33
34
  ssrLoaderCombinedModule: () => ssrLoaderCombinedModule
34
35
  });
35
36
  module.exports = __toCommonJS(templates_exports);
@@ -120,7 +121,7 @@ const routesForServer = ({ routes }) => {
120
121
  };
121
122
  const createMatchReg = (keyword) => new RegExp(`("${keyword}":\\s)"([^
122
123
  ]+)"`, "g");
123
- const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
124
+ const fileSystemRoutes = async ({ metaName, routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, splitRouteChunks = true }) => {
124
125
  const components = [];
125
126
  const loadings = [];
126
127
  const errors = [];
@@ -131,7 +132,7 @@ const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName,
131
132
  const loadersMapFile = import_path.default.join(internalDirectory, entryName, import_constants2.TEMP_LOADERS_DIR, "map.json");
132
133
  const importLazyCode = `
133
134
  import { lazy } from "react";
134
- import loadable, { lazy as loadableLazy } from "@modern-js/runtime/loadable"
135
+ import loadable, { lazy as loadableLazy } from "@${metaName}/runtime/loadable"
135
136
  `;
136
137
  let rootLayoutCode = ``;
137
138
  const getDataLoaderPath = ({ loaderId, clientData, action, inline, routeId }) => {
@@ -330,7 +331,7 @@ const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName,
330
331
  await import_utils.fs.ensureFile(loadersMapFile);
331
332
  await import_utils.fs.writeJSON(loadersMapFile, loadersMap);
332
333
  const importRuntimeRouterCode = `
333
- import { createShouldRevalidate, handleRouteModule, handleRouteModuleError} from '@modern-js/runtime/router';
334
+ import { createShouldRevalidate, handleRouteModule, handleRouteModuleError} from '@${metaName}/runtime/router';
334
335
  `;
335
336
  const routeModulesCode = `
336
337
  if(typeof document !== 'undefined'){
@@ -363,9 +364,63 @@ function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
363
364
  }
364
365
  return null;
365
366
  }
367
+ const runtimeGlobalContext = async ({ metaName, srcDirectory, nestedRoutesEntry, internalSrcAlias, globalApp }) => {
368
+ const imports = [
369
+ `import { setGlobalContext } from '@${metaName}/runtime/context';`
370
+ ];
371
+ if (nestedRoutesEntry) {
372
+ const rootLayoutPath = import_path.default.join(nestedRoutesEntry, "layout");
373
+ const rootLayoutFile = (0, import_utils.findExists)([
374
+ ".js",
375
+ ".ts",
376
+ ".jsx",
377
+ ".tsx"
378
+ ].map((ext) => `${rootLayoutPath}${ext}`));
379
+ if (rootLayoutFile) {
380
+ const rootLayoutBuffer = await import_utils.fs.readFile(rootLayoutFile);
381
+ const rootLayout = rootLayoutBuffer.toString();
382
+ const [, moduleExports] = await (0, import_utils2.parseModule)({
383
+ source: rootLayout.toString(),
384
+ filename: rootLayoutFile
385
+ });
386
+ const hasAppConfig = moduleExports.some((e) => e.n === import_constants2.APP_CONFIG_NAME);
387
+ const hasAppInit = moduleExports.some((e) => e.n === import_constants2.APP_INIT_EXPORTED);
388
+ const layoutPath = (0, import_utils.formatImportPath)((0, import_utils2.getPathWithoutExt)((0, import_utils2.replaceWithAlias)(srcDirectory, rootLayoutFile, internalSrcAlias)));
389
+ if (hasAppConfig) {
390
+ imports.push(`import { config as appConfig } from '${layoutPath}';`);
391
+ } else {
392
+ imports.push(`let appConfig;`);
393
+ }
394
+ if (hasAppInit) {
395
+ imports.push(`import { init as appInit } from '${layoutPath}';`);
396
+ } else {
397
+ imports.push(`let appInit;`);
398
+ }
399
+ }
400
+ } else {
401
+ imports.push(`let appConfig;`);
402
+ imports.push(`let appInit;`);
403
+ }
404
+ if (globalApp) {
405
+ imports.push(`import layoutApp from '${(0, import_utils.formatImportPath)(globalApp.replace(srcDirectory, internalSrcAlias))}';`);
406
+ } else {
407
+ imports.push(`let layoutApp;`);
408
+ }
409
+ return `${imports.join("\n")}
410
+
411
+ import { routes } from './routes.js';
412
+
413
+ setGlobalContext({
414
+ layoutApp,
415
+ routes,
416
+ appInit,
417
+ appConfig,
418
+ });`;
419
+ };
366
420
  // Annotate the CommonJS export names for ESM import in node:
367
421
  0 && (module.exports = {
368
422
  fileSystemRoutes,
369
423
  routesForServer,
424
+ runtimeGlobalContext,
370
425
  ssrLoaderCombinedModule
371
426
  });
@@ -19,6 +19,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var constants_exports = {};
20
20
  __export(constants_exports, {
21
21
  ACTION_EXPORT_NAME: () => ACTION_EXPORT_NAME,
22
+ APP_CONFIG_NAME: () => APP_CONFIG_NAME,
23
+ APP_INIT_EXPORTED: () => APP_INIT_EXPORTED,
22
24
  FILE_SYSTEM_ROUTES_COMPONENTS_DIR: () => FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
23
25
  FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP: () => FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
24
26
  FILE_SYSTEM_ROUTES_FILE_NAME: () => FILE_SYSTEM_ROUTES_FILE_NAME,
@@ -45,6 +47,8 @@ const FILE_SYSTEM_ROUTES_INDEX = "index";
45
47
  const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
46
48
  const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
47
49
  const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
50
+ const APP_CONFIG_NAME = "config";
51
+ const APP_INIT_EXPORTED = "init";
48
52
  const NESTED_ROUTE = {
49
53
  LAYOUT_FILE: "layout",
50
54
  LAYOUT_CONFIG_FILE: "layout.config",
@@ -68,6 +72,8 @@ const NESTED_ROUTE = {
68
72
  // Annotate the CommonJS export names for ESM import in node:
69
73
  0 && (module.exports = {
70
74
  ACTION_EXPORT_NAME,
75
+ APP_CONFIG_NAME,
76
+ APP_INIT_EXPORTED,
71
77
  FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
72
78
  FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
73
79
  FILE_SYSTEM_ROUTES_FILE_NAME,
@@ -70,12 +70,10 @@ const modifyEntrypoints = (entrypoints, config = {}) => {
70
70
  globalApp: (0, import_utils.findExists)(import_utils.JS_EXTENSIONS.map((ext) => import_path.default.resolve(entrypoint.absoluteEntryDir, `./${import_constants.PAGES_DIR_NAME}/${import_constants.FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT}${ext}`)))
71
71
  };
72
72
  if (isHasPages) {
73
- entrypoint.entry = import_path.default.join(entrypoint.absoluteEntryDir, import_constants.PAGES_DIR_NAME);
74
- entrypoint.pageRoutesEntry = entrypoint.entry;
73
+ entrypoint.pageRoutesEntry = import_path.default.join(entrypoint.absoluteEntryDir, import_constants.PAGES_DIR_NAME);
75
74
  }
76
75
  if (isHasNestedRoutes) {
77
- entrypoint.entry = import_path.default.join(entrypoint.absoluteEntryDir, import_constants.NESTED_ROUTES_DIR);
78
- entrypoint.nestedRoutesEntry = entrypoint.entry;
76
+ entrypoint.nestedRoutesEntry = import_path.default.join(entrypoint.absoluteEntryDir, import_constants.NESTED_ROUTES_DIR);
79
77
  }
80
78
  } else {
81
79
  throw Error("Custom entries with conventional routing not support use react router v5!");
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  var handler_exports = {};
30
30
  __export(handler_exports, {
31
31
  handleFileChange: () => handleFileChange,
32
+ handleGeneratorEntryCode: () => handleGeneratorEntryCode,
32
33
  handleModifyEntrypoints: () => handleModifyEntrypoints
33
34
  });
34
35
  module.exports = __toCommonJS(handler_exports);
@@ -36,17 +37,32 @@ var import_path = __toESM(require("path"));
36
37
  var import_lodash = require("@modern-js/utils/lodash");
37
38
  var import_entry = require("./entry");
38
39
  var import_utils = require("./code/utils");
40
+ var templates = __toESM(require("./code/templates"));
39
41
  let originEntrypoints = [];
40
42
  async function handleModifyEntrypoints(api, entrypoints) {
41
43
  const config = api.useResolvedConfigContext();
42
- const newEntryPoints = (0, import_entry.modifyEntrypoints)(entrypoints, config);
44
+ return (0, import_entry.modifyEntrypoints)(entrypoints, config);
45
+ }
46
+ async function handleGeneratorEntryCode(api, entrypoints) {
43
47
  const appContext = api.useAppContext();
48
+ const { internalDirectory } = api.useAppContext();
44
49
  const resolvedConfig = api.useResolvedConfigContext();
45
- appContext.entrypoints = newEntryPoints;
46
- originEntrypoints = (0, import_lodash.cloneDeep)(newEntryPoints);
47
- const { generateCode } = await Promise.resolve().then(() => __toESM(require("./code")));
50
+ const { generatorRegisterCode, generateCode } = await Promise.resolve().then(() => __toESM(require("./code")));
51
+ originEntrypoints = (0, import_lodash.cloneDeep)(entrypoints);
48
52
  await generateCode(appContext, resolvedConfig, entrypoints, api);
49
- return newEntryPoints;
53
+ await Promise.all(entrypoints.map(async (entrypoint) => {
54
+ if (entrypoint.nestedRoutesEntry || entrypoint.pageRoutesEntry) {
55
+ var _entrypoint_fileSystemRoutes;
56
+ generatorRegisterCode(internalDirectory, entrypoint.entryName, await templates.runtimeGlobalContext({
57
+ metaName: appContext.metaName,
58
+ srcDirectory: appContext.srcDirectory,
59
+ nestedRoutesEntry: entrypoint.nestedRoutesEntry,
60
+ internalSrcAlias: appContext.internalSrcAlias,
61
+ globalApp: (_entrypoint_fileSystemRoutes = entrypoint.fileSystemRoutes) === null || _entrypoint_fileSystemRoutes === void 0 ? void 0 : _entrypoint_fileSystemRoutes.globalApp
62
+ }));
63
+ }
64
+ }));
65
+ return entrypoints;
50
66
  }
51
67
  async function handleFileChange(api, e) {
52
68
  const appContext = api.useAppContext();
@@ -67,5 +83,6 @@ async function handleFileChange(api, e) {
67
83
  // Annotate the CommonJS export names for ESM import in node:
68
84
  0 && (module.exports = {
69
85
  handleFileChange,
86
+ handleGeneratorEntryCode,
70
87
  handleModifyEntrypoints
71
88
  });
@@ -30,17 +30,36 @@ var import_entry = require("./entry");
30
30
  var import_handler = require("./handler");
31
31
  var import_entry2 = require("./entry");
32
32
  var import_handler2 = require("./handler");
33
- const PLUGIN_IDENTIFIER = "router";
34
- const ROUTES_IDENTIFIER = "routes";
35
33
  const routerPlugin = () => ({
36
34
  name: "@modern-js/plugin-router",
37
35
  required: [
38
36
  "@modern-js/runtime"
39
37
  ],
40
38
  setup: (api) => {
41
- const runtimeConfigMap = /* @__PURE__ */ new Map();
42
- let pluginsExportsUtils;
43
39
  return {
40
+ _internalRuntimePlugins({ entrypoint, plugins }) {
41
+ var _getEntryOptions;
42
+ const { packageName, serverRoutes, metaName } = api.useAppContext();
43
+ const serverBase = serverRoutes.filter((route) => route.entryName === entrypoint.entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
44
+ const userConfig = api.useResolvedConfigContext();
45
+ const routerConfig = (_getEntryOptions = (0, import_utils.getEntryOptions)(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.router;
46
+ if (routerConfig && !(0, import_utils.isRouterV5)(userConfig)) {
47
+ plugins.push({
48
+ name: "router",
49
+ path: `@${metaName}/runtime/router`,
50
+ config: typeof routerConfig === "boolean" ? {
51
+ serverBase
52
+ } : {
53
+ ...routerConfig,
54
+ serverBase
55
+ }
56
+ });
57
+ }
58
+ return {
59
+ entrypoint,
60
+ plugins
61
+ };
62
+ },
44
63
  checkEntryPoint({ path, entry }) {
45
64
  return {
46
65
  path,
@@ -48,8 +67,6 @@ const routerPlugin = () => ({
48
67
  };
49
68
  },
50
69
  config() {
51
- const appContext = api.useAppContext();
52
- pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(appContext.internalDirectory, "plugins");
53
70
  return {
54
71
  source: {
55
72
  include: [
@@ -59,10 +76,7 @@ const routerPlugin = () => ({
59
76
  /node_modules\/react-router/,
60
77
  /node_modules\/react-router-dom/,
61
78
  /node_modules\/@remix-run\/router/
62
- ],
63
- alias: {
64
- "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
65
- }
79
+ ]
66
80
  }
67
81
  };
68
82
  },
@@ -72,56 +86,15 @@ const routerPlugin = () => ({
72
86
  entrypoints: newEntryPoints
73
87
  };
74
88
  },
75
- modifyEntryImports({ entrypoint, imports }) {
76
- const { entryName, isMainEntry, fileSystemRoutes } = entrypoint;
77
- const userConfig = api.useResolvedConfigContext();
78
- const { packageName } = api.useAppContext();
79
- const runtimeConfig = (0, import_utils.getEntryOptions)(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
80
- runtimeConfigMap.set(entryName, runtimeConfig);
81
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) {
82
- if (!(0, import_utils.isRouterV5)(userConfig)) {
83
- imports.push({
84
- value: "@modern-js/runtime/plugins",
85
- specifiers: [
86
- {
87
- imported: PLUGIN_IDENTIFIER
88
- }
89
- ]
90
- });
91
- }
92
- } else if (fileSystemRoutes) {
93
- throw new Error(`should enable runtime.router for entry ${entryName}`);
94
- }
95
- return {
96
- entrypoint,
97
- imports
98
- };
99
- },
100
- modifyEntryRuntimePlugins({ entrypoint, plugins }) {
101
- const { entryName, fileSystemRoutes } = entrypoint;
102
- const { serverRoutes } = api.useAppContext();
103
- const userConfig = api.useResolvedConfigContext();
104
- const runtimeConfig = runtimeConfigMap.get(entryName);
105
- if (runtimeConfig.router && !(0, import_utils.isRouterV5)(userConfig)) {
106
- const serverBase = serverRoutes.filter((route) => route.entryName === entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
107
- plugins.push({
108
- name: PLUGIN_IDENTIFIER,
109
- options: JSON.stringify({
110
- serverBase,
111
- ...runtimeConfig.router,
112
- routesConfig: fileSystemRoutes ? `{ ${ROUTES_IDENTIFIER}, globalApp: App }` : void 0
113
- }).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
114
- });
115
- }
116
- return {
117
- entrypoint,
118
- plugins
119
- };
89
+ async generateEntryCode({ entrypoints }) {
90
+ await (0, import_handler.handleGeneratorEntryCode)(api, entrypoints);
120
91
  },
121
92
  addRuntimeExports() {
122
93
  const userConfig = api.useResolvedConfigContext();
94
+ const { internalDirectory, metaName } = api.useAppContext();
95
+ const pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(internalDirectory, "plugins");
123
96
  if (!(0, import_utils.isRouterV5)(userConfig)) {
124
- pluginsExportsUtils.addExport(`export { default as router } from '@modern-js/runtime/router'`);
97
+ pluginsExportsUtils.addExport(`export { default as router } from '@${metaName}/runtime/router'`);
125
98
  }
126
99
  },
127
100
  async fileChange(e) {