@modern-js/runtime 2.54.6 → 2.56.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 (309) 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 +91 -17
  5. package/dist/cjs/cli/ssr/index.js +137 -0
  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 +142 -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/core/server/string/styledComponent.js +53 -0
  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/{ssr/serverRender/renderToString/styledComponent.js → core/utils/merge.js} +28 -19
  39. package/dist/cjs/router/cli/code/index.js +12 -8
  40. package/dist/cjs/router/cli/code/templates.js +58 -3
  41. package/dist/cjs/router/cli/constants.js +6 -0
  42. package/dist/cjs/router/cli/entry.js +16 -17
  43. package/dist/cjs/router/cli/handler.js +22 -5
  44. package/dist/cjs/router/cli/index.js +29 -56
  45. package/dist/cjs/router/runtime/PrefetchLink.js +1 -1
  46. package/dist/cjs/router/runtime/index.js +2 -0
  47. package/dist/cjs/router/runtime/plugin.js +13 -40
  48. package/dist/cjs/router/runtime/plugin.node.js +24 -46
  49. package/dist/cjs/state/cli/index.js +7 -35
  50. package/dist/cjs/state/runtime/plugin.js +6 -15
  51. package/dist/esm/cli/alias.js +30 -0
  52. package/dist/esm/cli/code.js +131 -0
  53. package/dist/esm/cli/constants.js +15 -1
  54. package/dist/esm/cli/index.js +110 -18
  55. package/dist/esm/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  56. package/dist/esm/cli/ssr/index.js +127 -0
  57. package/dist/esm/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  58. package/dist/esm/cli/template.js +53 -0
  59. package/dist/esm/cli/template.server.js +26 -0
  60. package/dist/esm/core/browser/hydrate.js +88 -0
  61. package/dist/esm/core/browser/index.js +242 -0
  62. package/dist/esm/core/compatible.js +48 -90
  63. package/dist/esm/core/context/index.js +32 -1
  64. package/dist/esm/core/context/runtime.js +3 -2
  65. package/dist/esm/core/loader/useLoader.js +2 -2
  66. package/dist/esm/core/plugin/base.js +0 -4
  67. package/dist/esm/core/plugin/index.js +10 -0
  68. package/dist/esm/core/react/index.js +31 -0
  69. package/dist/esm/{ssr/serverRender → core/server}/helmet.js +10 -2
  70. package/dist/esm/core/server/index.js +16 -0
  71. package/dist/esm/core/server/react/prerender/type.js +0 -0
  72. package/dist/esm/core/server/requestHandler.js +181 -0
  73. package/dist/esm/core/server/server.js +8 -0
  74. package/dist/esm/core/server/shared.js +10 -0
  75. package/dist/esm/core/server/stream/afterTemplate.js +60 -0
  76. package/dist/esm/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +10 -11
  77. package/dist/esm/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +43 -38
  78. package/dist/esm/core/server/stream/createReadableStream.worker.js +142 -0
  79. package/dist/esm/core/server/stream/index.js +6 -0
  80. package/dist/esm/core/server/stream/shared.js +102 -0
  81. package/dist/esm/core/server/stream/template.js +42 -0
  82. package/dist/esm/core/server/string/index.js +219 -0
  83. package/dist/esm/{ssr/serverRender/renderToString → core/server/string}/loadable.js +10 -13
  84. package/dist/esm/{ssr → core/server/string}/prefetch.js +28 -22
  85. package/dist/esm/core/server/string/ssrData.js +83 -0
  86. package/dist/esm/core/server/string/styledComponent.js +34 -0
  87. package/dist/esm/core/server/string/types.js +0 -0
  88. package/dist/esm/core/server/tracer.js +34 -0
  89. package/dist/esm/core/server/utils.js +83 -0
  90. package/dist/esm/core/utils/merge.js +32 -0
  91. package/dist/esm/router/cli/code/index.js +13 -10
  92. package/dist/esm/router/cli/code/templates.js +100 -7
  93. package/dist/esm/router/cli/constants.js +4 -0
  94. package/dist/esm/router/cli/entry.js +19 -19
  95. package/dist/esm/router/cli/handler.js +70 -8
  96. package/dist/esm/router/cli/index.js +52 -65
  97. package/dist/esm/router/runtime/PrefetchLink.js +1 -1
  98. package/dist/esm/router/runtime/index.js +1 -0
  99. package/dist/esm/router/runtime/plugin.js +12 -20
  100. package/dist/esm/router/runtime/plugin.node.js +26 -82
  101. package/dist/esm/state/cli/index.js +9 -38
  102. package/dist/esm/state/runtime/plugin.js +5 -5
  103. package/dist/esm-node/cli/alias.js +28 -0
  104. package/dist/esm-node/cli/code.js +90 -0
  105. package/dist/esm-node/cli/constants.js +15 -1
  106. package/dist/esm-node/cli/index.js +83 -13
  107. package/dist/esm-node/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  108. package/dist/esm-node/cli/ssr/index.js +103 -0
  109. package/dist/esm-node/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  110. package/dist/esm-node/cli/template.js +64 -0
  111. package/dist/esm-node/cli/template.server.js +47 -0
  112. package/dist/esm-node/core/browser/hydrate.js +81 -0
  113. package/dist/esm-node/core/browser/index.js +108 -0
  114. package/dist/esm-node/core/compatible.js +39 -74
  115. package/dist/esm-node/core/context/index.js +32 -1
  116. package/dist/esm-node/core/context/runtime.js +3 -3
  117. package/dist/esm-node/core/loader/useLoader.js +2 -2
  118. package/dist/esm-node/core/plugin/base.js +0 -4
  119. package/dist/esm-node/core/plugin/index.js +5 -0
  120. package/dist/esm-node/core/react/index.js +27 -0
  121. package/dist/esm-node/{ssr/serverRender → core/server}/helmet.js +6 -2
  122. package/dist/esm-node/core/server/index.js +12 -0
  123. package/dist/esm-node/core/server/requestHandler.js +132 -0
  124. package/dist/esm-node/core/server/server.js +8 -0
  125. package/dist/esm-node/core/server/shared.js +6 -0
  126. package/dist/esm-node/core/server/stream/afterTemplate.js +56 -0
  127. package/dist/esm-node/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +8 -9
  128. package/dist/esm-node/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +41 -35
  129. package/dist/esm-node/core/server/stream/createReadableStream.worker.js +71 -0
  130. package/dist/esm-node/core/server/stream/index.js +6 -0
  131. package/dist/esm-node/core/server/stream/shared.js +75 -0
  132. package/dist/esm-node/core/server/stream/template.js +15 -0
  133. package/dist/esm-node/core/server/string/index.js +118 -0
  134. package/dist/esm-node/{ssr/serverRender/renderToString → core/server/string}/loadable.js +8 -11
  135. package/dist/esm-node/core/server/string/prefetch.js +78 -0
  136. package/dist/esm-node/core/server/string/ssrData.js +76 -0
  137. package/dist/esm-node/core/server/string/styledComponent.js +29 -0
  138. package/dist/esm-node/core/server/tracer.js +33 -0
  139. package/dist/esm-node/core/server/utils.js +60 -0
  140. package/dist/esm-node/core/utils/merge.js +29 -0
  141. package/dist/esm-node/router/cli/code/index.js +10 -7
  142. package/dist/esm-node/router/cli/code/templates.js +60 -6
  143. package/dist/esm-node/router/cli/constants.js +4 -0
  144. package/dist/esm-node/router/cli/entry.js +16 -17
  145. package/dist/esm-node/router/cli/handler.js +21 -5
  146. package/dist/esm-node/router/cli/index.js +31 -58
  147. package/dist/esm-node/router/runtime/PrefetchLink.js +1 -1
  148. package/dist/esm-node/router/runtime/index.js +1 -0
  149. package/dist/esm-node/router/runtime/plugin.js +13 -30
  150. package/dist/esm-node/router/runtime/plugin.node.js +25 -46
  151. package/dist/esm-node/state/cli/index.js +8 -36
  152. package/dist/esm-node/state/runtime/plugin.js +5 -5
  153. package/dist/types/cli/alias.d.ts +7 -0
  154. package/dist/types/cli/code.d.ts +10 -0
  155. package/dist/types/cli/constants.d.ts +7 -0
  156. package/dist/types/cli/index.d.ts +8 -1
  157. package/dist/types/cli/template.d.ts +27 -0
  158. package/dist/types/cli/template.server.d.ts +15 -0
  159. package/dist/types/common.d.ts +9 -0
  160. package/dist/types/core/browser/hydrate.d.ts +5 -0
  161. package/dist/types/core/browser/index.d.ts +3 -0
  162. package/dist/types/core/config.d.ts +5 -6
  163. package/dist/types/core/constants.d.ts +5 -0
  164. package/dist/types/core/context/index.d.ts +34 -1
  165. package/dist/types/core/context/runtime.d.ts +2 -2
  166. package/dist/types/core/plugin/base.d.ts +3 -33
  167. package/dist/types/core/plugin/index.d.ts +2 -11
  168. package/dist/types/core/plugin/runner.d.ts +1 -11
  169. package/dist/types/core/react/index.d.ts +6 -0
  170. package/dist/types/core/server/helmet.d.ts +3 -0
  171. package/dist/types/core/server/index.d.ts +4 -0
  172. package/dist/types/core/server/requestHandler.d.ts +11 -0
  173. package/dist/types/core/server/server.d.ts +4 -0
  174. package/dist/types/core/server/shared.d.ts +9 -0
  175. package/dist/types/core/server/stream/afterTemplate.d.ts +12 -0
  176. package/dist/types/core/server/stream/beforeTemplate.d.ts +8 -0
  177. package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
  178. package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
  179. package/dist/types/core/server/stream/index.d.ts +1 -0
  180. package/dist/types/core/server/stream/shared.d.ts +22 -0
  181. package/dist/types/core/server/stream/template.d.ts +9 -0
  182. package/dist/types/core/server/string/index.d.ts +2 -0
  183. package/dist/types/core/server/string/loadable.d.ts +35 -0
  184. package/dist/types/core/server/string/prefetch.d.ts +16 -0
  185. package/dist/types/core/server/string/ssrData.d.ts +18 -0
  186. package/dist/types/core/server/string/styledComponent.d.ts +11 -0
  187. package/dist/types/core/server/string/types.d.ts +12 -0
  188. package/dist/types/core/server/tracer.d.ts +21 -0
  189. package/dist/types/core/server/utils.d.ts +19 -0
  190. package/dist/types/core/types.d.ts +35 -1
  191. package/dist/types/core/utils/merge.d.ts +6 -0
  192. package/dist/types/index.d.ts +1 -1
  193. package/dist/types/router/cli/code/index.d.ts +3 -4
  194. package/dist/types/router/cli/code/templates.d.ts +9 -1
  195. package/dist/types/router/cli/constants.d.ts +2 -0
  196. package/dist/types/router/cli/handler.d.ts +1 -0
  197. package/dist/types/router/runtime/index.d.ts +1 -0
  198. package/dist/types/router/runtime/plugin.d.ts +1 -1
  199. package/dist/types/router/runtime/plugin.node.d.ts +1 -3
  200. package/dist/types/router/runtime/types.d.ts +1 -2
  201. package/dist/types/state/runtime/plugin.d.ts +2 -2
  202. package/package.json +52 -45
  203. package/types/router.d.ts +7 -2
  204. package/dist/cjs/ssr/cli/index.js +0 -200
  205. package/dist/cjs/ssr/index.js +0 -183
  206. package/dist/cjs/ssr/index.node.js +0 -86
  207. package/dist/cjs/ssr/prefetch.js +0 -92
  208. package/dist/cjs/ssr/serverRender/index.js +0 -39
  209. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -74
  210. package/dist/cjs/ssr/serverRender/renderToStream/index.js +0 -74
  211. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +0 -104
  212. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -108
  213. package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +0 -52
  214. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -179
  215. package/dist/cjs/ssr/serverRender/renderToString/render.js +0 -61
  216. package/dist/cjs/ssr/serverRender/tracker.js +0 -113
  217. package/dist/cjs/ssr/utils.js +0 -94
  218. package/dist/esm/ssr/cli/index.js +0 -194
  219. package/dist/esm/ssr/index.js +0 -169
  220. package/dist/esm/ssr/index.node.js +0 -78
  221. package/dist/esm/ssr/serverRender/index.js +0 -55
  222. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -48
  223. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -12
  224. package/dist/esm/ssr/serverRender/renderToStream/index.js +0 -49
  225. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -164
  226. package/dist/esm/ssr/serverRender/renderToStream/template.js +0 -46
  227. package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +0 -34
  228. package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -257
  229. package/dist/esm/ssr/serverRender/renderToString/index.js +0 -34
  230. package/dist/esm/ssr/serverRender/renderToString/render.js +0 -55
  231. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +0 -25
  232. package/dist/esm/ssr/serverRender/tracker.js +0 -82
  233. package/dist/esm/ssr/serverRender/utils.js +0 -21
  234. package/dist/esm/ssr/utils.js +0 -59
  235. package/dist/esm-node/ssr/cli/index.js +0 -166
  236. package/dist/esm-node/ssr/index.js +0 -147
  237. package/dist/esm-node/ssr/index.node.js +0 -50
  238. package/dist/esm-node/ssr/prefetch.js +0 -72
  239. package/dist/esm-node/ssr/serverRender/index.js +0 -19
  240. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -50
  241. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -8
  242. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +0 -40
  243. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -88
  244. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +0 -19
  245. package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +0 -24
  246. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -149
  247. package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -17
  248. package/dist/esm-node/ssr/serverRender/renderToString/render.js +0 -27
  249. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +0 -20
  250. package/dist/esm-node/ssr/serverRender/tracker.js +0 -87
  251. package/dist/esm-node/ssr/serverRender/utils.js +0 -17
  252. package/dist/esm-node/ssr/utils.js +0 -57
  253. package/dist/types/ssr/index.d.ts +0 -11
  254. package/dist/types/ssr/index.node.d.ts +0 -5
  255. package/dist/types/ssr/prefetch.d.ts +0 -16
  256. package/dist/types/ssr/serverRender/helmet.d.ts +0 -2
  257. package/dist/types/ssr/serverRender/index.d.ts +0 -2
  258. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -7
  259. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +0 -3
  260. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +0 -2
  261. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +0 -3
  262. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +0 -7
  263. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +0 -12
  264. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +0 -6
  265. package/dist/types/ssr/serverRender/renderToString/buildHtml.d.ts +0 -6
  266. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -24
  267. package/dist/types/ssr/serverRender/renderToString/index.d.ts +0 -2
  268. package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +0 -26
  269. package/dist/types/ssr/serverRender/renderToString/render.d.ts +0 -16
  270. package/dist/types/ssr/serverRender/renderToString/styledComponent.d.ts +0 -15
  271. package/dist/types/ssr/serverRender/tracker.d.ts +0 -20
  272. package/dist/types/ssr/serverRender/types.d.ts +0 -49
  273. package/dist/types/ssr/serverRender/utils.d.ts +0 -9
  274. package/dist/types/ssr/utils.d.ts +0 -10
  275. /package/dist/cjs/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +0 -0
  276. /package/dist/cjs/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +0 -0
  277. /package/dist/cjs/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  278. /package/dist/cjs/{ssr/serverRender → core/server}/constants.js +0 -0
  279. /package/dist/cjs/{ssr → core/server}/react/index.js +0 -0
  280. /package/dist/cjs/{ssr → core/server}/react/nossr/index.js +0 -0
  281. /package/dist/cjs/{ssr → core/server}/react/prerender/index.js +0 -0
  282. /package/dist/cjs/{ssr → core/server}/react/prerender/type.js +0 -0
  283. /package/dist/cjs/{ssr → core/server}/react/prerender/util.js +0 -0
  284. /package/dist/esm/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  285. /package/dist/esm/{ssr/serverRender/types.js → core/constants.js} +0 -0
  286. /package/dist/esm/{ssr/serverRender → core/server}/constants.js +0 -0
  287. /package/dist/esm/{ssr → core/server}/react/index.js +0 -0
  288. /package/dist/esm/{ssr → core/server}/react/nossr/index.js +0 -0
  289. /package/dist/esm/{ssr → core/server}/react/prerender/index.js +0 -0
  290. /package/dist/esm/{ssr → core/server}/react/prerender/util.js +0 -0
  291. /package/dist/esm-node/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  292. /package/dist/esm-node/{ssr/serverRender/types.js → core/constants.js} +0 -0
  293. /package/dist/esm-node/{ssr/serverRender → core/server}/constants.js +0 -0
  294. /package/dist/esm-node/{ssr → core/server}/react/index.js +0 -0
  295. /package/dist/esm-node/{ssr → core/server}/react/nossr/index.js +0 -0
  296. /package/dist/esm-node/{ssr → core/server}/react/prerender/index.js +0 -0
  297. /package/dist/esm-node/{ssr → core/server}/react/prerender/type.js +0 -0
  298. /package/dist/esm-node/{ssr → core/server}/react/prerender/util.js +0 -0
  299. /package/dist/{esm/ssr/react/prerender/type.js → esm-node/core/server/string/types.js} +0 -0
  300. /package/dist/types/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.d.ts +0 -0
  301. /package/dist/types/{ssr/cli → cli/ssr}/index.d.ts +0 -0
  302. /package/dist/types/{ssr/cli → cli/ssr}/loadable-bundler-plugin.d.ts +0 -0
  303. /package/dist/types/{ssr/react/withCallback/index.d.ts → core/browser/withCallback.d.ts} +0 -0
  304. /package/dist/types/{ssr/serverRender → core/server}/constants.d.ts +0 -0
  305. /package/dist/types/{ssr → core/server}/react/index.d.ts +0 -0
  306. /package/dist/types/{ssr → core/server}/react/nossr/index.d.ts +0 -0
  307. /package/dist/types/{ssr → core/server}/react/prerender/index.d.ts +0 -0
  308. /package/dist/types/{ssr → core/server}/react/prerender/type.d.ts +0 -0
  309. /package/dist/types/{ssr → core/server}/react/prerender/util.d.ts +0 -0
