@modern-js/runtime 2.4.1-beta.0 → 2.5.0-alpha.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 (292) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/dist/{js/node → cjs}/cli/index.js +6 -28
  3. package/dist/{js/node → cjs}/common.js +6 -0
  4. package/dist/{js/node → cjs}/config.js +0 -0
  5. package/dist/{js/node → cjs}/core/app-config.js +0 -0
  6. package/dist/{js/node → cjs}/core/compatible.js +16 -60
  7. package/dist/{js/node → cjs}/core/index.js +0 -0
  8. package/dist/{js/node → cjs}/core/loader/index.js +0 -0
  9. package/dist/{js/node → cjs}/core/loader/loaderManager.js +5 -25
  10. package/dist/{js/node → cjs}/core/loader/useLoader.js +6 -21
  11. package/dist/{js/node → cjs}/core/plugin.js +3 -23
  12. package/dist/{js/node/router/runtime → cjs/core}/types.js +0 -0
  13. package/dist/{js/node → cjs}/document/Body.js +0 -0
  14. package/dist/{js/node → cjs}/document/DocumentContext.js +0 -0
  15. package/dist/{js/node → cjs}/document/DocumentStructureContext.js +0 -0
  16. package/dist/{js/node → cjs}/document/Head.js +0 -0
  17. package/dist/{js/node → cjs}/document/Html.js +0 -0
  18. package/dist/{js/node → cjs}/document/Links.js +0 -0
  19. package/dist/{js/node → cjs}/document/Root.js +0 -0
  20. package/dist/{js/node → cjs}/document/Script.js +0 -0
  21. package/dist/{js/node → cjs}/document/Scripts.js +0 -0
  22. package/dist/{js/node → cjs}/document/cli/index.js +18 -46
  23. package/dist/{js/node → cjs}/document/constants.js +0 -0
  24. package/dist/{js/node → cjs}/document/index.js +0 -0
  25. package/dist/{js/node → cjs}/exports/head.js +0 -0
  26. package/dist/{js/node → cjs}/exports/loadable.js +0 -0
  27. package/dist/{js/node → cjs}/exports/server.js +0 -0
  28. package/dist/{js/node → cjs}/exports/styled.js +0 -0
  29. package/dist/{js/node → cjs}/index.js +0 -0
  30. package/dist/{js/node → cjs}/router/cli/index.js +4 -21
  31. package/dist/{js/node → cjs}/router/index.js +0 -0
  32. package/dist/{js/node/router/runtime/index.js → cjs/router/index.node.js} +9 -11
  33. package/dist/{js/node → cjs}/router/runtime/DefaultNotFound.js +0 -0
  34. package/dist/cjs/router/runtime/DeferredDataScripts.js +148 -0
  35. package/dist/{js/node → cjs}/router/runtime/fetch.js +0 -0
  36. package/dist/{js/node → cjs}/router/runtime/fetch.node.js +0 -0
  37. package/dist/{js/node → cjs}/router/runtime/fetch.worker.js +0 -0
  38. package/dist/cjs/router/runtime/index.js +82 -0
  39. package/dist/{js/node → cjs}/router/runtime/plugin.js +11 -20
  40. package/dist/{js/node → cjs}/router/runtime/plugin.node.js +25 -63
  41. package/dist/{js/node → cjs}/router/runtime/server.js +0 -0
  42. package/dist/{js/node/state → cjs/router/runtime}/types.js +0 -0
  43. package/dist/cjs/router/runtime/utils.js +123 -0
  44. package/dist/{js/node → cjs}/router/runtime/withRouter.js +3 -19
  45. package/dist/{js/node → cjs}/runtime-context.js +0 -0
  46. package/dist/{js/node → cjs}/ssr/cli/babel-plugin-ssr-loader-id.js +0 -0
  47. package/dist/{js/node → cjs}/ssr/cli/index.js +6 -17
  48. package/dist/{js/node → cjs}/ssr/index.js +14 -47
  49. package/dist/{js/node → cjs}/ssr/index.node.js +6 -42
  50. package/dist/cjs/ssr/prefetch.js +68 -0
  51. package/dist/{js/node → cjs}/ssr/prefetch.worker.js +3 -23
  52. package/dist/{js/node → cjs}/ssr/react/index.js +0 -0
  53. package/dist/{js/node → cjs}/ssr/react/nossr/index.js +0 -0
  54. package/dist/{js/node → cjs}/ssr/react/prerender/index.js +3 -20
  55. package/dist/{js/node → cjs}/ssr/react/prerender/type.js +0 -0
  56. package/dist/{js/node → cjs}/ssr/react/prerender/util.js +0 -0
  57. package/dist/{js/node → cjs}/ssr/react/withCallback/index.js +0 -0
  58. package/dist/{js/node → cjs}/ssr/serverRender/helmet.js +1 -1
  59. package/dist/cjs/ssr/serverRender/index.js +34 -0
  60. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/buildTemplate.after.js +2 -10
  61. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -0
  62. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -0
  63. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/index.js +2 -22
  64. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/index.worker.js +0 -0
  65. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/loadable.js +0 -0
  66. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/renderToPipe.js +25 -26
  67. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -47
  68. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/styledComponent.js +0 -0
  69. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/template.js +2 -1
  70. package/dist/{js/node → cjs}/ssr/serverRender/renderToStream/type.js +0 -0
  71. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/entry.js +55 -75
  72. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/index.js +3 -23
  73. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/index.worker.js +4 -24
  74. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/loadable.js +0 -0
  75. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/reduce.js +0 -0
  76. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/styledComponent.js +0 -0
  77. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/template.js +0 -0
  78. package/dist/{js/node → cjs}/ssr/serverRender/renderToString/type.js +0 -0
  79. package/dist/{js/node → cjs}/ssr/serverRender/time.js +0 -0
  80. package/dist/{js/node → cjs}/ssr/serverRender/time.worker.js +0 -0
  81. package/dist/{js/node → cjs}/ssr/serverRender/types.js +0 -0
  82. package/dist/{js/node → cjs}/ssr/serverRender/utils.js +0 -0
  83. package/dist/{js/node → cjs}/ssr/utils.js +4 -17
  84. package/dist/{js/node → cjs}/state/cli/index.js +0 -0
  85. package/dist/{js/node → cjs}/state/index.js +0 -0
  86. package/dist/{js/node → cjs}/state/plugins.js +0 -0
  87. package/dist/{js/node → cjs}/state/runtime/index.js +0 -0
  88. package/dist/{js/node → cjs}/state/runtime/plugin.js +6 -20
  89. package/dist/cjs/state/types.js +15 -0
  90. package/dist/{js/treeshaking → esm}/cli/index.js +0 -0
  91. package/dist/esm/common.js +6 -0
  92. package/dist/{js/treeshaking → esm}/config.js +0 -0
  93. package/dist/{js/treeshaking → esm}/core/app-config.js +0 -0
  94. package/dist/{js/treeshaking → esm}/core/compatible.js +0 -0
  95. package/dist/{js/treeshaking → esm}/core/index.js +0 -0
  96. package/dist/{js/treeshaking → esm}/core/loader/index.js +0 -0
  97. package/dist/{js/treeshaking → esm}/core/loader/loaderManager.js +0 -0
  98. package/dist/{js/treeshaking → esm}/core/loader/useLoader.js +0 -0
  99. package/dist/{js/treeshaking → esm}/core/plugin.js +0 -0
  100. package/dist/{js/treeshaking/router/runtime → esm/core}/types.js +0 -0
  101. package/dist/{js/treeshaking → esm}/document/Body.js +0 -0
  102. package/dist/{js/treeshaking → esm}/document/DocumentContext.js +0 -0
  103. package/dist/{js/treeshaking → esm}/document/DocumentStructureContext.js +0 -0
  104. package/dist/{js/treeshaking → esm}/document/Head.js +0 -0
  105. package/dist/{js/treeshaking → esm}/document/Html.js +0 -0
  106. package/dist/{js/treeshaking → esm}/document/Links.js +0 -0
  107. package/dist/{js/treeshaking → esm}/document/Root.js +0 -0
  108. package/dist/{js/treeshaking → esm}/document/Script.js +0 -0
  109. package/dist/{js/treeshaking → esm}/document/Scripts.js +0 -0
  110. package/dist/{js/treeshaking → esm}/document/cli/index.js +2 -2
  111. package/dist/{js/treeshaking → esm}/document/constants.js +0 -0
  112. package/dist/{js/treeshaking → esm}/document/index.js +0 -0
  113. package/dist/{js/treeshaking → esm}/exports/head.js +0 -0
  114. package/dist/{js/treeshaking → esm}/exports/loadable.js +0 -0
  115. package/dist/{js/treeshaking → esm}/exports/server.js +0 -0
  116. package/dist/{js/treeshaking → esm}/exports/styled.js +0 -0
  117. package/dist/{js/treeshaking → esm}/index.js +0 -0
  118. package/dist/{js/treeshaking → esm}/router/cli/index.js +0 -0
  119. package/dist/{js/treeshaking → esm}/router/index.js +0 -0
  120. package/dist/esm/router/index.node.js +4 -0
  121. package/dist/{js/treeshaking → esm}/router/runtime/DefaultNotFound.js +0 -0
  122. package/dist/esm/router/runtime/DeferredDataScripts.js +158 -0
  123. package/dist/{js/treeshaking → esm}/router/runtime/fetch.js +0 -0
  124. package/dist/{js/treeshaking → esm}/router/runtime/fetch.node.js +0 -0
  125. package/dist/{js/treeshaking → esm}/router/runtime/fetch.worker.js +0 -0
  126. package/dist/esm/router/runtime/index.js +7 -0
  127. package/dist/{js/treeshaking → esm}/router/runtime/plugin.js +5 -2
  128. package/dist/{js/treeshaking → esm}/router/runtime/plugin.node.js +2 -2
  129. package/dist/{js/treeshaking → esm}/router/runtime/server.js +0 -0
  130. package/dist/{js/treeshaking/state → esm/router/runtime}/types.js +0 -0
  131. package/dist/{js/treeshaking → esm}/router/runtime/utils.js +5 -106
  132. package/dist/{js/treeshaking → esm}/router/runtime/withRouter.js +0 -0
  133. package/dist/{js/treeshaking → esm}/runtime-context.js +0 -0
  134. package/dist/{js/treeshaking → esm}/ssr/cli/babel-plugin-ssr-loader-id.js +0 -0
  135. package/dist/{js/treeshaking → esm}/ssr/cli/index.js +2 -2
  136. package/dist/{js/treeshaking → esm}/ssr/index.js +0 -0
  137. package/dist/{js/treeshaking → esm}/ssr/index.node.js +0 -0
  138. package/dist/{js/treeshaking → esm}/ssr/prefetch.js +0 -0
  139. package/dist/{js/treeshaking → esm}/ssr/prefetch.worker.js +0 -0
  140. package/dist/{js/treeshaking → esm}/ssr/react/index.js +0 -0
  141. package/dist/{js/treeshaking → esm}/ssr/react/nossr/index.js +0 -0
  142. package/dist/{js/treeshaking → esm}/ssr/react/prerender/index.js +0 -0
  143. package/dist/{js/treeshaking → esm}/ssr/react/prerender/type.js +0 -0
  144. package/dist/{js/treeshaking → esm}/ssr/react/prerender/util.js +0 -0
  145. package/dist/{js/treeshaking → esm}/ssr/react/withCallback/index.js +0 -0
  146. package/dist/{js/treeshaking → esm}/ssr/serverRender/helmet.js +0 -0
  147. package/dist/{js/treeshaking → esm}/ssr/serverRender/index.js +0 -0
  148. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/buildTemplate.after.js +2 -4
  149. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -0
  150. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -0
  151. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/index.js +0 -0
  152. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/index.worker.js +0 -0
  153. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/loadable.js +0 -0
  154. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/renderToPipe.js +19 -8
  155. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/renderToPipe.worker.js +38 -24
  156. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/styledComponent.js +0 -0
  157. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/template.js +2 -1
  158. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToStream/type.js +0 -0
  159. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/entry.js +10 -7
  160. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/index.js +0 -0
  161. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/index.worker.js +0 -0
  162. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/loadable.js +0 -0
  163. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/reduce.js +0 -0
  164. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/styledComponent.js +0 -0
  165. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/template.js +0 -0
  166. package/dist/{js/treeshaking → esm}/ssr/serverRender/renderToString/type.js +0 -0
  167. package/dist/{js/treeshaking → esm}/ssr/serverRender/time.js +0 -0
  168. package/dist/{js/treeshaking → esm}/ssr/serverRender/time.worker.js +0 -0
  169. package/dist/{js/treeshaking → esm}/ssr/serverRender/types.js +0 -0
  170. package/dist/{js/treeshaking → esm}/ssr/serverRender/utils.js +0 -0
  171. package/dist/{js/treeshaking → esm}/ssr/utils.js +0 -0
  172. package/dist/{js/treeshaking → esm}/state/cli/index.js +0 -0
  173. package/dist/{js/treeshaking → esm}/state/index.js +0 -0
  174. package/dist/{js/treeshaking → esm}/state/plugins.js +0 -0
  175. package/dist/{js/treeshaking → esm}/state/runtime/index.js +0 -0
  176. package/dist/{js/treeshaking → esm}/state/runtime/plugin.js +0 -0
  177. package/dist/esm/state/types.js +1 -0
  178. package/dist/{js/modern → esm-node}/cli/index.js +6 -28
  179. package/dist/esm-node/common.js +8 -0
  180. package/dist/{js/modern → esm-node}/config.js +0 -0
  181. package/dist/{js/modern → esm-node}/core/app-config.js +0 -0
  182. package/dist/{js/modern → esm-node}/core/compatible.js +16 -62
  183. package/dist/{js/modern → esm-node}/core/index.js +0 -0
  184. package/dist/{js/modern → esm-node}/core/loader/index.js +0 -0
  185. package/dist/{js/modern → esm-node}/core/loader/loaderManager.js +5 -25
  186. package/dist/{js/modern → esm-node}/core/loader/useLoader.js +6 -23
  187. package/dist/{js/modern → esm-node}/core/plugin.js +3 -23
  188. package/dist/{js/modern/router/runtime → esm-node/core}/types.js +0 -0
  189. package/dist/{js/modern → esm-node}/document/Body.js +0 -0
  190. package/dist/{js/modern → esm-node}/document/DocumentContext.js +0 -0
  191. package/dist/{js/modern → esm-node}/document/DocumentStructureContext.js +0 -0
  192. package/dist/{js/modern → esm-node}/document/Head.js +0 -0
  193. package/dist/{js/modern → esm-node}/document/Html.js +0 -0
  194. package/dist/{js/modern → esm-node}/document/Links.js +0 -0
  195. package/dist/{js/modern → esm-node}/document/Root.js +0 -0
  196. package/dist/{js/modern → esm-node}/document/Script.js +0 -0
  197. package/dist/{js/modern → esm-node}/document/Scripts.js +0 -0
  198. package/dist/{js/modern → esm-node}/document/cli/index.js +15 -47
  199. package/dist/{js/modern → esm-node}/document/constants.js +0 -0
  200. package/dist/{js/modern → esm-node}/document/index.js +0 -0
  201. package/dist/{js/modern → esm-node}/exports/head.js +0 -0
  202. package/dist/{js/modern → esm-node}/exports/loadable.js +0 -0
  203. package/dist/{js/modern → esm-node}/exports/server.js +0 -0
  204. package/dist/{js/modern → esm-node}/exports/styled.js +0 -0
  205. package/dist/{js/modern → esm-node}/index.js +0 -0
  206. package/dist/{js/modern → esm-node}/router/cli/index.js +4 -23
  207. package/dist/{js/modern → esm-node}/router/index.js +0 -0
  208. package/dist/esm-node/router/index.node.js +7 -0
  209. package/dist/{js/modern → esm-node}/router/runtime/DefaultNotFound.js +0 -0
  210. package/dist/esm-node/router/runtime/DeferredDataScripts.js +131 -0
  211. package/dist/{js/modern → esm-node}/router/runtime/fetch.js +0 -0
  212. package/dist/{js/modern → esm-node}/router/runtime/fetch.node.js +0 -0
  213. package/dist/{js/modern → esm-node}/router/runtime/fetch.worker.js +0 -0
  214. package/dist/esm-node/router/runtime/index.js +58 -0
  215. package/dist/{js/modern → esm-node}/router/runtime/plugin.js +11 -22
  216. package/dist/esm-node/router/runtime/plugin.node.js +109 -0
  217. package/dist/{js/modern → esm-node}/router/runtime/server.js +0 -0
  218. package/dist/{js/modern/state → esm-node/router/runtime}/types.js +0 -0
  219. package/dist/esm-node/router/runtime/utils.js +90 -0
  220. package/dist/esm-node/router/runtime/withRouter.js +18 -0
  221. package/dist/{js/modern → esm-node}/runtime-context.js +0 -0
  222. package/dist/{js/modern → esm-node}/ssr/cli/babel-plugin-ssr-loader-id.js +0 -0
  223. package/dist/{js/modern → esm-node}/ssr/cli/index.js +6 -19
  224. package/dist/{js/modern → esm-node}/ssr/index.js +14 -49
  225. package/dist/esm-node/ssr/index.node.js +41 -0
  226. package/dist/esm-node/ssr/prefetch.js +47 -0
  227. package/dist/{js/modern → esm-node}/ssr/prefetch.worker.js +3 -23
  228. package/dist/{js/modern → esm-node}/ssr/react/index.js +0 -0
  229. package/dist/{js/modern → esm-node}/ssr/react/nossr/index.js +0 -0
  230. package/dist/{js/modern → esm-node}/ssr/react/prerender/index.js +3 -22
  231. package/dist/{js/modern → esm-node}/ssr/react/prerender/type.js +0 -0
  232. package/dist/{js/modern → esm-node}/ssr/react/prerender/util.js +0 -0
  233. package/dist/{js/modern → esm-node}/ssr/react/withCallback/index.js +0 -0
  234. package/dist/{js/modern → esm-node}/ssr/serverRender/helmet.js +1 -1
  235. package/dist/esm-node/ssr/serverRender/index.js +13 -0
  236. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/buildTemplate.after.js +2 -4
  237. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -0
  238. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -0
  239. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/index.js +2 -22
  240. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/index.worker.js +0 -0
  241. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/loadable.js +0 -0
  242. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/renderToPipe.js +25 -28
  243. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -49
  244. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/styledComponent.js +0 -0
  245. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/template.js +2 -1
  246. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToStream/type.js +0 -0
  247. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +152 -0
  248. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/index.js +3 -23
  249. package/dist/esm-node/ssr/serverRender/renderToString/index.worker.js +29 -0
  250. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/loadable.js +0 -0
  251. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/reduce.js +0 -0
  252. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/styledComponent.js +0 -0
  253. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/template.js +0 -0
  254. package/dist/{js/modern → esm-node}/ssr/serverRender/renderToString/type.js +0 -0
  255. package/dist/{js/modern → esm-node}/ssr/serverRender/time.js +0 -0
  256. package/dist/{js/modern → esm-node}/ssr/serverRender/time.worker.js +0 -0
  257. package/dist/{js/modern → esm-node}/ssr/serverRender/types.js +0 -0
  258. package/dist/{js/modern → esm-node}/ssr/serverRender/utils.js +0 -0
  259. package/dist/{js/modern → esm-node}/ssr/utils.js +4 -19
  260. package/dist/{js/modern → esm-node}/state/cli/index.js +0 -0
  261. package/dist/{js/modern → esm-node}/state/index.js +0 -0
  262. package/dist/{js/modern → esm-node}/state/plugins.js +0 -0
  263. package/dist/{js/modern → esm-node}/state/runtime/index.js +0 -0
  264. package/dist/{js/modern → esm-node}/state/runtime/plugin.js +6 -22
  265. package/dist/esm-node/state/types.js +0 -0
  266. package/dist/types/common.d.ts +3 -1
  267. package/dist/types/core/index.d.ts +1 -0
  268. package/dist/types/core/loader/index.d.ts +1 -2
  269. package/dist/types/core/loader/useLoader.d.ts +1 -15
  270. package/dist/types/core/types.d.ts +21 -0
  271. package/dist/types/document/cli/index.d.ts +2 -0
  272. package/dist/types/router/index.node.d.ts +3 -0
  273. package/dist/types/router/runtime/DeferredDataScripts.d.ts +8 -0
  274. package/dist/types/router/runtime/index.d.ts +4 -2
  275. package/dist/types/runtime-context.d.ts +2 -0
  276. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +2 -0
  277. package/package.json +43 -35
  278. package/dist/js/modern/common.js +0 -4
  279. package/dist/js/modern/router/runtime/index.js +0 -9
  280. package/dist/js/modern/router/runtime/plugin.node.js +0 -149
  281. package/dist/js/modern/router/runtime/utils.js +0 -196
  282. package/dist/js/modern/router/runtime/withRouter.js +0 -36
  283. package/dist/js/modern/ssr/index.node.js +0 -79
  284. package/dist/js/modern/ssr/prefetch.js +0 -69
  285. package/dist/js/modern/ssr/serverRender/index.js +0 -35
  286. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +0 -172
  287. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +0 -49
  288. package/dist/js/node/router/runtime/utils.js +0 -221
  289. package/dist/js/node/ssr/prefetch.js +0 -90
  290. package/dist/js/node/ssr/serverRender/index.js +0 -56
  291. package/dist/js/treeshaking/common.js +0 -4
  292. package/dist/js/treeshaking/router/runtime/index.js +0 -6
