@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,105 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var createReadableStream_worker_exports = {};
30
+ __export(createReadableStream_worker_exports, {
31
+ createReadableStreamFromElement: () => createReadableStreamFromElement
32
+ });
33
+ module.exports = __toCommonJS(createReadableStream_worker_exports);
34
+ var import_server = require("react-dom/server");
35
+ var import_isbot = __toESM(require("isbot"));
36
+ var import_constants = require("../../constants");
37
+ var import_common = require("../../../common");
38
+ var import_shared = require("./shared");
39
+ var import_template = require("./template");
40
+ const createReadableStreamFromElement = async (request, rootElement, options) => {
41
+ let shellChunkStatus = import_shared.ShellChunkStatus.START;
42
+ const chunkVec = [];
43
+ const { htmlTemplate, runtimeContext, config, ssrConfig } = options;
44
+ const { shellBefore, shellAfter } = await (0, import_template.getTemplates)(htmlTemplate, {
45
+ renderLevel: import_constants.RenderLevel.SERVER_RENDER,
46
+ runtimeContext,
47
+ ssrConfig,
48
+ request,
49
+ config
50
+ });
51
+ try {
52
+ var _options_onShellReady;
53
+ const readableOriginal = await (0, import_server.renderToReadableStream)(rootElement, {
54
+ nonce: config.nonce,
55
+ onError(error) {
56
+ var _options_onError;
57
+ (_options_onError = options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(options, error);
58
+ }
59
+ });
60
+ (_options_onShellReady = options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(options);
61
+ readableOriginal.allReady.then(() => {
62
+ var _options_onAllReady;
63
+ options === null || options === void 0 ? void 0 : (_options_onAllReady = options.onAllReady) === null || _options_onAllReady === void 0 ? void 0 : _options_onAllReady.call(options);
64
+ });
65
+ const isbot = (0, import_isbot.default)(request.headers.get("user-agent"));
66
+ if (isbot) {
67
+ await readableOriginal.allReady;
68
+ }
69
+ const reader = readableOriginal.getReader();
70
+ const stream = new ReadableStream({
71
+ start(controller) {
72
+ async function push() {
73
+ const { done, value } = await reader.read();
74
+ if (done) {
75
+ controller.close();
76
+ return;
77
+ }
78
+ if (shellChunkStatus !== import_shared.ShellChunkStatus.FINISH) {
79
+ const chunk = new TextDecoder().decode(value);
80
+ chunkVec.push(chunk);
81
+ let concatedChunk = chunkVec.join("");
82
+ if (concatedChunk.endsWith(import_common.ESCAPED_SHELL_STREAM_END_MARK)) {
83
+ concatedChunk = concatedChunk.replace(import_common.ESCAPED_SHELL_STREAM_END_MARK, "");
84
+ shellChunkStatus = import_shared.ShellChunkStatus.FINISH;
85
+ controller.enqueue((0, import_shared.encodeForWebStream)(`${shellBefore}${concatedChunk}${shellAfter}`));
86
+ }
87
+ } else {
88
+ controller.enqueue(value);
89
+ }
90
+ push();
91
+ }
92
+ push();
93
+ }
94
+ });
95
+ return stream;
96
+ } catch (e) {
97
+ const fallbackHtml = `${shellBefore}${shellAfter}`;
98
+ const stream = (0, import_shared.getReadableStreamFromString)(fallbackHtml);
99
+ return stream;
100
+ }
101
+ };
102
+ // Annotate the CommonJS export names for ESM import in node:
103
+ 0 && (module.exports = {
104
+ createReadableStreamFromElement
105
+ });
@@ -0,0 +1,30 @@
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 stream_exports = {};
20
+ __export(stream_exports, {
21
+ renderStreaming: () => renderStreaming
22
+ });
23
+ module.exports = __toCommonJS(stream_exports);
24
+ var import_createReadableStream = require("./createReadableStream");
25
+ var import_shared = require("./shared");
26
+ const renderStreaming = (0, import_shared.createRenderStreaming)(import_createReadableStream.createReadableStreamFromElement);
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ renderStreaming
30
+ });
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var shared_exports = {};
30
+ __export(shared_exports, {
31
+ ShellChunkStatus: () => ShellChunkStatus,
32
+ createRenderStreaming: () => createRenderStreaming,
33
+ encodeForWebStream: () => encodeForWebStream,
34
+ getReadableStreamFromString: () => getReadableStreamFromString
35
+ });
36
+ module.exports = __toCommonJS(shared_exports);
37
+ var import_time = require("@modern-js/runtime-utils/time");
38
+ var import_request = require("@modern-js/runtime-utils/universal/request");
39
+ var import_node = require("@modern-js/runtime-utils/node");
40
+ var import_react = __toESM(require("react"));
41
+ var import_tracer = require("../tracer");
42
+ var import_utils = require("../utils");
43
+ var ShellChunkStatus;
44
+ (function(ShellChunkStatus2) {
45
+ ShellChunkStatus2[ShellChunkStatus2["START"] = 0] = "START";
46
+ ShellChunkStatus2[ShellChunkStatus2["FINISH"] = 1] = "FINISH";
47
+ })(ShellChunkStatus || (ShellChunkStatus = {}));
48
+ let encoder;
49
+ function encodeForWebStream(thing) {
50
+ if (!encoder) {
51
+ encoder = new TextEncoder();
52
+ }
53
+ if (typeof thing === "string") {
54
+ return encoder.encode(thing);
55
+ }
56
+ return thing;
57
+ }
58
+ function getReadableStreamFromString(content) {
59
+ const readableStream = new ReadableStream({
60
+ start(controller) {
61
+ controller.enqueue(encodeForWebStream(content));
62
+ controller.close();
63
+ }
64
+ });
65
+ return readableStream;
66
+ }
67
+ function createRenderStreaming(createReadableStreamFromElement) {
68
+ return async (request, serverRoot, options) => {
69
+ const headersData = (0, import_request.parseHeaders)(request);
70
+ return (0, import_node.run)(headersData, async () => {
71
+ const end = (0, import_time.time)();
72
+ const { runtimeContext, config, resource, staticGenerate } = options;
73
+ const onError = (0, import_tracer.createOnError)(options.onError);
74
+ const onTiming = (0, import_tracer.createOnTiming)(options.onTiming);
75
+ const { htmlTemplate, entryName } = resource;
76
+ const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries, staticGenerate);
77
+ const rootElement = import_react.default.cloneElement(serverRoot, {
78
+ _internal_context: Object.assign(runtimeContext, {
79
+ ssr: true
80
+ })
81
+ });
82
+ const stream = await createReadableStreamFromElement(request, rootElement, {
83
+ config,
84
+ htmlTemplate,
85
+ runtimeContext,
86
+ ssrConfig,
87
+ onShellReady() {
88
+ const cost = end();
89
+ onTiming(import_tracer.SSRTimings.RENDER_SHELL, cost);
90
+ },
91
+ onAllReady() {
92
+ const cost = end();
93
+ onTiming(import_tracer.SSRTimings.RENDER_HTML, cost);
94
+ },
95
+ onShellError(error) {
96
+ onError(import_tracer.SSRErrors.RENDER_SHELL, error);
97
+ },
98
+ onError(error) {
99
+ onError(import_tracer.SSRErrors.RENDER_STREAM, error);
100
+ }
101
+ });
102
+ return stream;
103
+ });
104
+ };
105
+ }
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ ShellChunkStatus,
109
+ createRenderStreaming,
110
+ encodeForWebStream,
111
+ getReadableStreamFromString
112
+ });
@@ -21,17 +21,13 @@ __export(template_exports, {
21
21
  getTemplates: () => getTemplates
22
22
  });