@@ -0,0 +1,131 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { MAIN_ENTRY_NAME, fs } from "@modern-js/utils";
5
+ import { INDEX_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_POINT_REGISTER_FILE_NAME, ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME, SERVER_ENTRY_POINT_FILE_NAME } from "./constants";
6
+ import * as template from "./template";
7
+ import * as serverTemplate from "./template.server";
8
+ function getSSRMode() {
9
+ var entry = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : MAIN_ENTRY_NAME, config = arguments.length > 1 ? arguments[1] : void 0;
10
+ var _config_server = config.server, ssr = _config_server.ssr, ssrByEntries = _config_server.ssrByEntries;
11
+ if (config.output.ssg) {
12
+ return "string";
13
+ }
14
+ return checkSSRMode((ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[entry]) || ssr);
15
+ function checkSSRMode(ssr2) {
16
+ if (!ssr2) {
17
+ return false;
18
+ }
19
+ if (typeof ssr2 === "boolean") {
20
+ return ssr2 ? "string" : false;
21
+ }
22
+ return ssr2.mode === "stream" ? "stream" : "string";
23
+ }
24
+ }
25
+ var generateCode = function() {
26
+ var _ref = _async_to_generator(function(entrypoints, appContext, config, onCollectRuntimePlugins) {
27
+ var mountId, enableAsyncEntry, runtimeConfigFile, internalDirectory, internalSrcAlias, metaName, srcDirectory;
28
+ return _ts_generator(this, function(_state) {
29
+ switch (_state.label) {
30
+ case 0:
31
+ mountId = config.html.mountId;
32
+ enableAsyncEntry = config.source.enableAsyncEntry;
33
+ runtimeConfigFile = appContext.runtimeConfigFile, internalDirectory = appContext.internalDirectory, internalSrcAlias = appContext.internalSrcAlias, metaName = appContext.metaName, srcDirectory = appContext.srcDirectory;
34
+ return [
35
+ 4,
36
+ Promise.all(entrypoints.map(function() {
37
+ var _ref2 = _async_to_generator(function(entrypoint) {
38
+ var entryName, isAutoMount, entry, customEntry, customBootstrap, customServerEntry, _ref3, runtimePlugins, indexCode, indexFile, bootstrapFile, ssrMode, indexServerCode, indexServerFile, registerCode, registerFile, registerRuntimeCode, registerRuntimeFile, contextCode, contextFile;
39
+ return _ts_generator(this, function(_state2) {
40
+ switch (_state2.label) {
41
+ case 0:
42
+ entryName = entrypoint.entryName, isAutoMount = entrypoint.isAutoMount, entry = entrypoint.entry, customEntry = entrypoint.customEntry, customBootstrap = entrypoint.customBootstrap, customServerEntry = entrypoint.customServerEntry;
43
+ return [
44
+ 4,
45
+ onCollectRuntimePlugins({
46
+ entrypoint,
47
+ plugins: []
48
+ })
49
+ ];
50
+ case 1:
51
+ _ref3 = _state2.sent(), runtimePlugins = _ref3.plugins;
52
+ if (isAutoMount) {
53
+ indexCode = template.index({
54
+ srcDirectory,
55
+ internalSrcAlias,
56
+ metaName,
57
+ entry,
58
+ entryName,
59
+ customEntry,
60
+ customBootstrap,
61
+ mountId
62
+ });
63
+ indexFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_FILE_NAME));
64
+ fs.outputFileSync(indexFile, indexCode, "utf8");
65
+ if (enableAsyncEntry) {
66
+ bootstrapFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_BOOTSTRAP_FILE_NAME));
67
+ fs.outputFileSync(bootstrapFile, "import('./".concat(INDEX_FILE_NAME, "');"), "utf8");
68
+ }
69
+ ssrMode = getSSRMode(entryName, config);
70
+ if (ssrMode) {
71
+ indexServerCode = serverTemplate.serverIndex({
72
+ entry,
73
+ entryName,
74
+ internalSrcAlias,
75
+ metaName,
76
+ mode: ssrMode,
77
+ customServerEntry,
78
+ srcDirectory
79
+ });
80
+ indexServerFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(SERVER_ENTRY_POINT_FILE_NAME));
81
+ fs.outputFileSync(indexServerFile, indexServerCode, "utf8");
82
+ }
83
+ registerCode = template.register();
84
+ registerFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_REGISTER_FILE_NAME));
85
+ fs.outputFileSync(registerFile, registerCode, "utf8");
86
+ registerRuntimeCode = template.runtimeRegister({
87
+ entryName,
88
+ srcDirectory,
89
+ internalSrcAlias,
90
+ metaName,
91
+ runtimeConfigFile,
92
+ runtimePlugins
93
+ });
94
+ registerRuntimeFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME));
95
+ fs.outputFileSync(registerRuntimeFile, registerRuntimeCode, "utf8");
96
+ contextCode = template.runtimeGlobalContext({
97
+ srcDirectory,
98
+ internalSrcAlias,
99
+ metaName,
100
+ entry,
101
+ customEntry
102
+ });
103
+ contextFile = path.resolve(internalDirectory, "./".concat(entryName, "/").concat(ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME));
104
+ fs.outputFileSync(contextFile, contextCode, "utf8");
105
+ }
106
+ return [
107
+ 2
108
+ ];
109
+ }
110
+ });
111
+ });
112
+ return function(entrypoint) {
113
+ return _ref2.apply(this, arguments);
114
+ };
115
+ }()))
116
+ ];
117
+ case 1:
118
+ _state.sent();
119
+ return [
120
+ 2
121
+ ];
122
+ }
123
+ });
124
+ });
125
+ return function generateCode2(entrypoints, appContext, config, onCollectRuntimePlugins) {
126
+ return _ref.apply(this, arguments);
127
+ };
128
+ }();
129
+ export {
130
+ generateCode
131
+ };
@@ -1,4 +1,18 @@
1
1
  var APP_FILE_NAME = "App";
