@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,19 +1,38 @@
1
- import { getEntryOptions, createRuntimeExportsUtils, isRouterV5 as isV5 } from "@modern-js/utils";
1
+ import { createRuntimeExportsUtils, getEntryOptions, isRouterV5 as isV5 } from "@modern-js/utils";
2
2
  import { isRouteEntry } from "./entry";
3
- import { handleFileChange, handleModifyEntrypoints } from "./handler";
3
+ import { handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints } from "./handler";
4
4
  import { isRouteEntry as isRouteEntry2 } from "./entry";
5
5
  import { handleFileChange as handleFileChange2, handleModifyEntrypoints as handleModifyEntrypoints2 } from "./handler";
6
- const PLUGIN_IDENTIFIER = "router";
7
- const ROUTES_IDENTIFIER = "routes";
8
6
  const routerPlugin = () => ({
9
7
  name: "@modern-js/plugin-router",
10
8
  required: [
11
9
  "@modern-js/runtime"
12
10
  ],
13
11
  setup: (api) => {
14
- const runtimeConfigMap = /* @__PURE__ */ new Map();
15
- let pluginsExportsUtils;
16
12
  return {
13
+ _internalRuntimePlugins({ entrypoint, plugins }) {
14
+ var _getEntryOptions;
15
+ const { packageName, serverRoutes, metaName } = api.useAppContext();
16
+ const serverBase = serverRoutes.filter((route) => route.entryName === entrypoint.entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
17
+ const userConfig = api.useResolvedConfigContext();
18
+ const routerConfig = (_getEntryOptions = getEntryOptions(entrypoint.entryName, entrypoint.isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.router;
19
+ if (routerConfig && !isV5(userConfig)) {
20
+ plugins.push({
21
+ name: "router",
22
+ path: `@${metaName}/runtime/router`,
23
+ config: typeof routerConfig === "boolean" ? {
24
+ serverBase
25
+ } : {
26
+ ...routerConfig,
27
+ serverBase
28
+ }
29
+ });
30
+ }
31
+ return {
32
+ entrypoint,
33
+ plugins
34
+ };
35
+ },
17
36
  checkEntryPoint({ path, entry }) {
18
37
  return {
19
38
  path,
@@ -21,8 +40,6 @@ const routerPlugin = () => ({
21
40
  };
22
41
  },
23
42
  config() {
24
- const appContext = api.useAppContext();
25
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
26
43
  return {
27
44
  source: {
28
45
  include: [
@@ -32,10 +49,7 @@ const routerPlugin = () => ({
32
49
  /node_modules\/react-router/,
33
50
  /node_modules\/react-router-dom/,
34
51
  /node_modules\/@remix-run\/router/
35
- ],
36
- alias: {
37
- "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
38
- }
52
+ ]
39
53
  }
40
54
  };
41
55
  },
@@ -45,56 +59,15 @@ const routerPlugin = () => ({
45
59
  entrypoints: newEntryPoints
46
60
  };
47
61
  },
48
- modifyEntryImports({ entrypoint, imports }) {
49
- const { entryName, isMainEntry, fileSystemRoutes } = entrypoint;
50
- const userConfig = api.useResolvedConfigContext();
51
- const { packageName } = api.useAppContext();
52
- const runtimeConfig = getEntryOptions(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName);
53
- runtimeConfigMap.set(entryName, runtimeConfig);
54
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) {
55
- if (!isV5(userConfig)) {
56
- imports.push({
57
- value: "@modern-js/runtime/plugins",
58
- specifiers: [
59
- {
60
- imported: PLUGIN_IDENTIFIER
61
- }
62
- ]
63
- });
64
- }
65
- } else if (fileSystemRoutes) {
66
- throw new Error(`should enable runtime.router for entry ${entryName}`);
67
- }
68
- return {
69
- entrypoint,
70
- imports
71
- };
72
- },
73
- modifyEntryRuntimePlugins({ entrypoint, plugins }) {
74
- const { entryName, fileSystemRoutes } = entrypoint;
75
- const { serverRoutes } = api.useAppContext();
76
- const userConfig = api.useResolvedConfigContext();
77
- const runtimeConfig = runtimeConfigMap.get(entryName);
78
- if (runtimeConfig.router && !isV5(userConfig)) {
79
- const serverBase = serverRoutes.filter((route) => route.entryName === entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
80
- plugins.push({
81
- name: PLUGIN_IDENTIFIER,
82
- options: JSON.stringify({
83
- serverBase,
84
- ...runtimeConfig.router,
85
- routesConfig: fileSystemRoutes ? `{ ${ROUTES_IDENTIFIER}, globalApp: App }` : void 0
86
- }).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
87
- });
88
- }
89
- return {
90
- entrypoint,
91
- plugins
92
- };
62
+ async generateEntryCode({ entrypoints }) {
63
+ await handleGeneratorEntryCode(api, entrypoints);
93
64
  },
94
65
  addRuntimeExports() {
95
66
  const userConfig = api.useResolvedConfigContext();
67
+ const { internalDirectory, metaName } = api.useAppContext();
68
+ const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
96
69
  if (!isV5(userConfig)) {
97
- pluginsExportsUtils.addExport(`export { default as router } from '@modern-js/runtime/router'`);
70
+ pluginsExportsUtils.addExport(`export { default as router } from '@${metaName}/runtime/router'`);
98
71
  }
99
72
  },
100
73
  async fileChange(e) {
@@ -20,5 +20,6 @@ export {
20
20
  handleRouteModuleError,
21
21
  modifyRoutes,
22
22
  renderRoutes,
23
+ routerPlugin,
23
24
  useRouteLoaderData
24
25
  };
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useContext, useMemo } from "react";
3
3
  import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation, useHref } from "@modern-js/runtime-utils/router";
4
- import hoistNonReactStatics from "hoist-non-react-statics";
5
4
  import { parsedJSONFromElement } from "@modern-js/runtime-utils/parsed";
5
+ import { getGlobalLayoutApp, getGlobalRoutes } from "../../core/context";
6
6
  import { RuntimeReactContext } from "../../core";
7
7
  import { modifyRoutes as modifyRoutesHook } from "./hooks";
8
8
  import { deserializeErrors, renderRoutes, urlJoin } from "./utils";
@@ -19,19 +19,14 @@ function modifyRoutes(modifyFunction) {
19
19
  console.error("It is not allowed to modify routes config after create router.");
20
20
  }
21
21
  }
22
- const routerPlugin = ({
23
- serverBase = [],
24
- supportHtml5History = true,
25
- basename = "",
26
- // when the current child app has multiple entries, there is a problem,
27
- // so we have added a new parameter, the parameter will replace basename and baseUrl after the major version.
28
- originalBaseUrl = "",
29
- routesConfig,
30
- createRoutes
31
- }) => {
22
+ const routerPlugin = ({ serverBase = [], supportHtml5History = true, basename = "", routesConfig, createRoutes }) => {
32
23
  const select = (pathname) => serverBase.find((baseUrl) => pathname.search(baseUrl) === 0) || "/";
33
24
  let routes = [];
34
- finalRouteConfig = routesConfig;
25
+ finalRouteConfig = {
26
+ routes: getGlobalRoutes(),
27
+ globalApp: getGlobalLayoutApp(),
28
+ ...routesConfig
29
+ };
35
30
  window._SERVER_DATA = parsedJSONFromElement("__MODERN_SERVER_DATA__");
36
31
  return {
37
32
  name: "@modern-js/plugin-router",
@@ -56,7 +51,7 @@ const routerPlugin = ({
56
51
  });
57
52
  },
58
53
  hoc: ({ App, config }, next) => {
59
- if (!finalRouteConfig && !createRoutes) {
54
+ if (!finalRouteConfig.routes && !createRoutes) {
60
55
  return next({
61
56
  App,
62
57
  config
@@ -64,8 +59,8 @@ const routerPlugin = ({
64
59
  }
65
60
  const getRouteApp = () => {
66
61
  const useCreateRouter = (props) => {
67
- var _window__SERVER_DATA;
68
- const baseUrl = originalBaseUrl || ((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname);
62
+ var _config_router, _window__SERVER_DATA;
63
+ const baseUrl = ((config === null || config === void 0 ? void 0 : (_config_router = config.router) === null || _config_router === void 0 ? void 0 : _config_router.basename) || ((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname)).replace(/^\/*/, "/");
69
64
  const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
70
65
  let hydrationData = window._ROUTER_DATA;
71
66
  const runtimeContext = useContext(RuntimeReactContext);
@@ -119,24 +114,12 @@ const routerPlugin = ({
119
114
  return (props) => {
120
115
  beforeCreateRouter = false;
121
116
  const router = useCreateRouter(props);
122
- return /* @__PURE__ */ _jsx(App, {
123
- ...props,
124
- children: /* @__PURE__ */ _jsx(RouterProvider, {
125
- router
126
- })
117
+ return /* @__PURE__ */ _jsx(RouterProvider, {
118
+ router
127
119
  });
128
120
  };
129
121
  };
130
- let RouteApp = getRouteApp();
131
- if (App) {
132
- RouteApp = hoistNonReactStatics(RouteApp, App);
133
- }
134
- if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
135
- return next({
136
- App: hoistNonReactStatics(RouteApp, routesConfig.globalApp),
137
- config
138
- });
139
- }
122
+ const RouteApp = getRouteApp();
140
123
  return next({
141
124
  App: RouteApp,
142
125
  config
@@ -1,28 +1,17 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useContext } from "react";
3
3
  import { createStaticHandler } from "@modern-js/runtime-utils/remix-router";
4
4
  import { createStaticRouter, StaticRouterProvider } from "@modern-js/runtime-utils/node/router";
5
- import hoistNonReactStatics from "hoist-non-react-statics";
6
5
  import { createRoutesFromElements } from "@modern-js/runtime-utils/router";
7
6
  import { reporterCtx, createRequestContext } from "@modern-js/runtime-utils/node";
8
7
  import { time } from "@modern-js/runtime-utils/time";
9
8
  import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
10
9
  import { JSX_SHELL_STREAM_END_MARK } from "../../common";
11
10
  import { RuntimeReactContext } from "../../core";
11
+ import { getGlobalLayoutApp, getGlobalRoutes } from "../../core/context";
12
12
  import { renderRoutes, urlJoin } from "./utils";
13
13
  import { modifyRoutes as modifyRoutesHook } from "./hooks";
14
14
  import DeferredDataScripts from "./DeferredDataScripts.node";
15
- function createFetchRequest(req) {
16
- const origin = `${req.protocol}://${req.host}`;
17
- const url = new URL(req.originalUrl || req.url, origin);
18
- const controller = new AbortController();
19
- const init = {
20
- method: req.method,
21
- headers: createFetchHeaders(req.headers),
22
- signal: controller.signal
23
- };
24
- return new Request(url.href, init);
25
- }
26
15
  function createFetchHeaders(requestHeaders) {
27
16
  const headers = new Headers();
28
17
  for (const [key, values] of Object.entries(requestHeaders || {})) {
@@ -38,29 +27,34 @@ function createFetchHeaders(requestHeaders) {
38
27
  }
39
28
  return headers;
40
29
  }
41
- const routerPlugin = ({ basename = "", originalBaseUrl = "", routesConfig, createRoutes }) => {
30
+ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
42
31
  return {
43
32
  name: "@modern-js/plugin-router",
44
33
  registerHook: {
45
34
  modifyRoutes: modifyRoutesHook
46
35
  },
47
36
  setup: (api) => {
37
+ const finalRouteConfig = {
38
+ routes: getGlobalRoutes(),
39
+ globalApp: getGlobalLayoutApp(),
40
+ ...routesConfig
41
+ };
48
42
  return {
49
43
  async init({ context }, next) {
50
- var _context_ssrContext;
51
- if (!routesConfig && !createRoutes) {
44
+ var _context_ssrContext, _context_ssrContext_onTiming, _context_ssrContext1;
45
+ if (!finalRouteConfig.routes && !createRoutes) {
52
46
  return next({
53
47
  context
54
48
  });
55
49
  }
56
50
  const { request, mode: ssrMode, nonce, loaderFailureMode = "errorBoundary" } = context.ssrContext;
57
- const baseUrl = originalBaseUrl || request.baseUrl;
51
+ const { baseUrl } = request;
58
52
  const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
59
- const { reporter, serverTiming } = context.ssrContext;
53
+ const { reporter } = context.ssrContext;
60
54
  const requestContext = createRequestContext((_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.loaderContext);
61
55
  requestContext.set(reporterCtx, reporter);
62
56
  let routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
63
- routesConfig,
57
+ routesConfig: finalRouteConfig,
64
58
  ssrMode,
65
59
  props: {
66
60
  nonce
@@ -72,14 +66,13 @@ const routerPlugin = ({ basename = "", originalBaseUrl = "", routesConfig, creat
72
66
  const { query } = createStaticHandler(routes, {
73
67
  basename: _basename
74
68
  });
75
- const remixRequest = createFetchRequest(request);
69
+ const remixRequest = context.ssrContext.request.raw;
76
70
  const end = time();
77
71
  const routerContext = await query(remixRequest, {
78
72
  requestContext
79
73
  });
80
74
  const cost = end();
81
- reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(LOADER_REPORTER_NAME, cost);
82
- serverTiming.addServeTiming(LOADER_REPORTER_NAME, cost);
75
+ (_context_ssrContext1 = context.ssrContext) === null || _context_ssrContext1 === void 0 ? void 0 : (_context_ssrContext_onTiming = _context_ssrContext1.onTiming) === null || _context_ssrContext_onTiming === void 0 ? void 0 : _context_ssrContext_onTiming.call(_context_ssrContext1, LOADER_REPORTER_NAME, cost);
83
76
  if (routerContext instanceof Response) {
84
77
  return routerContext;
85
78
  }
@@ -91,24 +84,22 @@ const routerPlugin = ({ basename = "", originalBaseUrl = "", routesConfig, creat
91
84
  context.remixRouter = router;
92
85
  context.routerContext = routerContext;
93
86
  context.routes = routes;
94
- context.routeManifest = context.ssrContext.routeManifest;
95
87
  return next({
96
88
  context
97
89
  });
98
90
  },
99
91
  hoc: ({ App, config }, next) => {
100
- if (!routesConfig) {
92
+ if (!finalRouteConfig) {
101
93
  return next({
102
94
  App,
103
95
  config
104
96
  });
105
97
  }
106
98
  const getRouteApp = () => {
107
- return (props) => {
99
+ return () => {
108
100
  const { remixRouter, routerContext, ssrContext } = useContext(RuntimeReactContext);
109
101
  const { nonce, mode } = ssrContext;
110
- return /* @__PURE__ */ _jsxs(App, {
111
- ...props,
102
+ return /* @__PURE__ */ _jsxs(_Fragment, {
112
103
  children: [
113
104
  /* @__PURE__ */ _jsx(StaticRouterProvider, {
114
105
  router: remixRouter,
@@ -125,12 +116,6 @@ const routerPlugin = ({ basename = "", originalBaseUrl = "", routesConfig, creat
125
116
  };
126
117
  };
127
118
  const RouteApp = getRouteApp();
128
- if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
129
- return next({
130
- App: hoistNonReactStatics(RouteApp, routesConfig.globalApp),
131
- config
132
- });
133
- }
134
119
  return next({
135
120
  App: RouteApp,
136
121
  config
@@ -1,4 +1,4 @@
1
- import { getEntryOptions, createRuntimeExportsUtils } from "@modern-js/utils";
1
+ import { createRuntimeExportsUtils, getEntryOptions } from "@modern-js/utils";
2
2
  const PLUGIN_IDENTIFIER = "state";
3
3
  const statePlugin = () => ({
4
4
  name: "@modern-js/plugin-state",
@@ -6,48 +6,18 @@ const statePlugin = () => ({
6
6
  "@modern-js/runtime"
7
7
  ],
8
8
  setup: (api) => {
9
- const stateConfigMap = /* @__PURE__ */ new Map();
10
- let pluginsExportsUtils;
11
9
  return {
12
- config() {
13
- const appContext = api.useAppContext();
14
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
15
- return {
16
- source: {
17
- alias: {
18
- "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
19
- }
20
- }
21
- };
22
- },
23
- modifyEntryImports({ entrypoint, imports }) {
10
+ _internalRuntimePlugins({ entrypoint, plugins }) {
24
11
  var _getEntryOptions;
25
12
  const { entryName, isMainEntry } = entrypoint;
26
13
  const userConfig = api.useResolvedConfigContext();
27
- const { packageName } = api.useAppContext();
14
+ const { packageName, metaName } = api.useAppContext();
28
15
  const stateConfig = (_getEntryOptions = getEntryOptions(entryName, isMainEntry, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
29
- stateConfigMap.set(entryName, stateConfig);
30
16
  if (stateConfig) {
31
- imports.push({
32
- value: "@modern-js/runtime/plugins",
33
- specifiers: [
34
- {
35
- imported: PLUGIN_IDENTIFIER
36
- }
37
- ]
38
- });
39
- }
40
- return {
41
- entrypoint,
42
- imports
43
- };
44
- },
45
- modifyEntryRuntimePlugins({ entrypoint, plugins }) {
46
- const stateOptions = stateConfigMap.get(entrypoint.entryName);
47
- if (stateOptions) {
48
17
  plugins.push({
49
18
  name: PLUGIN_IDENTIFIER,
50
- options: `${JSON.stringify(stateConfigMap.get(entrypoint.entryName))}`
19
+ path: `@${metaName}/runtime/model`,
20
+ config: typeof stateConfig === "boolean" ? {} : stateConfig
51
21
  });
52
22
  }
53
23
  return {
@@ -56,7 +26,9 @@ const statePlugin = () => ({
56
26
  };
57
27
  },
58
28
  addRuntimeExports() {
59
- pluginsExportsUtils.addExport(`export { default as state } from '@modern-js/runtime/model'`);
29
+ const { internalDirectory, metaName } = api.useAppContext();
30
+ const pluginsExportsUtils = createRuntimeExportsUtils(internalDirectory, "plugins");
31
+ pluginsExportsUtils.addExport(`export { default as state } from '@${metaName}/runtime/model'`);
60
32
  }
61
33
  };
62
34
  }
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useContext } from "react";
3
3
  import { createStore } from "@modern-js-reduck/store";
4
4
  import { Provider } from "@modern-js-reduck/react";
5
- import hoistNonReactStatics from "hoist-non-react-statics";
6
5
  import { immer, effects, autoActions, devtools } from "../plugins";
7
6
  import { RuntimeReactContext } from "../../core";
8
7
  import { isBrowser } from "../../common";
@@ -30,7 +29,7 @@ const getStoreConfig = (config) => {
30
29
  storeConfig.plugins = plugins;
31
30
  return storeConfig;
32
31
  };
33
- const state = (config) => ({
32
+ const statePlugin = (config) => ({
34
33
  name: "@modern-js/plugin-state",
35
34
  setup: () => {
36
35
  const storeConfig = getStoreConfig(config);
@@ -47,7 +46,7 @@ const state = (config) => ({
47
46
  });
48
47
  };
49
48
  return next({
50
- App: hoistNonReactStatics(getStateApp, App),
49
+ App: getStateApp,
51
50
  config: config2
52
51
  });
53
52
  },
@@ -73,8 +72,9 @@ const state = (config) => ({
73
72
  };
74
73
  }
75
74
  });
76
- var plugin_default = state;
75
+ var plugin_default = statePlugin;
77
76
  export * from "../plugins";
78
77
  export {
79
- plugin_default as default
78
+ plugin_default as default,
79
+ statePlugin
80
80
  };
@@ -0,0 +1,7 @@
1
+ import { Entrypoint } from '@modern-js/types';
2
+ import type { RsbuildPlugin } from '@rsbuild/core';
3
+ export declare const builderPluginAlias: ({ entrypoints, internalDirectory, metaName, }: {
4
+ entrypoints: Entrypoint[];
5
+ internalDirectory: string;
6
+ metaName: string;
7
+ }) => RsbuildPlugin;
@@ -0,0 +1,10 @@
1
+ import type { AppTools, IAppContext, NormalizedConfig, RuntimePlugin } from '@modern-js/app-tools';
2
+ import { Entrypoint } from '@modern-js/types';
3
+ import type { MaybeAsync } from '@modern-js/plugin';
4
+ export declare const generateCode: (entrypoints: Entrypoint[], appContext: IAppContext, config: NormalizedConfig<AppTools>, onCollectRuntimePlugins: (params: {
5
+ entrypoint: Entrypoint;
6
+ plugins: RuntimePlugin[];
7
+ }) => MaybeAsync<{
8
+ entrypoint: Entrypoint;
9
+ plugins: RuntimePlugin[];
10
+ }>) => Promise<void>;
@@ -1 +1,8 @@
1
1
  export declare const APP_FILE_NAME = "App";
2
+ export declare const ENTRY_POINT_FILE_NAME = "index.jsx";
3
+ export declare const SERVER_ENTRY_POINT_FILE_NAME = "index.server.jsx";
4
+ export declare const INDEX_FILE_NAME = "index";
5
+ export declare const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.jsx";
6
+ export declare const ENTRY_POINT_RUNTIME_REGISTER_FILE_NAME = "runtime-register.js";
7
+ export declare const ENTRY_POINT_RUNTIME_GLOBAL_CONTEXT_FILE_NAME = "runtime-global-context.js";
8
+ export declare const ENTRY_POINT_REGISTER_FILE_NAME = "register.js";
@@ -1,4 +1,11 @@
1
1
  import type { CliPlugin, AppTools } from '@modern-js/app-tools';
2
+ import { statePlugin } from '../state/cli';
3
+ import { routerPlugin } from '../router/cli';
4
+ import { documentPlugin } from '../document/cli';
5
+ import { ssrPlugin } from './ssr';
2
6
  export { isRuntimeEntry } from './entry';
3
- export declare const runtimePlugin: () => CliPlugin<AppTools>;
7
+ export { statePlugin, ssrPlugin, routerPlugin, documentPlugin };
8
+ export declare const runtimePlugin: (params?: {
9
+ plugins?: CliPlugin<AppTools>[];
10
+ }) => CliPlugin<AppTools>;
4
11
  export default runtimePlugin;
@@ -0,0 +1,27 @@
1
+ import type { RuntimePlugin } from '@modern-js/app-tools';
2
+ export declare const index: ({ srcDirectory, internalSrcAlias, metaName, entry, entryName, customEntry, customBootstrap, mountId, }: {
3
+ srcDirectory: string;
4
+ internalSrcAlias: string;
5
+ metaName: string;
6
+ entry: string;
7
+ entryName: string;
8
+ customEntry?: boolean | undefined;
9
+ customBootstrap?: string | false | undefined;
10
+ mountId?: string | undefined;
11
+ }) => string;
12
+ export declare const register: () => string;
13
+ export declare const runtimeRegister: ({ entryName, srcDirectory, internalSrcAlias, metaName, runtimeConfigFile, runtimePlugins, }: {
14
+ entryName: string;
15
+ srcDirectory: string;
16
+ internalSrcAlias: string;
17
+ metaName: string;
18
+ runtimeConfigFile: string | false;
19
+ runtimePlugins: RuntimePlugin[];
20
+ }) => string;
21
+ export declare const runtimeGlobalContext: ({ srcDirectory, internalSrcAlias, metaName, entry, customEntry, }: {
22
+ srcDirectory: string;
23
+ internalSrcAlias: string;
24
+ metaName: string;
25
+ entry: string;
26
+ customEntry?: boolean | undefined;
27
+ }) => string;
@@ -0,0 +1,15 @@
1
+ type ServerIndexOptinos = GenHandlerCodeOptions & {
2
+ entryName: string;
3
+ };
4
+ export declare const serverIndex: (options: ServerIndexOptinos) => string;
5
+ type GenHandlerCodeOptions = {
6
+ customServerEntry?: string | false;
7
+ srcDirectory: string;
8
+ internalSrcAlias: string;
9
+ entry: string;
10
+ } & TransformServerEntryOptions;
11
+ type TransformServerEntryOptions = {
12
+ metaName?: string;
13
+ mode: 'string' | 'stream';
14
+ };
15
+ export {};
@@ -1,8 +1,17 @@
1
1
  import type { StateConfig } from './state';
2
+ import type { Plugin } from './core/plugin';
2
3
  export declare const isBrowser: () => boolean;
3
4
  export interface AppConfig {
4
5
  state?: StateConfig | boolean;
5
6
  [key: string]: any;
6
7
  }
8
+ export interface RuntimeConfig {
9
+ state?: StateConfig;
10
+ stateByEntries?: {
11
+ [name: string]: StateConfig;
12
+ };
13
+ plugins?: Plugin[];
14
+ [key: string]: any;
15
+ }
7
16
  export declare const JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
8
17
  export declare const ESCAPED_SHELL_STREAM_END_MARK = "&lt;!--&lt;?- SHELL_STREAM_END ?&gt;--&gt;";
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { Root } from 'react-dom/client';
3
+ import { RuntimeContext } from '../context';
4
+ export declare const isReact18: () => boolean;
5
+ export declare function hydrateRoot(App: React.ReactElement, context: RuntimeContext, ModernRender: (App: React.ReactElement) => Promise<HTMLElement | Root>, ModernHydrate: (App: React.ReactElement, callback?: () => void) => Promise<HTMLElement | Root>): Promise<HTMLElement | Root>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function render(App: React.ReactElement, id?: HTMLElement | string): Promise<HTMLElement | import("react-dom/client").Root>;
@@ -1,14 +1,13 @@
1
1
  import type React from 'react';
2
- import { AppConfig } from '../common';
3
- import { Plugin } from './plugin';
2
+ import { AppConfig, RuntimeConfig } from '../common';
4
3
  export declare const getConfig: (Component: React.ComponentType<any>) => AppConfig | undefined;
4
+ /**
5
+ * @deprecated
6
+ * define config in modern.runtime.ts file
7
+ */
5
8
  export declare const defineConfig: (Component: React.ComponentType<any>, config: AppConfig) => React.ComponentType<any>;
6
- interface RuntimeConfig {
7
- plugins: Plugin[];
8
- }
9
9
  /**
10
10
  * This function helps you to autocomplete configuration types.
11
11
  * It accepts a direct config object, or a function that returns a config.
12
12
  */
13
13
  export declare const defineRuntimeConfig: (config: RuntimeConfig) => RuntimeConfig;
14
- export {};
@@ -0,0 +1,5 @@
1
+ export declare enum RenderLevel {
2
+ CLIENT_RENDER = 0,
3
+ SERVER_PREFETCH = 1,
4
+ SERVER_RENDER = 2
5
+ }
@@ -1 +1,34 @@
1
- export { RuntimeReactContext } from './runtime';
1
+ /// <reference types="react" />
2
+ import type { NestedRoute, PageRoute } from '@modern-js/types';
3
+ import { AppConfig } from '../../common';
4
+ export { RuntimeReactContext, type RuntimeContext } from './runtime';
5
+ interface GlobalContext {
6
+ /**
7
+ * App.tsx export default component
8
+ */
9
+ App?: React.ComponentType;
10
+ /**
11
+ * nest router and page router config
12
+ */
13
+ routes?: (NestedRoute | PageRoute)[];
14
+ /**
15
+ * nest router init function
16
+ */
17
+ appInit?: () => Promise<unknown>;
18
+ /**
19
+ * nest router config function
20
+ */
21
+ appConfig?: AppConfig;
22
+ /**
23
+ * page router _app.tsx export layout app
24
+ */
25
+ layoutApp?: React.ComponentType;
26
+ }
27
+ export declare function setGlobalContext(context: Omit<GlobalContext, 'appConfig'> & {
28
+ appConfig: () => AppConfig;
29
+ }): void;
30
+ export declare function getGlobalApp(): import("react").ComponentType<{}> | undefined;
31
+ export declare function getGlobalRoutes(): undefined | (NestedRoute | PageRoute)[];
32
+ export declare function getGlobalAppInit(): any;
33
+ export declare function getGlobalAppConfig(): any;
34
+ export declare function getGlobalLayoutApp(): import("react").ComponentType<{}> | undefined;
@@ -4,7 +4,7 @@ import { type StaticHandlerContext, type Router, type RouterState } from '@moder
4
4
  import { createLoaderManager } from '../loader/loaderManager';
5
5
  import { PluginRunner, runtime } from '../plugin';
6
6
  import { RouteManifest } from '../../router/runtime/types';
7
- import { SSRServerContext } from '../../ssr/serverRender/types';
7
+ import { SSRServerContext } from '../types';
8
8
  export interface BaseRuntimeContext {
9
9
  initialData?: Record<string, unknown>;
10
10
  loaderManager: ReturnType<typeof createLoaderManager>;
@@ -40,4 +40,4 @@ export interface BaseTRuntimeContext {
40
40
  export interface TRuntimeContext extends BaseTRuntimeContext {
41
41
  [key: string]: any;
42
42
  }
43
- export declare const getInitialContext: (runner: PluginRunner) => RuntimeContext;
43
+ export declare const getInitialContext: (runner: PluginRunner, isBrowser?: boolean, routeManifest?: RouteManifest) => RuntimeContext;