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
@@ -0,0 +1,375 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { resolve, join } from 'node:path';
7
+ import { performance } from 'node:perf_hooks';
8
+ import 'node:worker_threads';
9
+ import { createLogger } from 'vite';
10
+ import { checkFilesExist } from '../checkFilesExist.js';
11
+ import { tryManifest } from '../helpers/tryManifest.js';
12
+ import { resolveOptions } from '../config/resolveOptions.js';
13
+ import { resolvePages } from '../config/resolvePages.js';
14
+ import { resolveUserConfig } from '../config/resolveUserConfig.js';
15
+ import { createWorker } from '../worker/createWorker.js';
16
+ import { renderPages } from '../worker/html/renderPages.js';
17
+ import { createHandler } from './createHandler.js';
18
+ import { readdirSync } from 'fs';
19
+ import { DEFAULT_CONFIG } from '../config/defaults.js';
20
+ import { getPluginRoot } from '../config/getPaths.js';
21
+ import { getModuleManifest } from '../helpers/getModuleManifest.js';
22
+ import { createBuildLoader } from '../loader/createBuildLoader.js';
23
+ import React__default from 'react';
24
+
25
+ function reactServerPlugin(options) {
26
+ const timing = {
27
+ start: performance.now()
28
+ };
29
+ let files;
30
+ let worker;
31
+ let finalConfig;
32
+ let cssModules = /* @__PURE__ */ new Set();
33
+ let clientComponents = /* @__PURE__ */ new Map();
34
+ let buildCssFiles = /* @__PURE__ */ new Set();
35
+ let root = process.cwd();
36
+ let userConfig;
37
+ let userOptions;
38
+ let moduleGraph = {};
39
+ const resolvedOptions = resolveOptions(options);
40
+ if (resolvedOptions.type === "error") {
41
+ throw resolvedOptions.error;
42
+ }
43
+ userOptions = resolvedOptions.userOptions;
44
+ root = userOptions.projectRoot;
45
+ return {
46
+ name: "vite:react-stream-server",
47
+ enforce: "post",
48
+ meta: { timing },
49
+ api: {
50
+ addCssFile(path) {
51
+ buildCssFiles.add(path);
52
+ }
53
+ },
54
+ configResolved(resolvedConfig) {
55
+ finalConfig = resolvedConfig;
56
+ timing.configResolved = performance.now();
57
+ if (finalConfig.command === "build") {
58
+ finalConfig = {
59
+ ...finalConfig,
60
+ mode: "production"
61
+ };
62
+ }
63
+ const plugins = finalConfig.plugins;
64
+ const transformerIndex = plugins.findIndex(
65
+ (p) => p.name === "vite:react-stream-transformer"
66
+ );
67
+ const preserverIndex = plugins.findIndex(
68
+ (p) => p.name === "vite-plugin-react-server:preserve-directives"
69
+ );
70
+ if (transformerIndex === -1) {
71
+ throw new Error("Transformer plugin not installed");
72
+ }
73
+ if (preserverIndex < transformerIndex) {
74
+ throw new Error("Transformer plugin isn't installed or isn't running before preserver");
75
+ }
76
+ },
77
+ async configureServer(server) {
78
+ if (server.config.root !== root) {
79
+ console.log(
80
+ "[vite-plugin-react-server] Root dir changed",
81
+ server.config.root,
82
+ root
83
+ );
84
+ root = server.config.root;
85
+ }
86
+ const activeStreams = /* @__PURE__ */ new Set();
87
+ server.ws.on("restart", (path) => {
88
+ console.log(
89
+ "[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:",
90
+ path
91
+ );
92
+ for (const res of activeStreams) {
93
+ res.writeHead(503, {
94
+ "Content-Type": "text/x-component",
95
+ "Retry-After": "1"
96
+ });
97
+ res.end('{"error":"Server restarting..."}');
98
+ }
99
+ activeStreams.clear();
100
+ });
101
+ server.ws.on("connection", (_socket, _req) => {
102
+ console.log("[vite-plugin-react-server] hooking up ws connection");
103
+ });
104
+ server.ws.on("listening", () => {
105
+ console.log("[vite-plugin-react-server] hooking up ws listening");
106
+ });
107
+ server.middlewares.use(async (req, res, next) => {
108
+ if (req.headers.accept !== "text/x-component") return next();
109
+ console.log("[vite-plugin-react-server] middleware called");
110
+ try {
111
+ const handler = await createHandler(
112
+ req.url ?? "",
113
+ {
114
+ Page: userOptions.Page,
115
+ props: userOptions.props,
116
+ build: userOptions.build,
117
+ Html: React__default.Fragment,
118
+ pageExportName: userOptions.pageExportName,
119
+ propsExportName: userOptions.propsExportName,
120
+ moduleBase: userOptions.moduleBase,
121
+ moduleBasePath: userOptions.moduleBasePath,
122
+ projectRoot: root
123
+ },
124
+ {
125
+ cssFiles: Array.from(cssModules),
126
+ logger: createLogger(),
127
+ loader: server.ssrLoadModule,
128
+ moduleGraph: server.moduleGraph
129
+ }
130
+ );
131
+ if (handler.type === "success") {
132
+ handler.stream?.pipe(res);
133
+ }
134
+ activeStreams.add(res);
135
+ } finally {
136
+ res.on("close", () => {
137
+ console.log(
138
+ "[vite-plugin-react-server] ➖ Stream closed for:",
139
+ req.url
140
+ );
141
+ activeStreams.delete(res);
142
+ });
143
+ }
144
+ });
145
+ },
146
+ async config(config, configEnv) {
147
+ if (typeof config.root === "string" && config.root !== root) {
148
+ console.log("[vite-plugin-react-server] Root dir changed", config.root, root);
149
+ root = config.root;
150
+ }
151
+ const resolvedPages = await resolvePages(userOptions.build.pages);
152
+ if (resolvedPages.type === "error") {
153
+ throw resolvedPages.error;
154
+ }
155
+ files = await checkFilesExist(
156
+ resolvedPages.pages,
157
+ userOptions,
158
+ root
159
+ );
160
+ const resolvedConfig = resolveUserConfig({
161
+ condition: "react-server",
162
+ config,
163
+ configEnv,
164
+ userOptions,
165
+ files
166
+ });
167
+ if (resolvedConfig.type === "error") {
168
+ throw resolvedConfig.error;
169
+ }
170
+ userConfig = resolvedConfig.userConfig;
171
+ return resolvedConfig.userConfig;
172
+ },
173
+ async buildStart() {
174
+ if (!timing.buildStart) {
175
+ timing.buildStart = performance.now();
176
+ } else {
177
+ console.log("Build already started");
178
+ }
179
+ },
180
+ async closeBundle() {
181
+ if (!userConfig || finalConfig.command !== "build") return;
182
+ try {
183
+ timing.renderStart = performance.now();
184
+ const resolvedServerManifest = tryManifest({
185
+ root,
186
+ outDir: userOptions.build.server,
187
+ ssrManifest: false
188
+ });
189
+ const serverManifest = resolvedServerManifest.type === "error" ? getModuleManifest.bind(this)() : resolvedServerManifest.manifest;
190
+ let htmlWorkerPath = serverManifest["html-worker"]?.file;
191
+ if (options.htmlWorkerPath) {
192
+ htmlWorkerPath = join(root, options.htmlWorkerPath);
193
+ } else {
194
+ htmlWorkerPath = join(
195
+ getPluginRoot(),
196
+ DEFAULT_CONFIG.HTML_WORKER_PATH
197
+ );
198
+ }
199
+ const workerPath = resolve(
200
+ root,
201
+ userOptions.build.server,
202
+ htmlWorkerPath
203
+ );
204
+ worker = await createWorker({
205
+ projectRoot: userOptions.projectRoot,
206
+ workerPath,
207
+ condition: "react-server",
208
+ reverseCondition: true,
209
+ mode: finalConfig.mode,
210
+ nodeOptions: "--conditions=react-client"
211
+ });
212
+ const resolvedPages = await resolvePages(userOptions.build.pages);
213
+ if (resolvedPages.type === "error") {
214
+ throw resolvedPages.error;
215
+ }
216
+ const routes = resolvedPages.pages;
217
+ console.log("[plugin] Routes to render:", routes);
218
+ const entries = Object.values(serverManifest).filter(
219
+ (entry) => entry.isEntry
220
+ );
221
+ const css = entries.flatMap((entry) => entry.css);
222
+ const loader = createBuildLoader({
223
+ root,
224
+ userConfig,
225
+ pluginContext: this
226
+ });
227
+ const { failedRoutes, completedRoutes } = await renderPages(routes, {
228
+ pipableStreamOptions: {
229
+ bootstrapModules: entries.map((entry) => "/" + entry.file)
230
+ },
231
+ moduleBasePath: userOptions.moduleBasePath,
232
+ moduleBaseURL: userOptions.moduleBaseURL,
233
+ clientCss: css?.map((css2) => "/" + css2) ?? [],
234
+ userConfig,
235
+ pluginOptions: userOptions,
236
+ worker,
237
+ manifest: serverManifest,
238
+ loader,
239
+ onCssFile: (path) => {
240
+ if (buildCssFiles && path.endsWith(".css")) {
241
+ buildCssFiles.add(path);
242
+ }
243
+ }
244
+ });
245
+ console.log("[vite-plugin-react-server] Render results:", {
246
+ failedRoutes,
247
+ completedRoutes
248
+ });
249
+ if (failedRoutes.size) {
250
+ console.error(
251
+ "[vite-plugin-react-server] Failed to render routes:",
252
+ failedRoutes
253
+ );
254
+ }
255
+ console.log("[vite-plugin-react-server] Render complete");
256
+ console.log("[vite-plugin-react-server] Terminating worker");
257
+ if (worker) await worker.terminate();
258
+ timing.renderEnd = performance.now();
259
+ timing.total = (timing.renderEnd - timing.start) / 1e3;
260
+ const stats = {
261
+ htmlFiles: routes.length,
262
+ clientComponents: clientComponents.size,
263
+ cssFiles: cssModules.size,
264
+ totalRoutes: routes.length,
265
+ timing: {
266
+ config: ((timing.configResolved ?? 0) - timing.start) / 1e3,
267
+ build: ((timing.buildStart ?? 0) - (timing.configResolved ?? 0)) / 1e3,
268
+ render: ((timing.renderEnd ?? 0) - (timing.renderStart ?? 0)) / 1e3,
269
+ total: (timing.renderEnd ?? 0 - timing.start) / 1e3
270
+ }
271
+ };
272
+ const formatDuration = (seconds) => {
273
+ if (seconds < 1e-3) {
274
+ return `${(seconds * 1e6).toFixed(0)}μs`;
275
+ }
276
+ if (seconds < 1) {
277
+ return `${(seconds * 1e3).toFixed(0)}ms`;
278
+ }
279
+ return `${seconds.toFixed(2)}s`;
280
+ };
281
+ console.log("\n[vite-plugin-react-server] Build Summary:");
282
+ console.log("─".repeat(50));
283
+ console.log(`�� Generated ${stats.htmlFiles} HTML files`);
284
+ console.log(`🎯 Processed ${stats.clientComponents} client components`);
285
+ console.log(`🎨 Included ${stats.cssFiles} CSS files`);
286
+ console.log(`🛣️ Total routes: ${stats.totalRoutes}`);
287
+ console.log("─".repeat(50));
288
+ console.log("⏱️ Timing:");
289
+ console.log(` Config: ${formatDuration(stats.timing.config)}`);
290
+ console.log(` Build: ${formatDuration(stats.timing.build)}`);
291
+ console.log(` Render: ${formatDuration(stats.timing.render)}`);
292
+ console.log(" ".repeat(12));
293
+ console.log(` Total: ${formatDuration(stats.timing.total)}`);
294
+ console.log("─".repeat(50));
295
+ if (worker) {
296
+ console.log("[vite-plugin-react-server] Terminating worker...");
297
+ await worker.terminate();
298
+ worker = null;
299
+ }
300
+ } catch (error) {
301
+ console.error("[vite-plugin-react-server] Build failed:", error);
302
+ if (worker) await worker.terminate();
303
+ throw error;
304
+ }
305
+ },
306
+ async buildEnd(error) {
307
+ if (error) {
308
+ console.error("[vite-plugin-react-server] Build error:", error);
309
+ }
310
+ if (worker) await worker.terminate();
311
+ },
312
+ handleHotUpdate({ file }) {
313
+ if (file.endsWith(".css")) {
314
+ cssModules.add(file);
315
+ }
316
+ },
317
+ async renderChunk(_code, chunk, _options) {
318
+ const moduleIds = this.getModuleIds();
319
+ const fallbackManifestEntries = Object.fromEntries(
320
+ Array.from(moduleIds).map((module) => {
321
+ const moduleInfo = this.getModuleInfo(module);
322
+ if (!moduleInfo) return [module, null];
323
+ const {
324
+ code,
325
+ id,
326
+ isEntry,
327
+ importedIds,
328
+ dynamicallyImportedIds,
329
+ ...rest
330
+ } = moduleInfo;
331
+ return [
332
+ chunk.name ?? id,
333
+ {
334
+ file: chunk.fileName,
335
+ src: module,
336
+ name: chunk.name ?? id,
337
+ isEntry: chunk.isEntry ?? isEntry,
338
+ imports: chunk.imports ?? importedIds,
339
+ dynamicImports: chunk.dynamicImports ?? dynamicallyImportedIds,
340
+ directive: rest.meta["directive"],
341
+ css: chunk.viteMetadata?.importedCss ?? [],
342
+ assets: chunk.viteMetadata?.importedAssets ?? []
343
+ }
344
+ ];
345
+ }).filter(Boolean)
346
+ );
347
+ moduleGraph = {
348
+ ...moduleGraph,
349
+ ...fallbackManifestEntries
350
+ };
351
+ if (chunk.fileName.includes("html-worker")) {
352
+ const workerPath = resolve(
353
+ root,
354
+ userOptions.build.server,
355
+ chunk.fileName
356
+ );
357
+ console.log("Files in output dir:", {
358
+ files: readdirSync(resolve(root, userOptions.build.server)),
359
+ workerPath
360
+ });
361
+ if (finalConfig.command === "build") {
362
+ return null;
363
+ }
364
+ worker = await createWorker({
365
+ projectRoot: userOptions.projectRoot,
366
+ workerPath
367
+ });
368
+ }
369
+ return null;
370
+ }
371
+ };
372
+ }
373
+
374
+ export { reactServerPlugin };
375
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/react-server/plugin.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\nimport { performance } from \"node:perf_hooks\";\nimport { Worker } from \"node:worker_threads\";\nimport type { Plugin as RollupPlugin } from \"rollup\";\nimport type { Plugin as VitePlugin } from \"vite\";\nimport {\n createLogger,\n type ResolvedConfig,\n type UserConfig,\n type ViteDevServer,\n} from \"vite\";\nimport { checkFilesExist } from \"../checkFilesExist.js\";\nimport { tryManifest } from \"../helpers/tryManifest.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolvePages } from \"../config/resolvePages.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\nimport type {\n BuildTiming,\n CheckFilesExistReturn,\n ReactStreamPluginMeta,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { type StreamPluginOptions } from \"../types.js\";\nimport { createWorker } from \"../worker/createWorker.js\";\nimport { renderPages } from \"../worker/html/renderPages.js\";\nimport { createHandler } from \"./createHandler.js\";\nimport { readdirSync } from \"fs\";\nimport type { ServerResponse } from \"node:http\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { getPluginRoot } from \"../config/getPaths.js\";\nimport { getModuleManifest } from \"../helpers/getModuleManifest.js\";\nimport { createBuildLoader } from '../loader/createBuildLoader.js';\nimport React from \"react\";\n\nexport function reactServerPlugin(\n options: StreamPluginOptions\n): VitePlugin & RollupPlugin & { meta: ReactStreamPluginMeta } {\n const timing: BuildTiming = {\n start: performance.now(),\n };\n\n let files: CheckFilesExistReturn;\n // let env: Awaited<ReturnType<typeof getEnv>>;\n let worker: Worker;\n let finalConfig: ResolvedConfig;\n let cssModules = new Set<string>();\n let clientComponents = new Map<string, string>();\n // let define: Record<string, string>;\n let buildCssFiles = new Set<string>();\n let root: string = process.cwd();\n let userConfig: ResolvedUserConfig;\n let userOptions: ResolvedUserOptions;\n let moduleGraph: Record<\n string,\n {\n file: string;\n src: string;\n name: string;\n isEntry: boolean;\n imports: string[];\n dynamicImports: string[];\n }\n > = {};\n\n interface BuildStats {\n htmlFiles: number;\n clientComponents: number;\n cssFiles: number;\n totalRoutes: number;\n timing: {\n config: number;\n build: number;\n render: number;\n total: number;\n };\n }\n\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n root = userOptions.projectRoot;\n return {\n name: \"vite:react-stream-server\",\n enforce: \"post\",\n meta: { timing } as ReactStreamPluginMeta,\n api: {\n addCssFile(path: string) {\n buildCssFiles.add(path);\n },\n },\n configResolved(resolvedConfig) {\n finalConfig = resolvedConfig;\n timing.configResolved = performance.now();\n if (finalConfig.command === \"build\") {\n finalConfig = {\n ...finalConfig,\n mode: \"production\",\n };\n }\n\n // Verify transformer runs first, preserver runs last\n const plugins = finalConfig.plugins;\n const transformerIndex = plugins.findIndex(\n (p) => p.name === \"vite:react-stream-transformer\"\n );\n const preserverIndex = plugins.findIndex(\n (p) => p.name === \"vite-plugin-react-server:preserve-directives\"\n );\n\n if (transformerIndex === -1) {\n throw new Error(\"Transformer plugin not installed\");\n }\n if (preserverIndex < transformerIndex) {\n throw new Error(\"Transformer plugin isn't installed or isn't running before preserver\");\n }\n },\n async configureServer(server: ViteDevServer) {\n if (server.config.root !== root) {\n console.log(\n \"[vite-plugin-react-server] Root dir changed\",\n server.config.root,\n root\n );\n root = server.config.root;\n }\n\n const activeStreams = new Set<ServerResponse>();\n\n // Handle Vite server restarts\n server.ws.on(\"restart\", (path) => {\n console.log(\n \"[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:\",\n path\n );\n\n // Close streams with restart message\n for (const res of activeStreams) {\n res.writeHead(503, {\n \"Content-Type\": \"text/x-component\",\n \"Retry-After\": \"1\",\n });\n res.end('{\"error\":\"Server restarting...\"}');\n }\n activeStreams.clear();\n });\n\n server.ws.on(\"connection\", (_socket, _req) => {\n console.log(\"[vite-plugin-react-server] hooking up ws connection\");\n });\n\n server.ws.on(\"listening\", () => {\n console.log(\"[vite-plugin-react-server] hooking up ws listening\");\n });\n\n server.middlewares.use(async (req, res, next) => {\n if (req.headers.accept !== \"text/x-component\") return next();\n console.log(\"[vite-plugin-react-server] middleware called\");\n try {\n const handler = await createHandler(\n req.url ?? \"\",\n {\n Page: userOptions.Page,\n props: userOptions.props,\n build: userOptions.build,\n Html: React.Fragment,\n pageExportName: userOptions.pageExportName,\n propsExportName: userOptions.propsExportName,\n moduleBase: userOptions.moduleBase,\n moduleBasePath: userOptions.moduleBasePath,\n projectRoot: root,\n },\n {\n cssFiles: Array.from(cssModules),\n logger: createLogger(),\n loader: server.ssrLoadModule,\n moduleGraph: server.moduleGraph,\n }\n );\n if (handler.type === \"success\") {\n handler.stream?.pipe(res);\n }\n activeStreams.add(res);\n } finally {\n res.on(\"close\", () => {\n console.log(\n \"[vite-plugin-react-server] ➖ Stream closed for:\",\n req.url\n );\n activeStreams.delete(res);\n });\n }\n });\n },\n async config(config, configEnv): Promise<UserConfig> {\n if(typeof config.root === 'string' && config.root !== root) {\n console.log(\"[vite-plugin-react-server] Root dir changed\", config.root, root);\n root = config.root\n }\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n\n files = await checkFilesExist(\n resolvedPages.pages,\n userOptions,\n root\n );\n\n const resolvedConfig = resolveUserConfig({\n condition: \"react-server\",\n config,\n configEnv,\n userOptions,\n files,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n userConfig = resolvedConfig.userConfig;\n\n return resolvedConfig.userConfig;\n },\n async buildStart() {\n if (!timing.buildStart) {\n timing.buildStart = performance.now();\n } else {\n console.log(\"Build already started\");\n }\n },\n async closeBundle() {\n if (!userConfig || finalConfig.command !== \"build\") return;\n try {\n timing.renderStart = performance.now();\n\n const resolvedServerManifest = tryManifest({\n root,\n outDir: userOptions.build.server,\n ssrManifest: false,\n });\n\n const serverManifest =\n resolvedServerManifest.type === \"error\"\n ? getModuleManifest.bind(this)()\n : resolvedServerManifest.manifest;\n // Get worker path from manifest\n // Look for the html-worker entry directly\n let htmlWorkerPath = serverManifest[\"html-worker\"]?.file;\n\n if (options.htmlWorkerPath) {\n htmlWorkerPath = join(root, options.htmlWorkerPath);\n } else {\n htmlWorkerPath = join(\n getPluginRoot(),\n DEFAULT_CONFIG.HTML_WORKER_PATH\n );\n }\n\n // Initialize worker with path from server directory\n const workerPath = resolve(\n root,\n userOptions.build.server,\n htmlWorkerPath\n );\n\n worker = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath,\n condition: \"react-server\",\n reverseCondition: true,\n mode: finalConfig.mode as \"production\" | \"development\",\n nodeOptions: \"--conditions=react-client\",\n });\n\n\n // Get routes directly from pages\n const resolvedPages = await resolvePages(userOptions.build.pages);\n if (resolvedPages.type === \"error\") {\n throw resolvedPages.error;\n }\n const routes = resolvedPages.pages;\n console.log(\"[plugin] Routes to render:\", routes);\n\n const entries = Object.values(serverManifest).filter(\n (entry) => entry.isEntry\n );\n const css = entries.flatMap((entry) => entry.css);\n const loader = createBuildLoader({ \n root,\n userConfig,\n pluginContext: this\n });\n\n const { failedRoutes, completedRoutes } = await renderPages(routes, {\n pipableStreamOptions: {\n bootstrapModules: entries.map((entry) => \"/\" + entry.file),\n },\n moduleBasePath: userOptions.moduleBasePath,\n moduleBaseURL: userOptions.moduleBaseURL,\n clientCss: css?.map((css) => \"/\" + css) ?? [],\n userConfig,\n pluginOptions: userOptions,\n worker: worker,\n manifest: serverManifest,\n loader,\n onCssFile: (path: string) => {\n if (buildCssFiles && path.endsWith(\".css\")) {\n buildCssFiles.add(path);\n }\n },\n });\n\n // Debug render results\n console.log(\"[vite-plugin-react-server] Render results:\", {\n failedRoutes,\n completedRoutes,\n });\n\n if (failedRoutes.size) {\n console.error(\n \"[vite-plugin-react-server] Failed to render routes:\",\n failedRoutes\n );\n }\n console.log(\"[vite-plugin-react-server] Render complete\");\n console.log(\"[vite-plugin-react-server] Terminating worker\");\n if (worker) await worker.terminate();\n\n timing.renderEnd = performance.now();\n timing.total = (timing.renderEnd - timing.start) / 1000;\n\n // Collect stats\n const stats: BuildStats = {\n htmlFiles: routes.length,\n clientComponents: clientComponents.size,\n cssFiles: cssModules.size,\n totalRoutes: routes.length,\n timing: {\n config: ((timing.configResolved ?? 0) - timing.start) / 1000,\n build:\n ((timing.buildStart ?? 0) - (timing.configResolved ?? 0)) / 1000,\n render:\n ((timing.renderEnd ?? 0) - (timing.renderStart ?? 0)) / 1000,\n total: (timing.renderEnd ?? 0 - timing.start) / 1000,\n },\n };\n\n // Format duration helper\n const formatDuration = (seconds: number) => {\n if (seconds < 0.001) {\n return `${(seconds * 1000000).toFixed(0)}μs`;\n }\n if (seconds < 1) {\n return `${(seconds * 1000).toFixed(0)}ms`;\n }\n return `${seconds.toFixed(2)}s`;\n };\n\n console.log(\"\\n[vite-plugin-react-server] Build Summary:\");\n console.log(\"─\".repeat(50));\n console.log(`�� Generated ${stats.htmlFiles} HTML files`);\n console.log(`🎯 Processed ${stats.clientComponents} client components`);\n console.log(`🎨 Included ${stats.cssFiles} CSS files`);\n console.log(`🛣️ Total routes: ${stats.totalRoutes}`);\n console.log(\"─\".repeat(50));\n console.log(\"⏱️ Timing:\");\n console.log(` Config: ${formatDuration(stats.timing.config)}`);\n console.log(` Build: ${formatDuration(stats.timing.build)}`);\n console.log(` Render: ${formatDuration(stats.timing.render)}`);\n console.log(\" \".repeat(12));\n console.log(` Total: ${formatDuration(stats.timing.total)}`);\n console.log(\"─\".repeat(50));\n\n // Ensure worker is terminated\n if (worker) {\n console.log(\"[vite-plugin-react-server] Terminating worker...\");\n await worker.terminate();\n worker = null as any;\n }\n } catch (error) {\n console.error(\"[vite-plugin-react-server] Build failed:\", error);\n // Make sure to terminate worker even on error\n if (worker) await worker.terminate();\n throw error;\n }\n },\n async buildEnd(error) {\n if (error) {\n console.error(\"[vite-plugin-react-server] Build error:\", error);\n }\n if (worker) await worker.terminate();\n },\n handleHotUpdate({ file }) {\n if (file.endsWith(\".css\")) {\n cssModules.add(file);\n }\n },\n async renderChunk(_code: string, chunk: any, _options: any) {\n const moduleIds = this.getModuleIds();\n const fallbackManifestEntries = Object.fromEntries(\n Array.from(moduleIds)\n .map((module) => {\n const moduleInfo = this.getModuleInfo(module);\n if (!moduleInfo) return [module, null];\n const {\n code,\n id,\n isEntry,\n importedIds,\n dynamicallyImportedIds,\n ...rest\n } = moduleInfo;\n return [\n chunk.name ?? id,\n {\n file: chunk.fileName,\n src: module,\n name: chunk.name ?? id,\n isEntry: chunk.isEntry ?? isEntry,\n imports: chunk.imports ?? importedIds,\n dynamicImports: chunk.dynamicImports ?? dynamicallyImportedIds,\n directive: rest.meta[\"directive\"],\n css: chunk.viteMetadata?.importedCss ?? [],\n assets: chunk.viteMetadata?.importedAssets ?? [],\n },\n ];\n })\n .filter(Boolean)\n );\n\n moduleGraph = {\n ...moduleGraph,\n ...fallbackManifestEntries,\n };\n\n if (chunk.fileName.includes(\"html-worker\")) {\n const workerPath = resolve(\n root,\n userOptions.build.server,\n chunk.fileName\n );\n console.log(\"Files in output dir:\", {\n files: readdirSync(resolve(root, userOptions.build.server)),\n workerPath,\n });\n\n // Don't initialize worker during build phase\n if (finalConfig.command === \"build\") {\n return null;\n }\n\n worker = await createWorker({\n projectRoot: userOptions.projectRoot,\n workerPath,\n });\n }\n return null;\n },\n };\n}\n"],"names":["React","css"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../plugin/resolvePage.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,wBAAsB,WAAW,CAAC,EAChC,UAAU,EACV,IAAI,EACJ,GAAG,EACH,UAAU,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+CjD"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
1
6
  async function resolvePage({
2
7
  pageModule,
3
8
  path,
@@ -33,12 +38,11 @@ async function resolvePage({
33
38
  return {
34
39
  type: "error",
35
40
  error: new Error(
36
- `Could not find Page export "${exportName}" in "${path}". ${typeof pageModule === "object" && pageModule != null ? keys.length ? "Available exports: " + keys.join(", ") : "The object was defined but has no properties." : "typeof pageModule =" + typeof pageModule}`,
41
+ `Could not find Page export "${exportName}" in "${path}". ${typeof pageModule === "object" && pageModule != null ? keys.length ? "Available exports: " + keys.join(", ") : 'The object was defined but has no properties. "' + JSON.stringify(pageModule) + '"' : "typeof pageModule =" + typeof pageModule}`,
37
42
  { cause: pageModule }
38
43
  )
39
44
  };
40
45
  }
41
- export {
42
- resolvePage
43
- };
46
+
47
+ export { resolvePage };
44
48
  //# sourceMappingURL=resolvePage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePage.js","sources":["../../plugin/resolvePage.ts"],"sourcesContent":["type ResolvePageOptions = {\n pageModule: Record<string, any>;\n path: string;\n url: string;\n exportName: string;\n};\n\ntype ResolvePageResult =\n | { type: \"success\"; key: string; Page: any }\n | { type: \"error\"; error: Error }\n | { type: \"skip\" };\n\nexport async function resolvePage({\n pageModule,\n path,\n url,\n exportName,\n}: ResolvePageOptions): Promise<ResolvePageResult> {\n if (!pageModule) {\n return {\n type: \"error\",\n error: new Error(`pageModule is ${typeof pageModule}`),\n };\n }\n const keys =\n typeof pageModule === \"object\" && pageModule != null\n ? Object.keys(pageModule)\n : [];\n const found = keys.find((v) => v === exportName || v === url || v === path);\n if (found) {\n if (typeof pageModule[found] === \"function\") {\n return {\n type: \"success\",\n key: found,\n Page: pageModule[found],\n };\n } else {\n if (\n typeof pageModule === \"object\" &&\n pageModule != null &&\n Object.keys(pageModule).includes(\"type\")\n )\n return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n [exportName]: () => found,\n error: pageModule[found][\"error\"],\n };\n }\n }\n if (keys.includes(\"type\")) return pageModule as ResolvePageResult;\n return {\n type: \"error\",\n error: new Error(\n `Could not find Page export \"${exportName}\" in \"${path}\". ${\n typeof pageModule === \"object\" && pageModule != null\n ? keys.length\n ? \"Available exports: \" + keys.join(\", \")\n : \"The object was defined but has no properties. \\\"\" + JSON.stringify(pageModule) + \"\\\"\"\n : \"typeof pageModule =\" + typeof pageModule\n }`,\n { cause: pageModule }\n ),\n };\n}\n"],"names":[],"mappings":";;;;;AAYA,eAAsB,WAAY,CAAA;AAAA,EAChC,UAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAmD,EAAA;AACjD,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,IAAI,KAAA,CAAM,CAAiB,cAAA,EAAA,OAAO,UAAU,CAAE,CAAA;AAAA,KACvD;AAAA;AAEF,EAAM,MAAA,IAAA,GACJ,OAAO,UAAA,KAAe,QAAY,IAAA,UAAA,IAAc,OAC5C,MAAO,CAAA,IAAA,CAAK,UAAU,CAAA,GACtB,EAAC;AACP,EAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,IAAA,CAAK,CAAC,CAAA,KAAM,MAAM,UAAc,IAAA,CAAA,KAAM,GAAO,IAAA,CAAA,KAAM,IAAI,CAAA;AAC1E,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,IAAI,OAAO,UAAA,CAAW,KAAK,CAAA,KAAM,UAAY,EAAA;AAC3C,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,SAAA;AAAA,QACN,GAAK,EAAA,KAAA;AAAA,QACL,IAAA,EAAM,WAAW,KAAK;AAAA,OACxB;AAAA,KACK,MAAA;AACL,MACE,IAAA,OAAO,UAAe,KAAA,QAAA,IACtB,UAAc,IAAA,IAAA,IACd,OAAO,IAAK,CAAA,UAAU,CAAE,CAAA,QAAA,CAAS,MAAM,CAAA;AAEvC,QAAO,OAAA,UAAA;AACT,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,CAAC,UAAU,GAAG,MAAM,KAAA;AAAA,QACpB,KAAO,EAAA,UAAA,CAAW,KAAK,CAAA,CAAE,OAAO;AAAA,OAClC;AAAA;AACF;AAEF,EAAA,IAAI,IAAK,CAAA,QAAA,CAAS,MAAM,CAAA,EAAU,OAAA,UAAA;AAClC,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAO,IAAI,KAAA;AAAA,MACT,CAAA,4BAAA,EAA+B,UAAU,CAAA,MAAA,EAAS,IAAI,CAAA,GAAA,EACpD,OAAO,UAAe,KAAA,QAAA,IAAY,UAAc,IAAA,IAAA,GAC5C,IAAK,CAAA,MAAA,GACH,wBAAwB,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,GACtC,iDAAqD,GAAA,IAAA,CAAK,SAAU,CAAA,UAAU,CAAI,GAAA,GAAA,GACpF,qBAAwB,GAAA,OAAO,UACrC,CAAA,CAAA;AAAA,MACA,EAAE,OAAO,UAAW;AAAA;AACtB,GACF;AACF;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProps.d.ts","sourceRoot":"","sources":["../../plugin/resolveProps.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,kBAAkB,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAMrB,wBAAsB,YAAY,CAAC,EACjC,WAAW,EACX,IAAI,EACJ,UAAU,EACV,GAAG,GACJ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6GnD"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
1
6
  function isFunction(value) {
2
7
  return typeof value === "function";
3
8
  }
@@ -22,10 +27,14 @@ async function resolveProps({
22
27
  };
23
28
  }
24
29
  const keys = Object.keys(propsModule);
25
- const found = keys.find((v) => v === exportName || v === url || v === path);
30
+ let found = keys.find((v) => v === exportName || v === url || v === path);
31
+ if (exportName in propsModule) {
32
+ found = exportName;
33
+ }
26
34
  if (found) {
27
- const value = propsModule[found];
35
+ let value = propsModule[found];
28
36
  try {
37
+ console.log("[resolveProps] Found:", found, value);
29
38
  if (isFunction(value)) {
30
39
  const props = await value(url);
31
40
  return {
@@ -49,7 +58,6 @@ async function resolveProps({
49
58
  props: value
50
59
  };
51
60
  }
52
- console.warn(found, "error in resolveProps", propsModule, url, path);
53
61
  return {
54
62
  type: "error",
55
63
  error: new Error(
@@ -73,18 +81,23 @@ async function resolveProps({
73
81
  return {
74
82
  type: "error",
75
83
  error: new Error(
76
- `Expected props export "${exportName}" in "${path}", but instead got "exports" with ${!!foundCommonJS ? foundCommonJS.toString() : exportKeys.length ? exportKeys.join(", ") : "no keys"}, this will not work. Make sure to set esModule: true in rollupOptions.output`
84
+ `Expected props export "${exportName}" in "${path}", but instead got "exports" with ${!!foundCommonJS ? foundCommonJS.toString() : exportKeys.length ? exportKeys.join(", ") : "no keys"}, this will not work. Make sure to set esModule: true in rollupOptions.output. ${JSON.stringify(propsModule)}`
77
85
  )
78
86
  };
79
87
  }
88
+ if (Object.keys(propsModule).includes("error")) {
89
+ return {
90
+ type: "error",
91
+ error: propsModule["error"]
92
+ };
93
+ }
80
94
  return {
81
95
  type: "error",
82
96
  error: new Error(
83
- `Could not find props export "${exportName}" in "${path}". ${keys.length ? "Available exports: " + keys.join(", ") : "The object was defined but has no properties."}`
97
+ `Could not find props export "${exportName}" in "${path}". ${keys.length ? "Available exports: " + keys.join(", ") : 'The object was defined but has no properties. "' + JSON.stringify(propsModule) + '"'}`
84
98
  )
85
99
  };
86
100
  }
87
- export {
88
- resolveProps
89
- };
101
+
102
+ export { resolveProps };
90
103
  //# sourceMappingURL=resolveProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveProps.js","sources":["../../plugin/resolveProps.ts"],"sourcesContent":["type ResolvePropsOptions = {\n propsModule: Record<string, any>;\n path: string;\n exportName: string;\n url: string;\n};\n\ntype ResolvePropsResult =\n | { type: \"success\"; key: string; props: any }\n | { type: \"error\"; error: Error }\n | { type: \"skip\" };\n\nfunction isFunction(value: any) {\n return typeof value === \"function\";\n}\n\nexport async function resolveProps({\n propsModule,\n path,\n exportName,\n url,\n}: ResolvePropsOptions): Promise<ResolvePropsResult> {\n if (!propsModule) {\n return {\n type: \"error\",\n error: new Error(`propsModule is ${typeof propsModule}`),\n };\n }\n\n if (typeof propsModule !== \"object\") {\n return {\n type: \"error\",\n error: new Error(\n `propsModule must be an object, got ${typeof propsModule}`\n ),\n };\n }\n\n const keys = Object.keys(propsModule);\n let found = keys.find((v) => v === exportName || v === url || v === path);\n if(exportName in propsModule) {\n found = exportName;\n }\n if (found) {\n let value = propsModule[found];\n try {\n console.log(\"[resolveProps] Found:\", found, value);\n // If it's a function, call it with the URL\n if (isFunction(value)) {\n const props = await value(url);\n return {\n type: \"success\",\n key: found,\n props,\n };\n }\n\n // If it's a promise, await it\n if (value && typeof value.then === \"function\") {\n const props = await value;\n return {\n type: \"success\",\n key: found,\n props,\n };\n }\n\n // If it's a plain object, use it directly\n if (typeof value === \"object\" && value !== null) {\n return {\n type: \"success\",\n key: found,\n props: value,\n };\n }\n\n \n return {\n type: \"error\",\n error: new Error(\n `Expected props export \"${exportName}\" in \"${path}\" to be a function, promise, or object that resolves to props, instead got typeof ${typeof value}.`\n ),\n };\n } catch (error) {\n console.warn(found, \"error in resolveProps\", propsModule, url, path);\n return {\n type: \"error\",\n error: error as Error,\n };\n }\n }\n const commonjs = keys.find((v) => v === \"exports\");\n\n if (!!commonjs) {\n const exportKeys = (commonjs as unknown as { exports: any })[\"exports\"]\n ? Object.keys((commonjs as unknown as { exports: any })[\"exports\"])\n : [];\n const foundCommonJS = exportKeys.find(\n (v) => v === exportName || v === url || v === path\n );\n return {\n type: \"error\",\n error: new Error(\n `Expected props export \"${exportName}\" in \"${path}\", but instead got \"exports\" with ${\n !!foundCommonJS\n ? foundCommonJS.toString()\n : exportKeys.length\n ? exportKeys.join(\", \")\n : \"no keys\"\n }, this will not work. Make sure to set esModule: true in rollupOptions.output. ${JSON.stringify(propsModule)}`\n ),\n };\n }\n if (Object.keys(propsModule).includes(\"error\")) {\n return {\n type: \"error\",\n error: propsModule[\"error\"],\n };\n }\n\n return {\n type: \"error\",\n error: new Error(\n `Could not find props export \"${exportName}\" in \"${path}\". ${\n keys.length\n ? \"Available exports: \" + keys.join(\", \")\n : \"The object was defined but has no properties. \\\"\" + JSON.stringify(propsModule) + \"\\\"\"\n }`\n ),\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../plugin/server.tsx"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { reactTransformPlugin } from "./plugin.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export { reactTransformPlugin } from "./plugin.js";
@@ -1,5 +1,5 @@
1
1
  import type { Plugin } from "vite";
2
- import type { ViteReactClientTransformOptions } from "./types.js";
2
+ import type { StreamPluginOptions } from "../types.js";
3
3
  /**
4
4
  * Plugin for transforming React Client Components.
5
5
  *
@@ -24,5 +24,5 @@ import type { ViteReactClientTransformOptions } from "./types.js";
24
24
  * });
25
25
  * ```
26
26
  */
27
- export declare function viteReactClientTransformPlugin(options?: ViteReactClientTransformOptions): Plugin;
28
- //# sourceMappingURL=index.d.ts.map
27
+ export declare function reactTransformPlugin(options?: StreamPluginOptions): Plugin;
28
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/transformer/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,oBAAoB,CAClC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAgGR"}