2
+ var ENTRY_POINT_FILE_NAME = "index.jsx";
3
+ var SERVER_ENTRY_POINT_FILE_NAME = "index.server.jsx";
4
+ var INDEX_FILE_NAME = "index";
5
+ var ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
6
+ var ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME = "runtime-register.js";
7
+ var ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME = "runtime-global-context.js";
8
+ var ENTRY_POINT_REGISTER_FILE_NAME = "register.js";
2
9
  export {
3
- APP_FILE_NAME
10
+ APP_FILE_NAME,
11
+ ENTRY_BOOTSTRAP_FILE_NAME,
12
+ ENTRY_POINT_FILE_NAME,
13
+ ENTRY_POINT_REGISTER_FILE_NAME,
14
+ ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME,
15
+ ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME,
16
+ INDEX_FILE_NAME,
17
+ SERVER_ENTRY_POINT_FILE_NAME
4
18
  };
@@ -1,13 +1,18 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
- import { isReact18, cleanRequireCache } from "@modern-js/utils";
4
+ import path from "path";
5
+ import { isReact18 as checkIsReact18, cleanRequireCache, createRuntimeExportsUtils } from "@modern-js/utils";
4
6
  import { statePlugin } from "../state/cli";
5
- import { ssrPlugin } from "../ssr/cli";
6
7
  import { routerPlugin } from "../router/cli";
