@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
@@ -1,13 +1,19 @@
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";
6
+ import { rspack } from "@rsbuild/core";
4
7
  import { statePlugin } from "../state/cli";
5
- import { ssrPlugin } from "../ssr/cli";
6
8
  import { routerPlugin } from "../router/cli";
7
9
  import { documentPlugin } from "../document/cli";
10
+ import { ssrPlugin } from "./ssr";
8
11
  import { isRuntimeEntry } from "./entry";
12
+ import { ENTRY_BOOTSTRAP_FILE_NAME, ENTRY_POINT_FILE_NAME } from "./constants";
13
+ import { generateCode } from "./code";
14
+ import { builderPluginAlias } from "./alias";
9
15
  import { isRuntimeEntry as isRuntimeEntry2 } from "./entry";
10
- var runtimePlugin = function() {
16
+ var runtimePlugin = function(params) {
11
17
  return {
12
18
  name: "@modern-js/runtime",
13
19
  post: [
@@ -18,36 +24,94 @@ var runtimePlugin = function() {
18
24
  "@modern-js/plugin-design-token"
19
25
  ],
20
26
  // the order of runtime plugins is affected by runtime hooks, mainly `init` and `hoc` hooks
21
- usePlugins: [
27
+ usePlugins: (params === null || params === void 0 ? void 0 : params.plugins) || [
22
28
  ssrPlugin(),
23
- statePlugin(),
24
29
  routerPlugin(),
30
+ statePlugin(),
25
31
  documentPlugin()
26
32
  ],
27
33
  setup: function(api) {
28
34
  return {
29
35
  checkEntryPoint: function checkEntryPoint(param) {
30
- var path = param.path, entry = param.entry;
36
+ var path2 = param.path, entry = param.entry;
37
+ return {
38
+ path: path2,
39
+ entry: entry || isRuntimeEntry(path2)
40
+ };
41
+ },
42
+ modifyEntrypoints: function modifyEntrypoints(param) {
43
+ var entrypoints = param.entrypoints;
44
+ var internalDirectory = api.useAppContext().internalDirectory;
45
+ var _api_useResolvedConfigContext = api.useResolvedConfigContext(), enableAsyncEntry = _api_useResolvedConfigContext.source.enableAsyncEntry;
46
+ var newEntryPoints = entrypoints.map(function(entrypoint) {
47
+ if (entrypoint.isAutoMount) {
48
+ entrypoint.internalEntry = path.resolve(internalDirectory, "./".concat(entrypoint.entryName, "/").concat(enableAsyncEntry ? ENTRY_BOOTSTRAP_FILE_NAME : ENTRY_POINT_FILE_NAME));
49
+ }
50
+ return entrypoint;
51
+ });
31
52
  return {
32
- path,
33
- entry: entry || isRuntimeEntry(path)
53
+ entrypoints: newEntryPoints
34
54
  };
35
55
  },
56
+ generateEntryCode: function generateEntryCode(param) {
57
+ var entrypoints = param.entrypoints;
58
+ return _async_to_generator(function() {
59
+ var appContext, resolvedConfig, runners;
60
+ return _ts_generator(this, function(_state) {
61
+ switch (_state.label) {
62
+ case 0:
63
+ appContext = api.useAppContext();
64
+ resolvedConfig = api.useResolvedConfigContext();
65
+ runners = api.useHookRunners();
66
+ return [
67
+ 4,
68
+ generateCode(entrypoints, appContext, resolvedConfig, runners._internalRuntimePlugins)
69
+ ];
70
+ case 1:
71
+ _state.sent();
72
+ return [
73
+ 2
74
+ ];
75
+ }
76
+ });
77
+ })();
78
+ },
79
+ /* Note that the execution time of the config hook is before prepare.
80
+ /* This means that the entry information cannot be obtained in the config hook.
81
+ /* Therefore, aliases cannot be set directly in the config.
82
+ */
83
+ prepare: function prepare() {
84
+ var _api_useAppContext = api.useAppContext(), builder = _api_useAppContext.builder, entrypoints = _api_useAppContext.entrypoints, internalDirectory = _api_useAppContext.internalDirectory, metaName = _api_useAppContext.metaName;
85
+ builder === null || builder === void 0 ? void 0 : builder.addPlugins([
86
+ builderPluginAlias({
87
+ entrypoints,
88
+ internalDirectory,
89
+ metaName
90
+ })
91
+ ]);
92
+ },
36
93
  config: function config() {
37
- var appDir = api.useAppContext().appDirectory;
38
- process.env.IS_REACT18 = isReact18(appDir).toString();
94
+ var _api_useAppContext = api.useAppContext(), appDirectory = _api_useAppContext.appDirectory, metaName = _api_useAppContext.metaName, internalDirectory = _api_useAppContext.internalDirectory;
95
+ var isReact18 = checkIsReact18(appDirectory);
96
+ process.env.IS_REACT18 = isReact18.toString();
97
+ var pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
39
98
  return {
40
99
  runtime: {},
41
100
  runtimeByEntries: {},
42
101
  source: {
43
- alias: {
102
+ alias: (
44
103
  /**
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
104
+ * Compatible with the reference path of the old version of the plugin.
48
105
  */
49
- "styled-components": require.resolve("styled-components")
50
- },
106
+ _define_property({
107
+ /**
108
+ * twin.macro inserts styled-components into the code during the compilation process
109
+ * But it will not be installed under the user project.
110
+ * So need to add alias
111
+ */
112
+ "styled-components": require.resolve("styled-components")
113
+ }, "@".concat(metaName, "/runtime/plugins"), pluginsExportsUtils.getPath())
114
+ ),
51
115
  globalVars: {
52
116
  "process.env.IS_REACT18": process.env.IS_REACT18
53
117
  }
@@ -58,6 +122,31 @@ var runtimePlugin = function() {
58
122
  topLevelImportPaths: [
59
123
  "@modern-js/runtime/styled"
60
124
  ]
125
+ },
126
+ /**
127
+ * Add IgnorePlugin to fix react-dom/client import error when use react17
128
+ */
129
+ webpackChain: function(chain, param) {
130
+ var webpack = param.webpack;
131
+ if (!isReact18) {
132
+ chain.plugin("ignore-plugin").use(webpack.IgnorePlugin, [
133
+ {
134
+ resourceRegExp: /^react-dom\/client$/,
135
+ contextRegExp: /./
136
+ }
137
+ ]);
138
+ }
139
+ },
140
+ rspack: function(_config, param) {
141
+ var appendPlugins = param.appendPlugins;
142
+ if (!isReact18) {
143
+ appendPlugins([
144
+ new rspack.IgnorePlugin({
145
+ resourceRegExp: /^react-dom\/client$/,
146
+ contextRegExp: /./
147
+ })
148
+ ]);
149
+ }
61
150
  }
62
151
  }
63
152
  };
@@ -68,7 +157,7 @@ var runtimePlugin = function() {
68
157
  cleanRequireCache([
69
158
  require.resolve("../state/cli"),
70
159
  require.resolve("../router/cli"),
71
- require.resolve("../ssr/cli")
160
+ require.resolve("./ssr")
72
161
  ]);
73
162
  return [
74
163
  2
@@ -83,6 +172,10 @@ var runtimePlugin = function() {
83
172
  var cli_default = runtimePlugin;
84
173
  export {
85
174
  cli_default as default,
175
+ documentPlugin,
86
176
  isRuntimeEntry2 as isRuntimeEntry,
87
- runtimePlugin
177
+ routerPlugin,
178
+ runtimePlugin,
179
+ ssrPlugin,
180
+ statePlugin
88
181
  };
@@ -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,110 @@
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 ssrPlugin = function() {
42
+ return {
43
+ name: "@modern-js/plugin-ssr",
44
+ required: [
45
+ "@modern-js/runtime"
46
+ ],
47
+ setup: function(api) {
48
+ return {
49
+ // for bundle
50
+ config: function config() {
51
+ var _api_useAppContext = api.useAppContext(), _api_useAppContext_bundlerType = _api_useAppContext.bundlerType, bundlerType = _api_useAppContext_bundlerType === void 0 ? "webpack" : _api_useAppContext_bundlerType;
52
+ var babelHandler = function() {
53
+ if (bundlerType === "webpack") {
54
+ return function(config2) {
55
+ var _config_plugins;
56
+ var userConfig = api.useResolvedConfigContext();
57
+ (_config_plugins = config2.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
58
+ if (isUseSSRBundle(userConfig) && checkUseStringSSR(userConfig)) {
59
+ var _config_plugins1;
60
+ (_config_plugins1 = config2.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
61
+ }
62
+ };
63
+ } else if (bundlerType === "rspack") {
64
+ return function(config2) {
65
+ var userConfig = api.useResolvedConfigContext();
66
+ if (isUseSSRBundle(userConfig) && checkUseStringSSR(userConfig)) {
67
+ var _config_plugins, _config_plugins1;
68
+ (_config_plugins = config2.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
69
+ (_config_plugins1 = config2.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
70
+ }
71
+ };
72
+ }
73
+ }();
74
+ return {
75
+ source: {
76
+ alias: {
77
+ // ensure that all packages use the same storage in @modern-js/runtime-utils/node
78
+ "@modern-js/runtime-utils/node$": require.resolve("@modern-js/runtime-utils/node")
79
+ },
80
+ globalVars: function(values, param) {
81
+ var target = param.target;
82
+ values["process.env.MODERN_TARGET"] = target === "node" || target === "service-worker" ? "node" : "browser";
83
+ }
84
+ },
85
+ tools: {
86
+ bundlerChain: function bundlerChain(chain, param) {
87
+ var isServer = param.isServer, isServiceWorker = param.isServiceWorker;
88
+ var userConfig = api.useResolvedConfigContext();
89
+ if (isUseSSRBundle(userConfig) && !isServer && !isServiceWorker && checkUseStringSSR(userConfig)) {
90
+ var LoadableBundlerPlugin = require("./loadable-bundler-plugin.js");
91
+ chain.plugin("loadable").use(LoadableBundlerPlugin, [
92
+ {
93
+ filename: LOADABLE_STATS_FILE
94
+ }
95
+ ]);
96
+ }
97
+ },
98
+ babel: babelHandler
99
+ }
100
+ };
101
+ }
102
+ };
103
+ }
104
+ };
105
+ };
106
+ var ssr_default = ssrPlugin;
107
+ export {
108
+ ssr_default as default,
109
+ ssrPlugin
110
+ };
@@ -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
+ };