23
23
  module.exports = __toCommonJS(template_exports);
24
- var import_buildTemplate = require("./buildTemplate.after");
25
- var import_bulidTemplate = require("./bulidTemplate.before");
24
+ var import_beforeTemplate = require("./beforeTemplate");
25
+ var import_afterTemplate = require("./afterTemplate");
26
26
  const HTML_SEPARATOR = "<!--<?- html ?>-->";
27
- const getTemplates = async (context, renderLevel, pluginConfig, styledComponentsStyleTags) => {
28
- const { ssrContext } = context;
29
- const [beforeAppTemplate = "", afterAppHtmlTemplate = ""] = ssrContext.template.split(HTML_SEPARATOR) || [];
30
- const builtBeforeTemplate = await (0, import_bulidTemplate.buildShellBeforeTemplate)(beforeAppTemplate, context, pluginConfig, styledComponentsStyleTags);
31
- const builtAfterTemplate = await (0, import_buildTemplate.buildShellAfterTemplate)(afterAppHtmlTemplate, {
32
- context,
33
- renderLevel
34
- });
27
+ const getTemplates = async (htmlTemplate, options) => {
28
+ const [beforeAppTemplate = "", afterAppHtmlTemplate = ""] = htmlTemplate.split(HTML_SEPARATOR) || [];
29
+ const builtBeforeTemplate = await (0, import_beforeTemplate.buildShellBeforeTemplate)(beforeAppTemplate, options);
30
+ const builtAfterTemplate = await (0, import_afterTemplate.buildShellAfterTemplate)(afterAppHtmlTemplate, options);
35
31
  return {
36
32
  shellBefore: builtBeforeTemplate,
37
33
  shellAfter: builtAfterTemplate
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var string_exports = {};
30
+ __export(string_exports, {
31
+ renderString: () => renderString
32
+ });
33
+ module.exports = __toCommonJS(string_exports);
34
+ var import_react_helmet = __toESM(require("react-helmet"));
35
+ var import_server = __toESM(require("react-dom/server"));
36
+ var import_react = __toESM(require("react"));
37
+ var import_time = require("@modern-js/runtime-utils/time");
38
+ var import_node = require("@modern-js/runtime-utils/node");
39
+ var import_request = require("@modern-js/runtime-utils/universal/request");
40
+ var import_helmet = require("../helmet");
41
+ var import_utils = require("../utils");
42
+ var import_constants = require("../constants");
43
+ var import_shared = require("../shared");
44
+ var import_tracer = require("../tracer");
45
+ var import_constants2 = require("../../constants");
46
+ var import_ssrData = require("./ssrData");
47
+ var import_loadable = require("./loadable");
48
+ var import_styledComponent = require("./styledComponent");
49
+ var import_prefetch = require("./prefetch");
50
+ const renderString = async (request, serverRoot, options) => {
51
+ const headersData = (0, import_request.parseHeaders)(request);
52
+ return (0, import_node.run)(headersData, async () => {
53
+ var _runtimeContext_ssrContext;
54
+ const { resource, runtimeContext, config, onError, onTiming, staticGenerate } = options;
55
+ const tracer = {
56
+ onError: (0, import_tracer.createOnError)(onError),
57
+ onTiming: (0, import_tracer.createOnTiming)(onTiming)
58
+ };
59
+ const routerContext = runtimeContext.routerContext;
60
+ const { htmlTemplate, entryName, loadableStats, routeManifest } = resource;
61
+ const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries, staticGenerate);
62
+ const chunkSet = {
63
+ renderLevel: import_constants2.RenderLevel.CLIENT_RENDER,
64
+ ssrScripts: "",
65
+ jsChunk: "",
66
+ cssChunk: ""
67
+ };
68
+ let prefetchData = {};
69
+ try {
70
+ prefetchData = await (0, import_prefetch.prefetch)(serverRoot, request, options, ssrConfig, tracer);
71
+ chunkSet.renderLevel = import_constants2.RenderLevel.SERVER_PREFETCH;
72
+ } catch (e) {
73
+ chunkSet.renderLevel = import_constants2.RenderLevel.CLIENT_RENDER;
74
+ }
75
+ const collectors = [
76
+ new import_styledComponent.StyledCollector(chunkSet),
77
+ new import_loadable.LoadableCollector({
78
+ stats: loadableStats,
79
+ nonce: config.nonce,
80
+ routeManifest,
81
+ template: htmlTemplate,
82
+ entryName,
83
+ chunkSet,
84
+ config
85
+ }),
86
+ new import_ssrData.SSRDataCollector({
87
+ request,
88
+ prefetchData,
89
+ ssrConfig,
90
+ ssrContext: runtimeContext.ssrContext,
91
+ chunkSet,
92
+ routerContext,
93
+ nonce: config.nonce
94
+ })
95
+ ];
96
+ const rootElement = import_react.default.cloneElement(serverRoot, {
97
+ _internal_context: Object.assign(runtimeContext, {
98
+ ssr: true
99
+ })
100
+ });
101
+ const html = await generateHtml(rootElement, htmlTemplate, chunkSet, collectors, ((_runtimeContext_ssrContext = runtimeContext.ssrContext) === null || _runtimeContext_ssrContext === void 0 ? void 0 : _runtimeContext_ssrContext.htmlModifiers) || [], tracer);
102
+ return html;
103
+ });
104
+ };
105
+ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifiers, { onError, onTiming }) {
106
+ const end = (0, import_time.time)();
107
+ let html = "";
108
+ let helmetData;
109
+ if (chunkSet.renderLevel >= import_constants2.RenderLevel.SERVER_PREFETCH) {
110
+ try {
111
+ const finalApp = collectors.reduce((pre, creator) => {
112
+ var _creator_collect;
113
+ return ((_creator_collect = creator.collect) === null || _creator_collect === void 0 ? void 0 : _creator_collect.call(creator, pre)) || pre;
114
+ }, App);
115
+ html = import_server.default.renderToString(finalApp);
116
+ helmetData = import_react_helmet.default.renderStatic();
117
+ chunkSet.renderLevel = import_constants2.RenderLevel.SERVER_RENDER;
118
+ await Promise.all(collectors.map((component) => component.effect()));
119
+ const cost = end();
120
+ onTiming(import_tracer.SSRTimings.RENDER_HTML, cost);
121
+ } catch (e) {
122
+ chunkSet.renderLevel = import_constants2.RenderLevel.CLIENT_RENDER;
123
+ onError(import_tracer.SSRErrors.RENDER_HTML, e);
124
+ }
125
+ }
126
+ const { ssrScripts, cssChunk, jsChunk } = chunkSet;
127
+ const finalHtml = await (0, import_shared.buildHtml)(htmlTemplate, [
128
+ createReplaceHtml(html),
129
+ createReplaceChunkJs(jsChunk),
130
+ createReplaceChunkCss(cssChunk),
131
+ createReplaceSSRDataScript(ssrScripts),
132
+ (0, import_helmet.createReplaceHelemt)(helmetData),
133
+ ...htmlModifiers
134
+ ]);
135
+ return finalHtml;
136
+ }
137
+ function createReplaceHtml(html) {
138
+ return (template) => (0, import_utils.safeReplace)(template, import_constants.HTML_PLACEHOLDER, html);
139
+ }
140
+ function createReplaceSSRDataScript(data) {
141
+ return (template) => (0, import_utils.safeReplace)(template, import_constants.SSR_DATA_PLACEHOLDER, data);
142
+ }
143
+ function createReplaceChunkJs(js) {
144
+ return (template) => (0, import_utils.safeReplace)(template, import_constants.CHUNK_JS_PLACEHOLDER, js);
145
+ }
146
+ function createReplaceChunkCss(css) {
147
+ return (template) => (0, import_utils.safeReplace)(template, import_constants.CHUNK_CSS_PLACEHOLDER, css);
148
+ }
149
+ // Annotate the CommonJS export names for ESM import in node:
150
+ 0 && (module.exports = {
151
+ renderString
152
+ });
@@ -28,7 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var loadable_exports = {};
30
30
  __export(loadable_exports, {
31
- createLoadableCollector: () => createLoadableCollector
31
+ LoadableCollector: () => LoadableCollector
32
32
  });
33
33
  module.exports = __toCommonJS(loadable_exports);
34
34
  var import_server = require("@loadable/server");
@@ -94,13 +94,12 @@ class LoadableCollector {
94
94
  if (!check(scripts)) {
95
95
  return;
96
96
  }
97
- const { result: { chunksMap } } = this.options;
97
+ const { chunkSet } = this.options;
98
98
  const s = scripts.split("</script>").slice(0, 2).map((i) => `${i}</script>`).join("");
99
- chunksMap.js += s;
99
+ chunkSet.jsChunk += s;
100
100
  }
101
101
  async emitScriptAssets(chunks) {
102
- const { template, config, nonce, result } = this.options;
103
- const { chunksMap } = result;
102
+ const { template, nonce, chunkSet, config } = this.options;
104
103
  const { scriptLoading = "defer", enableInlineScripts } = config;
105
104
  const scriptLoadingAtr = {
106
105
  defer: scriptLoading === "defer" ? true : void 0,
@@ -125,10 +124,11 @@ class LoadableCollector {
125
124
  return script;
126
125
  }
127
126
  }));