7
8
  import { documentPlugin } from "../document/cli";
9
+ import { ssrPlugin } from "./ssr";
8
10
  import { isRuntimeEntry } from "./entry";
11
+ import { ENTRY_BOOTSTRAP_FILE_NAME, ENTRY_POINT_FILE_NAME } from "./constants";
12
+ import { generateCode } from "./code";
13
+ import { builderPluginAlias } from "./alias";
9
14
  import { isRuntimeEntry as isRuntimeEntry2 } from "./entry";
10
- var runtimePlugin = function() {
15
+ var runtimePlugin = function(params) {
11
16
  return {
12
17
  name: "@modern-js/runtime",
13
18
  post: [
@@ -18,36 +23,94 @@ var runtimePlugin = function() {
18
23
  "@modern-js/plugin-design-token"
19
24
  ],
20
25
  // the order of runtime plugins is affected by runtime hooks, mainly `init` and `hoc` hooks
21
- usePlugins: [
26
+ usePlugins: (params === null || params === void 0 ? void 0 : params.plugins) || [
22
27
  ssrPlugin(),
23
- statePlugin(),
24
28
  routerPlugin(),
29
+ statePlugin(),
25
30
  documentPlugin()
26
31
  ],
27
32
  setup: function(api) {
28
33
  return {
29
34
  checkEntryPoint: function checkEntryPoint(param) {
30
- var path = param.path, entry = param.entry;
35
+ var path2 = param.path, entry = param.entry;
36
+ return {
37
+ path: path2,
38
+ entry: entry || isRuntimeEntry(path2)
39
+ };
40
+ },
41
+ modifyEntrypoints: function modifyEntrypoints(param) {
42
+ var entrypoints = param.entrypoints;
43
+ var internalDirectory = api.useAppContext().internalDirectory;
44
+ var _api_useResolvedConfigContext = api.useResolvedConfigContext(), enableAsyncEntry = _api_useResolvedConfigContext.source.enableAsyncEntry;
45
+ var newEntryPoints = entrypoints.map(function(entrypoint) {
46
+ if (entrypoint.isAutoMount) {
47
+ entrypoint.internalEntry = path.resolve(internalDirectory, "./".concat(entrypoint.entryName, "/").concat(enableAsyncEntry ? ENTRY_BOOTSTRAP_FILE_NAME : ENTRY_POINT_FILE_NAME));
48
+ }
49
+ return entrypoint;
50
+ });
31
51
  return {
32
- path,
33
- entry: entry || isRuntimeEntry(path)
52
+ entrypoints: newEntryPoints
34
53
  };
35
54
  },
55
+ generateEntryCode: function generateEntryCode(param) {
56
+ var entrypoints = param.entrypoints;
57
+ return _async_to_generator(function() {
58
+ var appContext, resolvedConfig, runners;
59
+ return _ts_generator(this, function(_state) {
60
+ switch (_state.label) {
61
+ case 0:
62
+ appContext = api.useAppContext();
63
+ resolvedConfig = api.useResolvedConfigContext();
64
+ runners = api.useHookRunners();
65
+ return [
66
+ 4,
67
+ generateCode(entrypoints, appContext, resolvedConfig, runners._internalRuntimePlugins)
68
+ ];
69
+ case 1:
70
+ _state.sent();
71
+ return [
72
+ 2
73
+ ];
74
+ }
75
+ });
76
+ })();
77
+ },
78
+ /* Note that the execution time of the config hook is before prepare.
79
+ /* This means that the entry information cannot be obtained in the config hook.
80
+ /* Therefore, aliases cannot be set directly in the config.
81
+ */
82
+ prepare: function prepare() {
83
+ var _api_useAppContext = api.useAppContext(), builder = _api_useAppContext.builder, entrypoints = _api_useAppContext.entrypoints, internalDirectory = _api_useAppContext.internalDirectory, metaName = _api_useAppContext.metaName;
84
+ builder === null || builder === void 0 ? void 0 : builder.addPlugins([
85
+ builderPluginAlias({
86
+ entrypoints,
87
+ internalDirectory,
88
+ metaName
89
+ })
90
+ ]);
91
+ },
36
92
  config: function config() {
37
- var appDir = api.useAppContext().appDirectory;
38
- process.env.IS_REACT18 = isReact18(appDir).toString();
93
+ var _api_useAppContext = api.useAppContext(), appDirectory = _api_useAppContext.appDirectory, metaName = _api_useAppContext.metaName, internalDirectory = _api_useAppContext.internalDirectory;
94
+ var isReact18 = checkIsReact18(appDirectory);
95
+ process.env.IS_REACT18 = isReact18.toString();
96
+ var pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
39
97
  return {
40
98
  runtime: {},
41
99
  runtimeByEntries: {},
42
100
  source: {
43
- alias: {
101
+ alias: (
44
102
  /**
45
- * twin.macro inserts styled-components into the code during the compilation process
46
- * But it will not be installed under the user project.
47
- * So need to add alias
103
+ * Compatible with the reference path of the old version of the plugin.
48
104
  */
49
- "styled-components": require.resolve("styled-components")
50
- },
105
+ _define_property({
106
+ /**
107
+ * twin.macro inserts styled-components into the code during the compilation process
108
+ * But it will not be installed under the user project.
109
+ * So need to add alias
110
+ */
111
+ "styled-components": require.resolve("styled-components")
112
+ }, "@".concat(metaName, "/runtime/plugins"), pluginsExportsUtils.getPath())
113
+ ),
51
114
  globalVars: {
52
115
  "process.env.IS_REACT18": process.env.IS_REACT18
53
116
  }
@@ -58,6 +121,31 @@ var runtimePlugin = function() {
58
121
  topLevelImportPaths: [
59
122
  "@modern-js/runtime/styled"
60
123
  ]
124
+ },
125
+ /**
126
+ * Add IgnorePlugin to fix react-dom/client import error when use react17
127
+ */
128
+ webpackChain: function(chain, param) {
129
+ var webpack = param.webpack;
130
+ if (!isReact18) {
131
+ chain.plugin("ignore-plugin").use(webpack.IgnorePlugin, [
132
+ {
133
+ resourceRegExp: /^react-dom\/client$/,
134
+ contextRegExp: /./
135
+ }
136
+ ]);
137
+ }
138
+ },
139
+ rspack: function(_config, param) {
140
+ var appendPlugins = param.appendPlugins, rspack = param.rspack;
141
+ if (!isReact18) {
142
+ appendPlugins([
143
+ new rspack.IgnorePlugin({
144
+ resourceRegExp: /^react-dom\/client$/,
145
+ contextRegExp: /./
146
+ })
147
+ ]);
148
+ }
61
149
  }
62
150
  }
63
151
  };
@@ -68,7 +156,7 @@ var runtimePlugin = function() {
68
156
  cleanRequireCache([
69
157
  require.resolve("../state/cli"),
70
158
  require.resolve("../router/cli"),
71
- require.resolve("../ssr/cli")
159
+ require.resolve("./ssr")
72
160
  ]);
73
161
  return [
74
162
  2
@@ -83,6 +171,10 @@ var runtimePlugin = function() {
83
171
  var cli_default = runtimePlugin;
84
172
  export {
85
173
  cli_default as default,
174
+ documentPlugin,
86
175
  isRuntimeEntry2 as isRuntimeEntry,
87
- runtimePlugin
176
+ routerPlugin,
177
+ runtimePlugin,
178
+ ssrPlugin,
179
+ statePlugin
88
180
  };
@@ -7,7 +7,7 @@ import { Buffer as Buffer2 } from "buffer";
7
7
  import * as t from "@babel/types";
8
8
  import { get } from "@modern-js/utils/lodash";
9
9
  var require_babel_plugin_ssr_loader_id = __commonJS({
10
- "src/ssr/cli/babel-plugin-ssr-loader-id.ts"(exports, module) {
10
+ "src/cli/ssr/babel-plugin-ssr-loader-id.ts"(exports, module) {
11
11
  var RUNTIME_PACKAGE_NAMES = [
12
12
  "@modern-js/runtime"
13
13
  ];
@@ -0,0 +1,127 @@
1
+ import path from "path";
2
+ import { LOADABLE_STATS_FILE, isUseSSRBundle } from "@modern-js/utils";
3
+ var hasStringSSREntry = function(userConfig) {
4
+ var isStreaming = function(ssr) {
5
+ return ssr && typeof ssr === "object" && ssr.mode === "stream";
6
+ };
7
+ var server = userConfig.server, output = userConfig.output;
8
+ if (((server === null || server === void 0 ? void 0 : server.ssr) || output.ssg) && !isStreaming(server.ssr)) {
9
+ return true;
10
+ }
11
+ if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
12
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
13
+ try {
14
+ for (var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
15
+ var name = _step.value;
16
+ if (server.ssrByEntries[name] && !isStreaming(server.ssrByEntries[name])) {
17
+ return true;
18
+ }
19
+ }
20
+ } catch (err) {
21
+ _didIteratorError = true;
22
+ _iteratorError = err;
23
+ } finally {
24
+ try {
25
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
26
+ _iterator.return();
27
+ }
28
+ } finally {
29
+ if (_didIteratorError) {
30
+ throw _iteratorError;
31
+ }
32
+ }
33
+ }
34
+ }
35
+ return false;
36
+ };
37
+ var checkUseStringSSR = function(config) {
38
+ var output = config.output;
39
+ return Boolean(output === null || output === void 0 ? void 0 : output.ssg) || hasStringSSREntry(config);
40
+ };
41
+ var ssrBuilderPlugin = function(modernAPI) {
42
+ return {
43
+ name: "@modern-js/builder-plugin-ssr",
44
+ setup: function setup(api) {
45
+ api.modifyEnvironmentConfig(function(config, param) {
46
+ var name = param.name, mergeEnvironmentConfig = param.mergeEnvironmentConfig;
47
+ var isServerEnvironment = config.output.target === "node" || name === "serviceWorker";
48
+ var userConfig = modernAPI.useResolvedConfigContext();
49
+ var useLoadablePlugin = isUseSSRBundle(userConfig) && !isServerEnvironment && checkUseStringSSR(userConfig);
50
+ return mergeEnvironmentConfig(config, {
51
+ source: {
52
+ define: {
53
+ "process.env.MODERN_TARGET": isServerEnvironment ? JSON.stringify("node") : JSON.stringify("browser")
54
+ }
55
+ },
56
+ tools: {
57
+ bundlerChain: useLoadablePlugin ? function(chain) {
58
+ var LoadableBundlerPlugin = require("./loadable-bundler-plugin.js");
59
+ chain.plugin("loadable").use(LoadableBundlerPlugin, [
60
+ {
61
+ filename: LOADABLE_STATS_FILE
62
+ }
63
+ ]);
64
+ } : void 0
65
+ }
66
+ });
67
+ });
68
+ }
69
+ };
70
+ };
71
+ var ssrPlugin = function() {
72
+ return {
73
+ name: "@modern-js/plugin-ssr",
74
+ required: [
75
+ "@modern-js/runtime"
76
+ ],
77
+ setup: function(api) {
78
+ return {
79
+ // for bundle
80
+ config: function config() {
81
+ var _api_useAppContext = api.useAppContext(), _api_useAppContext_bundlerType = _api_useAppContext.bundlerType, bundlerType = _api_useAppContext_bundlerType === void 0 ? "webpack" : _api_useAppContext_bundlerType;
82
+ var babelHandler = function() {
83
+ if (bundlerType === "webpack") {
84
+ return function(config2) {
85
+ var _config_plugins;
86
+ var userConfig = api.useResolvedConfigContext();
87
+ (_config_plugins = config2.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
88
+ if (isUseSSRBundle(userConfig) && checkUseStringSSR(userConfig)) {
89
+ var _config_plugins1;
90
+ (_config_plugins1 = config2.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
91
+ }
92
+ };
93
+ } else if (bundlerType === "rspack") {
94
+ return function(config2) {
95
+ var userConfig = api.useResolvedConfigContext();
96
+ if (isUseSSRBundle(userConfig) && checkUseStringSSR(userConfig)) {
97
+ var _config_plugins, _config_plugins1;
98
+ (_config_plugins = config2.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
99
+ (_config_plugins1 = config2.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
100
+ }
101
+ };
102
+ }
103
+ }();
104
+ return {
105
+ builderPlugins: [
106
+ ssrBuilderPlugin(api)
107
+ ],
108
+ source: {
109
+ alias: {
110
+ // ensure that all packages use the same storage in @modern-js/runtime-utils/node
111
+ "@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node")
112
+ }
113
+ },
114
+ tools: {
115
+ babel: babelHandler
116
+ }
117
+ };
118
+ }
119
+ };
120
+ }
121
+ };
122
+ };
123
+ var ssr_default = ssrPlugin;
124
+ export {
125
+ ssr_default as default,
126
+ ssrPlugin
127
+ };
@@ -9,7 +9,7 @@ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
9
9
  import path from "path";
10
10
  import { fs } from "@modern-js/utils";
11
11
  var require_loadable_bundler_plugin = __commonJS({
12
- "src/ssr/cli/loadable-bundler-plugin.ts"(exports, module) {
12
+ "src/cli/ssr/loadable-bundler-plugin.ts"(exports, module) {
13
13
  var LoadablePlugin = /* @__PURE__ */ function() {
14
14
  "use strict";
15
15
  function LoadablePlugin2() {
@@ -0,0 +1,53 @@
1
+ import path from "path";
2
+ import { JS_EXTENSIONS, findExists, formatImportPath } from "@modern-js/utils";
3
+ import { ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME } from "./constants";
4
+ var genRenderCode = function(param) {
5
+ var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId;
6
+ if (customEntry) {
7
+ return "import '".concat(formatImportPath(entry.replace(srcDirectory, internalSrcAlias)), "'");
8
+ }
9
+ return "import { createRoot } from '@".concat(metaName, "/runtime/react';\nimport { render } from '@").concat(metaName, "/runtime/browser';\n").concat(customBootstrap ? "import customBootstrap from '".concat(formatImportPath(customBootstrap.replace(srcDirectory, internalSrcAlias)), "';") : "", "\n\nconst ModernRoot = createRoot();\n\n").concat(customBootstrap ? "customBootstrap(ModernRoot, () => render(<ModernRoot />, '".concat(mountId || "root", "'));") : "render(<ModernRoot />, '".concat(mountId || "root", "');"));
10
+ };
11
+ var index = function(param) {
12
+ var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, entryName = param.entryName, customEntry = param.customEntry, customBootstrap = param.customBootstrap, mountId = param.mountId;
13
+ return "import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n").concat(genRenderCode({
14
+ srcDirectory,
15
+ internalSrcAlias,
16
+ metaName,
17
+ entry,
18
+ customEntry,
19
+ customBootstrap,
20
+ mountId
21
+ }), "\n");
22
+ };
23
+ var register = function() {
24
+ return "import './".concat(ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME, "';\nimport './").concat(ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME, "';\n");
25
+ };
26
+ var getImportRuntimeConfigCode = function(srcDirectory, internalSrcAlias, runtimeConfigFile) {
27
+ if (runtimeConfigFile && findExists(JS_EXTENSIONS.map(function(ext) {
28
+ return path.resolve(srcDirectory, "".concat(runtimeConfigFile).concat(ext));
29
+ }))) {
30
+ return "import runtimeConfig from '".concat(internalSrcAlias, "/").concat(runtimeConfigFile, "';");
31
+ }
32
+ return "let runtimeConfig;";
33
+ };
34
+ var getRegisterRuntimePluginCode = function(entryName, name, config) {
35
+ return "plugins.push(".concat(name, "Plugin(mergeConfig(").concat(JSON.stringify(config), ", (runtimeConfig || {})['").concat(name, "'], ((runtimeConfig || {})['").concat(name, "ByEntries'] || {})['").concat(entryName, "'], (getGlobalAppConfig() || {})['").concat(name, "'])));");
36
+ };
37
+ var runtimeRegister = function(param) {
38
+ var entryName = param.entryName, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, runtimeConfigFile = param.runtimeConfigFile, runtimePlugins = param.runtimePlugins;
39
+ return "import { registerPlugin, mergeConfig } from '@".concat(metaName, "/runtime/plugin';\nimport { getGlobalAppConfig, getGlobalLayoutApp } from '@").concat(metaName, "/runtime/context';\n").concat(getImportRuntimeConfigCode(srcDirectory, internalSrcAlias, runtimeConfigFile), "\n\nconst plugins = [];\n\n").concat(runtimePlugins.map(function(param2) {
40
+ var name = param2.name, path2 = param2.path, config = param2.config;
41
+ return "import { ".concat(name, "Plugin } from '").concat(path2, "';\n\n").concat(getRegisterRuntimePluginCode(entryName, name, config), "\n");
42
+ }).join("\n"), "\nregisterPlugin(plugins, runtimeConfig);\n");
43
+ };
44
+ var runtimeGlobalContext = function(param) {
45
+ var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry;
46
+ return "import { setGlobalContext } from '@".concat(metaName, "/runtime/context'\n\nimport App from '").concat(formatImportPath(customEntry ? entry.replace("entry.tsx", "App.tsx").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias)), "';\n\nsetGlobalContext({\n App,\n});");
47
+ };
48
+ export {
49
+ index,
50
+ register,
51
+ runtimeGlobalContext,
52
+ runtimeRegister
53
+ };
@@ -0,0 +1,26 @@
1
+ import { formatImportPath } from "@modern-js/utils";
2
+ var SERVER_ENTRY = "\nimport {\n #render,\n createRequestHandler,\n} from '@#metaName/runtime/ssr/server';\n\nconst handleRequest = async (request, ServerRoot, options) => {\n\n const body = await #render(request, <ServerRoot />, options);\n\n return new Response(body, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n #headers\n },\n })\n};\n\nexport const requestHandler = createRequestHandler(handleRequest);\n";
3
+ var serverIndex = function(options) {
4
+ var _options_metaName = options.metaName, metaName = _options_metaName === void 0 ? "modern-js" : _options_metaName, entryName = options.entryName;
5
+ return "\n import '@".concat(metaName, "/runtime/registry/").concat(entryName, "';\n ").concat(genHandlerCode(options), "\n ");
6
+ };
7
+ function genHandlerCode(param) {
8
+ var mode = param.mode, metaName = param.metaName, customServerEntry = param.customServerEntry, srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias;
9
+ if (customServerEntry) {
10
+ return "export { default as requestHandler } from '".concat(formatImportPath(customServerEntry.replace(srcDirectory, internalSrcAlias)), "'");
11
+ } else {
12
+ var serverEntry = transformServerEntry(SERVER_ENTRY, {
13
+ metaName: metaName || "modern-js",
14
+ mode
15
+ });
16
+ return serverEntry;
17
+ }
18
+ }
19
+ function transformServerEntry(source, options) {
20
+ var _options_metaName = options.metaName, metaName = _options_metaName === void 0 ? "modern-js" : _options_metaName, mode = options.mode;
21
+ var output = source.replace(/#metaName/g, metaName).replace(/#render/g, mode === "string" ? "renderString" : "renderStreaming").replace(/#headers/g, mode === "string" ? "" : "'transfer-encoding': 'chunked',");
22
+ return output;
23
+ }
24
+ export {
25
+ serverIndex
26
+ };
@@ -0,0 +1,88 @@
1
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { normalizePathname } from "@modern-js/runtime-utils/url";
5
+ import { loadableReady } from "@loadable/component";
6
+ import React from "react";
7
+ import { RenderLevel } from "../constants";
8
+ import { WithCallback } from "./withCallback";
9
+ var isReact18 = function() {
10
+ return process.env.IS_REACT18 === "true";
11
+ };
12
+ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
13
+ var _window__SSR_DATA, _window, _window__SSR_DATA1, _window1;
14
+ var hydrateContext = _object_spread_props(_object_spread({}, context), {
15
+ get routes() {
16
+ return context.routes;
17
+ },
18
+ _hydration: true
19
+ });
20
+ var ssrContext = hydrateContext.ssrContext;
21
+ var currentPathname = normalizePathname(window.location.pathname);
22
+ var initialPathname = normalizePathname(ssrContext.request.pathname);
23
+ if (initialPathname !== currentPathname && context.router) {
24
+ var errorMsg = "The initial URL ".concat(initialPathname, " and the URL ").concat(currentPathname, " to be hydrated do not match, reload.");
25
+ console.error(errorMsg);
26
+ window.location.reload();
27
+ }
28
+ var callback = function() {
29
+ delete hydrateContext._hydration;
30
+ };
31
+ var renderLevel = ((_window = window) === null || _window === void 0 ? void 0 : (_window__SSR_DATA = _window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : _window__SSR_DATA.renderLevel) || RenderLevel.CLIENT_RENDER;
32
+ var renderMode = ((_window1 = window) === null || _window1 === void 0 ? void 0 : (_window__SSR_DATA1 = _window1._SSR_DATA) === null || _window__SSR_DATA1 === void 0 ? void 0 : _window__SSR_DATA1.mode) || "string";
33
+ if (isReact18() && renderMode === "stream") {
34
+ return streamSSRHydrate();
35
+ }
36
+ function streamSSRHydrate() {
37
+ if (renderLevel === RenderLevel.SERVER_RENDER) {
38
+ var SSRApp = function() {
39
+ return /* @__PURE__ */ _jsx(WithCallback, {
40
+ callback,
41
+ children: /* @__PURE__ */ React.cloneElement(App, {
42
+ _internal_context: hydrateContext
43
+ })
44
+ });
45
+ };
46
+ return ModernHydrate(/* @__PURE__ */ _jsx(SSRApp, {}));
47
+ } else {
48
+ return ModernRender(App);
49
+ }
50
+ }
51
+ return stringSSRHydrate();
52
+ function stringSSRHydrate() {
53
+ if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
54
+ return ModernRender(App);
55
+ } else if (renderLevel === RenderLevel.SERVER_RENDER) {
56
+ return new Promise(function(resolve) {
57
+ if (isReact18()) {
58
+ loadableReady(function() {
59
+ var SSRApp = function() {
60
+ return /* @__PURE__ */ _jsx(WithCallback, {
61
+ callback,
62
+ children: /* @__PURE__ */ React.cloneElement(App, {
63
+ _internal_context: hydrateContext
64
+ })
65
+ });
66
+ };
67
+ ModernHydrate(/* @__PURE__ */ _jsx(SSRApp, {})).then(function(root) {
68
+ resolve(root);
69
+ });
70
+ });
71
+ } else {
72
+ loadableReady(function() {
73
+ ModernHydrate(App, callback).then(function(root) {
74
+ resolve(root);
75
+ });
76
+ });
77
+ }
78
+ });
79
+ } else {
80
+ console.warn("unknow render level: ".concat(renderLevel, ", execute render()"));
81
+ return ModernRender(App);
82
+ }
83
+ }
84
+ }
85
+ export {
86
+ hydrateRoot,
87
+ isReact18
88
+ };