@@ -0,0 +1,4 @@
1
+ import { routerPlugin } from "./runtime/plugin.node";
2
+ import { routerPlugin as routerPlugin2 } from "./runtime/plugin.node";
3
+ export * from "./runtime";
4
+ export { routerPlugin2 as default, routerPlugin as router };
@@ -0,0 +1,158 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _iterableToArrayLimit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _nonIterableRest() {
34
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _slicedToArray(arr, i) {
37
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
+ }
39
+ function _unsupportedIterableToArray(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
+ }
47
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
48
+ import { Suspense, useEffect, useRef, useMemo, useContext } from "react";
49
+ import { Await, UNSAFE_DataRouterContext as DataRouterContext, useAsyncError } from "react-router-dom";
50
+ import { serializeJson } from "@modern-js/utils/serialize";
51
+ import { JSX_SHELL_STREAM_END_MARK } from "../../common";
52
+ var setupFnStr = "function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};";
53
+ var resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
54
+ var preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resovle(e)};";
55
+ var DeferredDataScripts = function() {
56
+ var context = useContext(DataRouterContext);
57
+ var staticContext = (context || {}).staticContext;
58
+ var hydratedRef = useRef(false);
59
+ useEffect(function() {
60
+ hydratedRef.current = true;
61
+ }, []);
62
+ var deferredScripts = useMemo(function() {
63
+ var activeDeferreds = (staticContext === null || staticContext === void 0 ? void 0 : staticContext.activeDeferreds) || [];
64
+ var _ROUTER_DATA = {
65
+ loaderData: staticContext === null || staticContext === void 0 ? void 0 : staticContext.loaderData
66
+ };
67
+ var initialScripts = [
68
+ "_ROUTER_DATA = ".concat(serializeJson(_ROUTER_DATA), ";"),
69
+ "_ROUTER_DATA.s = ".concat(setupFnStr),
70
+ "_ROUTER_DATA.r = ".concat(resolveFnStr),
71
+ "_ROUTER_DATA.p = ".concat(preResolvedFnStr)
72
+ ].join("\n");
73
+ var deferredDataScripts = [];
74
+ initialScripts += Object.entries(activeDeferreds).map(function(param) {
75
+ var _param = _slicedToArray(param, 2), routeId = _param[0], deferredData = _param[1];
76
+ var pendingKeys = new Set(deferredData.pendingKeys);
77
+ var deferredKeys = deferredData.deferredKeys;
78
+ var deferredKeyPromiseStr = deferredKeys.map(function(key) {
79
+ if (pendingKeys.has(key)) {
80
+ deferredDataScripts.push(/* @__PURE__ */ jsx(DeferredDataScript, {
81
+ data: deferredData.data[key],
82
+ dataKey: key,
83
+ routeId: routeId
84
+ }, "".concat(routeId, " | ").concat(key)));
85
+ return "".concat(JSON.stringify(key), ": _ROUTER_DATA.s(").concat(JSON.stringify(routeId), ",").concat(JSON.stringify(key), ") ");
86
+ } else {
87
+ var trackedPromise = deferredData.data[key];
88
+ if (typeof trackedPromise._error !== "undefined") {
89
+ var error = {
90
+ message: trackedPromise._error.message,
91
+ stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
92
+ };
93
+ return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(void 0, ", ").concat(serializeJson(error), ")");
94
+ } else {
95
+ if (typeof trackedPromise._data === "undefined") {
96
+ throw new Error("The deferred data for ".concat(key, " was not resolved, did you forget to return data from a deferred promise"));
97
+ }
98
+ return "".concat(JSON.stringify(key), ": _ROUTER_DATA.p(").concat(serializeJson(trackedPromise._data), ")");
99
+ }
100
+ }
101
+ }).join(",\n");
102
+ return "Object.assign(_ROUTER_DATA.loaderData[".concat(JSON.stringify(routeId), "], {").concat(deferredKeyPromiseStr, "});");
103
+ }).join("\n");
104
+ return [
105
+ initialScripts,
106
+ deferredDataScripts
107
+ ];
108
+ }, []);
109
+ return /* @__PURE__ */ jsxs(Fragment, {
110
+ children: [
111
+ !hydratedRef.current && /* @__PURE__ */ jsx("script", {
112
+ async: true,
113
+ suppressHydrationWarning: true,
114
+ dangerouslySetInnerHTML: {
115
+ __html: deferredScripts[0]
116
+ }
117
+ }),
118
+ !hydratedRef.current && deferredScripts[1],
119
+ JSX_SHELL_STREAM_END_MARK
120
+ ]
121
+ });
122
+ };
123
+ var DeferredDataScript = function(param) {
124
+ var data = param.data, routeId = param.routeId, dataKey = param.dataKey;
125
+ return /* @__PURE__ */ jsx(Suspense, {
126
+ children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ jsx(Await, {
127
+ resolve: data,
128
+ errorElement: /* @__PURE__ */ jsx(ErrorDeferredDataScript, {
129
+ routeId: routeId,
130
+ dataKey: dataKey
131
+ }),
132
+ children: function(data2) {
133
+ return /* @__PURE__ */ jsx("script", {
134
+ async: true,
135
+ suppressHydrationWarning: true,
136
+ dangerouslySetInnerHTML: {
137
+ __html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(serializeJson(data2), ");")
138
+ }
139
+ });
140
+ }
141
+ }) : null
142
+ });
143
+ };
144
+ var ErrorDeferredDataScript = function(param) {
145
+ var routeId = param.routeId, dataKey = param.dataKey;
146
+ var error = useAsyncError();
147
+ return /* @__PURE__ */ jsx("script", {
148
+ suppressHydrationWarning: true,
149
+ dangerouslySetInnerHTML: {
150
+ __html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(void 0, ", ").concat(serializeJson({
151
+ message: error.message,
152
+ stack: error.stack
153
+ }), ");")
154
+ }
155
+ });
156
+ };
157
+ var DeferredDataScripts_default = DeferredDataScripts;
158
+ export { DeferredDataScripts_default as default };
@@ -0,0 +1,7 @@
1
+ import { routerPlugin } from "./plugin";
2
+ var runtime_default = routerPlugin;
3
+ import { modifyRoutes } from "./plugin";
4
+ export * from "./withRouter";
5
+ import { Form, Outlet, useAsyncError, useAsyncValue, isRouteErrorResponse, useBeforeUnload, useFormAction, useHref, useLocation, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useSearchParams, useSubmit, unstable_useBlocker, unstable_usePrompt } from "react-router-dom";
6
+ import { defer } from "@modern-js/utils/remix-router";
7
+ export { Form, Outlet, runtime_default as default, defer, isRouteErrorResponse, modifyRoutes, unstable_useBlocker, unstable_usePrompt, useAsyncError, useAsyncValue, useBeforeUnload, useFormAction, useHref, useLocation, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useSearchParams, useSubmit };
@@ -103,10 +103,13 @@ var routerPlugin = function(param) {
103
103
  var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
104
104
  var baseUrl = ((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname);
105
105
  var _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
106
+ var hydrationData = window._ROUTER_DATA;
106
107
  var router = supportHtml5History ? createBrowserRouter(routes, {
107
- basename: _basename
108
+ basename: _basename,
109
+ hydrationData: hydrationData
108
110
  }) : createHashRouter(routes, {
109
- basename: _basename
111
+ basename: _basename,
112
+ hydrationData: hydrationData
110
113
  });
111
114
  return /* @__PURE__ */ jsx(App, _objectSpreadProps(_objectSpread({}, props), {
112
115
  children: /* @__PURE__ */ jsx(RouterProvider, {
@@ -229,7 +229,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
229
229
  };
230
230
  import { jsx } from "react/jsx-runtime";
231
231
  import { useContext } from "react";
232
- import { createStaticHandler } from "@remix-run/router";
232
+ import { createStaticHandler } from "@modern-js/utils/remix-router";
233
233
  import { createStaticRouter, StaticRouterProvider } from "react-router-dom/server";
234
234
  import hoistNonReactStatics from "hoist-non-react-statics";
235
235
  import { createRoutesFromElements } from "react-router-dom";
@@ -367,7 +367,7 @@ var routerPlugin = function(param) {
367
367
  children: /* @__PURE__ */ jsx(StaticRouterProvider, {
368
368
  router: router,
369
369
  context: routerContext,
370
- nonce: "the-nonce"
370
+ hydrate: false
371
371
  })
372
372
  }));
373
373
  };
@@ -26,30 +26,6 @@ function _objectSpread(target) {
26
26
  }
27
27
  return target;
28
28
  }
29
- function ownKeys(object, enumerableOnly) {
30
- var keys = Object.keys(object);
31
- if (Object.getOwnPropertySymbols) {
32
- var symbols = Object.getOwnPropertySymbols(object);
33
- if (enumerableOnly) {
34
- symbols = symbols.filter(function(sym) {
35
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
- });
37
- }
38
- keys.push.apply(keys, symbols);
39
- }
40
- return keys;
41
- }
42
- function _objectSpreadProps(target, source) {
43
- source = source != null ? source : {};
44
- if (Object.getOwnPropertyDescriptors) {
45
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
- } else {
47
- ownKeys(Object(source)).forEach(function(key) {
48
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
- });
50
- }
51
- return target;
52
- }
53
29
  function _objectWithoutProperties(source, excluded) {
54
30
  if (source == null) return {};
55
31
  var target = _objectWithoutPropertiesLoose(source, excluded);
@@ -78,68 +54,10 @@ function _objectWithoutPropertiesLoose(source, excluded) {
78
54
  return target;
79
55
  }
80
56
  import { jsx } from "react/jsx-runtime";
81
- import { Suspense } from "react";
82
57
  import { Route } from "react-router-dom";
58
+ import { renderNestedRoute } from "@modern-js/utils/nestedRoutes";
83
59
  import { DefaultNotFound } from "./DefaultNotFound";
84
- var renderNestedRoute = function(nestedRoute, parent) {
85
- var children = nestedRoute.children, index = nestedRoute.index, id = nestedRoute.id, component = nestedRoute.component, isRoot = nestedRoute.isRoot;
86
- var Component = component;
87
- var routeProps = {
88
- caseSensitive: nestedRoute.caseSensitive,
89
- path: nestedRoute.path,
90
- id: nestedRoute.id,
91
- loader: createLoader(nestedRoute),
92
- action: nestedRoute.action,
93
- hasErrorBoundary: nestedRoute.hasErrorBoundary,
94
- shouldRevalidate: nestedRoute.shouldRevalidate,
95
- handle: nestedRoute.handle,
96
- index: nestedRoute.index,
97
- element: nestedRoute.element,
98
- errorElement: nestedRoute.errorElement
99
- };
100
- if (nestedRoute.error) {
101
- var errorElement = /* @__PURE__ */ jsx(nestedRoute.error, {});
102
- routeProps.errorElement = errorElement;
103
- }
104
- var element;
105
- if (Component) {
106
- if (parent === null || parent === void 0 ? void 0 : parent.loading) {
107
- var Loading = parent.loading;
108
- if (isLoadableComponent(Component)) {
109
- element = /* @__PURE__ */ jsx(Component, {
110
- fallback: /* @__PURE__ */ jsx(Loading, {})
111
- });
112
- } else {
113
- element = /* @__PURE__ */ jsx(Suspense, {
114
- fallback: /* @__PURE__ */ jsx(Loading, {}),
115
- children: /* @__PURE__ */ jsx(Component, {})
116
- });
117
- }
118
- } else if (isLoadableComponent(Component) || isRoot) {
119
- element = /* @__PURE__ */ jsx(Component, {});
120
- } else {
121
- element = /* @__PURE__ */ jsx(Suspense, {
122
- fallback: null,
123
- children: /* @__PURE__ */ jsx(Component, {})
124
- });
125
- }
126
- } else {
127
- nestedRoute.loading = parent === null || parent === void 0 ? void 0 : parent.loading;
128
- }
129
- if (element) {
130
- routeProps.element = element;
131
- }
132
- var childElements = children === null || children === void 0 ? void 0 : children.map(function(childRoute) {
133
- return renderNestedRoute(childRoute, nestedRoute);
134
- });
135
- var routeElement = index ? /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
136
- index: true
137
- }), id) : /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
138
- index: false,
139
- children: childElements
140
- }), id);
141
- return routeElement;
142
- };
60
+ import DeferredDataScripts from "./DeferredDataScripts";
143
61
  function getRouteComponents(routes, globalApp) {
144
62
  var Layout = function(_param) {
145
63
  var Component = _param.Component, props = _objectWithoutProperties(_param, [
@@ -159,7 +77,9 @@ function getRouteComponents(routes, globalApp) {
159
77
  for(var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
160
78
  var route = _step.value;
161
79
  if (route.type === "nested") {
162
- var routeElement = renderNestedRoute(route);
80
+ var routeElement = renderNestedRoute(route, {
81
+ DeferredDataComponent: DeferredDataScripts
82
+ });
163
83
  routeElements.push(routeElement);
164
84
  } else {
165
85
  var routeElement1 = /* @__PURE__ */ jsx(Route, {
@@ -236,25 +156,4 @@ function standardSlash(str) {
236
156
  }
237
157
  return addr;
238
158
  }
239
- function createLoader(route) {
240
- var loader = route.loader;
241
- if (loader) {
242
- return function(args) {
243
- if (typeof route.lazyImport === "function") {
244
- route.lazyImport();
245
- }
246
- return loader(args);
247
- };
248
- } else {
249
- return function() {
250
- if (typeof route.lazyImport === "function") {
251
- route.lazyImport();
252
- }
253
- return null;
254
- };
255
- }
256
- }
257
- function isLoadableComponent(component) {
258
- return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
259
- }
260
159
  export { getLocation, getRouteComponents, renderRoutes, standardSlash, urlJoin };
File without changes
@@ -118,9 +118,9 @@ var cli_default = function() {
118
118
  },
119
119
  tools: {
120
120
  webpackChain: function(chain, param) {
121
- var name = param.name, isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
121
+ var isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
122
122
  var userConfig = api.useResolvedConfigContext();
123
- if (isUseSSRBundle(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
123
+ if (isUseSSRBundle(userConfig) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig)) {
124
124
  var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
125
125
  chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
126
126
  {
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import serialize from "serialize-javascript";
1
+ import { serializeJson } from "@modern-js/utils/serialize";
2
2
  import { buildTemplate } from "./buildTemplate.share";
3
3
  function buildShellAfterTemplate(afterAppTemplate, options) {
4
4
  var injectSSRDataScript = function injectSSRDataScript(template) {
@@ -21,9 +21,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
21
21
  },
22
22
  renderLevel: renderLevel
23
23
  };
24
- return "\n <script>window._SSR_DATA = ".concat(serialize(SSRData, {
25
- isJSON: true
26
- }), "</script>\n ");
24
+ return "\n <script>window._SSR_DATA = ".concat(serializeJson(SSRData), "</script>\n ");
27
25
  }
28
26
  };
29
27
  var callbacks = [
@@ -59,13 +59,16 @@ function _objectSpreadProps(target, source) {
59
59
  }
60
60
  import { Transform } from "stream";
61
61
  import { RenderLevel } from "../types";
62
+ import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common";
62
63
  import { getTemplates } from "./template";
64
+ var ShellChunkStatus = /* @__PURE__ */ function(ShellChunkStatus2) {
65
+ ShellChunkStatus2[ShellChunkStatus2["IDLE"] = 0] = "IDLE";
66
+ ShellChunkStatus2[ShellChunkStatus2["START"] = 1] = "START";
67
+ ShellChunkStatus2[ShellChunkStatus2["FINIESH"] = 2] = "FINIESH";
68
+ return ShellChunkStatus2;
69
+ }(ShellChunkStatus || {});
63
70
  function renderToPipe(rootElement, context, options) {
64
- var joinChunk = function joinChunk() {
65
- var before = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "", chunk = arguments.length > 1 ? arguments[1] : void 0, after = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "";
66
- return "".concat(before).concat(chunk.toString()).concat(after);
67
- };
68
- var isShellStream = true;
71
+ var shellChunkStatus = 0 /* IDLE */ ;
69
72
  var ssrContext = context.ssrContext;
70
73
  var forUserPipe = function(stream) {
71
74
  return new Promise(function(resolve) {
@@ -81,9 +84,17 @@ function renderToPipe(rootElement, context, options) {
81
84
  var injectableTransform = new Transform({
82
85
  transform: function transform(chunk, _encoding, callback) {
83
86
  try {
84
- if (isShellStream) {
85
- this.push(joinChunk(shellBefore, chunk, shellAfter));
86
- isShellStream = false;
87
+ if (shellChunkStatus !== 2 /* FINIESH */ ) {
88
+ var concatedChunk = chunk.toString();
89
+ if (shellChunkStatus === 0 /* IDLE */ ) {
90
+ concatedChunk = "".concat(shellBefore).concat(concatedChunk);
91
+ shellChunkStatus = 1 /* START */ ;
92
+ }
93
+ if (shellChunkStatus === 1 /* START */ && concatedChunk.endsWith(ESCAPED_SHELL_STREAM_END_MARK)) {
94
+ concatedChunk = concatedChunk.replace(ESCAPED_SHELL_STREAM_END_MARK, shellAfter);
95
+ shellChunkStatus = 2 /* FINIESH */ ;
96
+ }
97
+ this.push(concatedChunk);
87
98
  } else {
88
99
  this.push(chunk);
89
100
  }
@@ -213,31 +213,45 @@ function renderToPipe(rootElement, context, options) {
213
213
  reader = readableOriginal.getReader();
214
214
  injectableStream = new ReadableStream({
215
215
  start: function start(controller) {
216
- return _asyncToGenerator(function() {
217
- var value;
218
- return __generator(this, function(_state) {
219
- switch(_state.label){
220
- case 0:
221
- return [
222
- 4,
223
- reader.read()
224
- ];
225
- case 1:
226
- value = _state.sent().value;
227
- if (isShellStream) {
228
- controller.enqueue(encodeForWebStream(shellBefore));
229
- controller.enqueue(value);
230
- controller.enqueue(encodeForWebStream(shellAfter));
231
- isShellStream = false;
232
- } else {
233
- controller.enqueue(value);
234
- }
235
- return [
236
- 2
237
- ];
238
- }
216
+ function push() {
217
+ return _push.apply(this, arguments);
218
+ }
219
+ function _push() {
220
+ _push = _asyncToGenerator(function() {
221
+ var _ref, done, value;
222
+ return __generator(this, function(_state) {
223
+ switch(_state.label){
224
+ case 0:
225
+ return [
226
+ 4,
227
+ reader.read()
228
+ ];
229
+ case 1:
230
+ _ref = _state.sent(), done = _ref.done, value = _ref.value;
231
+ if (done) {
232
+ controller.close();
233
+ return [
234
+ 2
235
+ ];
236
+ }
237
+ if (isShellStream) {
238
+ controller.enqueue(encodeForWebStream(shellBefore));
239
+ controller.enqueue(value);
240
+ controller.enqueue(encodeForWebStream(shellAfter));
241
+ isShellStream = false;
242
+ } else {
243
+ controller.enqueue(value);
244
+ }
245
+ push();
246
+ return [
247
+ 2
248
+ ];
249
+ }
250
+ });
239
251
  });
240
- })();
252
+ return _push.apply(this, arguments);
253
+ }
254
+ push();
241
255
  }
242
256
  });
243
257
  return [
@@ -48,11 +48,12 @@ import { buildShellAfterTemplate } from "./buildTemplate.after";
48
48
  import { buildShellBeforeTemplate } from "./bulidTemplate.before";
49
49
  var HTML_SEPARATOR = "<!--<?- html ?>-->";
50
50
  var getTemplates = function(context, renderLevel) {
51
- var ssrContext = context.ssrContext;
51
+ var ssrContext = context.ssrContext, routerContext = context.routerContext;
52
52
  var _ref = _slicedToArray(ssrContext.template.split(HTML_SEPARATOR) || [], 2), tmp = _ref[0], beforeAppTemplate = tmp === void 0 ? "" : tmp, tmp1 = _ref[1], afterAppHtmlTemplate = tmp1 === void 0 ? "" : tmp1;
53
53
  var builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
54
54
  var builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
55
55
  ssrContext: ssrContext,
56
+ routerContext: routerContext,
56
57
  renderLevel: renderLevel
57
58
  });
58
59
  return {
@@ -156,7 +156,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
156
156
  };
157
157
  import React from "react";
158
158
  import ReactDomServer from "react-dom/server";
159
- import serialize from "serialize-javascript";
159
+ import { serializeJson } from "@modern-js/utils/serialize";
160
160
  import ReactHelmet from "react-helmet";
161
161
  import helmetReplace from "../helmet";
162
162
  import { RenderLevel } from "../types";
@@ -166,10 +166,11 @@ import { toFragments } from "./template";
166
166
  import { reduce } from "./reduce";
167
167
  import * as loadableRenderer from "./loadable";
168
168
  import * as styledComponentRenderer from "./styledComponent";
169
- var buildTemplateData = function(context, data, renderLevel) {
169
+ var buildTemplateData = function(context, data, routerData, renderLevel) {
170
170
  var request = context.request;
171
171
  return {
172
172
  data: data,
173
+ routerData: routerData,
173
174
  context: {
174
175
  request: {
175
176
  params: request.params,
@@ -220,7 +221,7 @@ var Entry = /*#__PURE__*/ function() {
220
221
  value: function renderToHtml(context) {
221
222
  var _this = this;
222
223
  return _asyncToGenerator(function() {
223
- var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2, ssrContext, prefetchData, html, templateData, SSRData, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, fragment, helmetData;
224
+ var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2, ssrContext, prefetchData, routerContext, routerData, html, templateData, SSRData, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, fragment, helmetData;
224
225
  return __generator(this, function(_state) {
225
226
  switch(_state.label){
226
227
  case 0:
@@ -252,8 +253,12 @@ var Entry = /*#__PURE__*/ function() {
252
253
  ""
253
254
  ];
254
255
  }
256
+ routerContext = context.routerContext;
257
+ routerData = routerContext !== null && routerContext !== void 0 ? routerContext : {
258
+ loaderData: routerContext.loaderData
259
+ };
255
260
  html = "";
256
- templateData = buildTemplateData(ssrContext, prefetchData, _this.result.renderLevel);
261
+ templateData = buildTemplateData(ssrContext, prefetchData, routerData, _this.result.renderLevel);
257
262
  SSRData = _this.getSSRDataScript(templateData);
258
263
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
259
264
  try {
@@ -381,9 +386,7 @@ var Entry = /*#__PURE__*/ function() {
381
386
  key: "getSSRDataScript",
382
387
  value: function getSSRDataScript(templateData) {
383
388
  return {
384
- SSRDataScript: "\n <script>window._SSR_DATA = ".concat(serialize(templateData, {
385
- isJSON: true
386
- }), "</script>\n ")
389
+ SSRDataScript: "\n <script>window._SSR_DATA = ".concat(serializeJson(templateData), "</script>\n ")
387
390
  };
388
391
  }
389
392
  }