vite-plugin-react-server 0.3.3 → 0.3.5

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 (488) hide show
  1. package/README.md +113 -222
  2. package/bin/patch.mjs +84 -0
  3. package/dist/_virtual/sourcemap-codec.umd.js +11 -0
  4. package/dist/_virtual/sourcemap-codec.umd.js.map +1 -0
  5. package/dist/_virtual/sourcemap-codec.umd2.js +9 -0
  6. package/dist/_virtual/sourcemap-codec.umd2.js.map +1 -0
  7. package/dist/client.d.ts +3 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +7 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/index.d.ts +6 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +32 -3
  14. package/dist/index.js.map +1 -1
  15. package/dist/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +457 -0
  16. package/dist/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -0
  17. package/dist/node_modules/magic-string/dist/magic-string.es.js +1283 -0
  18. package/dist/node_modules/magic-string/dist/magic-string.es.js.map +1 -0
  19. package/dist/package.json +131 -0
  20. package/dist/plugin/assertServerCondition.d.ts.map +1 -0
  21. package/dist/plugin/assertServerCondition.js +15 -0
  22. package/dist/plugin/build/createClientBuildConfig.d.ts +3 -0
  23. package/dist/plugin/build/createClientBuildConfig.d.ts.map +1 -0
  24. package/dist/plugin/build/createClientBuildConfig.js +14 -0
  25. package/dist/plugin/build/createServerBuildConfig.d.ts +12 -0
  26. package/dist/plugin/build/createServerBuildConfig.d.ts.map +1 -0
  27. package/dist/plugin/build/createServerBuildConfig.js +40 -0
  28. package/dist/plugin/build/createSharedBuildConfig.d.ts +5 -0
  29. package/dist/plugin/build/createSharedBuildConfig.d.ts.map +1 -0
  30. package/dist/plugin/build/createSharedBuildConfig.js +28 -0
  31. package/dist/plugin/build/mergeInputs.d.ts +9 -0
  32. package/dist/plugin/build/mergeInputs.d.ts.map +1 -0
  33. package/dist/plugin/build/mergeInputs.js +56 -0
  34. package/dist/plugin/checkFilesExist.d.ts +3 -0
  35. package/dist/plugin/checkFilesExist.d.ts.map +1 -0
  36. package/dist/plugin/checkFilesExist.js +78 -0
  37. package/dist/plugin/checkFilesExist.js.map +1 -0
  38. package/dist/{collect-css-manifest.d.ts → plugin/collect-css-manifest.d.ts} +2 -2
  39. package/dist/plugin/collect-css-manifest.d.ts.map +1 -0
  40. package/dist/{src → plugin}/collect-css-manifest.js +8 -5
  41. package/dist/plugin/collect-css-manifest.js.map +1 -0
  42. package/dist/plugin/components.d.ts.map +1 -0
  43. package/dist/{src → plugin}/components.js +9 -4
  44. package/dist/plugin/components.js.map +1 -0
  45. package/dist/plugin/config/defaults.d.ts +51 -0
  46. package/dist/plugin/config/defaults.d.ts.map +1 -0
  47. package/dist/plugin/config/defaults.js +52 -0
  48. package/dist/plugin/config/defaults.js.map +1 -0
  49. package/dist/plugin/config/getCondition.d.ts +2 -0
  50. package/dist/plugin/config/getCondition.d.ts.map +1 -0
  51. package/dist/plugin/config/getCondition.js +11 -0
  52. package/dist/plugin/config/getCondition.js.map +1 -0
  53. package/dist/plugin/config/getPaths.d.ts +5 -0
  54. package/dist/plugin/config/getPaths.d.ts.map +1 -0
  55. package/dist/plugin/config/getPaths.js +21 -0
  56. package/dist/plugin/config/getPaths.js.map +1 -0
  57. package/dist/plugin/config/getWorkerPath.d.ts +2 -0
  58. package/dist/plugin/config/getWorkerPath.d.ts.map +1 -0
  59. package/dist/plugin/config/getWorkerPath.js +4 -0
  60. package/dist/plugin/config/index.d.ts +8 -0
  61. package/dist/plugin/config/index.d.ts.map +1 -0
  62. package/dist/plugin/config/index.js +7 -0
  63. package/dist/plugin/config/moduleIdDefault.d.ts +8 -0
  64. package/dist/plugin/config/moduleIdDefault.d.ts.map +1 -0
  65. package/dist/plugin/config/moduleIdDefault.js +23 -0
  66. package/dist/plugin/config/moduleIdDefault.js.map +1 -0
  67. package/dist/plugin/config/resolveOptions.d.ts +9 -0
  68. package/dist/plugin/config/resolveOptions.d.ts.map +1 -0
  69. package/dist/plugin/config/resolveOptions.js +56 -0
  70. package/dist/plugin/config/resolveOptions.js.map +1 -0
  71. package/dist/plugin/config/resolvePages.d.ts +9 -0
  72. package/dist/plugin/config/resolvePages.d.ts.map +1 -0
  73. package/dist/plugin/config/resolvePages.js +38 -0
  74. package/dist/plugin/config/resolvePages.js.map +1 -0
  75. package/dist/plugin/config/resolveUserConfig.d.ts +18 -0
  76. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -0
  77. package/dist/plugin/config/resolveUserConfig.js +84 -0
  78. package/dist/plugin/config/resolveUserConfig.js.map +1 -0
  79. package/dist/plugin/copy-dir.d.ts.map +1 -0
  80. package/dist/plugin/copy-dir.js +20 -0
  81. package/dist/plugin/getCondition.d.ts +2 -0
  82. package/dist/plugin/getCondition.d.ts.map +1 -0
  83. package/dist/plugin/getCondition.js +1 -0
  84. package/dist/plugin/getEnv.d.ts.map +1 -0
  85. package/dist/plugin/getEnv.js +107 -0
  86. package/dist/plugin/helpers/createClientInputNormalizer.d.ts +8 -0
  87. package/dist/plugin/helpers/createClientInputNormalizer.d.ts.map +1 -0
  88. package/dist/plugin/helpers/createClientInputNormalizer.js +35 -0
  89. package/dist/plugin/helpers/createServerInputNormalizer.d.ts +9 -0
  90. package/dist/plugin/helpers/createServerInputNormalizer.d.ts.map +1 -0
  91. package/dist/plugin/helpers/createServerInputNormalizer.js +37 -0
  92. package/dist/plugin/helpers/createStaticInputNormalizer.d.ts +7 -0
  93. package/dist/plugin/helpers/createStaticInputNormalizer.d.ts.map +1 -0
  94. package/dist/plugin/helpers/createStaticInputNormalizer.js +18 -0
  95. package/dist/plugin/helpers/getModuleManifest.d.ts +12 -0
  96. package/dist/plugin/helpers/getModuleManifest.d.ts.map +1 -0
  97. package/dist/plugin/helpers/getModuleManifest.js +24 -0
  98. package/dist/plugin/helpers/getModuleManifest.js.map +1 -0
  99. package/dist/plugin/helpers/inputNormalizer.d.ts +3 -0
  100. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -0
  101. package/dist/plugin/helpers/inputNormalizer.js +35 -0
  102. package/dist/plugin/helpers/inputNormalizer.js.map +1 -0
  103. package/dist/plugin/helpers/inputNormalizerWorker.d.ts +11 -0
  104. package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +1 -0
  105. package/dist/plugin/helpers/inputNormalizerWorker.js +30 -0
  106. package/dist/plugin/helpers/normalizedRelativePath.d.ts.map +1 -0
  107. package/dist/plugin/helpers/normalizedRelativePath.js +36 -0
  108. package/dist/plugin/helpers/resolveFilePath.d.ts +13 -0
  109. package/dist/plugin/helpers/resolveFilePath.d.ts.map +1 -0
  110. package/dist/plugin/helpers/resolveFilePath.js +74 -0
  111. package/dist/plugin/helpers/resolveWorkerModule.d.ts +6 -0
  112. package/dist/plugin/helpers/resolveWorkerModule.d.ts.map +1 -0
  113. package/dist/plugin/helpers/resolveWorkerModule.js +24 -0
  114. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -0
  115. package/dist/{src → plugin}/helpers/tryManifest.js +11 -6
  116. package/dist/plugin/helpers/tryManifest.js.map +1 -0
  117. package/dist/plugin/helpers/validateModuleBase.d.ts +3 -0
  118. package/dist/plugin/helpers/validateModuleBase.d.ts.map +1 -0
  119. package/dist/plugin/helpers/validateModuleBase.js +16 -0
  120. package/dist/plugin/helpers/validateResolvedConfig.d.ts +3 -0
  121. package/dist/plugin/helpers/validateResolvedConfig.d.ts.map +1 -0
  122. package/dist/plugin/helpers/validateResolvedConfig.js +17 -0
  123. package/dist/plugin/index.d.ts +3 -0
  124. package/dist/plugin/index.d.ts.map +1 -0
  125. package/dist/plugin/index.js +1 -0
  126. package/dist/plugin/loader/createBuildLoader.d.ts +9 -0
  127. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -0
  128. package/dist/plugin/loader/createBuildLoader.js +52 -0
  129. package/dist/plugin/loader/createBuildLoader.js.map +1 -0
  130. package/dist/plugin/loader/createCssLoader.d.ts +30 -0
  131. package/dist/plugin/loader/createCssLoader.d.ts.map +1 -0
  132. package/dist/plugin/loader/createCssLoader.js +35 -0
  133. package/dist/{html → plugin/loader}/createPageLoader.d.ts +2 -4
  134. package/dist/plugin/loader/createPageLoader.d.ts.map +1 -0
  135. package/dist/plugin/loader/createPageLoader.js +57 -0
  136. package/dist/plugin/manifest.d.ts.map +1 -0
  137. package/dist/plugin/manifest.js +13 -0
  138. package/dist/plugin/module-graph.d.ts.map +1 -0
  139. package/dist/plugin/module-graph.js +35 -0
  140. package/dist/plugin/plugin.d.ts +7 -0
  141. package/dist/plugin/plugin.d.ts.map +1 -0
  142. package/dist/plugin/plugin.js +8 -0
  143. package/dist/plugin/preserver/index.d.ts +2 -0
  144. package/dist/plugin/preserver/index.d.ts.map +1 -0
  145. package/dist/plugin/preserver/index.js +1 -0
  146. package/dist/plugin/preserver/plugin.d.ts +4 -0
  147. package/dist/plugin/preserver/plugin.d.ts.map +1 -0
  148. package/dist/plugin/preserver/plugin.js +90 -0
  149. package/dist/plugin/preserver/plugin.js.map +1 -0
  150. package/dist/plugin/react-client/index.d.ts +2 -0
  151. package/dist/plugin/react-client/index.d.ts.map +1 -0
  152. package/dist/plugin/react-client/index.js +1 -0
  153. package/dist/plugin/react-client/plugin.d.ts +4 -0
  154. package/dist/plugin/react-client/plugin.d.ts.map +1 -0
  155. package/dist/plugin/react-client/plugin.js +34 -0
  156. package/dist/plugin/react-client/plugin.js.map +1 -0
  157. package/dist/plugin/react-server/createDevMiddleware.d.ts.map +1 -0
  158. package/dist/plugin/react-server/createDevMiddleware.js +68 -0
  159. package/dist/plugin/react-server/createDevServer.d.ts.map +1 -0
  160. package/dist/plugin/react-server/createDevServer.js +4 -0
  161. package/dist/plugin/react-server/createHandler.d.ts +17 -0
  162. package/dist/plugin/react-server/createHandler.d.ts.map +1 -0
  163. package/dist/{src → plugin}/react-server/createHandler.js +28 -17
  164. package/dist/plugin/react-server/createHandler.js.map +1 -0
  165. package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +1 -0
  166. package/dist/plugin/react-server/createReactNodeStreamer.js +7 -0
  167. package/dist/{react-server → plugin/react-server}/createRscStream.d.ts +1 -1
  168. package/dist/plugin/react-server/createRscStream.d.ts.map +1 -0
  169. package/dist/{src → plugin}/react-server/createRscStream.js +14 -13
  170. package/dist/plugin/react-server/createRscStream.js.map +1 -0
  171. package/dist/{react-server → plugin/react-server}/createSsrHandler.d.ts +1 -1
  172. package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -0
  173. package/dist/plugin/react-server/createSsrHandler.js +102 -0
  174. package/dist/plugin/react-server/index.d.ts +4 -0
  175. package/dist/plugin/react-server/index.d.ts.map +1 -0
  176. package/dist/plugin/react-server/index.js +10 -0
  177. package/dist/{react-server → plugin/react-server}/plugin.d.ts +2 -2
  178. package/dist/plugin/react-server/plugin.d.ts.map +1 -0
  179. package/dist/plugin/react-server/plugin.js +375 -0
  180. package/dist/plugin/react-server/plugin.js.map +1 -0
  181. package/dist/plugin/resolvePage.d.ts.map +1 -0
  182. package/dist/{src → plugin}/resolvePage.js +8 -4
  183. package/dist/plugin/resolvePage.js.map +1 -0
  184. package/dist/plugin/resolveProps.d.ts.map +1 -0
  185. package/dist/{src → plugin}/resolveProps.js +21 -8
  186. package/dist/plugin/resolveProps.js.map +1 -0
  187. package/dist/plugin/server.d.ts +2 -0
  188. package/dist/plugin/server.d.ts.map +1 -0
  189. package/dist/plugin/server.js +1 -0
  190. package/dist/plugin/transformer/index.d.ts +2 -0
  191. package/dist/plugin/transformer/index.d.ts.map +1 -0
  192. package/dist/plugin/transformer/index.js +1 -0
  193. package/dist/{transformer/index.d.ts → plugin/transformer/plugin.d.ts} +3 -3
  194. package/dist/plugin/transformer/plugin.d.ts.map +1 -0
  195. package/dist/plugin/transformer/plugin.js +86 -0
  196. package/dist/plugin/transformer/plugin.js.map +1 -0
  197. package/dist/plugin/transformer/transformer-client-components.d.ts +21 -0
  198. package/dist/plugin/transformer/transformer-client-components.d.ts.map +1 -0
  199. package/dist/plugin/transformer/transformer-client-components.js +61 -0
  200. package/dist/plugin/transformer/transformer-client-components.js.map +1 -0
  201. package/dist/{transformer/transformer.d.ts → plugin/transformer/transformer-server-actions.d.ts} +3 -4
  202. package/dist/plugin/transformer/transformer-server-actions.d.ts.map +1 -0
  203. package/dist/plugin/transformer/transformer-server-actions.js +76 -0
  204. package/dist/plugin/transformer/transformer-server-actions.js.map +1 -0
  205. package/dist/plugin/transformer/types.d.ts.map +1 -0
  206. package/dist/plugin/transformer/types.js +1 -0
  207. package/dist/plugin/types.d.ts +225 -0
  208. package/dist/plugin/types.d.ts.map +1 -0
  209. package/dist/plugin/types.js +1 -0
  210. package/dist/plugin/worker/createWorker.d.ts +15 -0
  211. package/dist/plugin/worker/createWorker.d.ts.map +1 -0
  212. package/dist/plugin/worker/createWorker.js +71 -0
  213. package/dist/plugin/worker/createWorker.js.map +1 -0
  214. package/dist/plugin/worker/html/html-worker.d.ts +2 -0
  215. package/dist/plugin/worker/html/html-worker.d.ts.map +1 -0
  216. package/dist/plugin/worker/html/html-worker.development.d.ts +2 -0
  217. package/dist/plugin/worker/html/html-worker.development.d.ts.map +1 -0
  218. package/dist/plugin/worker/html/html-worker.development.js +12 -0
  219. package/dist/plugin/worker/html/html-worker.development.js.map +1 -0
  220. package/dist/plugin/worker/html/html-worker.js +4 -0
  221. package/dist/plugin/worker/html/html-worker.production.d.ts +2 -0
  222. package/dist/plugin/worker/html/html-worker.production.d.ts.map +1 -0
  223. package/dist/plugin/worker/html/html-worker.production.js +12 -0
  224. package/dist/plugin/worker/html/html-worker.production.js.map +1 -0
  225. package/dist/plugin/worker/html/index.d.ts +2 -0
  226. package/dist/plugin/worker/html/index.d.ts.map +1 -0
  227. package/dist/plugin/worker/html/index.js +7 -0
  228. package/dist/plugin/worker/html/index.js.map +1 -0
  229. package/dist/plugin/worker/html/messageHandler.d.ts +3 -0
  230. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -0
  231. package/dist/plugin/worker/html/messageHandler.js +98 -0
  232. package/dist/plugin/worker/html/messageHandler.js.map +1 -0
  233. package/dist/plugin/worker/html/plugin.d.ts +4 -0
  234. package/dist/plugin/worker/html/plugin.d.ts.map +1 -0
  235. package/dist/plugin/worker/html/plugin.js +89 -0
  236. package/dist/plugin/worker/html/renderPages.d.ts +38 -0
  237. package/dist/plugin/worker/html/renderPages.d.ts.map +1 -0
  238. package/dist/plugin/worker/html/renderPages.js +121 -0
  239. package/dist/plugin/worker/html/renderPages.js.map +1 -0
  240. package/dist/plugin/worker/loader.d.ts.map +1 -0
  241. package/dist/plugin/worker/loader.js +11 -0
  242. package/dist/plugin/worker/loader.js.map +1 -0
  243. package/dist/plugin/worker/plugin.d.ts +10 -0
  244. package/dist/plugin/worker/plugin.d.ts.map +1 -0
  245. package/dist/plugin/worker/plugin.js +14 -0
  246. package/dist/plugin/worker/rsc/createRscStream.d.ts +5 -0
  247. package/dist/plugin/worker/rsc/createRscStream.d.ts.map +1 -0
  248. package/dist/plugin/worker/rsc/createRscStream.js +39 -0
  249. package/dist/plugin/worker/rsc/createRscStream.js.map +1 -0
  250. package/dist/plugin/worker/rsc/development.d.ts +5 -0
  251. package/dist/plugin/worker/rsc/development.d.ts.map +1 -0
  252. package/dist/plugin/worker/rsc/development.js +13 -0
  253. package/dist/plugin/worker/rsc/development.js.map +1 -0
  254. package/dist/plugin/worker/rsc/index.d.ts +4 -0
  255. package/dist/plugin/worker/rsc/index.d.ts.map +1 -0
  256. package/dist/plugin/worker/rsc/index.js +15 -0
  257. package/dist/plugin/worker/rsc/index.js.map +1 -0
  258. package/dist/plugin/worker/rsc/plugin.d.ts +4 -0
  259. package/dist/plugin/worker/rsc/plugin.d.ts.map +1 -0
  260. package/dist/plugin/worker/rsc/plugin.js +82 -0
  261. package/dist/plugin/worker/rsc/plugin.js.map +1 -0
  262. package/dist/plugin/worker/rsc/production.d.ts +5 -0
  263. package/dist/plugin/worker/rsc/production.d.ts.map +1 -0
  264. package/dist/plugin/worker/rsc/production.js +13 -0
  265. package/dist/plugin/worker/rsc/production.js.map +1 -0
  266. package/dist/plugin/worker/rsc/rsc-worker.d.ts +2 -0
  267. package/dist/plugin/worker/rsc/rsc-worker.d.ts.map +1 -0
  268. package/dist/plugin/worker/rsc/rsc-worker.js +106 -0
  269. package/dist/plugin/worker/types.d.ts +99 -0
  270. package/dist/plugin/worker/types.d.ts.map +1 -0
  271. package/dist/plugin/worker/types.js +1 -0
  272. package/dist/server.d.ts +4 -1
  273. package/dist/server.d.ts.map +1 -1
  274. package/dist/server.js +9 -0
  275. package/dist/server.js.map +1 -0
  276. package/dist/tsconfig.tsbuildinfo +1 -0
  277. package/dist/types.d.ts +1 -201
  278. package/dist/types.d.ts.map +1 -1
  279. package/dist/types.js +1 -0
  280. package/package.json +44 -25
  281. package/plugin/build/createClientBuildConfig.ts +21 -0
  282. package/plugin/build/createServerBuildConfig.ts +66 -0
  283. package/plugin/build/createSharedBuildConfig.ts +35 -0
  284. package/plugin/build/mergeInputs.ts +58 -0
  285. package/plugin/checkFilesExist.ts +82 -0
  286. package/{src → plugin}/collect-css-manifest.ts +4 -2
  287. package/plugin/config/defaults.ts +44 -0
  288. package/plugin/config/getCondition.ts +3 -0
  289. package/plugin/config/getPaths.ts +25 -0
  290. package/plugin/config/getWorkerPath.ts +5 -0
  291. package/plugin/config/index.ts +8 -0
  292. package/plugin/config/moduleIdDefault.ts +23 -0
  293. package/plugin/config/resolveOptions.ts +53 -0
  294. package/plugin/config/resolvePages.ts +43 -0
  295. package/plugin/config/resolveUserConfig.ts +97 -0
  296. package/{src → plugin}/getEnv.ts +1 -1
  297. package/plugin/helpers/createClientInputNormalizer.ts +48 -0
  298. package/plugin/helpers/createServerInputNormalizer.ts +52 -0
  299. package/plugin/helpers/createStaticInputNormalizer.ts +26 -0
  300. package/plugin/helpers/getModuleManifest.ts +31 -0
  301. package/plugin/helpers/inputNormalizer.ts +39 -0
  302. package/plugin/helpers/inputNormalizerWorker.ts +47 -0
  303. package/plugin/helpers/resolveFilePath.ts +108 -0
  304. package/plugin/helpers/resolveWorkerModule.ts +41 -0
  305. package/plugin/helpers/validateModuleBase.ts +30 -0
  306. package/plugin/helpers/validateResolvedConfig.ts +21 -0
  307. package/plugin/index.ts +2 -0
  308. package/plugin/loader/createBuildLoader.ts +60 -0
  309. package/plugin/loader/createCssLoader.ts +73 -0
  310. package/{src/html → plugin/loader}/createPageLoader.ts +35 -27
  311. package/plugin/plugin.ts +8 -0
  312. package/plugin/preserver/index.ts +1 -0
  313. package/plugin/preserver/plugin.ts +110 -0
  314. package/plugin/react-client/index.ts +1 -0
  315. package/plugin/react-client/plugin.ts +33 -0
  316. package/{src → plugin}/react-server/createDevMiddleware.ts +17 -1
  317. package/{src → plugin}/react-server/createDevServer.ts +0 -1
  318. package/{src → plugin}/react-server/createHandler.ts +31 -10
  319. package/{src → plugin}/react-server/createReactNodeStreamer.ts +1 -0
  320. package/{src → plugin}/react-server/createRscStream.ts +8 -12
  321. package/{src → plugin}/react-server/createSsrHandler.ts +16 -19
  322. package/plugin/react-server/index.ts +13 -0
  323. package/plugin/react-server/plugin.ts +465 -0
  324. package/{src → plugin}/resolvePage.ts +1 -1
  325. package/{src → plugin}/resolveProps.ts +15 -6
  326. package/plugin/server.tsx +0 -0
  327. package/plugin/transformer/index.ts +1 -0
  328. package/plugin/transformer/plugin.ts +131 -0
  329. package/plugin/transformer/transformer-client-components.ts +94 -0
  330. package/{src/transformer/transformer.ts → plugin/transformer/transformer-server-actions.ts} +14 -27
  331. package/{src → plugin}/types.ts +97 -55
  332. package/plugin/worker/createWorker.ts +84 -0
  333. package/plugin/worker/html/html-worker.development.tsx +8 -0
  334. package/plugin/worker/html/html-worker.production.tsx +8 -0
  335. package/plugin/worker/html/html-worker.ts +5 -0
  336. package/plugin/worker/html/index.ts +5 -0
  337. package/plugin/worker/html/messageHandler.ts +116 -0
  338. package/plugin/worker/html/plugin.ts +97 -0
  339. package/plugin/worker/html/renderPages.ts +187 -0
  340. package/plugin/worker/plugin.ts +17 -0
  341. package/plugin/worker/rsc/createRscStream.ts +42 -0
  342. package/plugin/worker/rsc/development.ts +6 -0
  343. package/plugin/worker/rsc/index.ts +14 -0
  344. package/plugin/worker/rsc/plugin.ts +83 -0
  345. package/plugin/worker/rsc/production.ts +6 -0
  346. package/plugin/worker/rsc/rsc-worker.tsx +128 -0
  347. package/plugin/worker/types.ts +124 -0
  348. package/scripts/bump-version.mjs +68 -0
  349. package/scripts/check-react-version.mjs +66 -0
  350. package/scripts/react+0.0.0-experimental-b3a95caf-20250113.patch +4291 -0
  351. package/scripts/react-dom+0.0.0-experimental-b3a95caf-20250113.patch +108798 -0
  352. package/scripts/react-server-dom-esm+0.0.0-experimental-b3a95caf-20250113.patch +24775 -0
  353. package/{patches → scripts}/react-server-dom-esm+0.0.1.patch +10259 -3
  354. package/tsconfig.json +15 -13
  355. package/dist/assertServerCondition.d.ts.map +0 -1
  356. package/dist/bin/patch.js +0 -51
  357. package/dist/bin/patch.js.map +0 -1
  358. package/dist/build/createBuildConfig.d.ts +0 -13
  359. package/dist/build/createBuildConfig.d.ts.map +0 -1
  360. package/dist/build/mergeInputs.d.ts +0 -5
  361. package/dist/build/mergeInputs.d.ts.map +0 -1
  362. package/dist/checkFilesExist.d.ts +0 -8
  363. package/dist/checkFilesExist.d.ts.map +0 -1
  364. package/dist/collect-css-manifest.d.ts.map +0 -1
  365. package/dist/components.d.ts.map +0 -1
  366. package/dist/copy-dir.d.ts.map +0 -1
  367. package/dist/getEnv.d.ts.map +0 -1
  368. package/dist/helpers/inputNormalizer.d.ts +0 -6
  369. package/dist/helpers/inputNormalizer.d.ts.map +0 -1
  370. package/dist/helpers/normalizedRelativePath.d.ts.map +0 -1
  371. package/dist/helpers/tryManifest.d.ts.map +0 -1
  372. package/dist/html/createPageLoader.d.ts.map +0 -1
  373. package/dist/manifest.d.ts.map +0 -1
  374. package/dist/module-graph.d.ts.map +0 -1
  375. package/dist/options.d.ts +0 -91
  376. package/dist/options.d.ts.map +0 -1
  377. package/dist/plugin.d.ts +0 -3
  378. package/dist/plugin.d.ts.map +0 -1
  379. package/dist/react-client/plugin.d.ts +0 -4
  380. package/dist/react-client/plugin.d.ts.map +0 -1
  381. package/dist/react-client/plugin.js +0 -28
  382. package/dist/react-client/plugin.js.map +0 -1
  383. package/dist/react-server/createDevMiddleware.d.ts.map +0 -1
  384. package/dist/react-server/createDevServer.d.ts.map +0 -1
  385. package/dist/react-server/createHandler.d.ts +0 -23
  386. package/dist/react-server/createHandler.d.ts.map +0 -1
  387. package/dist/react-server/createReactNodeStreamer.d.ts.map +0 -1
  388. package/dist/react-server/createRscStream.d.ts.map +0 -1
  389. package/dist/react-server/createSsrHandler.d.ts.map +0 -1
  390. package/dist/react-server/plugin.d.ts.map +0 -1
  391. package/dist/react-server/plugin.js +0 -345
  392. package/dist/react-server/plugin.js.map +0 -1
  393. package/dist/resolvePage.d.ts.map +0 -1
  394. package/dist/resolveProps.d.ts.map +0 -1
  395. package/dist/src/build/createBuildConfig.js +0 -44
  396. package/dist/src/build/createBuildConfig.js.map +0 -1
  397. package/dist/src/build/mergeInputs.js +0 -16
  398. package/dist/src/build/mergeInputs.js.map +0 -1
  399. package/dist/src/checkFilesExist.js +0 -61
  400. package/dist/src/checkFilesExist.js.map +0 -1
  401. package/dist/src/collect-css-manifest.js.map +0 -1
  402. package/dist/src/components.js.map +0 -1
  403. package/dist/src/getEnv.js +0 -76
  404. package/dist/src/getEnv.js.map +0 -1
  405. package/dist/src/helpers/inputNormalizer.js +0 -11
  406. package/dist/src/helpers/inputNormalizer.js.map +0 -1
  407. package/dist/src/helpers/normalizedRelativePath.js +0 -34
  408. package/dist/src/helpers/normalizedRelativePath.js.map +0 -1
  409. package/dist/src/helpers/tryManifest.js.map +0 -1
  410. package/dist/src/html/createPageLoader.js +0 -72
  411. package/dist/src/html/createPageLoader.js.map +0 -1
  412. package/dist/src/options.js +0 -307
  413. package/dist/src/options.js.map +0 -1
  414. package/dist/src/react-server/createHandler.js.map +0 -1
  415. package/dist/src/react-server/createRscStream.js.map +0 -1
  416. package/dist/src/resolvePage.js.map +0 -1
  417. package/dist/src/resolveProps.js.map +0 -1
  418. package/dist/src/worker/createHtmlStream.js +0 -62
  419. package/dist/src/worker/createHtmlStream.js.map +0 -1
  420. package/dist/src/worker/createWorker.js +0 -34
  421. package/dist/src/worker/createWorker.js.map +0 -1
  422. package/dist/src/worker/renderPages.js +0 -99
  423. package/dist/src/worker/renderPages.js.map +0 -1
  424. package/dist/transformer/index.d.ts.map +0 -1
  425. package/dist/transformer/preserveDirectives.d.ts +0 -4
  426. package/dist/transformer/preserveDirectives.d.ts.map +0 -1
  427. package/dist/transformer/preserver.d.ts +0 -2
  428. package/dist/transformer/preserver.d.ts.map +0 -1
  429. package/dist/transformer/transformer.d.ts.map +0 -1
  430. package/dist/transformer/types.d.ts.map +0 -1
  431. package/dist/worker/createHtmlStream.d.ts +0 -7
  432. package/dist/worker/createHtmlStream.d.ts.map +0 -1
  433. package/dist/worker/createWorker.d.ts +0 -10
  434. package/dist/worker/createWorker.d.ts.map +0 -1
  435. package/dist/worker/loader.d.ts.map +0 -1
  436. package/dist/worker/loader.js +0 -7
  437. package/dist/worker/loader.js.map +0 -1
  438. package/dist/worker/renderPages.d.ts +0 -18
  439. package/dist/worker/renderPages.d.ts.map +0 -1
  440. package/dist/worker/types.d.ts +0 -31
  441. package/dist/worker/types.d.ts.map +0 -1
  442. package/dist/worker/worker.d.ts +0 -7
  443. package/dist/worker/worker.d.ts.map +0 -1
  444. package/dist/worker/worker.js +0 -112
  445. package/dist/worker/worker.js.map +0 -1
  446. package/src/build/createBuildConfig.ts +0 -57
  447. package/src/build/mergeInputs.ts +0 -42
  448. package/src/checkFilesExist.ts +0 -67
  449. package/src/helpers/inputNormalizer.ts +0 -22
  450. package/src/index.ts +0 -4
  451. package/src/options.ts +0 -423
  452. package/src/plugin.ts +0 -5
  453. package/src/react-client/plugin.ts +0 -34
  454. package/src/react-server/plugin.ts +0 -409
  455. package/src/transformer/index.ts +0 -112
  456. package/src/transformer/preserveDirectives.ts +0 -100
  457. package/src/transformer/preserver.ts +0 -47
  458. package/src/worker/createHtmlStream.ts +0 -76
  459. package/src/worker/createWorker.ts +0 -44
  460. package/src/worker/renderPages.ts +0 -144
  461. package/src/worker/types.ts +0 -38
  462. package/src/worker/worker.tsx +0 -136
  463. /package/dist/{assertServerCondition.d.ts → plugin/assertServerCondition.d.ts} +0 -0
  464. /package/dist/{components.d.ts → plugin/components.d.ts} +0 -0
  465. /package/dist/{copy-dir.d.ts → plugin/copy-dir.d.ts} +0 -0
  466. /package/dist/{getEnv.d.ts → plugin/getEnv.d.ts} +0 -0
  467. /package/dist/{helpers → plugin/helpers}/normalizedRelativePath.d.ts +0 -0
  468. /package/dist/{helpers → plugin/helpers}/tryManifest.d.ts +0 -0
  469. /package/dist/{manifest.d.ts → plugin/manifest.d.ts} +0 -0
  470. /package/dist/{module-graph.d.ts → plugin/module-graph.d.ts} +0 -0
  471. /package/dist/{react-server → plugin/react-server}/createDevMiddleware.d.ts +0 -0
  472. /package/dist/{react-server → plugin/react-server}/createDevServer.d.ts +0 -0
  473. /package/dist/{react-server → plugin/react-server}/createReactNodeStreamer.d.ts +0 -0
  474. /package/dist/{resolvePage.d.ts → plugin/resolvePage.d.ts} +0 -0
  475. /package/dist/{resolveProps.d.ts → plugin/resolveProps.d.ts} +0 -0
  476. /package/dist/{transformer → plugin/transformer}/types.d.ts +0 -0
  477. /package/dist/{worker → plugin/worker}/loader.d.ts +0 -0
  478. /package/{src → plugin}/assertServerCondition.ts +0 -0
  479. /package/{src → plugin}/components.tsx +0 -0
  480. /package/{src → plugin}/copy-dir.ts +0 -0
  481. /package/{src/server.tsx → plugin/getCondition.ts} +0 -0
  482. /package/{src → plugin}/helpers/normalizedRelativePath.ts +0 -0
  483. /package/{src → plugin}/helpers/tryManifest.ts +0 -0
  484. /package/{src → plugin}/manifest.ts +0 -0
  485. /package/{src → plugin}/module-graph.ts +0 -0
  486. /package/{src → plugin}/transformer/README.md +0 -0
  487. /package/{src → plugin}/transformer/types.ts +0 -0
  488. /package/{src → plugin}/worker/loader.ts +0 -0