128
- chunksMap.js += scripts.filter((script) => Boolean(script)).join("");
127
+ chunkSet.jsChunk += scripts.filter((script) => Boolean(script)).join("");
129
128
  }
130
129
  async emitStyleAssets(chunks) {
131
- const { template, result: { chunksMap }, config: { enableInlineStyles } } = this.options;
130
+ const { template, chunkSet, config } = this.options;
131
+ const { enableInlineStyles } = config;
132
132
  const atrributes = (0, import_utils.attributesToString)(this.generateAttributes());
133
133
  const css = await Promise.all(chunks.filter((chunk) => {
134
134
  var _this_existsAssets;
@@ -144,7 +144,7 @@ class LoadableCollector {
144
144
  return link;
145
145
  }
146
146
  }));
147
- chunksMap.css += css.filter((css2) => Boolean(css2)).join("");
147
+ chunkSet.jsChunk += css.filter((css2) => Boolean(css2)).join("");
148
148
  }
149
149
  generateAttributes(extraAtr = {}) {
150
150
  const { config } = this.options;
@@ -162,10 +162,7 @@ class LoadableCollector {
162
162
  this.options = options;
163
163
  }
164
164
  }
165
- function createLoadableCollector(options) {
166
- return new LoadableCollector(options);
167
- }
168
165
  // Annotate the CommonJS export names for ESM import in node:
