vite-plugin-react-server 1.1.12 → 1.1.13

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 (373) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/plugin/components/css-collector-elements.d.ts +4 -2
  3. package/dist/plugin/components/css-collector-elements.d.ts.map +1 -1
  4. package/dist/plugin/components/css-collector-elements.js +21 -7
  5. package/dist/plugin/components/css-collector-elements.js.map +1 -1
  6. package/dist/plugin/components/css-collector.d.ts +4 -5
  7. package/dist/plugin/components/css-collector.d.ts.map +1 -1
  8. package/dist/plugin/components/css-collector.js +5 -9
  9. package/dist/plugin/components/css-collector.js.map +1 -1
  10. package/dist/plugin/components/html.d.ts +1 -1
  11. package/dist/plugin/components/html.d.ts.map +1 -1
  12. package/dist/plugin/components/html.js +14 -3
  13. package/dist/plugin/components/html.js.map +1 -1
  14. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +4 -4
  15. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  16. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +14 -9
  17. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +1 -1
  18. package/dist/plugin/config/defaults.d.ts +66 -12
  19. package/dist/plugin/config/defaults.d.ts.map +1 -1
  20. package/dist/plugin/config/defaults.js +69 -15
  21. package/dist/plugin/config/defaults.js.map +1 -1
  22. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts +5 -0
  23. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +1 -0
  24. package/dist/plugin/config/resolveAutoDiscoverMatcher.js +25 -0
  25. package/dist/plugin/config/resolveAutoDiscoverMatcher.js.map +1 -0
  26. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  27. package/dist/plugin/config/resolveEnv.js +16 -5
  28. package/dist/plugin/config/resolveEnv.js.map +1 -1
  29. package/dist/plugin/config/resolveOptions.d.ts +3 -3
  30. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  31. package/dist/plugin/config/resolveOptions.js +59 -87
  32. package/dist/plugin/config/resolveOptions.js.map +1 -1
  33. package/dist/plugin/config/resolveUserConfig.d.ts +4 -4
  34. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  35. package/dist/plugin/config/resolveUserConfig.js +8 -1
  36. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  37. package/dist/plugin/error/toError.d.ts +3 -0
  38. package/dist/plugin/error/toError.d.ts.map +1 -1
  39. package/dist/plugin/error/toError.js +33 -4
  40. package/dist/plugin/error/toError.js.map +1 -1
  41. package/dist/plugin/helpers/cleanObject.d.ts.map +1 -1
  42. package/dist/plugin/helpers/cleanObject.js +19 -5
  43. package/dist/plugin/helpers/cleanObject.js.map +1 -1
  44. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +3 -3
  45. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  46. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +1 -1
  47. package/dist/plugin/helpers/createCssProps.d.ts +4 -3
  48. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  49. package/dist/plugin/helpers/createCssProps.js +7 -2
  50. package/dist/plugin/helpers/createCssProps.js.map +1 -1
  51. package/dist/plugin/helpers/createHandler.d.ts +4 -3
  52. package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
  53. package/dist/plugin/helpers/createHandler.js +1 -1
  54. package/dist/plugin/helpers/createHandler.js.map +1 -1
  55. package/dist/plugin/helpers/createRscStream.d.ts +2 -2
  56. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
  57. package/dist/plugin/helpers/createRscStream.js +15 -5
  58. package/dist/plugin/helpers/createRscStream.js.map +1 -1
  59. package/dist/plugin/helpers/index.d.ts +2 -2
  60. package/dist/plugin/helpers/index.d.ts.map +1 -1
  61. package/dist/plugin/helpers/index.js +2 -2
  62. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  63. package/dist/plugin/helpers/inputNormalizer.js +4 -1
  64. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  65. package/dist/plugin/helpers/moduleResolver.d.ts +3 -0
  66. package/dist/plugin/helpers/moduleResolver.d.ts.map +1 -0
  67. package/dist/plugin/helpers/moduleResolver.js +25 -0
  68. package/dist/plugin/helpers/requestInfo.d.ts +18 -3
  69. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  70. package/dist/plugin/helpers/requestInfo.js +75 -11
  71. package/dist/plugin/helpers/requestInfo.js.map +1 -1
  72. package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
  73. package/dist/plugin/helpers/resolvePage.js +2 -3
  74. package/dist/plugin/helpers/resolvePage.js.map +1 -1
  75. package/dist/plugin/helpers/resolvePageAndProps.d.ts +4 -3
  76. package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
  77. package/dist/plugin/helpers/resolvePageAndProps.js.map +1 -1
  78. package/dist/plugin/helpers/serializeUserOptions.d.ts +3 -2
  79. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  80. package/dist/plugin/helpers/serializeUserOptions.js +13 -1
  81. package/dist/plugin/helpers/serializeUserOptions.js.map +1 -1
  82. package/dist/plugin/helpers/sourceMap.d.ts +8 -0
  83. package/dist/plugin/helpers/sourceMap.d.ts.map +1 -0
  84. package/dist/plugin/helpers/sourceMap.js +136 -0
  85. package/dist/plugin/helpers.js +1 -1
  86. package/dist/plugin/loader/createBuildLoader.d.ts +7 -22
  87. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  88. package/dist/plugin/loader/createBuildLoader.js +79 -65
  89. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  90. package/dist/plugin/loader/createDefaultLoader.d.ts +13 -0
  91. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -0
  92. package/dist/plugin/loader/createDefaultLoader.js +47 -0
  93. package/dist/plugin/loader/css-loader.development.d.ts +1 -0
  94. package/dist/plugin/loader/css-loader.development.d.ts.map +1 -1
  95. package/dist/plugin/loader/css-loader.development.js +1 -1
  96. package/dist/plugin/loader/css-loader.development.js.map +1 -1
  97. package/dist/plugin/loader/handleExports.d.ts +33 -0
  98. package/dist/plugin/loader/handleExports.d.ts.map +1 -0
  99. package/dist/plugin/loader/handleExports.js +174 -0
  100. package/dist/plugin/loader/handleExports.js.map +1 -0
  101. package/dist/plugin/loader/index.d.ts +1 -1
  102. package/dist/plugin/loader/index.d.ts.map +1 -1
  103. package/dist/plugin/loader/index.js +4 -1
  104. package/dist/plugin/loader/parse.d.ts +6 -0
  105. package/dist/plugin/loader/parse.d.ts.map +1 -0
  106. package/dist/plugin/loader/parse.js +23 -0
  107. package/dist/plugin/loader/parse.js.map +1 -0
  108. package/dist/plugin/loader/react-loader.client.d.ts +2 -0
  109. package/dist/plugin/loader/react-loader.client.d.ts.map +1 -0
  110. package/dist/plugin/loader/react-loader.client.js +2 -0
  111. package/dist/plugin/loader/react-loader.d.ts +1 -12
  112. package/dist/plugin/loader/react-loader.d.ts.map +1 -1
  113. package/dist/plugin/loader/react-loader.js +5 -687
  114. package/dist/plugin/loader/react-loader.js.map +1 -1
  115. package/dist/plugin/loader/react-loader.server.d.ts +21 -0
  116. package/dist/plugin/loader/react-loader.server.d.ts.map +1 -0
  117. package/dist/plugin/loader/react-loader.server.js +69 -0
  118. package/dist/plugin/loader/sourceMap.d.ts +35 -0
  119. package/dist/plugin/loader/sourceMap.d.ts.map +1 -0
  120. package/dist/plugin/loader/sourceMap.js +105 -0
  121. package/dist/plugin/loader/temporaryReferences.d.ts +1 -1
  122. package/dist/plugin/loader/temporaryReferences.d.ts.map +1 -1
  123. package/dist/plugin/loader/transformModuleIfNeeded.d.ts +2 -0
  124. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -0
  125. package/dist/plugin/loader/transformModuleIfNeeded.js +27 -0
  126. package/dist/plugin/loader/transformModuleIfNeeded.js.map +1 -0
  127. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts +27 -0
  128. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +1 -0
  129. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +52 -0
  130. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +1 -0
  131. package/dist/plugin/loader/types.d.ts +8 -0
  132. package/dist/plugin/loader/types.d.ts.map +1 -0
  133. package/dist/plugin/loader/types.js +1 -0
  134. package/dist/plugin/plugin.client.d.ts +2 -2
  135. package/dist/plugin/plugin.client.d.ts.map +1 -1
  136. package/dist/plugin/plugin.client.js +2 -3
  137. package/dist/plugin/plugin.client.js.map +1 -1
  138. package/dist/plugin/plugin.server.d.ts +2 -2
  139. package/dist/plugin/plugin.server.d.ts.map +1 -1
  140. package/dist/plugin/plugin.server.js +2 -2
  141. package/dist/plugin/plugin.server.js.map +1 -1
  142. package/dist/plugin/preserver/plugin.d.ts +2 -2
  143. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  144. package/dist/plugin/preserver/plugin.js +6 -2
  145. package/dist/plugin/preserver/plugin.js.map +1 -1
  146. package/dist/plugin/react-client/{server.d.ts → configureWorkerRequestHandler.d.ts} +4 -4
  147. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -0
  148. package/dist/plugin/react-client/{server.js → configureWorkerRequestHandler.js} +11 -8
  149. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +1 -0
  150. package/dist/plugin/react-client/createMessageHandlers.d.ts +1 -1
  151. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  152. package/dist/plugin/react-client/createMessageHandlers.js +18 -11
  153. package/dist/plugin/react-client/createMessageHandlers.js.map +1 -1
  154. package/dist/plugin/react-client/createWorkerStream.d.ts +5 -3
  155. package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
  156. package/dist/plugin/react-client/createWorkerStream.js +61 -27
  157. package/dist/plugin/react-client/createWorkerStream.js.map +1 -1
  158. package/dist/plugin/react-client/handleWorkerRscStream.d.ts +1 -1
  159. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
  160. package/dist/plugin/react-client/handleWorkerRscStream.js +14 -4
  161. package/dist/plugin/react-client/handleWorkerRscStream.js.map +1 -1
  162. package/dist/plugin/react-client/plugin.d.ts +2 -2
  163. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  164. package/dist/plugin/react-client/plugin.js +7 -8
  165. package/dist/plugin/react-client/plugin.js.map +1 -1
  166. package/dist/plugin/react-client/restartWorker.d.ts +1 -1
  167. package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
  168. package/dist/plugin/react-client/restartWorker.js +9 -3
  169. package/dist/plugin/react-client/restartWorker.js.map +1 -1
  170. package/dist/plugin/react-server/configureReactServer.d.ts +9 -0
  171. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -0
  172. package/dist/plugin/react-server/{server.js → configureReactServer.js} +26 -8
  173. package/dist/plugin/react-server/configureReactServer.js.map +1 -0
  174. package/dist/plugin/react-server/handleServerAction.d.ts +5 -0
  175. package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -0
  176. package/dist/plugin/react-server/handleServerAction.js +145 -0
  177. package/dist/plugin/react-server/handleServerAction.js.map +1 -0
  178. package/dist/plugin/react-server/plugin.d.ts +2 -2
  179. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  180. package/dist/plugin/react-server/plugin.js +1 -1
  181. package/dist/plugin/react-server/plugin.js.map +1 -1
  182. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +2 -2
  183. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
  184. package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +1 -1
  185. package/dist/plugin/react-static/collectRscContent.d.ts +2 -2
  186. package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
  187. package/dist/plugin/react-static/collectRscContent.js.map +1 -1
  188. package/dist/plugin/react-static/configurePreviewServer.d.ts +3 -3
  189. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  190. package/dist/plugin/react-static/configurePreviewServer.js +18 -7
  191. package/dist/plugin/react-static/configurePreviewServer.js.map +1 -1
  192. package/dist/plugin/react-static/plugin.d.ts +2 -2
  193. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  194. package/dist/plugin/react-static/plugin.js +28 -12
  195. package/dist/plugin/react-static/plugin.js.map +1 -1
  196. package/dist/plugin/react-static/renderPage.d.ts +2 -2
  197. package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
  198. package/dist/plugin/react-static/renderPage.js.map +1 -1
  199. package/dist/plugin/react-static/renderPages.d.ts +2 -2
  200. package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
  201. package/dist/plugin/react-static/renderPages.js.map +1 -1
  202. package/dist/plugin/react-static/renderStreams.d.ts +2 -2
  203. package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
  204. package/dist/plugin/react-static/renderStreams.js +4 -4
  205. package/dist/plugin/react-static/renderStreams.js.map +1 -1
  206. package/dist/plugin/source-map/createMappingsSerializer.d.ts +2 -0
  207. package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +1 -0
  208. package/dist/plugin/source-map/createMappingsSerializer.js +159 -0
  209. package/dist/plugin/source-map/readMappings.d.ts +2 -0
  210. package/dist/plugin/source-map/readMappings.d.ts.map +1 -0
  211. package/dist/plugin/source-map/readMappings.js +201 -0
  212. package/dist/plugin/transformer/index.d.ts +0 -1
  213. package/dist/plugin/transformer/index.d.ts.map +1 -1
  214. package/dist/plugin/transformer/index.js +0 -1
  215. package/dist/plugin/transformer/plugin.client.d.ts +1 -3
  216. package/dist/plugin/transformer/plugin.client.d.ts.map +1 -1
  217. package/dist/plugin/transformer/plugin.client.js +1 -84
  218. package/dist/plugin/transformer/plugin.server.d.ts +2 -2
  219. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  220. package/dist/plugin/transformer/plugin.server.js +52 -20
  221. package/dist/plugin/transformer/plugin.server.js.map +1 -1
  222. package/dist/plugin/types.d.ts +89 -119
  223. package/dist/plugin/types.d.ts.map +1 -1
  224. package/dist/plugin/utils/callServer.d.ts +1 -1
  225. package/dist/plugin/utils/callServer.d.ts.map +1 -1
  226. package/dist/plugin/utils/createCallServer.d.ts +1 -1
  227. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  228. package/dist/plugin/utils/createCallServer.js +13 -4
  229. package/dist/plugin/utils/createCallServer.js.map +1 -1
  230. package/dist/plugin/utils/index.d.ts +1 -0
  231. package/dist/plugin/utils/index.d.ts.map +1 -1
  232. package/dist/plugin/utils/index.js +1 -0
  233. package/dist/plugin/utils.js +1 -0
  234. package/dist/plugin/utils.js.map +1 -1
  235. package/dist/plugin/vendor/vendor.client.d.ts +2 -1
  236. package/dist/plugin/vendor/vendor.client.d.ts.map +1 -1
  237. package/dist/plugin/vendor/vendor.client.js +2 -1
  238. package/dist/plugin/vendor/vendor.client.js.map +1 -1
  239. package/dist/plugin/vendor/vendor.server.d.ts.map +1 -1
  240. package/dist/plugin/vendor/vendor.server.js +1 -1
  241. package/dist/plugin/vendor/vendor.server.js.map +1 -1
  242. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  243. package/dist/plugin/worker/createWorker.js +17 -22
  244. package/dist/plugin/worker/createWorker.js.map +1 -1
  245. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
  246. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +25 -4
  247. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +1 -1
  248. package/dist/plugin/worker/html/html-worker.development.js +15 -13
  249. package/dist/plugin/worker/html/html-worker.development.js.map +1 -1
  250. package/dist/plugin/worker/html/html-worker.production.js +2 -12
  251. package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
  252. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  253. package/dist/plugin/worker/html/messageHandler.js +2 -2
  254. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  255. package/dist/plugin/worker/rsc/handleRender.d.ts +2 -1
  256. package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
  257. package/dist/plugin/worker/rsc/handleRender.js +8 -8
  258. package/dist/plugin/worker/rsc/handleRender.js.map +1 -1
  259. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  260. package/dist/plugin/worker/rsc/messageHandler.js +166 -107
  261. package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
  262. package/dist/plugin/worker/rsc/rsc-worker.development.js +112 -52
  263. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
  264. package/dist/plugin/worker/rsc/rsc-worker.production.js +1 -1
  265. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -1
  266. package/dist/plugin/worker/rsc/state.d.ts +5 -64
  267. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  268. package/dist/plugin/worker/rsc/state.js +5 -1
  269. package/dist/plugin/worker/rsc/state.js.map +1 -1
  270. package/dist/plugin/worker/sendMessage.d.ts +2 -0
  271. package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
  272. package/dist/plugin/worker/sendMessage.js +2 -1
  273. package/dist/plugin/worker/sendMessage.js.map +1 -1
  274. package/dist/plugin/worker/types.d.ts +52 -53
  275. package/dist/plugin/worker/types.d.ts.map +1 -1
  276. package/dist/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +10 -8
  278. package/plugin/components/css-collector-elements.tsx +30 -9
  279. package/plugin/components/css-collector.tsx +13 -22
  280. package/plugin/components/html.tsx +12 -5
  281. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +31 -13
  282. package/plugin/config/defaults.tsx +72 -16
  283. package/plugin/config/resolveAutoDiscoverMatcher.ts +23 -0
  284. package/plugin/config/resolveEnv.ts +20 -12
  285. package/plugin/config/resolveOptions.ts +152 -155
  286. package/plugin/config/resolveUserConfig.ts +20 -5
  287. package/plugin/error/toError.ts +35 -1
  288. package/plugin/helpers/cleanObject.ts +79 -15
  289. package/plugin/helpers/collectViteModuleGraphCss.ts +4 -3
  290. package/plugin/helpers/createCssProps.tsx +26 -9
  291. package/plugin/helpers/createHandler.ts +7 -4
  292. package/plugin/helpers/createRscStream.tsx +20 -14
  293. package/plugin/helpers/index.ts +2 -2
  294. package/plugin/helpers/inputNormalizer.ts +4 -2
  295. package/plugin/helpers/moduleResolver.ts +36 -0
  296. package/plugin/helpers/requestInfo.ts +117 -23
  297. package/plugin/helpers/resolvePage.ts +2 -3
  298. package/plugin/helpers/resolvePageAndProps.ts +7 -6
  299. package/plugin/helpers/serializeUserOptions.ts +20 -2
  300. package/plugin/helpers/sourceMap.ts +182 -0
  301. package/plugin/loader/createBuildLoader.ts +124 -104
  302. package/plugin/loader/createDefaultLoader.ts +62 -0
  303. package/plugin/loader/css-loader.development.ts +3 -2
  304. package/plugin/loader/handleExports.ts +276 -0
  305. package/plugin/loader/index.ts +6 -1
  306. package/plugin/loader/parse.ts +22 -0
  307. package/plugin/loader/react-loader.client.ts +1 -0
  308. package/plugin/loader/react-loader.server.ts +107 -0
  309. package/plugin/loader/react-loader.ts +4 -1002
  310. package/plugin/loader/sourceMap.ts +118 -0
  311. package/plugin/loader/transformModuleIfNeeded.ts +33 -0
  312. package/plugin/loader/transformModuleWithPreservedFunctions.ts +119 -0
  313. package/plugin/loader/types.ts +10 -0
  314. package/plugin/plugin.client.ts +18 -11
  315. package/plugin/plugin.server.ts +6 -3
  316. package/plugin/preserver/plugin.ts +37 -17
  317. package/plugin/react-client/{server.ts → configureWorkerRequestHandler.ts} +22 -12
  318. package/plugin/react-client/createMessageHandlers.ts +21 -13
  319. package/plugin/react-client/createWorkerStream.ts +71 -33
  320. package/plugin/react-client/handleWorkerRscStream.ts +15 -5
  321. package/plugin/react-client/plugin.ts +18 -13
  322. package/plugin/react-client/restartWorker.ts +17 -5
  323. package/plugin/react-server/{server.ts → configureReactServer.ts} +40 -9
  324. package/plugin/react-server/handleServerAction.ts +177 -0
  325. package/plugin/react-server/plugin.ts +8 -3
  326. package/plugin/react-static/collectHtmlWorkerContent.ts +11 -3
  327. package/plugin/react-static/collectRscContent.ts +17 -9
  328. package/plugin/react-static/configurePreviewServer.ts +37 -17
  329. package/plugin/react-static/plugin.ts +45 -22
  330. package/plugin/react-static/renderPage.ts +12 -6
  331. package/plugin/react-static/renderPages.ts +15 -4
  332. package/plugin/react-static/renderStreams.ts +13 -12
  333. package/plugin/source-map/createMappingsSerializer.ts +182 -0
  334. package/plugin/source-map/readMappings.ts +195 -0
  335. package/plugin/transformer/README.md +295 -29
  336. package/plugin/transformer/index.ts +0 -1
  337. package/plugin/transformer/plugin.client.ts +0 -111
  338. package/plugin/transformer/plugin.server.ts +94 -25
  339. package/plugin/types/react-server-dom-esm.d.ts +183 -24
  340. package/plugin/types/sourceMap.d.ts +2 -0
  341. package/plugin/types/webpack-sources.d.ts +24 -0
  342. package/plugin/types.ts +169 -132
  343. package/plugin/utils/createCallServer.ts +21 -6
  344. package/plugin/utils/index.ts +2 -1
  345. package/plugin/vendor/vendor.client.ts +2 -1
  346. package/plugin/vendor/vendor.server.ts +1 -1
  347. package/plugin/worker/createWorker.ts +21 -24
  348. package/plugin/worker/html/createHtmlWorkerRenderState.tsx +31 -7
  349. package/plugin/worker/html/html-worker.development.tsx +16 -16
  350. package/plugin/worker/html/html-worker.production.tsx +3 -19
  351. package/plugin/worker/html/messageHandler.tsx +2 -4
  352. package/plugin/worker/rsc/handleRender.ts +15 -12
  353. package/plugin/worker/rsc/messageHandler.tsx +191 -120
  354. package/plugin/worker/rsc/rsc-worker.development.ts +148 -77
  355. package/plugin/worker/rsc/rsc-worker.production.ts +1 -1
  356. package/plugin/worker/rsc/state.ts +10 -0
  357. package/plugin/worker/sendMessage.ts +32 -14
  358. package/plugin/worker/types.ts +99 -64
  359. package/dist/plugin/react-client/server.d.ts.map +0 -1
  360. package/dist/plugin/react-client/server.js.map +0 -1
  361. package/dist/plugin/react-server/server.d.ts +0 -9
  362. package/dist/plugin/react-server/server.d.ts.map +0 -1
  363. package/dist/plugin/react-server/server.js.map +0 -1
  364. package/dist/plugin/transformer/plugin.client.js.map +0 -1
  365. package/dist/plugin/transformer/upgradeCssModuleCode.d.ts +0 -2
  366. package/dist/plugin/transformer/upgradeCssModuleCode.d.ts.map +0 -1
  367. package/dist/plugin/transformer/upgradeCssModuleCode.js +0 -40
  368. package/dist/plugin/worker/loader.d.ts +0 -5
  369. package/dist/plugin/worker/loader.d.ts.map +0 -1
  370. package/dist/plugin/worker/loader.js +0 -11
  371. package/dist/plugin/worker/loader.js.map +0 -1
  372. package/plugin/transformer/upgradeCssModuleCode.ts +0 -42
  373. package/plugin/worker/loader.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"collectRscContent.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/collectRscContent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIvE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,oBAAoB,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAgD1D"}