@@ -1,34 +0,0 @@
1
- import "node:path";
2
- import { Worker } from "node:worker_threads";
3
- async function createWorker(options) {
4
- const { workerPath, nodePath, mode, workerOptions } = options;
5
- console.log("[Worker] Creating worker...");
6
- console.log("[Worker] Worker path:", workerPath);
7
- try {
8
- const worker = new Worker(workerPath, {
9
- env: {
10
- NODE_OPTIONS: "",
11
- NODE_ENV: mode,
12
- NODE_PATH: nodePath
13
- },
14
- ...workerOptions
15
- });
16
- worker.setMaxListeners(1e3);
17
- await new Promise((resolve, reject) => {
18
- worker.once("message", (message) => {
19
- if (message.type === "READY") {
20
- resolve();
21
- }
22
- });
23
- worker.once("error", reject);
24
- });
25
- return worker;
26
- } catch (error) {
27
- console.error("[Worker] Startup error:", error);
28
- throw error;
29
- }
30
- }
31
- export {
32
- createWorker
33
- };
34
- //# sourceMappingURL=createWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWorker.js","sources":["../../../src/worker/createWorker.ts"],"sourcesContent":["import { join } from \"node:path\";\nimport { Worker } from \"node:worker_threads\";\n\ntype CreateWorkerOptions = {\n workerPath: string;\n nodePath: string;\n mode: \"production\" | \"development\";\n workerOptions?: WorkerOptions;\n};\n\nexport async function createWorker(\n options: CreateWorkerOptions\n) {\n const { workerPath, nodePath, mode, workerOptions } = options;\n console.log(\"[Worker] Creating worker...\");\n console.log(\"[Worker] Worker path:\", workerPath);\n\n try {\n const worker = new Worker(workerPath, {\n env: {\n NODE_OPTIONS: \"\",\n NODE_ENV: mode,\n NODE_PATH: nodePath,\n },\n ...workerOptions,\n });\n worker.setMaxListeners(1000);\n\n // Wait for worker to be ready\n await new Promise<void>((resolve, reject) => {\n worker.once(\"message\", (message) => {\n if (message.type === \"READY\") {\n resolve();\n }\n });\n worker.once(\"error\", reject);\n });\n\n return worker;\n } catch (error) {\n console.error(\"[Worker] Startup error:\", error);\n throw error;\n }\n}\n"],"names":[],"mappings":";;AAUA,eAAsB,aACpB,SACA;AACA,QAAM,EAAE,YAAY,UAAU,MAAM,cAAkB,IAAA;AACtD,UAAQ,IAAI,6BAA6B;AACjC,UAAA,IAAI,yBAAyB,UAAU;AAE3C,MAAA;AACI,UAAA,SAAS,IAAI,OAAO,YAAY;AAAA,MACpC,KAAK;AAAA,QACH,cAAc;AAAA,QACd,UAAU;AAAA,QACV,WAAW;AAAA,MACb;AAAA,MACA,GAAG;AAAA,IAAA,CACJ;AACD,WAAO,gBAAgB,GAAI;AAG3B,UAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AACpC,aAAA,KAAK,WAAW,CAAC,YAAY;AAC9B,YAAA,QAAQ,SAAS,SAAS;AACpB,kBAAA;AAAA,QAAA;AAAA,MACV,CACD;AACM,aAAA,KAAK,SAAS,MAAM;AAAA,IAAA,CAC5B;AAEM,WAAA;AAAA,WACA,OAAO;AACN,YAAA,MAAM,2BAA2B,KAAK;AACxC,UAAA;AAAA,EAAA;AAEV;"}
@@ -1,99 +0,0 @@
1
- import { resolve, join } from "node:path";
2
- import { Transform } from "node:stream";
3
- import { createHandler } from "../react-server/createHandler.js";
4
- async function renderPages(routes, options) {
5
- const destinationRoot = resolve(
6
- options.pluginOptions.projectRoot,
7
- options.outDir
8
- );
9
- const failedRoutes = /* @__PURE__ */ new Map();
10
- const moduleBasePath = join(
11
- destinationRoot,
12
- options.pluginOptions.moduleBasePath
13
- );
14
- const moduleBaseURL = options.pluginOptions.moduleBaseURL;
15
- const htmlRoot = resolve(
16
- options.pluginOptions.projectRoot,
17
- options.pluginOptions.build?.client ?? options.outDir
18
- );
19
- const filesOutputted = [];
20
- options.worker.on("message", (msg) => {
21
- switch (msg.type) {
22
- case "ERROR":
23
- console.error("[RenderPages] Worker error:", msg.error);
24
- break;
25
- case "HTML":
26
- filesOutputted.push(msg.outputPath);
27
- if (filesOutputted.length === routes.length) {
28
- renderPromises.push(
29
- new Promise((resolve2) => {
30
- options.worker.removeAllListeners();
31
- options.worker.terminate();
32
- resolve2();
33
- })
34
- );
35
- }
36
- break;
37
- }
38
- });
39
- const pipableStreamOptions = options.pipableStreamOptions ?? {};
40
- const renderPromises = routes.map(async (route) => {
41
- try {
42
- const result = await createHandler(route, options.pluginOptions, {
43
- loader: options.loader,
44
- manifest: options.manifest
45
- });
46
- if (result.type !== "success") {
47
- return;
48
- }
49
- const htmlOutputPath = join(htmlRoot, route, "index.html");
50
- await new Promise((resolve2, reject) => {
51
- const transform = new Transform({
52
- transform(chunk, _encoding, callback) {
53
- options.worker.postMessage({
54
- type: "RSC_CHUNK",
55
- id: route,
56
- chunk,
57
- moduleBasePath,
58
- moduleBaseURL,
59
- htmlOutputPath,
60
- outDir: options.outDir,
61
- pipableStreamOptions
62
- });
63
- callback();
64
- },
65
- flush(callback) {
66
- options.worker.postMessage({
67
- type: "RSC_END",
68
- id: route
69
- });
70
- callback();
71
- }
72
- });
73
- const messageHandler = (msg) => {
74
- if (msg.route === route) {
75
- if (msg.type === "ERROR") {
76
- options.worker.removeListener("message", messageHandler);
77
- reject(new Error(msg.error));
78
- } else if (msg.type === "HTML") {
79
- options.worker.removeListener("message", messageHandler);
80
- resolve2();
81
- }
82
- }
83
- };
84
- options.worker.on("message", messageHandler);
85
- result.stream?.pipe(transform);
86
- });
87
- } catch (error) {
88
- failedRoutes.set(route, error);
89
- }
90
- });
91
- await Promise.all(renderPromises);
92
- if (failedRoutes.size > 0) {
93
- console.error("[vite-react-stream] Failed routes:", failedRoutes);
94
- }
95
- }
96
- export {
97
- renderPages
98
- };
99
- //# sourceMappingURL=renderPages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderPages.js","sources":["../../../src/worker/renderPages.ts"],"sourcesContent":["import { join, resolve as resolvePath } from \"node:path\";\nimport { Transform } from \"node:stream\";\nimport type { Worker } from \"node:worker_threads\";\nimport type { PipeableStreamOptions } from \"react-dom/server.node\";\nimport { createHandler } from \"../react-server/createHandler.js\";\nimport type { StreamPluginOptions } from \"../types.js\";\nimport type {\n WorkerRscChunkMessage,\n WorkerRscEndMessage,\n} from \"./types.js\";\n\ntype RenderPagesOptions = {\n pluginOptions: Required<\n Pick<\n StreamPluginOptions,\n \"moduleBase\" | \"moduleBasePath\" | \"moduleBaseURL\" | \"projectRoot\"\n >\n > &\n Pick<\n StreamPluginOptions,\n \"Page\" | \"props\" | \"build\" | \"Html\" | \"pageExportName\" | \"propsExportName\"\n >;\n outDir: string;\n manifest: Record<string, { file: string }>;\n worker: Worker;\n pipableStreamOptions?: PipeableStreamOptions;\n loader: (id: string) => Promise<Record<string, any>>;\n onCssFile?: (path: string) => void;\n clientCss?: string[];\n};\n\nexport async function renderPages(\n routes: string[],\n options: RenderPagesOptions\n) {\n const destinationRoot = resolvePath(\n options.pluginOptions.projectRoot,\n options.outDir\n );\n const failedRoutes = new Map<string, Error>();\n const moduleBasePath = join(\n destinationRoot,\n options.pluginOptions.moduleBasePath\n );\n const moduleBaseURL = options.pluginOptions.moduleBaseURL;\n\n const htmlRoot = resolvePath(\n options.pluginOptions.projectRoot,\n options.pluginOptions.build?.client ?? options.outDir\n );\n const filesOutputted: string[] = [];\n\n options.worker.on(\"message\", (msg) => {\n switch (msg.type) {\n case \"ERROR\":\n console.error(\"[RenderPages] Worker error:\", msg.error);\n break;\n case \"HTML\":\n filesOutputted.push(msg.outputPath);\n if (filesOutputted.length === routes.length) {\n renderPromises.push(\n new Promise<void>((resolve) => {\n options.worker.removeAllListeners();\n options.worker.terminate();\n resolve();\n })\n );\n }\n break;\n default:\n break;\n }\n });\n const pipableStreamOptions = options.pipableStreamOptions ?? {};\n\n // Create promises for each route in the batch\n const renderPromises = routes.map(async (route) => {\n try {\n // Wait for handler creation\n const result = await createHandler(route, options.pluginOptions, {\n loader: options.loader,\n manifest: options.manifest,\n });\n\n if (result.type !== \"success\") {\n return;\n }\n const htmlOutputPath = join(htmlRoot, route, \"index.html\");\n\n // Create a promise that resolves when the worker completes\n await new Promise<void>((resolve, reject) => {\n // Pipe RSC stream to worker\n const transform = new Transform({\n transform(chunk, _encoding, callback) {\n // Send raw chunk\n options.worker.postMessage({\n type: \"RSC_CHUNK\",\n id: route,\n chunk: chunk,\n moduleBasePath,\n moduleBaseURL,\n htmlOutputPath: htmlOutputPath,\n outDir: options.outDir,\n pipableStreamOptions,\n } satisfies WorkerRscChunkMessage);\n callback();\n },\n flush(callback) {\n options.worker.postMessage({\n type: \"RSC_END\",\n id: route,\n } satisfies WorkerRscEndMessage);\n callback();\n },\n });\n\n // Listen for worker response for this route\n const messageHandler = (msg: any) => {\n if (msg.route === route) {\n if (msg.type === \"ERROR\") {\n options.worker.removeListener(\"message\", messageHandler);\n reject(new Error(msg.error));\n } else if (msg.type === \"HTML\") {\n options.worker.removeListener(\"message\", messageHandler);\n resolve();\n }\n }\n };\n\n options.worker.on(\"message\", messageHandler);\n result.stream?.pipe(transform);\n });\n } catch (error) {\n failedRoutes.set(route, error as Error);\n }\n });\n\n // Wait for all routes to complete\n await Promise.all(renderPromises);\n\n if (failedRoutes.size > 0) {\n console.error(\"[vite-react-stream] Failed routes:\", failedRoutes);\n }\n}\n"],"names":["resolvePath","resolve"],"mappings":";;;AA+BsB,eAAA,YACpB,QACA,SACA;AACA,QAAM,kBAAkBA;AAAAA,IACtB,QAAQ,cAAc;AAAA,IACtB,QAAQ;AAAA,EACV;AACM,QAAA,mCAAmB,IAAmB;AAC5C,QAAM,iBAAiB;AAAA,IACrB;AAAA,IACA,QAAQ,cAAc;AAAA,EACxB;AACM,QAAA,gBAAgB,QAAQ,cAAc;AAE5C,QAAM,WAAWA;AAAAA,IACf,QAAQ,cAAc;AAAA,IACtB,QAAQ,cAAc,OAAO,UAAU,QAAQ;AAAA,EACjD;AACA,QAAM,iBAA2B,CAAC;AAElC,UAAQ,OAAO,GAAG,WAAW,CAAC,QAAQ;AACpC,YAAQ,IAAI,MAAM;AAAA,MAChB,KAAK;AACK,gBAAA,MAAM,+BAA+B,IAAI,KAAK;AACtD;AAAA,MACF,KAAK;AACY,uBAAA,KAAK,IAAI,UAAU;AAC9B,YAAA,eAAe,WAAW,OAAO,QAAQ;AAC5B,yBAAA;AAAA,YACb,IAAI,QAAc,CAACC,aAAY;AAC7B,sBAAQ,OAAO,mBAAmB;AAClC,sBAAQ,OAAO,UAAU;AACjB,cAAAA,SAAA;AAAA,YACT,CAAA;AAAA,UACH;AAAA,QAAA;AAEF;AAAA,IAEA;AAAA,EACJ,CACD;AACK,QAAA,uBAAuB,QAAQ,wBAAwB,CAAC;AAG9D,QAAM,iBAAiB,OAAO,IAAI,OAAO,UAAU;AAC7C,QAAA;AAEF,YAAM,SAAS,MAAM,cAAc,OAAO,QAAQ,eAAe;AAAA,QAC/D,QAAQ,QAAQ;AAAA,QAChB,UAAU,QAAQ;AAAA,MAAA,CACnB;AAEG,UAAA,OAAO,SAAS,WAAW;AAC7B;AAAA,MAAA;AAEF,YAAM,iBAAiB,KAAK,UAAU,OAAO,YAAY;AAGzD,YAAM,IAAI,QAAc,CAACA,UAAS,WAAW;AAErC,cAAA,YAAY,IAAI,UAAU;AAAA,UAC9B,UAAU,OAAO,WAAW,UAAU;AAEpC,oBAAQ,OAAO,YAAY;AAAA,cACzB,MAAM;AAAA,cACN,IAAI;AAAA,cACJ;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ,QAAQ;AAAA,cAChB;AAAA,YAAA,CAC+B;AACxB,qBAAA;AAAA,UACX;AAAA,UACA,MAAM,UAAU;AACd,oBAAQ,OAAO,YAAY;AAAA,cACzB,MAAM;AAAA,cACN,IAAI;AAAA,YAAA,CACyB;AACtB,qBAAA;AAAA,UAAA;AAAA,QACX,CACD;AAGK,cAAA,iBAAiB,CAAC,QAAa;AAC/B,cAAA,IAAI,UAAU,OAAO;AACnB,gBAAA,IAAI,SAAS,SAAS;AAChB,sBAAA,OAAO,eAAe,WAAW,cAAc;AACvD,qBAAO,IAAI,MAAM,IAAI,KAAK,CAAC;AAAA,YAAA,WAClB,IAAI,SAAS,QAAQ;AACtB,sBAAA,OAAO,eAAe,WAAW,cAAc;AAC/C,cAAAA,SAAA;AAAA,YAAA;AAAA,UACV;AAAA,QAEJ;AAEQ,gBAAA,OAAO,GAAG,WAAW,cAAc;AACpC,eAAA,QAAQ,KAAK,SAAS;AAAA,MAAA,CAC9B;AAAA,aACM,OAAO;AACD,mBAAA,IAAI,OAAO,KAAc;AAAA,IAAA;AAAA,EACxC,CACD;AAGK,QAAA,QAAQ,IAAI,cAAc;AAE5B,MAAA,aAAa,OAAO,GAAG;AACjB,YAAA,MAAM,sCAAsC,YAAY;AAAA,EAAA;AAEpE;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,8BAA8B,CAC5C,OAAO,CAAC,EAAE,+BAA+B,GACxC,MAAM,CAgDR"}
@@ -1,4 +0,0 @@
1
- import type { Plugin } from "rollup";
2
- import type { Options } from "../types.js";
3
- export declare function preserveDirectives(options?: Pick<Options, "include">): Plugin;
4
- //# sourceMappingURL=preserveDirectives.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preserveDirectives.d.ts","sourceRoot":"","sources":["../../src/transformer/preserveDirectives.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,CAuF7E"}
@@ -1,2 +0,0 @@
1
- export declare function preserveRSC(chunk: string): string;
2
- //# sourceMappingURL=preserver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preserver.d.ts","sourceRoot":"","sources":["../../src/transformer/preserver.ts"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAuCjD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/transformer/transformer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB;;;oBAMpD,MAAM,QACN,MAAM,WACH;QAAE,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE;;;;EA6FpD;AAED;;;;;;;;;;;;;;;;GAgBG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transformer/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IACjD;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD"}
@@ -1,7 +0,0 @@
1
- import { Writable } from "node:stream";
2
- import type { RenderState } from "./types.js";
3
- export declare function createHtmlStream(renderState: RenderState, writeStream: Writable): {
4
- stream: import("react-dom/server").PipeableStream;
5
- writeStream: Writable;
6
- };
7
- //# sourceMappingURL=createHtmlStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createHtmlStream.d.ts","sourceRoot":"","sources":["../../src/worker/createHtmlStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAS9C,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,QAAQ;;;EA2DtB"}
@@ -1,10 +0,0 @@
1
- import { Worker } from "node:worker_threads";
2
- type CreateWorkerOptions = {
3
- workerPath: string;
4
- nodePath: string;
5
- mode: "production" | "development";
6
- workerOptions?: WorkerOptions;
7
- };
8
- export declare function createWorker(options: CreateWorkerOptions): Promise<Worker>;
9
- export {};
10
- //# sourceMappingURL=createWorker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWorker.d.ts","sourceRoot":"","sources":["../../src/worker/createWorker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,mBAgC7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/worker/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,gBAE9B"}
@@ -1,7 +0,0 @@
1
- function load(id) {
2
- return import(id);
3
- }
4
- export {
5
- load
6
- };
7
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sources":["../../src/worker/loader.ts"],"sourcesContent":["/**\n * Extension point for custom module loading in the worker thread.\n * This file can be overridden via the plugin options:\n *\n * ```ts\n * reactStreamPlugin({\n * loaderPath: './my-custom-loader.ts'\n * })\n * ```\n *\n * The default loader provides basic module loading functionality.\n * Override this if you need custom module resolution or transformation.\n */\nexport function load(id: string) {\n return import(id);\n}\n"],"names":[],"mappings":"AAaO,SAAS,KAAK,IAAY;AAC/B,SAAO,OAAO;AAChB;"}
@@ -1,18 +0,0 @@
1
- import type { Worker } from "node:worker_threads";
2
- import type { PipeableStreamOptions } from "react-dom/server.node";
3
- import type { StreamPluginOptions } from "../types.js";
4
- type RenderPagesOptions = {
5
- pluginOptions: Required<Pick<StreamPluginOptions, "moduleBase" | "moduleBasePath" | "moduleBaseURL" | "projectRoot">> & Pick<StreamPluginOptions, "Page" | "props" | "build" | "Html" | "pageExportName" | "propsExportName">;
6
- outDir: string;
7
- manifest: Record<string, {
8
- file: string;
9
- }>;
10
- worker: Worker;
11
- pipableStreamOptions?: PipeableStreamOptions;
12
- loader: (id: string) => Promise<Record<string, any>>;
13
- onCssFile?: (path: string) => void;
14
- clientCss?: string[];
15
- };
16
- export declare function renderPages(routes: string[], options: RenderPagesOptions): Promise<void>;
17
- export {};
18
- //# sourceMappingURL=renderPages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderPages.d.ts","sourceRoot":"","sources":["../../src/worker/renderPages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMvD,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,QAAQ,CACrB,IAAI,CACF,mBAAmB,EACnB,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,CAClE,CACF,GACC,IAAI,CACF,mBAAmB,EACnB,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAC3E,CAAC;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,qBAAqB,CAAC;IAC7C,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,kBAAkB,iBA8G5B"}
@@ -1,31 +0,0 @@
1
- import type { PipeableStreamOptions } from "react-dom/server.node";
2
- export interface RenderState {
3
- chunks: string[];
4
- complete: boolean;
5
- rendered: boolean;
6
- outDir: string;
7
- moduleBasePath: string;
8
- moduleBaseURL: string;
9
- htmlOutputPath: string;
10
- id: string;
11
- pipableStreamOptions: PipeableStreamOptions;
12
- }
13
- export interface WorkerRscChunkMessage {
14
- type: "RSC_CHUNK";
15
- id: string;
16
- chunk: string;
17
- moduleBasePath: string;
18
- moduleBaseURL: string;
19
- outDir: string;
20
- htmlOutputPath: string;
21
- pipableStreamOptions: PipeableStreamOptions;
22
- }
23
- export interface WorkerRscEndMessage {
24
- type: "RSC_END";
25
- id: string;
26
- }
27
- export interface WorkerShutdownMessage {
28
- type: "SHUTDOWN";
29
- }
30
- export type WorkerMessage = WorkerRscChunkMessage | WorkerRscEndMessage | WorkerShutdownMessage;
31
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/worker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,qBAAqB,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,qBAAqB,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,qBAAqB,CAAC"}
@@ -1,7 +0,0 @@
1
- declare global {
2
- interface Window {
3
- href: string;
4
- }
5
- }
6
- export {};
7
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/worker/worker.tsx"],"names":[],"mappings":"AAaA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,EAAE,MAAM,CAAC;KACd;CACF"}
@@ -1,112 +0,0 @@
1
- import { createWriteStream } from "node:fs";
2
- import { mkdir } from "node:fs/promises";
3
- import { dirname } from "node:path";
4
- import { Writable } from "node:stream";
5
- import { parentPort } from "node:worker_threads";
6
- import { createHtmlStream } from "../src/worker/createHtmlStream.js";
7
- if (!parentPort) {
8
- throw new Error("This module must be run as a worker");
9
- }
10
- global.window = {
11
- href: void 0,
12
- pathname: void 0
13
- };
14
- const activeRenders = /* @__PURE__ */ new Map();
15
- const activeStreams = /* @__PURE__ */ new Map();
16
- const activeWrites = /* @__PURE__ */ new Map();
17
- async function shutdown() {
18
- console.log("[Worker] Shutting down forcefully");
19
- while (activeRenders.size > 0) {
20
- await new Promise((resolve) => setTimeout(resolve, 100));
21
- }
22
- for (const stream of activeStreams.values()) {
23
- stream.abort();
24
- }
25
- for (const writeStream of activeWrites.values()) {
26
- writeStream.destroy();
27
- }
28
- process.exit(0);
29
- }
30
- parentPort.on("message", async (message) => {
31
- if (message.type === "SHUTDOWN") {
32
- await shutdown();
33
- }
34
- if (!parentPort) {
35
- throw new Error("No parent port available");
36
- }
37
- try {
38
- switch (message.type) {
39
- case "RSC_CHUNK": {
40
- const { chunk, id, ...rest } = message;
41
- global.window.pathname = id;
42
- let renderState = activeRenders.get(id);
43
- if (renderState?.rendered) {
44
- return;
45
- }
46
- if (!renderState) {
47
- renderState = {
48
- chunks: [],
49
- complete: false,
50
- rendered: false,
51
- id,
52
- ...rest
53
- };
54
- activeRenders.set(id, renderState);
55
- }
56
- if (chunk) renderState.chunks.push(chunk);
57
- break;
58
- }
59
- case "RSC_END": {
60
- const { id } = message;
61
- const render = activeRenders.get(id);
62
- if (!render || !parentPort || render.rendered) return;
63
- try {
64
- const writeToFile = render.outDir && render.htmlOutputPath;
65
- if (writeToFile) {
66
- await mkdir(dirname(render.htmlOutputPath), { recursive: true });
67
- }
68
- const { stream, writeStream } = createHtmlStream(
69
- render,
70
- writeToFile ? createWriteStream(render.htmlOutputPath) : new Writable({
71
- write(chunk, _, callback) {
72
- parentPort?.postMessage({
73
- type: "HTML",
74
- route: render.id,
75
- content: chunk.toString()
76
- });
77
- callback();
78
- }
79
- })
80
- );
81
- activeStreams.set(id, stream);
82
- activeWrites.set(id, writeStream);
83
- writeStream.on("finish", () => {
84
- activeStreams.delete(id);
85
- activeWrites.delete(id);
86
- });
87
- writeStream.on("error", () => {
88
- activeStreams.delete(id);
89
- activeWrites.delete(id);
90
- stream.abort();
91
- });
92
- } catch (error) {
93
- activeRenders.delete(id);
94
- activeStreams.delete(id);
95
- activeWrites.delete(id);
96
- throw error;
97
- } finally {
98
- activeRenders.delete(id);
99
- }
100
- break;
101
- }
102
- }
103
- } catch (error) {
104
- const errorMessage = error instanceof Error ? error.message : String(error);
105
- parentPort?.postMessage({
106
- type: "ERROR",
107
- error: errorMessage
108
- });
109
- }
110
- });
111
- parentPort.postMessage({ type: "READY" });
112
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sources":["../../src/worker/worker.tsx"],"sourcesContent":["import { createWriteStream } from \"node:fs\";\nimport { mkdir } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport { Writable } from \"node:stream\";\nimport { parentPort } from \"node:worker_threads\";\nimport type { PipeableStream } from \"react-server-dom-esm/server.node\";\nimport { createHtmlStream } from \"./createHtmlStream.js\";\nimport type { RenderState, WorkerMessage } from \"./types.js\";\n\nif (!parentPort) {\n throw new Error(\"This module must be run as a worker\");\n}\n\ndeclare global {\n interface Window {\n href: string;\n }\n} \n// Initialize happy-dom window\n(global as any).window = {\n href: undefined,\n pathname: undefined,\n}\n\n// Track active renders\nconst activeRenders = new Map<string, RenderState>();\nconst activeStreams = new Map<string, PipeableStream>();\nconst activeWrites = new Map<string, Writable>();\n\nasync function shutdown() {\n console.log(\"[Worker] Shutting down forcefully\");\n while (activeRenders.size > 0) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n for (const stream of activeStreams.values()) {\n stream.abort();\n }\n for (const writeStream of activeWrites.values()) {\n writeStream.destroy();\n }\n process.exit(0);\n}\n// Handle incoming messages\nparentPort.on(\"message\", async (message: WorkerMessage) => {\n if (message.type === \"SHUTDOWN\") {\n await shutdown();\n }\n if (!parentPort) {\n throw new Error(\"No parent port available\");\n }\n try {\n switch (message.type) {\n case \"RSC_CHUNK\": {\n const { chunk, id, ...rest } = message;\n (global as any).window.pathname = id;\n // Skip if already rendered\n let renderState = activeRenders.get(id);\n if (renderState?.rendered) {\n return;\n }\n // Initialize render state\n if (!renderState) {\n renderState = {\n chunks: [],\n complete: false,\n rendered: false,\n id: id,\n ...rest,\n };\n activeRenders.set(id, renderState);\n }\n // Add chunk\n if (chunk) renderState.chunks.push(chunk);\n break;\n }\n\n case \"RSC_END\": {\n const { id } = message;\n const render = activeRenders.get(id);\n\n if (!render || !parentPort || render.rendered) return;\n try {\n const writeToFile = render.outDir && render.htmlOutputPath;\n // Write RSC content\n if (writeToFile) {\n await mkdir(dirname(render.htmlOutputPath), { recursive: true });\n }\n const { stream, writeStream } = createHtmlStream(\n render,\n writeToFile\n ? createWriteStream(render.htmlOutputPath)\n : new Writable({\n write(chunk, _, callback) {\n parentPort?.postMessage({\n type: \"HTML\",\n route: render.id,\n content: chunk.toString(),\n });\n callback();\n },\n })\n );\n activeStreams.set(id, stream);\n activeWrites.set(id, writeStream);\n writeStream.on(\"finish\", () => {\n activeStreams.delete(id);\n activeWrites.delete(id);\n });\n writeStream.on(\"error\", () => {\n activeStreams.delete(id);\n activeWrites.delete(id);\n stream.abort();\n });\n } catch (error) {\n activeRenders.delete(id);\n activeStreams.delete(id);\n activeWrites.delete(id);\n throw error;\n } finally {\n activeRenders.delete(id);\n }\n break;\n }\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n parentPort?.postMessage({\n type: \"ERROR\",\n error: errorMessage,\n });\n }\n});\n\n// Signal ready only after loader is registered\nparentPort.postMessage({ type: \"READY\" });\n\n"],"names":[],"mappings":";;;;;;AASA,IAAI,CAAC,YAAY;AACT,QAAA,IAAI,MAAM,qCAAqC;AACvD;AAQC,OAAe,SAAS;AAAA,EACvB,MAAM;AAAA,EACN,UAAU;AACZ;AAGA,MAAM,oCAAoB,IAAyB;AACnD,MAAM,oCAAoB,IAA4B;AACtD,MAAM,mCAAmB,IAAsB;AAE/C,eAAe,WAAW;AACxB,UAAQ,IAAI,mCAAmC;AACxC,SAAA,cAAc,OAAO,GAAG;AAC7B,UAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,GAAG,CAAC;AAAA,EAAA;AAE9C,aAAA,UAAU,cAAc,UAAU;AAC3C,WAAO,MAAM;AAAA,EAAA;AAEJ,aAAA,eAAe,aAAa,UAAU;AAC/C,gBAAY,QAAQ;AAAA,EAAA;AAEtB,UAAQ,KAAK,CAAC;AAChB;AAEA,WAAW,GAAG,WAAW,OAAO,YAA2B;AACrD,MAAA,QAAQ,SAAS,YAAY;AAC/B,UAAM,SAAS;AAAA,EAAA;AAEjB,MAAI,CAAC,YAAY;AACT,UAAA,IAAI,MAAM,0BAA0B;AAAA,EAAA;AAExC,MAAA;AACF,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,aAAa;AAChB,cAAM,EAAE,OAAO,IAAI,GAAG,KAAS,IAAA;AAC9B,eAAe,OAAO,WAAW;AAE9B,YAAA,cAAc,cAAc,IAAI,EAAE;AACtC,YAAI,aAAa,UAAU;AACzB;AAAA,QAAA;AAGF,YAAI,CAAC,aAAa;AACF,wBAAA;AAAA,YACZ,QAAQ,CAAC;AAAA,YACT,UAAU;AAAA,YACV,UAAU;AAAA,YACV;AAAA,YACA,GAAG;AAAA,UACL;AACc,wBAAA,IAAI,IAAI,WAAW;AAAA,QAAA;AAGnC,YAAI,MAAO,aAAY,OAAO,KAAK,KAAK;AACxC;AAAA,MAAA;AAAA,MAGF,KAAK,WAAW;AACR,cAAA,EAAE,OAAO;AACT,cAAA,SAAS,cAAc,IAAI,EAAE;AAEnC,YAAI,CAAC,UAAU,CAAC,cAAc,OAAO,SAAU;AAC3C,YAAA;AACI,gBAAA,cAAc,OAAO,UAAU,OAAO;AAE5C,cAAI,aAAa;AACT,kBAAA,MAAM,QAAQ,OAAO,cAAc,GAAG,EAAE,WAAW,MAAM;AAAA,UAAA;AAE3D,gBAAA,EAAE,QAAQ,YAAA,IAAgB;AAAA,YAC9B;AAAA,YACA,cACI,kBAAkB,OAAO,cAAc,IACvC,IAAI,SAAS;AAAA,cACX,MAAM,OAAO,GAAG,UAAU;AACxB,4BAAY,YAAY;AAAA,kBACtB,MAAM;AAAA,kBACN,OAAO,OAAO;AAAA,kBACd,SAAS,MAAM,SAAS;AAAA,gBAAA,CACzB;AACQ,yBAAA;AAAA,cAAA;AAAA,YAEZ,CAAA;AAAA,UACP;AACc,wBAAA,IAAI,IAAI,MAAM;AACf,uBAAA,IAAI,IAAI,WAAW;AACpB,sBAAA,GAAG,UAAU,MAAM;AAC7B,0BAAc,OAAO,EAAE;AACvB,yBAAa,OAAO,EAAE;AAAA,UAAA,CACvB;AACW,sBAAA,GAAG,SAAS,MAAM;AAC5B,0BAAc,OAAO,EAAE;AACvB,yBAAa,OAAO,EAAE;AACtB,mBAAO,MAAM;AAAA,UAAA,CACd;AAAA,iBACM,OAAO;AACd,wBAAc,OAAO,EAAE;AACvB,wBAAc,OAAO,EAAE;AACvB,uBAAa,OAAO,EAAE;AAChB,gBAAA;AAAA,QAAA,UACN;AACA,wBAAc,OAAO,EAAE;AAAA,QAAA;AAEzB;AAAA,MAAA;AAAA,IACF;AAAA,WAEK,OAAO;AACd,UAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC1E,gBAAY,YAAY;AAAA,MACtB,MAAM;AAAA,MACN,OAAO;AAAA,IAAA,CACR;AAAA,EAAA;AAEL,CAAC;AAGD,WAAW,YAAY,EAAE,MAAM,SAAS;"}
@@ -1,57 +0,0 @@
1
- import type { InlineConfig } from "vite";
2
- import type { ResolvedUserConfig, ResolvedUserOptions } from "../types.js";
3
- import type { InputOption } from "rollup";
4
- import { mergeInputs } from "./mergeInputs.js";
5
- import { createInputNormalizer } from "../helpers/inputNormalizer.js";
6
-
7
- type CreateBuildConfigOptions = {
8
- input: InputOption;
9
- userOptions: ResolvedUserOptions;
10
- userConfig: ResolvedUserConfig;
11
- root: string;
12
- moduleBaseExceptions: string[];
13
- };
14
-
15
-
16
- export function createBuildConfig({
17
- root,
18
- input,
19
- userOptions,
20
- userConfig,
21
- moduleBaseExceptions
22
- }: CreateBuildConfigOptions) {
23
- const { output, input: inputConfig, ...restRollupOptions } =
24
- userConfig.build.rollupOptions ?? {};
25
-
26
- let mergedInputs = mergeInputs(input, inputConfig);
27
-
28
- let inputNormalizer = createInputNormalizer({
29
- root,
30
- });
31
- if(typeof mergedInputs === 'object' && mergedInputs != null) {
32
- mergedInputs = Object.fromEntries(Object.entries(mergedInputs).map(inputNormalizer));
33
- }
34
- const config: InlineConfig = {
35
- configFile: false,
36
- ...userConfig,
37
- build: {
38
- ...userConfig.build,
39
- rollupOptions: {
40
- input: mergedInputs,
41
- output: {
42
- format: "esm",
43
- preserveModules: true,
44
- hoistTransitiveImports: false,
45
- esModule: true,
46
- entryFileNames: "[name].js",
47
- chunkFileNames: "[name].js",
48
- assetFileNames: "[name][extname]",
49
- ...output,
50
- },
51
- ...restRollupOptions,
52
- },
53
- },
54
- };
55
-
56
- return config;
57
- }
@@ -1,42 +0,0 @@
1
- import type { InputOption } from "rollup";
2
-
3
- export const mergeAsArray = (entries: InputOption) => {
4
- return Array.isArray(entries)
5
- ? entries
6
- : typeof entries === "object" && entries != null
7
- ? Object.values(entries)
8
- : typeof entries === "string"
9
- ? [entries]
10
- : [];
11
- };
12
- export const mergeAsObject = (entries: InputOption) => {
13
- return Array.isArray(entries)
14
- ? Object.fromEntries(entries.map((entry) => [entry, entry]))
15
- : typeof entries === "object" && entries != null
16
- ? entries
17
- : typeof entries === "string"
18
- ? { [entries]: entries }
19
- : {};
20
- };
21
-
22
- export const mergeInputs = (
23
- input: InputOption,
24
- input2: InputOption | undefined
25
- ) => {
26
- if (!input2) return input;
27
- return Array.isArray(input)
28
- ? [...input, ...mergeAsArray(input2)]
29
- : typeof input === "string"
30
- ? [input, ...mergeAsArray(input2)]
31
- : input != null && typeof input2 === "object" && input2 != null
32
- ? { ...input, ...mergeAsObject(input2) }
33
- : input != null
34
- ? input
35
- : Array.isArray(input2)
36
- ? input2
37
- : typeof input2 === "object" && input2 != null
38
- ? input2
39
- : typeof input2 === "string"
40
- ? input2
41
- : [];
42
- };
@@ -1,67 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { resolve } from "node:path";
3
- import type { StreamPluginOptions } from "./types.js";
4
-
5
- export async function checkFilesExist(
6
- pages: string[],
7
- options: Pick<StreamPluginOptions, "Page" | "props">,
8
- root: string
9
- ) {
10
- const errors: string[] = [];
11
- const pageSet = new Set<string>();
12
- const pageMap = new Map<string, string>();
13
- // Check if files exist when string paths are provided
14
- if (typeof options.Page === "string") {
15
- const pagePath = resolve(root, options.Page);
16
- pageMap.set(options.Page, pagePath);
17
- if (!pageSet.has(pagePath)) {
18
- if (!existsSync(pagePath)) {
19
- errors.push(`Page file not found: ${pagePath}`);
20
- }
21
- pageSet.add(pagePath);
22
- }
23
- } else if (typeof options.Page === "function" && pages) {
24
- for (const page of pages) {
25
- const pagePath = options.Page(resolve(root, page));
26
- pageMap.set(page, pagePath);
27
- if (pageSet.has(pagePath)) {
28
- continue;
29
- }
30
- if (!existsSync(pagePath)) {
31
- errors.push(`Page file not found: ${pagePath}`);
32
- }
33
- pageSet.add(pagePath);
34
- }
35
- }
36
-
37
- const propsSet = new Set<string>();
38
- const propsMap = new Map<string, string>();
39
- if (typeof options.props === "string") {
40
- const propsPath = resolve(root, options.props);
41
- propsMap.set(options.props, propsPath);
42
- if (!propsSet.has(propsPath)) {
43
- if (!existsSync(propsPath)) {
44
- errors.push(`Props file not found: ${propsPath}`);
45
- }
46
- propsSet.add(propsPath);
47
- }
48
- } else if (typeof options.props === "function" && pages) {
49
- for (const page of pages) {
50
- const propsPath = options.props(resolve(root, page));
51
- propsMap.set(page, propsPath);
52
- if (propsSet.has(propsPath)) {
53
- continue;
54
- }
55
- if (!existsSync(propsPath)) {
56
- errors.push(`Props file not found: ${propsPath}`);
57
- }
58
- propsSet.add(propsPath);
59
- }
60
- }
61
-
62
- if (errors.length) {
63
- throw new Error("React Stream Plugin Validation:\n" + errors.join("\n"));
64
- }
65
-
66
- return { pageMap, pageSet, propsMap, propsSet };
67
- }
@@ -1,22 +0,0 @@
1
- import { relative } from "node:path";
2
-
3
- type NormalizedInputOptions = {
4
- // will automatically remove this part
5
- root?: string;
6
- };
7
-
8
- export const createInputNormalizer =
9
- (
10
- {
11
- root = process.cwd(),
12
- }: NormalizedInputOptions = {} as NormalizedInputOptions
13
- ) =>
14
- ([key, path]: [string, string]) =>
15
- [
16
- key,
17
- path.startsWith(root)
18
- ? relative(root, path)
19
- : path.startsWith("/")
20
- ? path
21
- : `/${path}`,
22
- ];
package/src/index.ts DELETED
@@ -1,4 +0,0 @@
1
- export { reactStreamPlugin } from './plugin.js';
2
-
3
- // Export types
4
- export type * from './types.js';