169
166
  0 && (module.exports = {
170
- createLoadableCollector
167
+ LoadableCollector
171
168
  });
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var prefetch_exports = {};
30
+ __export(prefetch_exports, {
31
+ prefetch: () => prefetch
32
+ });
33
+ module.exports = __toCommonJS(prefetch_exports);
34
+ var import_server = require("react-dom/server");
35
+ var import_node = require("@modern-js/runtime-utils/node");
36
+ var import_server2 = require("@loadable/server");
37
+ var import_time = require("@modern-js/runtime-utils/time");
38
+ var import_request = require("@modern-js/runtime-utils/universal/request");
39
+ var import_react = __toESM(require("react"));
40
+ var import_tracer = require("../tracer");
41
+ const prefetch = async (App, request, options, ssrConfig, { onError, onTiming }) => {
42
+ const headersData = (0, import_request.parseHeaders)(request);
43
+ const { runtimeContext: context, resource } = options;
44
+ const { entryName, loadableStats } = resource;
45
+ return (0, import_node.run)(headersData, async () => {
46
+ var _context_store;
47
+ if (typeof ssrConfig === "boolean" || !ssrConfig.disablePrerender) {
48
+ try {
49
+ const end = (0, import_time.time)();
50
+ if (loadableStats) {
51
+ const extractor = new import_server2.ChunkExtractor({
52
+ stats: loadableStats,
53
+ entrypoints: [
54
+ entryName
55
+ ].filter(Boolean)
56
+ });
57
+ (0, import_server.renderToStaticMarkup)(extractor.collectChunks(/* @__PURE__ */ import_react.default.cloneElement(App, {
58
+ _internal_context: Object.assign(context, {
59
+ ssr: false
60
+ })
61
+ })));
62
+ } else {
63
+ (0, import_server.renderToStaticMarkup)(/* @__PURE__ */ import_react.default.cloneElement(App, {
64
+ _internal_context: Object.assign(context, {
65
+ ssr: false
66
+ })
67
+ }));
68
+ }
69
+ const cost = end();
70
+ onTiming(import_tracer.SSRTimings.PRERENDER, cost);
71
+ } catch (e) {
72
+ const error = e;
73
+ onError(import_tracer.SSRErrors.PRERENDER, error);
74
+ throw e;
75
+ }
76
+ }
77
+ if (!context.loaderManager.hasPendingLoaders()) {
78
+ return {
79
+ initialData: context.initialData,
80
+ i18nData: context.__i18nData__
81
+ };
82
+ }
83
+ let loadersData = {};
84
+ try {
85
+ const end = (0, import_time.time)();
86
+ loadersData = await context.loaderManager.awaitPendingLoaders();
87
+ const cost = end();
88
+ onTiming(import_tracer.SSRTimings.USE_LOADER, cost);
89
+ } catch (e) {
90
+ onError(import_tracer.SSRErrors.USE_LOADER, e);
91
+ throw e;
92
+ }
93
+ Object.keys(loadersData).forEach((id) => {
94
+ const data = loadersData[id];
95
+ if (data._error) {
96
+ onError(import_tracer.SSRErrors.USE_LOADER, data._error);
97
+ delete data._error;
98
+ }
99
+ });
100
+ return {
101
+ loadersData,
102
+ initialData: context.initialData,
103
+ i18nData: context.__i18nData__,
104
+ // todo: move to plugin state
105
+ storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
106
+ };
107
+ });
108
+ };
109
+ // Annotate the CommonJS export names for ESM import in node:
110
+ 0 && (module.exports = {
111
+ prefetch
112
+ });