1
+ {"version":3,"file":"collectRscContent.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/collectRscContent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,GACjD,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAgD1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectRscContent.js","sources":["../../../plugin/react-static/collectRscContent.ts"],"sourcesContent":["/**\n * rscHandler.ts\n * \n * PURPOSE: Handles collecting RSC content from the rscHeadless stream\n * \n * This module:\n * 1. Collects RSC content from the rscHeadless stream\n * 2. Returns the complete RSC content when the stream is done\n * 3. Provides a clean interface for RSC handling\n */\n\nimport { PassThrough, Transform } from \"node:stream\";\nimport { dirname, join } from \"node:path\";\nimport { mkdir } from \"node:fs/promises\";\nimport type { CreateHandlerOptions, StreamMetrics } from \"../types.js\";\nimport { createStreamMetrics } from \"../helpers/metrics.js\";\nimport { fileWriter } from \"./fileWriter.js\";\n\n/**\n * Collects RSC content from the rscHeadless stream\n * \n * @param rscStream The stream containing the RSC content\n * @param handlerOptions The options for the handler\n * @returns A promise that resolves with the complete RSC content and metrics\n */\nexport async function collectRscContent(\n rscStream: PassThrough,\n handlerOptions: CreateHandlerOptions\n): Promise<{ stream: PassThrough; metrics: StreamMetrics }> {\n const metrics = createStreamMetrics();\n const startTime = performance.now();\n\n const outputPath = join(\n handlerOptions.build.outDir,\n handlerOptions.build.static,\n handlerOptions.route,\n handlerOptions.build.rscOutputPath\n );\n\n const dir = dirname(outputPath);\n // Ensure directory exists\n await mkdir(join(handlerOptions.projectRoot, dir), { recursive: true });\n\n // Create transform to track metrics\n const metricsTransform = new Transform({\n transform(chunk, _encoding, callback) {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n callback(null, chunk);\n },\n flush(callback) {\n metrics.duration = performance.now() - startTime;\n callback();\n }\n });\n\n try {\n // Pipe RSC stream through metrics tracking\n rscStream.pipe(metricsTransform);\n\n // Set up file writing using fileWriter\n const writePromise = fileWriter(metricsTransform, \"rsc\", handlerOptions);\n\n // Wait for stream to complete\n await new Promise<void>((resolve) => {\n metricsTransform.on('end', resolve);\n });\n\n // Wait for file writing to complete\n await writePromise;\n\n return { stream: rscStream, metrics };\n } catch (error) {\n metricsTransform.destroy();\n throw error;\n }\n} "],"names":[],"mappings":";;;;;;;;;;;AAyBA,eAAsB,iBAAA,CACpB,WACA,cAC0D,EAAA;AAC1D,EAAA,MAAM,UAAU,mBAAoB,EAAA;AACpC,EAAM,MAAA,SAAA,GAAY,YAAY,GAAI,EAAA;AAElC,EAAA,MAAM,UAAa,GAAA,IAAA;AAAA,IACjB,eAAe,KAAM,CAAA,MAAA;AAAA,IACrB,eAAe,KAAM,CAAA,MAAA;AAAA,IACrB,cAAe,CAAA,KAAA;AAAA,IACf,eAAe,KAAM,CAAA;AAAA,GACvB;AAEA,EAAM,MAAA,GAAA,GAAM,QAAQ,UAAU,CAAA;AAE9B,EAAM,MAAA,KAAA,CAAM,KAAK,cAAe,CAAA,WAAA,EAAa,GAAG,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAGtE,EAAM,MAAA,gBAAA,GAAmB,IAAI,SAAU,CAAA;AAAA,IACrC,SAAA,CAAU,KAAO,EAAA,SAAA,EAAW,QAAU,EAAA;AACpC,MAAQ,OAAA,CAAA,MAAA,EAAA;AACR,MAAA,OAAA,CAAQ,SAAS,KAAM,CAAA,MAAA;AACvB,MAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,KACtB;AAAA,IACA,MAAM,QAAU,EAAA;AACd,MAAQ,OAAA,CAAA,QAAA,GAAW,WAAY,CAAA,GAAA,EAAQ,GAAA,SAAA;AACvC,MAAS,QAAA,EAAA;AAAA;AACX,GACD,CAAA;AAED,EAAI,IAAA;AAEF,IAAA,SAAA,CAAU,KAAK,gBAAgB,CAAA;AAG/B,IAAA,MAAM,YAAe,GAAA,UAAA,CAAW,gBAAkB,EAAA,KAAA,EAAO,cAAc,CAAA;AAGvE,IAAM,MAAA,IAAI,OAAc,CAAA,CAAC,OAAY,KAAA;AACnC,MAAiB,gBAAA,CAAA,EAAA,CAAG,OAAO,OAAO,CAAA;AAAA,KACnC,CAAA;AAGD,IAAM,MAAA,YAAA;AAEN,IAAO,OAAA,EAAE,MAAQ,EAAA,SAAA,EAAW,OAAQ,EAAA;AAAA,WAC7B,KAAO,EAAA;AACd,IAAA,gBAAA,CAAiB,OAAQ,EAAA;AACzB,IAAM,MAAA,KAAA;AAAA;AAEV;;;;"}
1
+ {"version":3,"file":"collectRscContent.js","sources":["../../../plugin/react-static/collectRscContent.ts"],"sourcesContent":["/**\n * rscHandler.ts\n *\n * PURPOSE: Handles collecting RSC content from the rscHeadless stream\n *\n * This module:\n * 1. Collects RSC content from the rscHeadless stream\n * 2. Returns the complete RSC content when the stream is done\n * 3. Provides a clean interface for RSC handling\n */\n\nimport { PassThrough, Transform } from \"node:stream\";\nimport { dirname, join } from \"node:path\";\nimport { mkdir } from \"node:fs/promises\";\nimport type {\n CreateHandlerOptions,\n StreamMetrics,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\nimport { createStreamMetrics } from \"../helpers/metrics.js\";\nimport { fileWriter } from \"./fileWriter.js\";\n\n/**\n * Collects RSC content from the rscHeadless stream\n *\n * @param rscStream The stream containing the RSC content\n * @param handlerOptions The options for the handler\n * @returns A promise that resolves with the complete RSC content and metrics\n */\nexport async function collectRscContent<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>(\n rscStream: PassThrough,\n handlerOptions: CreateHandlerOptions<T, InlineCSS>\n): Promise<{ stream: PassThrough; metrics: StreamMetrics }> {\n const metrics = createStreamMetrics();\n const startTime = performance.now();\n\n const outputPath = join(\n handlerOptions.build.outDir,\n handlerOptions.build.static,\n handlerOptions.route,\n handlerOptions.build.rscOutputPath\n );\n\n const dir = dirname(outputPath);\n // Ensure directory exists\n await mkdir(join(handlerOptions.projectRoot, dir), { recursive: true });\n\n // Create transform to track metrics\n const metricsTransform = new Transform({\n transform(chunk, _encoding, callback) {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n callback(null, chunk);\n },\n flush(callback) {\n metrics.duration = performance.now() - startTime;\n callback();\n },\n });\n\n try {\n // Pipe RSC stream through metrics tracking\n rscStream.pipe(metricsTransform);\n\n // Set up file writing using fileWriter\n const writePromise = fileWriter(metricsTransform, \"rsc\", handlerOptions);\n\n // Wait for stream to complete\n await new Promise<void>((resolve) => {\n metricsTransform.on(\"end\", resolve);\n });\n\n // Wait for file writing to complete\n await writePromise;\n\n return { stream: rscStream, metrics };\n } catch (error) {\n metricsTransform.destroy();\n throw error;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;AA8BA,eAAsB,iBAAA,CAIpB,WACA,cAC0D,EAAA;AAC1D,EAAA,MAAM,UAAU,mBAAoB,EAAA;AACpC,EAAM,MAAA,SAAA,GAAY,YAAY,GAAI,EAAA;AAElC,EAAA,MAAM,UAAa,GAAA,IAAA;AAAA,IACjB,eAAe,KAAM,CAAA,MAAA;AAAA,IACrB,eAAe,KAAM,CAAA,MAAA;AAAA,IACrB,cAAe,CAAA,KAAA;AAAA,IACf,eAAe,KAAM,CAAA;AAAA,GACvB;AAEA,EAAM,MAAA,GAAA,GAAM,QAAQ,UAAU,CAAA;AAE9B,EAAM,MAAA,KAAA,CAAM,KAAK,cAAe,CAAA,WAAA,EAAa,GAAG,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAGtE,EAAM,MAAA,gBAAA,GAAmB,IAAI,SAAU,CAAA;AAAA,IACrC,SAAA,CAAU,KAAO,EAAA,SAAA,EAAW,QAAU,EAAA;AACpC,MAAQ,OAAA,CAAA,MAAA,EAAA;AACR,MAAA,OAAA,CAAQ,SAAS,KAAM,CAAA,MAAA;AACvB,MAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,KACtB;AAAA,IACA,MAAM,QAAU,EAAA;AACd,MAAQ,OAAA,CAAA,QAAA,GAAW,WAAY,CAAA,GAAA,EAAQ,GAAA,SAAA;AACvC,MAAS,QAAA,EAAA;AAAA;AACX,GACD,CAAA;AAED,EAAI,IAAA;AAEF,IAAA,SAAA,CAAU,KAAK,gBAAgB,CAAA;AAG/B,IAAA,MAAM,YAAe,GAAA,UAAA,CAAW,gBAAkB,EAAA,KAAA,EAAO,cAAc,CAAA;AAGvE,IAAM,MAAA,IAAI,OAAc,CAAA,CAAC,OAAY,KAAA;AACnC,MAAiB,gBAAA,CAAA,EAAA,CAAG,OAAO,OAAO,CAAA;AAAA,KACnC,CAAA;AAGD,IAAM,MAAA,YAAA;AAEN,IAAO,OAAA,EAAE,MAAQ,EAAA,SAAA,EAAW,OAAQ,EAAA;AAAA,WAC7B,KAAO,EAAA;AACd,IAAA,gBAAA,CAAiB,OAAQ,EAAA;AACzB,IAAM,MAAA,KAAA;AAAA;AAEV;;;;"}
@@ -1,7 +1,7 @@
1
1
  import type { PreviewServer } from "vite";
2
- import type { ResolvedUserOptions } from "../types.js";
3
- export declare function configurePreviewServer({ server, userOptions, }: {
2
+ import type { ResolvedUserOptions, PagePropOpt, InlineCssOpt } from "../types.js";
3
+ export declare function configurePreviewServer<T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>({ server, userOptions, }: {
4
4
  server: PreviewServer;
5
- userOptions: ResolvedUserOptions;
5
+ userOptions: ResolvedUserOptions<T, InlineCSS>;
6
6
  }): Promise<void>;
7
7
  //# sourceMappingURL=configurePreviewServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configurePreviewServer.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/configurePreviewServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,wBAAsB,sBAAsB,CAAC,EAC3C,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC;CAClC,iBAqFA"}
1
+ {"version":3,"file":"configurePreviewServer.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/configurePreviewServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAWrB,wBAAsB,sBAAsB,CAC1C,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;CAChD,iBAkGA"}
@@ -22,7 +22,12 @@ async function configurePreviewServer({
22
22
  if (!req.url) {
23
23
  return next();
24
24
  }
25
- const { contentType, filePath } = requestInfo(req, userOptions, staticHostDir);
25
+ const { contentType, filePath } = requestInfo(
26
+ req,
27
+ userOptions,
28
+ staticHostDir,
29
+ server.config.logger
30
+ );
26
31
  if (filePath) {
27
32
  try {
28
33
  const stats = await stat(filePath);
@@ -52,14 +57,20 @@ async function configurePreviewServer({
52
57
  }
53
58
  } else if (streamError.code === "ENOENT") {
54
59
  res.statusCode = 404;
55
- server.config.logger.error(`File not found: ${filePath}. ${streamError.message}`, {
56
- error: streamError
57
- });
60
+ server.config.logger.error(
61
+ `File not found: ${filePath}. ${streamError.message}`,
62
+ {
63
+ error: streamError
64
+ }
65
+ );
58
66
  res.end("File not found");
59
67
  } else {
60
- server.config.logger.error(`Error loading file: ${filePath}. ${streamError.message}`, {
61
- error: streamError
62
- });
68
+ server.config.logger.error(
69
+ `Error loading file: ${filePath}. ${streamError.message}`,
70
+ {
71
+ error: streamError
72
+ }
73
+ );
63
74
  res.statusCode = 500;
64
75
  res.end("Internal server error");
65
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configurePreviewServer.js","sources":["../../../plugin/react-static/configurePreviewServer.ts"],"sourcesContent":["import type { PreviewServer } from \"vite\";\nimport type { ResolvedUserOptions } from \"../types.js\";\nimport { join } from \"node:path\";\nimport { createReadStream } from \"node:fs\";\nimport { stat } from \"node:fs/promises\";\nimport { pipeline } from \"node:stream/promises\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\n\ninterface StreamError extends Error {\n code?: string;\n}\n\nexport async function configurePreviewServer({\n server,\n userOptions,\n}: {\n server: PreviewServer;\n userOptions: ResolvedUserOptions;\n}) {\n const staticHostDir = join(\n userOptions.projectRoot,\n userOptions.build.outDir,\n userOptions.build.static\n );\n server.middlewares.use(async (req, res, next) => {\n if (!req.url) {\n return next();\n }\n const { contentType, filePath } = requestInfo(req, userOptions, staticHostDir);\n \n // Handle static files including CSS\n if (filePath) {\n try {\n const stats = await stat(filePath);\n if (stats.isFile()) {\n res.setHeader(\"Content-Type\", contentType);\n \n // Create abort controller for the stream\n const controller = new AbortController();\n const { signal } = controller;\n\n // Check if response is still writable before streaming\n if (!res.writable) {\n res.statusCode = 499;\n res.end(\"Client closed request\");\n return;\n }\n\n try {\n const readStream = createReadStream(filePath);\n readStream.on('error', () => {\n if (!res.writable) {\n controller.abort();\n }\n });\n await pipeline(readStream, res, { signal });\n } catch (error) {\n const streamError = error as StreamError;\n // Handle different error cases\n if (streamError.code === 'ERR_STREAM_PREMATURE_CLOSE' || \n streamError.name === 'AbortError') {\n // Client closed the connection\n if (res.writable) {\n res.statusCode = 499;\n res.end(\"Client closed request\");\n }\n } else if (streamError.code === 'ENOENT') {\n // File not found\n res.statusCode = 404;\n server.config.logger.error(`File not found: ${filePath}. ${streamError.message}`, {\n error: streamError,\n });\n res.end(\"File not found\");\n } else {\n // Server error\n server.config.logger.error(`Error loading file: ${filePath}. ${streamError.message}`, {\n error: streamError,\n });\n res.statusCode = 500;\n res.end(\"Internal server error\");\n }\n return;\n }\n return;\n }\n } catch (error) {\n const err = error as Error;\n // Handle file system errors\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n res.statusCode = 404;\n res.end(\"File not found\");\n } else {\n server.config.logger.error(`Error loading file: ${filePath}.`, {\n error: err,\n });\n res.statusCode = 500;\n res.end(\"Internal server error\");\n }\n return;\n }\n }\n next();\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurePreviewServer.js","sources":["../../../plugin/react-static/configurePreviewServer.ts"],"sourcesContent":["import type { PreviewServer } from \"vite\";\nimport type {\n ResolvedUserOptions,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\nimport { join } from \"node:path\";\nimport { createReadStream } from \"node:fs\";\nimport { stat } from \"node:fs/promises\";\nimport { pipeline } from \"node:stream/promises\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\n\ninterface StreamError extends Error {\n code?: string;\n}\n\nexport async function configurePreviewServer<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n server,\n userOptions,\n}: {\n server: PreviewServer;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n}) {\n const staticHostDir = join(\n userOptions.projectRoot,\n userOptions.build.outDir,\n userOptions.build.static\n );\n server.middlewares.use(async (req, res, next) => {\n if (!req.url) {\n return next();\n }\n const { contentType, filePath } = requestInfo(\n req,\n userOptions,\n staticHostDir,\n server.config.logger\n );\n\n // Handle static files including CSS\n if (filePath) {\n try {\n const stats = await stat(filePath);\n if (stats.isFile()) {\n res.setHeader(\"Content-Type\", contentType);\n\n // Create abort controller for the stream\n const controller = new AbortController();\n const { signal } = controller;\n\n // Check if response is still writable before streaming\n if (!res.writable) {\n res.statusCode = 499;\n res.end(\"Client closed request\");\n return;\n }\n\n try {\n const readStream = createReadStream(filePath);\n readStream.on(\"error\", () => {\n if (!res.writable) {\n controller.abort();\n }\n });\n await pipeline(readStream, res, { signal });\n } catch (error) {\n const streamError = error as StreamError;\n // Handle different error cases\n if (\n streamError.code === \"ERR_STREAM_PREMATURE_CLOSE\" ||\n streamError.name === \"AbortError\"\n ) {\n // Client closed the connection\n if (res.writable) {\n res.statusCode = 499;\n res.end(\"Client closed request\");\n }\n } else if (streamError.code === \"ENOENT\") {\n // File not found\n res.statusCode = 404;\n server.config.logger.error(\n `File not found: ${filePath}. ${streamError.message}`,\n {\n error: streamError,\n }\n );\n res.end(\"File not found\");\n } else {\n // Server error\n server.config.logger.error(\n `Error loading file: ${filePath}. ${streamError.message}`,\n {\n error: streamError,\n }\n );\n res.statusCode = 500;\n res.end(\"Internal server error\");\n }\n return;\n }\n return;\n }\n } catch (error) {\n const err = error as Error;\n // Handle file system errors\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n res.statusCode = 404;\n res.end(\"File not found\");\n } else {\n server.config.logger.error(`Error loading file: ${filePath}.`, {\n error: err,\n });\n res.statusCode = 500;\n res.end(\"Internal server error\");\n }\n return;\n }\n }\n next();\n });\n}\n"],"names":[],"mappings":"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"}
@@ -14,9 +14,9 @@
14
14
  * 6. Handles error reporting and metrics collection
15
15
  */
16
16
  import { type Plugin as VitePlugin } from "vite";
17
- import type { ReactStreamPluginMeta } from "../types.js";
17
+ import type { ReactStreamPluginMeta, PagePropOpt, InlineCssOpt } from "../types.js";
18
18
  import { type StreamPluginOptions } from "../types.js";
19
- export declare function reactStaticPlugin(options: StreamPluginOptions): VitePlugin<{
19
+ export declare function reactStaticPlugin<T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>(options: StreamPluginOptions<T, InlineCSS>): VitePlugin<{
20
20
  meta: ReactStreamPluginMeta;
21
21
  }>;
22
22
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,MAAM,IAAI,UAAU,EAE1B,MAAM,MAAM,CAAC;AAId,OAAO,KAAK,EAEV,qBAAqB,EAOtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA+BvD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAC1E,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CA0VD"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,MAAM,IAAI,UAAU,EAE1B,MAAM,MAAM,CAAC;AAId,OAAO,KAAK,EAEV,qBAAqB,EAOrB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyBvD,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GACzC,UAAU,CAAC;IACZ,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CAgXD"}
@@ -21,20 +21,21 @@ import { tryManifest } from '../helpers/tryManifest.js';
21
21
  import { performance } from 'node:perf_hooks';
22
22
  import { DEFAULT_CONFIG } from '../config/defaults.js';
23
23
  import { baseURL } from '../utils/envUrls.node.js';
24
+ import { readFile } from 'node:fs/promises';
24
25
 
25
26
  if (getCondition() !== "react-server") {
26
27
  throw new Error(
27
28
  "Condition mismatch, should be react-server but got " + process.env["NODE_OPTIONS"]
28
29
  );
29
30
  }
30
- let worker;
31
- let userConfig;
32
- let resolvedConfig;
33
- let userOptions;
34
- let autoDiscoveredFiles = null;
35
- let serverManifest = undefined;
36
- let buildLoader;
37
31
  function reactStaticPlugin(options) {
32
+ let worker;
33
+ let userConfig;
34
+ let resolvedConfig;
35
+ let userOptions;
36
+ let autoDiscoveredFiles = null;
37
+ let serverManifest = undefined;
38
+ let buildLoader;
38
39
  const timing = {
39
40
  start: Date.now(),
40
41
  configResolved: 0,
@@ -56,6 +57,9 @@ function reactStaticPlugin(options) {
56
57
  if (config.root && config.root !== userOptions.projectRoot) {
57
58
  userOptions.projectRoot = config.root;
58
59
  }
60
+ if (configEnv.command !== "build") {
61
+ return;
62
+ }
59
63
  const autoDiscoverResult = await resolveAutoDiscover({
60
64
  config,
61
65
  configEnv,
@@ -170,12 +174,20 @@ function reactStaticPlugin(options) {
170
174
  );
171
175
  const pageCssMap = /* @__PURE__ */ new Map();
172
176
  if (Object.keys(globalCssInputs).length > 0) {
173
- for (const [, value] of Object.entries(globalCssInputs)) {
174
- const cssContent = await buildLoader(value + "?inline").then(
177
+ for (const [key, value] of Object.entries(globalCssInputs)) {
178
+ let cssContent = await buildLoader(value + "?inline").then(
175
179
  (r) => String(r.default)
176
180
  );
177
- if (cssContent === "undefined") {
178
- throw new Error(`CSS content is undefined for ${value}`);
181
+ if (cssContent === "undefined" || !cssContent) {
182
+ cssContent = await readFile(
183
+ join(
184
+ userOptions.projectRoot,
185
+ userOptions.build.outDir,
186
+ userOptions.build.static,
187
+ key + ".css"
188
+ ),
189
+ "utf-8"
190
+ ) ?? "";
179
191
  }
180
192
  if (cssContent) {
181
193
  globalCss.set(
@@ -286,7 +298,11 @@ function reactStaticPlugin(options) {
286
298
  static: userOptions.build.static,
287
299
  client: userOptions.build.client
288
300
  },
289
- globalCss
301
+ globalCss,
302
+ css: {
303
+ ...handlerOptions.css,
304
+ inlineCss: handlerOptions.css?.inlineCss ?? true
305
+ }
290
306
  },
291
307
  cssFilesByPage
292
308
  );
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../plugin/react-static/plugin.ts"],"sourcesContent":["/**\n * plugin.ts\n *\n * PURPOSE: Main Vite plugin for React Server Components (RSC) static site generation\n *\n * This module:\n * 1. Orchestrates the entire static site generation process\n * 2. Manages the lifecycle of the RSC rendering process\n * 3. Handles file writing for both initial page loads and client-side navigation\n * - Writes .html files for initial page loads (complete HTML document)\n * - Writes .rsc files for client-side navigation (RSC content only)\n * 4. Provides hooks for Vite to integrate with the build process\n * 5. Manages worker threads for parallel rendering\n * 6. Handles error reporting and metrics collection\n */\n\nimport { join } from \"node:path\";\nimport { Worker } from \"node:worker_threads\";\nimport {\n type Manifest,\n type ResolvedConfig,\n type Plugin as VitePlugin,\n createLogger,\n} from \"vite\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { createBuildLoader } from \"../loader/createBuildLoader.js\";\nimport type {\n BuildTiming,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n PluginEvent,\n RenderPagesResult,\n AutoDiscoveredFiles,\n CssContent,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { renderPages } from \"./renderPages.js\";\nimport { getBundleManifest } from \"../helpers/getBundleManifest.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { resolveAutoDiscover } from \"../config/autoDiscover/resolveAutoDiscover.js\";\nimport { getCondition } from \"../config/getCondition.js\";\nimport {\n serializedOptions,\n serializeResolvedConfig,\n} from \"../helpers/serializeUserOptions.js\";\nimport { collectManifestCss } from \"../helpers/collectManifestCss.js\";\nimport { createCssProps } from \"../helpers/createCssProps.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { performance } from \"node:perf_hooks\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { baseURL } from \"../utils/envUrls.node.js\";\n\nif (getCondition() !== \"react-server\") {\n throw new Error(\n \"Condition mismatch, should be react-server but got \" +\n process.env[\"NODE_OPTIONS\"]\n );\n}\n\nlet worker: Worker;\nlet userConfig: ResolvedUserConfig;\nlet resolvedConfig: ResolvedConfig;\nlet userOptions: ResolvedUserOptions;\nlet autoDiscoveredFiles: AutoDiscoveredFiles | null = null;\nlet serverManifest: Manifest | undefined = undefined;\nlet buildLoader: Awaited<ReturnType<typeof createBuildLoader>> | undefined;\nexport function reactStaticPlugin(options: StreamPluginOptions): VitePlugin<{\n meta: ReactStreamPluginMeta;\n}> {\n const timing: BuildTiming = {\n start: Date.now(),\n configResolved: 0,\n buildStart: 0,\n renderStart: 0,\n };\n\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n\n return {\n name: \"vite:plugin-react-server/static\",\n enforce: \"post\",\n api: {\n meta: { timing },\n },\n\n async config(config, configEnv) {\n if (config.root && config.root !== userOptions.projectRoot) {\n userOptions.projectRoot = config.root;\n }\n const autoDiscoverResult = await resolveAutoDiscover({\n config,\n configEnv,\n userOptions,\n condition: \"react-server\",\n });\n if (autoDiscoverResult.type === \"error\") {\n throw autoDiscoverResult.error;\n }\n autoDiscoveredFiles = autoDiscoverResult.autoDiscoveredFiles;\n const resolvedConfig = resolveUserConfig({\n condition: \"react-server\",\n config,\n configEnv,\n userOptions,\n autoDiscoveredFiles,\n });\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n timing.configResolved = Date.now();\n },\n configResolved(config) {\n resolvedConfig = config;\n },\n async buildStart() {\n timing.buildStart = Date.now();\n if (userOptions.onEvent && autoDiscoveredFiles) {\n userOptions.onEvent({\n type: \"build.start\",\n data: {\n pages: Array.from(autoDiscoveredFiles.urlMap.keys()),\n files: autoDiscoveredFiles,\n },\n });\n }\n },\n\n async renderStart() {\n \n timing.renderStart = Date.now();\n },\n\n async writeBundle(options, bundle) {\n if (userOptions.onEvent) {\n userOptions.onEvent({\n type: \"build.writeBundle.static-server\",\n data: {\n pages: Array.from(autoDiscoveredFiles?.urlMap.keys() ?? []),\n options,\n bundle,\n },\n });\n }\n try {\n const bundleManifest = getBundleManifest<false>({\n bundle,\n normalizer: userOptions.normalizer,\n });\n if (!(\"source\" in bundleManifest[\".vite/manifest.json\"])) {\n throw new Error(\"Server manifest not found\");\n }\n\n serverManifest = JSON.parse(\n bundleManifest[\".vite/manifest.json\"].source as string\n );\n\n if (!serverManifest) {\n throw new Error(\"Failed to parse server manifest\");\n }\n\n const clientManifestResult = await tryManifest({\n root: userOptions.projectRoot,\n outDir: join(userOptions.build.outDir, userOptions.build.client),\n ssrManifest: false,\n });\n if (clientManifestResult.type === \"error\") {\n throw clientManifestResult.error;\n }\n const clientManifest = clientManifestResult.manifest;\n \n buildLoader = await createBuildLoader(\n {\n userConfig,\n userOptions,\n serverManifest: serverManifest ?? {},\n staticManifest: autoDiscoveredFiles?.staticManifest ?? {},\n clientManifest: clientManifest ?? {},\n },\n bundle\n );\n\n // Create CSS props for each CSS file\n const cssFilesByPage = new Map();\n\n // First collect global styles from index.html\n const globalCssInputs = collectManifestCss(\n autoDiscoveredFiles?.staticManifest ?? {},\n \"index.html\",\n userOptions\n );\n\n const globalCss: Map<string, CssContent> = new Map();\n // Collect CSS files for each page and its props\n for (const [url, { page, props }] of autoDiscoveredFiles?.urlMap ??\n []) {\n const transformedServerManifest = Object.fromEntries(\n Object.entries(serverManifest).map(([key, value]) => {\n if (!value.css?.length) {\n return [key, value];\n }\n return [\n key,\n {\n ...value,\n css:\n autoDiscoveredFiles?.staticManifest[key]?.css ?? value.css,\n },\n ];\n })\n );\n const cssInputs = collectManifestCss(\n transformedServerManifest,\n props ? [page, props] : page,\n userOptions\n );\n\n // Create a map for this page's CSS files\n const pageCssMap: Map<string, CssContent> = new Map();\n // Add global styles if they exist\n if (Object.keys(globalCssInputs).length > 0) {\n for (const [, value] of Object.entries(globalCssInputs)) {\n const cssContent = await buildLoader(value + \"?inline\").then(\n (r) => String(r.default)\n );\n if (cssContent === \"undefined\") {\n throw new Error(`CSS content is undefined for ${value}`);\n }\n if (cssContent) {\n globalCss.set(\n value,\n createCssProps({\n id: value,\n code: cssContent,\n userOptions: userOptions,\n })\n );\n }\n }\n }\n\n // Add page-specific styles\n for (const [, value] of Object.entries(cssInputs)) {\n try {\n const { default: cssContent } = await buildLoader(\n value + \"?inline\"\n );\n if (typeof cssContent !== \"string\") {\n continue;\n }\n if (cssContent) {\n // Ensure the CSS file path is properly resolved\n const cssPath = value.startsWith(\"/\") ? value.slice(1) : value;\n pageCssMap.set(\n cssPath,\n createCssProps({\n id: cssPath,\n code: cssContent,\n userOptions: userOptions,\n })\n );\n }\n } catch (error) {\n console.warn(`Failed to process CSS file ${value}:`, error);\n continue;\n }\n }\n cssFilesByPage.set(url, pageCssMap);\n }\n\n const staticManifest = autoDiscoveredFiles?.staticManifest ?? {};\n const indexHtml = staticManifest?.[\"index.html\"]?.file;\n const pipeableStreamOptions = {\n ...userOptions.pipeableStreamOptions,\n bootstrapModules: [\n ...(indexHtml ? [baseURL(indexHtml)] : []),\n ...(userOptions.pipeableStreamOptions?.bootstrapModules ?? []),\n ],\n };\n userOptions.pipeableStreamOptions = pipeableStreamOptions;\n const serializedUserOptions = serializedOptions(\n userOptions,\n autoDiscoveredFiles!\n );\n // Create worker\n if (!worker) {\n const viteEnvPrefix =\n typeof resolvedConfig.envPrefix === \"string\"\n ? resolvedConfig.envPrefix\n : Array.isArray(resolvedConfig.envPrefix)\n ? resolvedConfig.envPrefix[0]\n : DEFAULT_CONFIG.ENV_PREFIX;\n const routeCount = autoDiscoveredFiles?.urlMap.size ?? 0;\n const maxListeners = routeCount + 1;\n const workerResult = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath: userOptions.htmlWorkerPath,\n currentCondition: \"react-server\",\n reverseCondition: \"react-client\",\n maxListeners: maxListeners,\n envPrefix: viteEnvPrefix,\n logger: this.environment.logger,\n workerData: {\n resolvedConfig: serializeResolvedConfig(resolvedConfig),\n userOptions: {\n ...serializedUserOptions,\n },\n },\n });\n if (workerResult.type === \"error\") {\n throw workerResult.error;\n } else if (workerResult.type === \"skip\") {\n this.environment.logger.info(\n \"Worker not created, skipping static build\"\n );\n return;\n } else {\n worker = workerResult.worker;\n }\n }\n // Render pages\n const { onEvent, ...handlerOptions } = userOptions;\n const renderPagesGenerator = renderPages(\n autoDiscoveredFiles!,\n {\n ...handlerOptions,\n loader: buildLoader,\n worker: worker,\n logger: createLogger(),\n onEvent: async (event: PluginEvent) => {\n if (userOptions.onEvent) {\n userOptions.onEvent(event);\n }\n // Add file write completion event\n if (event.type === \"file.write\") {\n await event.data.onComplete();\n }\n },\n pipeableStreamOptions: pipeableStreamOptions,\n manifest: serverManifest ?? {},\n build: {\n htmlOutputPath: userOptions.build.htmlOutputPath,\n rscOutputPath: userOptions.build.rscOutputPath,\n outDir: userOptions.build.outDir,\n pages: userOptions.build.pages,\n server: userOptions.build.server,\n static: userOptions.build.static,\n client: userOptions.build.client,\n },\n globalCss: globalCss,\n },\n cssFilesByPage\n );\n\n // Process render results\n let finalResult: RenderPagesResult | undefined;\n for await (const result of renderPagesGenerator) {\n if (result.type === \"error\") {\n throw result.error;\n }\n finalResult = result;\n }\n\n if (!finalResult) {\n throw new Error(\"No render result produced\");\n }\n finalResult.streamMetrics.duration = Math.round(\n performance.now() - finalResult.streamMetrics.startTime\n );\n\n this.environment.logger.info(\n `Rendered ${finalResult.completedRoutes.size} unique routes in ${finalResult.streamMetrics.duration}ms`\n );\n if(process.env['NODE_ENV'] !== 'production') {\n this.environment.logger.warn(\n `THIS IS BUILD IS NOT INTENDED FOR PRODUCTION (${process.env['NODE_ENV']})`\n );\n }\n\n // Update timing\n timing.render = Date.now() - (timing.renderStart ?? timing.start);\n } catch (error) {\n throw error;\n }\n\n // Cleanup\n try {\n worker.postMessage({ type: \"SHUTDOWN\", id: \"*\" });\n await new Promise<void>((resolve, reject) => {\n const shutdownHandler = (msg: any) => {\n if (msg.type === \"SHUTDOWN_COMPLETE\") {\n worker.removeListener(\"message\", shutdownHandler);\n worker\n .terminate()\n .then((code) =>\n code === 1\n ? resolve()\n : reject(new Error(`Worker terminated with code ${code}`))\n )\n .catch(reject);\n }\n };\n worker.on(\"message\", shutdownHandler);\n });\n } catch (error) {\n throw error;\n }\n },\n } as const;\n}\n"],"names":["resolvedConfig","options"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/react-static/plugin.ts"],"sourcesContent":["/**\n * plugin.ts\n *\n * PURPOSE: Main Vite plugin for React Server Components (RSC) static site generation\n *\n * This module:\n * 1. Orchestrates the entire static site generation process\n * 2. Manages the lifecycle of the RSC rendering process\n * 3. Handles file writing for both initial page loads and client-side navigation\n * - Writes .html files for initial page loads (complete HTML document)\n * - Writes .rsc files for client-side navigation (RSC content only)\n * 4. Provides hooks for Vite to integrate with the build process\n * 5. Manages worker threads for parallel rendering\n * 6. Handles error reporting and metrics collection\n */\n\nimport { join } from \"node:path\";\nimport { Worker } from \"node:worker_threads\";\nimport {\n type Manifest,\n type ResolvedConfig,\n type Plugin as VitePlugin,\n createLogger,\n} from \"vite\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport { createBuildLoader } from \"../loader/createBuildLoader.js\";\nimport type {\n BuildTiming,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n PluginEvent,\n RenderPagesResult,\n AutoDiscoveredFiles,\n CssContent,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { renderPages } from \"./renderPages.js\";\nimport { getBundleManifest } from \"../helpers/getBundleManifest.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { resolveAutoDiscover } from \"../config/autoDiscover/resolveAutoDiscover.js\";\nimport { getCondition } from \"../config/getCondition.js\";\nimport {\n serializedOptions,\n serializeResolvedConfig,\n} from \"../helpers/serializeUserOptions.js\";\nimport { collectManifestCss } from \"../helpers/collectManifestCss.js\";\nimport { createCssProps } from \"../helpers/createCssProps.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { performance } from \"node:perf_hooks\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { baseURL } from \"../utils/envUrls.node.js\";\nimport { readFile } from \"node:fs/promises\";\n\nif (getCondition() !== \"react-server\") {\n throw new Error(\n \"Condition mismatch, should be react-server but got \" +\n process.env[\"NODE_OPTIONS\"]\n );\n}\n\nexport function reactStaticPlugin<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>(\n options: StreamPluginOptions<T, InlineCSS>\n): VitePlugin<{\n meta: ReactStreamPluginMeta;\n}> {\n let worker: Worker;\n let userConfig: ResolvedUserConfig;\n let resolvedConfig: ResolvedConfig;\n let userOptions: ResolvedUserOptions<T, InlineCSS>;\n let autoDiscoveredFiles: AutoDiscoveredFiles | null = null;\n let serverManifest: Manifest | undefined = undefined;\n let buildLoader: Awaited<ReturnType<typeof createBuildLoader>> | undefined;\n const timing: BuildTiming = {\n start: Date.now(),\n configResolved: 0,\n buildStart: 0,\n renderStart: 0,\n };\n\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n\n return {\n name: \"vite:plugin-react-server/static\",\n enforce: \"post\",\n api: {\n meta: { timing },\n },\n\n async config(config, configEnv) {\n if (config.root && config.root !== userOptions.projectRoot) {\n userOptions.projectRoot = config.root;\n }\n if(configEnv.command !== \"build\") {\n return;\n }\n // Initialize autoDiscoveredFiles for both server and client builds\n const autoDiscoverResult = await resolveAutoDiscover({\n config,\n configEnv,\n userOptions,\n condition: \"react-server\",\n });\n if (autoDiscoverResult.type === \"error\") {\n throw autoDiscoverResult.error;\n }\n autoDiscoveredFiles = autoDiscoverResult.autoDiscoveredFiles;\n const resolvedConfig = resolveUserConfig({\n condition: \"react-server\",\n config,\n configEnv,\n userOptions,\n autoDiscoveredFiles,\n });\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n timing.configResolved = Date.now();\n },\n configResolved(config) {\n resolvedConfig = config;\n },\n async buildStart() {\n timing.buildStart = Date.now();\n if (userOptions.onEvent && autoDiscoveredFiles) {\n userOptions.onEvent({\n type: \"build.start\",\n data: {\n pages: Array.from(autoDiscoveredFiles.urlMap.keys()),\n files: autoDiscoveredFiles,\n },\n });\n }\n },\n\n async renderStart() {\n timing.renderStart = Date.now();\n },\n\n async writeBundle(options, bundle) {\n if (userOptions.onEvent) {\n userOptions.onEvent({\n type: \"build.writeBundle.static-server\",\n data: {\n pages: Array.from(autoDiscoveredFiles?.urlMap.keys() ?? []),\n options,\n bundle,\n },\n });\n }\n try {\n const bundleManifest = getBundleManifest<false>({\n bundle,\n normalizer: userOptions.normalizer,\n });\n if (!(\"source\" in bundleManifest[\".vite/manifest.json\"])) {\n throw new Error(\"Server manifest not found\");\n }\n\n serverManifest = JSON.parse(\n bundleManifest[\".vite/manifest.json\"].source as string\n );\n\n if (!serverManifest) {\n throw new Error(\"Failed to parse server manifest\");\n }\n \n const clientManifestResult = await tryManifest({\n root: userOptions.projectRoot,\n outDir: join(userOptions.build.outDir, userOptions.build.client),\n ssrManifest: false,\n });\n if (clientManifestResult.type === \"error\") {\n throw clientManifestResult.error;\n }\n const clientManifest = clientManifestResult.manifest;\n\n buildLoader = await createBuildLoader<T, InlineCSS>(\n {\n userConfig,\n userOptions: userOptions as ResolvedUserOptions<T, InlineCSS>,\n serverManifest: serverManifest ?? {},\n staticManifest: autoDiscoveredFiles?.staticManifest ?? {},\n clientManifest: clientManifest ?? {},\n },\n bundle\n );\n\n // Create CSS props for each CSS file\n const cssFilesByPage = new Map();\n\n // First collect global styles from index.html\n const globalCssInputs = collectManifestCss(\n autoDiscoveredFiles?.staticManifest ?? {},\n \"index.html\",\n userOptions\n );\n\n const globalCss: Map<string, CssContent<InlineCSS>> = new Map();\n // Collect CSS files for each page and its props\n for (const [url, { page, props }] of autoDiscoveredFiles?.urlMap ??\n []) {\n const transformedServerManifest = Object.fromEntries(\n Object.entries(serverManifest).map(([key, value]) => {\n if (!value.css?.length) {\n return [key, value];\n }\n return [\n key,\n {\n ...value,\n css:\n autoDiscoveredFiles?.staticManifest[key]?.css ?? value.css,\n },\n ];\n })\n );\n const cssInputs = collectManifestCss(\n transformedServerManifest,\n props ? [page, props] : page,\n userOptions\n );\n\n // Create a map for this page's CSS files\n const pageCssMap: Map<string, CssContent> = new Map();\n // Add global styles if they exist\n if (Object.keys(globalCssInputs).length > 0) {\n for (const [key, value] of Object.entries(globalCssInputs)) {\n let cssContent = await buildLoader(value + \"?inline\").then((r) =>\n String(r.default)\n );\n if (cssContent === \"undefined\" || !cssContent) {\n cssContent = await readFile(\n join(\n userOptions.projectRoot,\n userOptions.build.outDir,\n userOptions.build.static,\n key + \".css\"\n ),\n \"utf-8\"\n ) ?? \"\"\n }\n if (cssContent) {\n globalCss.set(\n value,\n createCssProps<T, InlineCSS>({\n id: value,\n code: cssContent,\n userOptions: userOptions,\n })\n );\n }\n }\n }\n\n // Add page-specific styles\n for (const [, value] of Object.entries(cssInputs)) {\n try {\n const { default: cssContent } = await buildLoader(\n value + \"?inline\"\n );\n if (typeof cssContent !== \"string\") {\n continue;\n }\n if (cssContent) {\n // Ensure the CSS file path is properly resolved\n const cssPath = value.startsWith(\"/\") ? value.slice(1) : value;\n pageCssMap.set(\n cssPath,\n createCssProps({\n id: cssPath,\n code: cssContent,\n userOptions: userOptions,\n })\n );\n }\n } catch (error) {\n console.warn(`Failed to process CSS file ${value}:`, error);\n continue;\n }\n }\n cssFilesByPage.set(url, pageCssMap);\n }\n\n const staticManifest = autoDiscoveredFiles?.staticManifest ?? {};\n const indexHtml = staticManifest?.[\"index.html\"]?.file;\n const pipeableStreamOptions = {\n ...userOptions.pipeableStreamOptions,\n bootstrapModules: [\n ...(indexHtml ? [baseURL(indexHtml)] : []),\n ...(userOptions.pipeableStreamOptions?.bootstrapModules ?? []),\n ],\n };\n userOptions.pipeableStreamOptions = pipeableStreamOptions;\n const serializedUserOptions = serializedOptions(\n userOptions,\n autoDiscoveredFiles!\n );\n // Create worker\n if (!worker) {\n const viteEnvPrefix =\n typeof resolvedConfig.envPrefix === \"string\"\n ? resolvedConfig.envPrefix\n : Array.isArray(resolvedConfig.envPrefix)\n ? resolvedConfig.envPrefix[0]\n : DEFAULT_CONFIG.ENV_PREFIX;\n const routeCount = autoDiscoveredFiles?.urlMap.size ?? 0;\n const maxListeners = routeCount + 1;\n const workerResult = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath: userOptions.htmlWorkerPath,\n currentCondition: \"react-server\",\n reverseCondition: \"react-client\",\n maxListeners: maxListeners,\n envPrefix: viteEnvPrefix,\n logger: this.environment.logger,\n workerData: {\n resolvedConfig: serializeResolvedConfig(resolvedConfig),\n userOptions: {\n ...serializedUserOptions,\n },\n },\n });\n if (workerResult.type === \"error\") {\n throw workerResult.error;\n } else if (workerResult.type === \"skip\") {\n this.environment.logger.info(\n \"Worker not created, skipping static build\"\n );\n return;\n } else {\n worker = workerResult.worker;\n }\n }\n // Render pages\n const { onEvent, ...handlerOptions } = userOptions;\n const renderPagesGenerator = renderPages(\n autoDiscoveredFiles!,\n {\n ...handlerOptions,\n loader: buildLoader,\n worker: worker,\n logger: createLogger(),\n onEvent: async (event: PluginEvent) => {\n if (userOptions.onEvent) {\n userOptions.onEvent(event);\n }\n // Add file write completion event\n if (event.type === \"file.write\") {\n await event.data.onComplete();\n }\n },\n pipeableStreamOptions: pipeableStreamOptions,\n manifest: serverManifest ?? {},\n build: {\n htmlOutputPath: userOptions.build.htmlOutputPath,\n rscOutputPath: userOptions.build.rscOutputPath,\n outDir: userOptions.build.outDir,\n pages: userOptions.build.pages,\n server: userOptions.build.server,\n static: userOptions.build.static,\n client: userOptions.build.client,\n },\n globalCss: globalCss,\n css: {\n ...handlerOptions.css,\n inlineCss: handlerOptions.css?.inlineCss ?? true,\n },\n },\n cssFilesByPage\n );\n\n // Process render results\n let finalResult: RenderPagesResult | undefined;\n for await (const result of renderPagesGenerator) {\n if (result.type === \"error\") {\n throw result.error;\n }\n finalResult = result;\n }\n\n if (!finalResult) {\n throw new Error(\"No render result produced\");\n }\n finalResult.streamMetrics.duration = Math.round(\n performance.now() - finalResult.streamMetrics.startTime\n );\n\n this.environment.logger.info(\n `Rendered ${finalResult.completedRoutes.size} unique routes in ${finalResult.streamMetrics.duration}ms`\n );\n if (process.env[\"NODE_ENV\"] !== \"production\") {\n this.environment.logger.warn(\n `THIS IS BUILD IS NOT INTENDED FOR PRODUCTION (${process.env[\"NODE_ENV\"]})`\n );\n }\n\n // Update timing\n timing.render = Date.now() - (timing.renderStart ?? timing.start);\n } catch (error) {\n throw error;\n }\n\n // Cleanup\n try {\n worker.postMessage({ type: \"SHUTDOWN\", id: \"*\" });\n await new Promise<void>((resolve, reject) => {\n const shutdownHandler = (msg: any) => {\n if (msg.type === \"SHUTDOWN_COMPLETE\") {\n worker.removeListener(\"message\", shutdownHandler);\n worker\n .terminate()\n .then((code) =>\n code === 1\n ? resolve()\n : reject(new Error(`Worker terminated with code ${code}`))\n )\n .catch(reject);\n }\n };\n worker.on(\"message\", shutdownHandler);\n });\n } catch (error) {\n throw error;\n }\n },\n } as const;\n}\n"],"names":["resolvedConfig","options"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { CreateHandlerOptions, RenderPageResult } from "../types.js";
2
- export declare function renderPage(handlerOptions: CreateHandlerOptions<unknown, React.ComponentType<unknown>>): AsyncGenerator<RenderPageResult, void, unknown>;
1
+ import type { CreateHandlerOptions, RenderPageResult, PagePropOpt } from "../types.js";
2
+ export declare function renderPage<T extends PagePropOpt = PagePropOpt>(handlerOptions: CreateHandlerOptions<T>): AsyncGenerator<RenderPageResult, void, unknown>;
3
3
  //# sourceMappingURL=renderPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK1E,wBAAuB,UAAU,CAC/B,cAAc,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAC1E,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CA4IjD"}
1
+ {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACZ,MAAM,aAAa,CAAC;AAKrB,wBAAuB,UAAU,CAC/B,CAAC,SAAS,WAAW,GAAG,WAAW,EAEnC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC,GACtC,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CA4IjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderPage.js","sources":["../../../plugin/react-static/renderPage.ts"],"sourcesContent":["import { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { resolvePageAndProps } from \"../helpers/resolvePageAndProps.js\";\nimport type { CreateHandlerOptions, RenderPageResult } from \"../types.js\";\nimport { renderStreams } from \"./renderStreams.js\";\nimport { collectHtmlWorkerContent } from \"./collectHtmlWorkerContent.js\";\nimport { collectRscContent } from \"./collectRscContent.js\";\n\nexport async function* renderPage(\n handlerOptions: CreateHandlerOptions<unknown, React.ComponentType<unknown>>\n): AsyncGenerator<RenderPageResult, void, unknown> {\n if (!handlerOptions.pagePath) {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n try {\n const metrics = createRenderMetrics(handlerOptions.route);\n\n const pageAndPropsResult = await resolvePageAndProps(handlerOptions);\n\n if (pageAndPropsResult.type === \"error\") {\n yield {\n type: \"error\",\n error: pageAndPropsResult.error,\n };\n return;\n }\n\n if (pageAndPropsResult.type === \"skip\") {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n const { PageComponent, pageProps } = pageAndPropsResult;\n\n const newHandlerOptions = {\n ...handlerOptions,\n PageComponent: PageComponent,\n pageProps: pageProps,\n } satisfies CreateHandlerOptions;\n // Create streams with CSS files\n const [rscFull, rscHeadless] = await renderStreams(newHandlerOptions);\n // Handle stream creation errors\n if (rscFull.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscFull.type === \"error\"\n ? `Failed to create RSC full stream: ${\n rscFull.error instanceof Error\n ? rscFull.error.message\n : String(rscFull.error)\n }`\n : \"RSC full stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscFull.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC full stream is undefined\"),\n };\n return;\n }\n\n if (rscHeadless.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscHeadless.type === \"error\"\n ? `Failed to create RSC headless stream: ${\n rscHeadless.error instanceof Error\n ? rscHeadless.error.message\n : String(rscHeadless.error)\n }`\n : \"RSC headless stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscHeadless.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC headless stream is undefined\"),\n };\n return;\n }\n\n // Collect HTML and RSC content\n const [\n { stream: rscStream, metrics: rscMetrics },\n { stream: htmlStream, metrics: htmlMetrics },\n ] = await Promise.all([\n collectRscContent(rscHeadless.stream, handlerOptions),\n collectHtmlWorkerContent(rscFull.stream, handlerOptions),\n ]);\n\n // Update metrics\n metrics.htmlSizes.set(handlerOptions.route, htmlMetrics.bytes);\n metrics.rscSizes.set(handlerOptions.route, rscMetrics.bytes);\n metrics.htmlSize = htmlMetrics.bytes;\n metrics.rscSize = rscMetrics.bytes;\n\n // Combine metrics from both streams\n metrics.streamMetrics = {\n ...htmlMetrics,\n chunks: Math.max(htmlMetrics.chunks, rscMetrics.chunks),\n bytes: Math.max(htmlMetrics.bytes, rscMetrics.bytes),\n duration: Math.max(htmlMetrics.duration, rscMetrics.duration),\n startTime: Math.min(htmlMetrics.startTime, rscMetrics.startTime),\n };\n\n metrics.processingTime = metrics.streamMetrics.duration;\n metrics.chunks = metrics.streamMetrics.chunks;\n metrics.chunkRate =\n metrics.streamMetrics.chunks / (metrics.processingTime / 1000);\n\n // Emit metrics via callback\n if (handlerOptions.onMetrics) {\n handlerOptions.onMetrics(metrics);\n }\n\n yield {\n type: \"success\",\n html: htmlStream,\n rsc: rscStream,\n metrics: {\n rscFull: htmlMetrics,\n rscHeadless: rscMetrics,\n },\n } as const;\n } catch (err) {\n yield {\n type: \"error\",\n error:\n err instanceof Error\n ? err\n : typeof err === \"string\"\n ? new Error(err)\n : (err as Error),\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderPage.js","sources":["../../../plugin/react-static/renderPage.ts"],"sourcesContent":["import { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { resolvePageAndProps } from \"../helpers/resolvePageAndProps.js\";\nimport type {\n CreateHandlerOptions,\n RenderPageResult,\n PagePropOpt,\n} from \"../types.js\";\nimport { renderStreams } from \"./renderStreams.js\";\nimport { collectHtmlWorkerContent } from \"./collectHtmlWorkerContent.js\";\nimport { collectRscContent } from \"./collectRscContent.js\";\n\nexport async function* renderPage<\n T extends PagePropOpt = PagePropOpt\n>(\n handlerOptions: CreateHandlerOptions<T>\n): AsyncGenerator<RenderPageResult, void, unknown> {\n if (!handlerOptions.pagePath) {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n try {\n const metrics = createRenderMetrics(handlerOptions.route);\n\n const pageAndPropsResult = await resolvePageAndProps(handlerOptions);\n\n if (pageAndPropsResult.type === \"error\") {\n yield {\n type: \"error\",\n error: pageAndPropsResult.error,\n };\n return;\n }\n\n if (pageAndPropsResult.type === \"skip\") {\n yield {\n type: \"skip\",\n };\n return;\n }\n\n const { PageComponent, pageProps } = pageAndPropsResult;\n\n const newHandlerOptions = {\n ...handlerOptions,\n PageComponent,\n pageProps,\n } as CreateHandlerOptions<T>;\n // Create streams with CSS files\n const [rscFull, rscHeadless] = await renderStreams(newHandlerOptions);\n // Handle stream creation errors\n if (rscFull.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscFull.type === \"error\"\n ? `Failed to create RSC full stream: ${\n rscFull.error instanceof Error\n ? rscFull.error.message\n : String(rscFull.error)\n }`\n : \"RSC full stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscFull.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC full stream is undefined\"),\n };\n return;\n }\n\n if (rscHeadless.type !== \"success\") {\n yield {\n type: \"error\",\n error: new Error(\n rscHeadless.type === \"error\"\n ? `Failed to create RSC headless stream: ${\n rscHeadless.error instanceof Error\n ? rscHeadless.error.message\n : String(rscHeadless.error)\n }`\n : \"RSC headless stream creation was skipped\"\n ),\n };\n return;\n }\n\n if (!rscHeadless.stream) {\n yield {\n type: \"error\",\n error: new Error(\"RSC headless stream is undefined\"),\n };\n return;\n }\n\n // Collect HTML and RSC content\n const [\n { stream: rscStream, metrics: rscMetrics },\n { stream: htmlStream, metrics: htmlMetrics },\n ] = await Promise.all([\n collectRscContent(rscHeadless.stream, handlerOptions),\n collectHtmlWorkerContent(rscFull.stream, handlerOptions),\n ]);\n\n // Update metrics\n metrics.htmlSizes.set(handlerOptions.route, htmlMetrics.bytes);\n metrics.rscSizes.set(handlerOptions.route, rscMetrics.bytes);\n metrics.htmlSize = htmlMetrics.bytes;\n metrics.rscSize = rscMetrics.bytes;\n\n // Combine metrics from both streams\n metrics.streamMetrics = {\n ...htmlMetrics,\n chunks: Math.max(htmlMetrics.chunks, rscMetrics.chunks),\n bytes: Math.max(htmlMetrics.bytes, rscMetrics.bytes),\n duration: Math.max(htmlMetrics.duration, rscMetrics.duration),\n startTime: Math.min(htmlMetrics.startTime, rscMetrics.startTime),\n };\n\n metrics.processingTime = metrics.streamMetrics.duration;\n metrics.chunks = metrics.streamMetrics.chunks;\n metrics.chunkRate =\n metrics.streamMetrics.chunks / (metrics.processingTime / 1000);\n\n // Emit metrics via callback\n if (handlerOptions.onMetrics) {\n handlerOptions.onMetrics(metrics);\n }\n\n yield {\n type: \"success\",\n html: htmlStream,\n rsc: rscStream,\n metrics: {\n rscFull: htmlMetrics,\n rscHeadless: rscMetrics,\n },\n } as const;\n } catch (err) {\n yield {\n type: \"error\",\n error:\n err instanceof Error\n ? err\n : typeof err === \"string\"\n ? new Error(err)\n : (err as Error),\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { RenderPagesResult, AutoDiscoveredFiles, CssContent, MultiPageHandlerOptions } from "../types.js";
2
- export declare function renderPages(autoDiscoveredFiles: AutoDiscoveredFiles, handlerOptions: MultiPageHandlerOptions, cssFilesByPage: Map<string, Map<string, CssContent>>): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown>;
1
+ import type { RenderPagesResult, AutoDiscoveredFiles, CssContent, MultiPageHandlerOptions, PagePropOpt, InlineCssOpt } from "../types.js";
2
+ export declare function renderPages<T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>(autoDiscoveredFiles: AutoDiscoveredFiles, handlerOptions: MultiPageHandlerOptions<T>, cssFilesByPage: Map<string, Map<string, CssContent<InlineCSS>>>): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown>;
3
3
  //# sourceMappingURL=renderPages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderPages.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPages.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE9H,wBAAuB,WAAW,CAChC,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,uBAAuB,EACvC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GACnD,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAqI/D"}
1
+ {"version":3,"file":"renderPages.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPages.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,uBAAuB,EACvB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,wBAAuB,WAAW,CAChC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,mBAAmB,EAAE,mBAAmB,EACxC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAC1C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,GAC9D,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAqI/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderPages.js","sources":["../../../plugin/react-static/renderPages.ts"],"sourcesContent":["/**\n * renderPages.ts\n *\n * PURPOSE: Processes React Server Components (RSC) streams and writes output files\n *\n * This module:\n * 1. Creates RSC and HTML streams for each route\n * 2. Pipes RSC stream directly to .rsc files\n * 3. Transforms RSC to HTML via worker and pipes to .html files\n * 4. Collects metrics and handles errors\n */\nimport { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { renderPage } from \"./renderPage.js\";\nimport { PassThrough } from \"node:stream\";\nimport type { StreamMetrics, RenderPagesResult, AutoDiscoveredFiles, CssContent, MultiPageHandlerOptions } from \"../types.js\";\n\nexport async function* renderPages(\n autoDiscoveredFiles: AutoDiscoveredFiles,\n handlerOptions: MultiPageHandlerOptions,\n cssFilesByPage: Map<string, Map<string, CssContent>>,\n): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown> {\n const routes = Array.from(autoDiscoveredFiles.urlMap.keys());\n const completedRoutes = new Set<string>();\n const failedRoutes = new Set<string>();\n const baseMetrics = createRenderMetrics(routes[0]);\n const results = new Map<\n string,\n {\n html: PassThrough;\n rsc: PassThrough;\n metrics: {\n rscFull: StreamMetrics;\n rscHeadless: StreamMetrics;\n };\n }\n >();\n const errors: Error[] = [];\n\n if (!autoDiscoveredFiles.urlMap) {\n throw new Error(\"No urlMap provided to renderPages\");\n }\n\n for (const route of routes) {\n const { page, props } = autoDiscoveredFiles.urlMap.get(route) || {};\n if (!page) continue;\n\n try {\n const pageRenderer = renderPage({\n ...handlerOptions,\n route,\n pagePath: page,\n propsPath: props,\n cssFiles: cssFilesByPage.get(route) ?? new Map(),\n });\n\n for await (const result of pageRenderer) {\n if (result.type === \"skip\") continue;\n\n if (result.type === \"error\") {\n failedRoutes.add(route);\n errors.push(result.error);\n yield {\n type: \"error\",\n error: result.error,\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n continue;\n }\n\n if (result.type === \"success\") {\n completedRoutes.add(route);\n results.set(route, {\n html: result.html,\n rsc: result.rsc,\n metrics: result.metrics,\n });\n\n // Update metrics\n baseMetrics.htmlSizes.set(route, result.metrics.rscFull.bytes);\n baseMetrics.rscSizes.set(route, result.metrics.rscHeadless.bytes);\n baseMetrics.streamMetrics = {\n ...baseMetrics.streamMetrics,\n chunks: Math.max(\n baseMetrics.streamMetrics.chunks,\n result.metrics.rscFull.chunks\n ),\n bytes: Math.max(\n baseMetrics.streamMetrics.bytes,\n result.metrics.rscFull.bytes\n ),\n duration: Math.max(\n baseMetrics.streamMetrics.duration,\n result.metrics.rscFull.duration\n ),\n startTime: Math.min(\n baseMetrics.streamMetrics.startTime,\n result.metrics.rscFull.startTime\n ),\n };\n\n yield {\n type: \"success\",\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n } catch (err) {\n failedRoutes.add(route);\n errors.push(err instanceof Error ? err : new Error(String(err)));\n yield {\n type: \"error\",\n error: err instanceof Error ? err : new Error(String(err)),\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n\n if (failedRoutes.size > 0) {\n return {\n type: \"error\",\n error: errors[0],\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n\n return {\n type: \"success\",\n completedRoutes,\n failedRoutes: undefined,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderPages.js","sources":["../../../plugin/react-static/renderPages.ts"],"sourcesContent":["/**\n * renderPages.ts\n *\n * PURPOSE: Processes React Server Components (RSC) streams and writes output files\n *\n * This module:\n * 1. Creates RSC and HTML streams for each route\n * 2. Pipes RSC stream directly to .rsc files\n * 3. Transforms RSC to HTML via worker and pipes to .html files\n * 4. Collects metrics and handles errors\n */\nimport { createRenderMetrics } from \"../helpers/metrics.js\";\nimport { renderPage } from \"./renderPage.js\";\nimport { PassThrough } from \"node:stream\";\nimport type {\n StreamMetrics,\n RenderPagesResult,\n AutoDiscoveredFiles,\n CssContent,\n MultiPageHandlerOptions,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\n\nexport async function* renderPages<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>(\n autoDiscoveredFiles: AutoDiscoveredFiles,\n handlerOptions: MultiPageHandlerOptions<T>,\n cssFilesByPage: Map<string, Map<string, CssContent<InlineCSS>>>\n): AsyncGenerator<RenderPagesResult, RenderPagesResult, unknown> {\n const routes = Array.from(autoDiscoveredFiles.urlMap.keys());\n const completedRoutes = new Set<string>();\n const failedRoutes = new Set<string>();\n const baseMetrics = createRenderMetrics(routes[0]);\n const results = new Map<\n string,\n {\n html: PassThrough;\n rsc: PassThrough;\n metrics: {\n rscFull: StreamMetrics;\n rscHeadless: StreamMetrics;\n };\n }\n >();\n const errors: Error[] = [];\n\n if (!autoDiscoveredFiles.urlMap) {\n throw new Error(\"No urlMap provided to renderPages\");\n }\n\n for (const route of routes) {\n const { page, props } = autoDiscoveredFiles.urlMap.get(route) || {};\n if (!page) continue;\n\n try {\n const pageRenderer = renderPage({\n ...handlerOptions,\n route,\n pagePath: page,\n propsPath: props,\n cssFiles: cssFilesByPage.get(route) ?? new Map(),\n });\n\n for await (const result of pageRenderer) {\n if (result.type === \"skip\") continue;\n\n if (result.type === \"error\") {\n failedRoutes.add(route);\n errors.push(result.error);\n yield {\n type: \"error\",\n error: result.error,\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n continue;\n }\n\n if (result.type === \"success\") {\n completedRoutes.add(route);\n results.set(route, {\n html: result.html,\n rsc: result.rsc,\n metrics: result.metrics,\n });\n\n // Update metrics\n baseMetrics.htmlSizes.set(route, result.metrics.rscFull.bytes);\n baseMetrics.rscSizes.set(route, result.metrics.rscHeadless.bytes);\n baseMetrics.streamMetrics = {\n ...baseMetrics.streamMetrics,\n chunks: Math.max(\n baseMetrics.streamMetrics.chunks,\n result.metrics.rscFull.chunks\n ),\n bytes: Math.max(\n baseMetrics.streamMetrics.bytes,\n result.metrics.rscFull.bytes\n ),\n duration: Math.max(\n baseMetrics.streamMetrics.duration,\n result.metrics.rscFull.duration\n ),\n startTime: Math.min(\n baseMetrics.streamMetrics.startTime,\n result.metrics.rscFull.startTime\n ),\n };\n\n yield {\n type: \"success\",\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n } catch (err) {\n failedRoutes.add(route);\n errors.push(err instanceof Error ? err : new Error(String(err)));\n yield {\n type: \"error\",\n error: err instanceof Error ? err : new Error(String(err)),\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n }\n\n if (failedRoutes.size > 0) {\n return {\n type: \"error\",\n error: errors[0],\n failedRoutes,\n completedRoutes,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n }\n\n return {\n type: \"success\",\n completedRoutes,\n failedRoutes: undefined,\n htmlSizes: baseMetrics.htmlSizes,\n rscSizes: baseMetrics.rscSizes,\n streamMetrics: baseMetrics.streamMetrics,\n results,\n } as const;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CreateHandlerOptions } from "../types.js";
1
+ import type { CreateHandlerOptions, PagePropOpt } from "../types.js";
2
2
  /**
3
3
  * Creates handlers for both document and RSC streams
4
4
  *
@@ -6,7 +6,7 @@ import type { CreateHandlerOptions } from "../types.js";
6
6
  * @param options The render options
7
7
  * @returns A tuple containing the document worker result and RSC direct result
8
8
  */
9
- export declare function renderStreams(handler: CreateHandlerOptions): Promise<[{
9
+ export declare function renderStreams<T extends PagePropOpt = PagePropOpt>(handler: CreateHandlerOptions<T>): Promise<[{
10
10
  type: string;
11
11
  stream: any;
12
12
  error?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"renderStreams.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderStreams.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB;;;;;;;;;;;;;;;;IAiB9B"}
1
+ {"version":3,"file":"renderStreams.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderStreams.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;IAgBjC"}
@@ -9,14 +9,14 @@ import React__default from 'react';
9
9
  function renderStreams(handler) {
10
10
  return Promise.all([
11
11
  /**
12
- * This stream goes to the document worker for client side rendering with full HTML structure,
13
- * links are already bubbled up in the static document which required us
12
+ * This stream goes to the document worker for client side rendering with full HTML structure,
13
+ * links are already bubbled up in the static document which required us
14
14
  * to include the head in the stream as well
15
15
  */
16
16
  createHandler(handler),
17
17
  /**
18
- * This stream is saved to index.rsc file (if configured) and can be used
19
- * for navigating to pages (without the Html wrapper, but does contain
18
+ * This stream is saved to index.rsc file (if configured) and can be used
19
+ * for navigating to pages (without the Html wrapper, but does contain
20
20
  * css/head information that can bubble up to the browser's dom)
21
21
  */
22
22
  createHandler({ ...handler, Html: React__default.Fragment })
@@ -1 +1 @@
1
- {"version":3,"file":"renderStreams.js","sources":["../../../plugin/react-static/renderStreams.ts"],"sourcesContent":["/**\n * renderStreams.ts\n * \n * PURPOSE: Creates specialized streams for React Server Components (RSC) rendering\n * \n * This module:\n * 1. Creates RSC stream (React.Fragment wrapper) for client-side navigation\n * - This stream is saved to .rsc files and used when navigating between pages\n * - The Fragment wrapper allows the browser to update only the necessary parts of the DOM\n * - This is more efficient than reloading the entire HTML document\n * 2. Creates Document stream (Html wrapper) for initial page loads\n * - This stream includes the full HTML document structure\n * - Used for the initial page load when the browser needs the complete HTML\n * 3. Sets up stream handlers with proper wrappers and options\n * 4. Returns streams for renderPages to process\n */\nimport { createHandler } from \"../helpers/createHandler.js\";\nimport type {\n CreateHandlerOptions,\n} from \"../types.js\";\nimport React from \"react\";\n\n/**\n * Creates handlers for both document and RSC streams\n * \n * @param handler The handler options for creating streams\n * @param options The render options\n * @returns A tuple containing the document worker result and RSC direct result\n */\nexport function renderStreams(\n handler: CreateHandlerOptions,\n) {\n return Promise.all([\n /**\n * This stream goes to the document worker for client side rendering with full HTML structure, \n * links are already bubbled up in the static document which required us \n * to include the head in the stream as well\n */\n createHandler(handler),\n \n /**\n * This stream is saved to index.rsc file (if configured) and can be used \n * for navigating to pages (without the Html wrapper, but does contain \n * css/head information that can bubble up to the browser's dom)\n */\n createHandler({...handler, Html: React.Fragment}),\n ]);\n}\n"],"names":["React"],"mappings":";;;;;;;;AA6BO,SAAS,cACd,OACA,EAAA;AACA,EAAA,OAAO,QAAQ,GAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMjB,cAAc,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOrB,cAAc,EAAC,GAAG,SAAS,IAAM,EAAAA,cAAA,CAAM,UAAS;AAAA,GACjD,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"renderStreams.js","sources":["../../../plugin/react-static/renderStreams.ts"],"sourcesContent":["/**\n * renderStreams.ts\n *\n * PURPOSE: Creates specialized streams for React Server Components (RSC) rendering\n *\n * This module:\n * 1. Creates RSC stream (React.Fragment wrapper) for client-side navigation\n * - This stream is saved to .rsc files and used when navigating between pages\n * - The Fragment wrapper allows the browser to update only the necessary parts of the DOM\n * - This is more efficient than reloading the entire HTML document\n * 2. Creates Document stream (Html wrapper) for initial page loads\n * - This stream includes the full HTML document structure\n * - Used for the initial page load when the browser needs the complete HTML\n * 3. Sets up stream handlers with proper wrappers and options\n * 4. Returns streams for renderPages to process\n */\nimport { createHandler } from \"../helpers/createHandler.js\";\nimport type {\n CreateHandlerOptions,\n PagePropOpt\n} from \"../types.js\";\nimport React from \"react\";\n\n/**\n * Creates handlers for both document and RSC streams\n *\n * @param handler The handler options for creating streams\n * @param options The render options\n * @returns A tuple containing the document worker result and RSC direct result\n */\nexport function renderStreams<\n T extends PagePropOpt = PagePropOpt\n>(handler: CreateHandlerOptions<T>) {\n return Promise.all([\n /**\n * This stream goes to the document worker for client side rendering with full HTML structure,\n * links are already bubbled up in the static document which required us\n * to include the head in the stream as well\n */\n createHandler(handler),\n\n /**\n * This stream is saved to index.rsc file (if configured) and can be used\n * for navigating to pages (without the Html wrapper, but does contain\n * css/head information that can bubble up to the browser's dom)\n */\n createHandler({ ...handler, Html: React.Fragment }),\n ]);\n}\n"],"names":["React"],"mappings":";;;;;;;;AA8BO,SAAS,cAEd,OAAkC,EAAA;AAClC,EAAA,OAAO,QAAQ,GAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMjB,cAAc,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOrB,cAAc,EAAE,GAAG,SAAS,IAAM,EAAAA,cAAA,CAAM,UAAU;AAAA,GACnD,CAAA;AACH;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function createMappingsSerializer(): (newGeneratedLine: number, newGeneratedColumn: number, newSourceIndex: number, newOriginalLine: number, newOriginalColumn: number, newNameIndex: number) => string;
2
+ //# sourceMappingURL=createMappingsSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMappingsSerializer.d.ts","sourceRoot":"","sources":["../../../plugin/source-map/createMappingsSerializer.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,uBAUhB,MAAM,sBACJ,MAAM,kBACV,MAAM,mBACL,MAAM,qBACJ,MAAM,gBACX,MAAM,YAoKvB"}