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 @@
1
+ {"version":3,"file":"validateModuleBase.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/validateModuleBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,EAClB,oBAAoB,EAAE,MAAM,EAAE,QAwB/B"}
@@ -0,0 +1,16 @@
1
+ export function validateModuleBase(input, moduleBase, moduleBaseExceptions) {
2
+ for (const [key, value] of Object.entries(input)) {
3
+ const isException = moduleBaseExceptions.includes(key) || ["/index", "index"].includes(key);
4
+ if (!key.includes("/"))
5
+ return;
6
+ if (value.startsWith("//")) {
7
+ throw new Error(`Path shouldn't start with //`);
8
+ }
9
+ if (!key.startsWith(moduleBase) && !isException) {
10
+ throw new Error(`Invalid input: ${key} does not start with ${moduleBase}. If this is a valid key, add it to moduleBaseExceptions otherwise put the file in the ${moduleBase} directory. Exception: ${moduleBaseExceptions.join(", ")}`);
11
+ }
12
+ if (!value.startsWith("/" + moduleBase) && !isException) {
13
+ throw new Error(`Invalid value: ${value} does not start with ${moduleBase}. If this is a valid path, add it to moduleBaseExceptions otherwise put the file in the ${moduleBase} directory. Exception: ${moduleBaseExceptions.join(", ")}`);
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ import type { ResolvedConfig } from "vite";
2
+ export declare function validateResolvedConfig(config: ResolvedConfig): asserts config is ResolvedConfig;
3
+ //# sourceMappingURL=validateResolvedConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateResolvedConfig.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/validateResolvedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAiB7F"}
@@ -0,0 +1,17 @@
1
+ export function validateResolvedConfig(config) {
2
+ if (typeof config === "object" &&
3
+ config != null &&
4
+ "build" in config &&
5
+ typeof config.build === "object" &&
6
+ config.build != null &&
7
+ "rollupOptions" in config.build &&
8
+ typeof config.build.rollupOptions === "object" &&
9
+ config.build.rollupOptions != null &&
10
+ "input" in config.build.rollupOptions &&
11
+ typeof config.build.rollupOptions.input === "object" &&
12
+ config.build.rollupOptions.input != null) {
13
+ return undefined;
14
+ }
15
+ throw new Error("Invalid config");
16
+ }
17
+ ;
@@ -0,0 +1,3 @@
1
+ export * from './plugin.js';
2
+ export type * from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../plugin/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './plugin.js';
@@ -0,0 +1,9 @@
1
+ import type { PluginContext } from "rollup";
2
+ import type { ResolvedUserConfig } from "../../server.js";
3
+ export interface BuildLoaderOptions {
4
+ root: string;
5
+ pluginContext: PluginContext;
6
+ userConfig: ResolvedUserConfig;
7
+ }
8
+ export declare function createBuildLoader({ root, pluginContext, userConfig, }: BuildLoaderOptions): (id: string) => Promise<any>;
9
+ //# sourceMappingURL=createBuildLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,aAAa,EACb,UAAU,GACX,EAAE,kBAAkB,QAED,MAAM,kBAwCzB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { join } from 'path';
7
+ import { DEFAULT_CONFIG } from '../config/defaults.js';
8
+ import { stat, mkdir, writeFile } from 'node:fs/promises';
9
+
10
+ function createBuildLoader({
11
+ root,
12
+ pluginContext,
13
+ userConfig
14
+ }) {
15
+ return async (id) => {
16
+ console.log("[createBuildLoader] Loading module:", id);
17
+ const moduleId = join(root, id);
18
+ const result = await pluginContext.load({ id: moduleId });
19
+ if (!result) {
20
+ throw new Error(`Failed to load module: ${id}`);
21
+ }
22
+ let destination = id.replace(DEFAULT_CONFIG.FILE_REGEX, "") + ".js";
23
+ let fullDestination = join(root, userConfig.build.outDir, destination);
24
+ try {
25
+ let emitIfNotExists = await stat(fullDestination).then((stats) => stats.isFile());
26
+ if (emitIfNotExists) {
27
+ console.log(
28
+ "[createBuildLoader] Emitting file:",
29
+ id,
30
+ pluginContext.getModuleInfo(id),
31
+ pluginContext.getWatchFiles(),
32
+ destination,
33
+ emitIfNotExists
34
+ );
35
+ }
36
+ return await import(fullDestination);
37
+ } catch (error) {
38
+ console.log(
39
+ "[createBuildLoader] A file wasn't emitted, emitting now",
40
+ error
41
+ );
42
+ console.log("[createBuildLoader] Module doesn't exist, emitting it", fullDestination, result.code);
43
+ await mkdir(join(root, userConfig.build.outDir), { recursive: true });
44
+ await writeFile(fullDestination, result.code ?? "");
45
+ console.log("[createBuildLoader] Emitted file:", fullDestination);
46
+ return await import(fullDestination);
47
+ }
48
+ };
49
+ }
50
+
51
+ export { createBuildLoader };
52
+ //# sourceMappingURL=createBuildLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBuildLoader.js","sources":["../../../plugin/loader/createBuildLoader.ts"],"sourcesContent":["import { join, relative } from \"path\";\nimport type { PluginContext } from \"rollup\";\nimport type { ResolvedUserConfig } from \"../../server.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { mkdir, stat, writeFile } from \"node:fs/promises\";\n\nexport interface BuildLoaderOptions {\n root: string;\n pluginContext: PluginContext;\n userConfig: ResolvedUserConfig;\n}\n\nexport function createBuildLoader({\n root,\n pluginContext,\n userConfig,\n}: BuildLoaderOptions) {\n const normalizer = createInputNormalizer(root);\n return async (id: string) => {\n console.log(\"[createBuildLoader] Loading module:\", id);\n const moduleId = join(root, id);\n\n // Load the module source\n const result = await pluginContext.load({ id: moduleId });\n if (!result) {\n throw new Error(`Failed to load module: ${id}`);\n }\n let destination = id.replace(DEFAULT_CONFIG.FILE_REGEX, \"\") + \".js\";\n let fullDestination = join(root, userConfig.build.outDir, destination);\n\n\n // Import and evaluate the module\n try {\n let emitIfNotExists = await stat(fullDestination).then(stats => stats.isFile());\n if (emitIfNotExists) {\n console.log(\n \"[createBuildLoader] Emitting file:\",\n id,\n pluginContext.getModuleInfo(id),\n pluginContext.getWatchFiles(),\n destination,\n emitIfNotExists\n );\n }\n return await import(fullDestination);\n } catch (error) {\n console.log(\n \"[createBuildLoader] A file wasn't emitted, emitting now\",\n error\n );\n console.log(\"[createBuildLoader] Module doesn't exist, emitting it\", fullDestination, result.code);\n await mkdir(join(root, userConfig.build.outDir), { recursive: true });\n\n await writeFile(fullDestination, result.code ?? \"\");\n console.log(\"[createBuildLoader] Emitted file:\", fullDestination);\n return await import(fullDestination);\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAaO,SAAS,iBAAkB,CAAA;AAAA,EAChC,IAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAuB,EAAA;AAErB,EAAA,OAAO,OAAO,EAAe,KAAA;AAC3B,IAAQ,OAAA,CAAA,GAAA,CAAI,uCAAuC,EAAE,CAAA;AACrD,IAAM,MAAA,QAAA,GAAW,IAAK,CAAA,IAAA,EAAM,EAAE,CAAA;AAG9B,IAAA,MAAM,SAAS,MAAM,aAAA,CAAc,KAAK,EAAE,EAAA,EAAI,UAAU,CAAA;AACxD,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,MAAM,IAAI,KAAA,CAAM,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA,CAAA;AAAA;AAEhD,IAAA,IAAI,cAAc,EAAG,CAAA,OAAA,CAAQ,cAAe,CAAA,UAAA,EAAY,EAAE,CAAI,GAAA,KAAA;AAC9D,IAAA,IAAI,kBAAkB,IAAK,CAAA,IAAA,EAAM,UAAW,CAAA,KAAA,CAAM,QAAQ,WAAW,CAAA;AAIrE,IAAI,IAAA;AACF,MAAI,IAAA,eAAA,GAAkB,MAAM,IAAK,CAAA,eAAe,EAAE,IAAK,CAAA,CAAA,KAAA,KAAS,KAAM,CAAA,MAAA,EAAQ,CAAA;AAC9E,MAAA,IAAI,eAAiB,EAAA;AACnB,QAAQ,OAAA,CAAA,GAAA;AAAA,UACN,oCAAA;AAAA,UACA,EAAA;AAAA,UACA,aAAA,CAAc,cAAc,EAAE,CAAA;AAAA,UAC9B,cAAc,aAAc,EAAA;AAAA,UAC5B,WAAA;AAAA,UACA;AAAA,SACF;AAAA;AAEF,MAAA,OAAO,MAAM,OAAO,eAAA,CAAA;AAAA,aACb,KAAO,EAAA;AACd,MAAQ,OAAA,CAAA,GAAA;AAAA,QACN,yDAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,OAAA,CAAQ,GAAI,CAAA,uDAAA,EAAyD,eAAiB,EAAA,MAAA,CAAO,IAAI,CAAA;AACjG,MAAM,MAAA,KAAA,CAAM,IAAK,CAAA,IAAA,EAAM,UAAW,CAAA,KAAA,CAAM,MAAM,CAAG,EAAA,EAAE,SAAW,EAAA,IAAA,EAAM,CAAA;AAEpE,MAAA,MAAM,SAAU,CAAA,eAAA,EAAiB,MAAO,CAAA,IAAA,IAAQ,EAAE,CAAA;AAClD,MAAQ,OAAA,CAAA,GAAA,CAAI,qCAAqC,eAAe,CAAA;AAChE,MAAA,OAAO,MAAM,OAAO,eAAA,CAAA;AAAA;AACtB,GACF;AACF;;;;"}
@@ -0,0 +1,30 @@
1
+ import { ModuleGraph, type Manifest } from "vite";
2
+ type BaseCssLoaderOptions = {
3
+ /** callback to add css files to the stream */
4
+ onCssFile: (css: string) => void;
5
+ /** loader to load the module */
6
+ loader: (id: string) => Promise<Record<string, any>>;
7
+ /** url of the page */
8
+ url: string;
9
+ /** manually provided css files to add */
10
+ cssFiles: string[];
11
+ };
12
+ type CreateCssLoaderOptions = (BaseCssLoaderOptions & {
13
+ /** manifest to collect css from */
14
+ manifest: Manifest;
15
+ /** when manifest is given, moduleGraph is not needed */
16
+ moduleGraph?: never;
17
+ }) | (BaseCssLoaderOptions & {
18
+ /** when moduleGraph is given, manifest is not needed, manual cssFiles can still be provided */
19
+ manifest?: never;
20
+ /** when moduleGraph is given, manifest is not needed, manual cssFiles can still be provided */
21
+ moduleGraph: ModuleGraph;
22
+ });
23
+ /**
24
+ * create a loader that can be used to load css files from a manifest or a moduleGraph
25
+ * @param options
26
+ * @returns
27
+ */
28
+ export declare function createCssLoader(options: CreateCssLoaderOptions): Promise<(id: string) => Promise<Record<string, any>>>;
29
+ export {};
30
+ //# sourceMappingURL=createCssLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCssLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createCssLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMlD,KAAK,oBAAoB,GAAG;IAC1B,8CAA8C;IAC9C,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gCAAgC;IAChC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GACvB,CAAC,oBAAoB,GAAG;IACtB,mCAAmC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,+FAA+F;IAC/F,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,gBAkBpC,MAAM,mCAkBtC"}
@@ -0,0 +1,35 @@
1
+ import { ModuleGraph } from "vite";
2
+ import { collectManifestCss, collectModuleGraphCss, } from "../collect-css-manifest.js";
3
+ /**
4
+ * create a loader that can be used to load css files from a manifest or a moduleGraph
5
+ * @param options
6
+ * @returns
7
+ */
8
+ export async function createCssLoader(options) {
9
+ const root = process.cwd();
10
+ const cssModules = new Set();
11
+ if (!(options.manifest || options.moduleGraph))
12
+ throw new Error("Missing manifest or moduleGraph, pass it to options.");
13
+ const getCss = options.manifest
14
+ ? (id) => collectManifestCss(options.manifest, root, id, options.onCssFile)
15
+ : (id) => collectModuleGraphCss(options.moduleGraph, id, options.onCssFile);
16
+ const loadWithCss = async (id) => {
17
+ if (!id)
18
+ return {};
19
+ try {
20
+ const mod = await options.loader(id);
21
+ const pageCss = await Promise.resolve(getCss(id));
22
+ Array.from(pageCss.keys()).forEach((css) => cssModules.add(css));
23
+ return mod;
24
+ }
25
+ catch (e) {
26
+ if (e.message?.includes("module runner has been closed")) {
27
+ return { type: "skip" };
28
+ }
29
+ else {
30
+ return { type: "error", error: e };
31
+ }
32
+ }
33
+ };
34
+ return loadWithCss;
35
+ }
@@ -1,6 +1,7 @@
1
1
  type CreatePageLoaderOptions = {
2
2
  manifest: Record<string, {
3
3
  file: string;
4
+ src?: string;
4
5
  }>;
5
6
  root: string;
6
7
  outDir: string;
@@ -18,9 +19,6 @@ type CreateDefaultLoaderOptions = {
18
19
  alwaysRegisterClient?: boolean;
19
20
  };
20
21
  export declare const createDefaultLoader: ({ id, registerServer, registerClient, alwaysRegisterServer, alwaysRegisterClient, }: CreateDefaultLoaderOptions) => (url: string) => Promise<any>;
21
- export declare const createPageLoader: ({ manifest, root, outDir, moduleBase, registerServer, registerClient, alwaysRegisterServer, alwaysRegisterClient, }: CreatePageLoaderOptions) => (id: string) => Promise<{
22
- format: string;
23
- source: string;
24
- }>;
22
+ export declare function createPageLoader({ manifest, root, outDir, moduleBase, alwaysRegisterServer, alwaysRegisterClient, registerServer, registerClient, }: CreatePageLoaderOptions): (id: string) => Promise<any>;
25
23
  export {};
26
24
  //# sourceMappingURL=createPageLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPageLoader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/createPageLoader.ts"],"names":[],"mappings":"AAaA,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,mBAAmB,wFAM7B,0BAA0B,WAqBR,MAAM,iBAM1B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,EAAE,uBAAuB,QACS,MAAM,kBA+BxC"}
@@ -0,0 +1,57 @@
1
+ import { resolve as resolvePath } from "node:path";
2
+ import { load
3
+ // @ts-ignore
4
+ } from "react-server-dom-esm/node-loader";
5
+ import { registerClientReference, registerServerReference,
6
+ // @ts-ignore
7
+ } from "react-server-dom-esm/server.node";
8
+ export const createDefaultLoader = ({ id, registerServer, registerClient, alwaysRegisterServer = false, alwaysRegisterClient = false, }) => {
9
+ const mapper = ([key, value]) => {
10
+ try {
11
+ if (registerClient?.includes(key) ||
12
+ (alwaysRegisterClient && typeof value === "function")) {
13
+ return [key, registerClientReference(value, id, key)];
14
+ }
15
+ if (registerServer?.includes(key) ||
16
+ (alwaysRegisterServer && typeof value === "function")) {
17
+ return [key, registerServerReference(value, id, key)];
18
+ }
19
+ return [key, value];
20
+ }
21
+ catch (e) {
22
+ console.error("[RSC] Error registering reference:", key, value, e);
23
+ return [key, value];
24
+ }
25
+ };
26
+ return async (url) => {
27
+ console.log("[createDefaultLoader] Loading:", url);
28
+ const result = await import(url);
29
+ console.log("[createDefaultLoader] Result:", result);
30
+ return Object.fromEntries(Object.entries(result).map(mapper));
31
+ };
32
+ };
33
+ export function createPageLoader({ manifest, root, outDir, moduleBase, alwaysRegisterServer, alwaysRegisterClient, registerServer, registerClient, }) {
34
+ return async function loader(id) {
35
+ console.log("[pageLoader] Loading:", {
36
+ id,
37
+ manifest: Object.keys(manifest),
38
+ outDir,
39
+ moduleBase
40
+ });
41
+ console.log("[pageLoader] Manifest:", manifest);
42
+ // Try to find the entry directly or by source file
43
+ const manifestEntry = manifest[id] ||
44
+ Object.values(manifest).find(entry => entry.src === id);
45
+ if (!manifestEntry) {
46
+ throw new Error(`Could not find manifest entry for ${id} from ${root}. Available entries: ${Object.keys(manifest).join(', ')}`);
47
+ }
48
+ const loaderResult = await load(resolvePath(root, outDir, manifestEntry.file), { format: "module" }, createDefaultLoader({
49
+ id,
50
+ registerServer,
51
+ registerClient,
52
+ alwaysRegisterServer,
53
+ alwaysRegisterClient,
54
+ }));
55
+ return loaderResult;
56
+ };
57
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../plugin/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,SAAS,CAapB"}
@@ -0,0 +1,13 @@
1
+ import { normalizePath } from "vite";
2
+ export function resolveManifestEntry(id, manifest) {
3
+ // Try exact match
4
+ if (manifest[id]) {
5
+ return manifest[id].file;
6
+ }
7
+ // Try normalized path
8
+ const normalizedId = normalizePath(id);
9
+ if (manifest[normalizedId]) {
10
+ return manifest[normalizedId].file;
11
+ }
12
+ return undefined;
13
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../../plugin/module-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa;0BAEpB,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;EAqC/D"}
@@ -0,0 +1,35 @@
1
+ export function getModuleGraph(server) {
2
+ return {
3
+ async getModuleWithDeps(id) {
4
+ // Load module first to ensure it's in the module graph
5
+ await server.ssrLoadModule(id);
6
+ const resolvedId = await server.pluginContainer.resolveId(id, undefined, {
7
+ // Add ssr and react-server conditions
8
+ ssr: true,
9
+ });
10
+ if (!resolvedId)
11
+ throw new Error(`Module not found: ${id}`);
12
+ const moduleNode = server.moduleGraph.getModuleById(resolvedId.id);
13
+ if (!moduleNode)
14
+ throw new Error(`Module node not found: ${id}`);
15
+ const deps = new Set();
16
+ const css = new Set();
17
+ // Recursively collect dependencies
18
+ const collectDeps = (node) => {
19
+ // Track CSS imports
20
+ if (node.id?.endsWith(".css") && node.id) {
21
+ css.add(node.id);
22
+ }
23
+ // Track all dependencies
24
+ for (const dep of node.importedModules) {
25
+ if (dep.id && !deps.has(dep.id)) {
26
+ deps.add(dep.id);
27
+ collectDeps(dep);
28
+ }
29
+ }
30
+ };
31
+ collectDeps(moduleNode);
32
+ return { id: moduleNode.id ?? "", deps, css };
33
+ },
34
+ };
35
+ }
@@ -0,0 +1,7 @@
1
+ import "./assertServerCondition.js";
2
+ export { reactServerPlugin } from "./react-server/plugin.js";
3
+ export { reactClientPlugin } from "./react-client/plugin.js";
4
+ export { reactTransformPlugin } from "./transformer/plugin.js";
5
+ export { reactPreservePlugin } from "./preserver/plugin.js";
6
+ export { vitePluginReactServer } from "./react-server/index.js";
7
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../plugin/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import "./assertServerCondition.js";
2
+ export { reactServerPlugin } from "./react-server/plugin.js";
3
+ export { reactClientPlugin } from "./react-client/plugin.js";
4
+ export { reactTransformPlugin } from "./transformer/plugin.js";
5
+ export { reactPreservePlugin } from "./preserver/plugin.js";
6
+ export { vitePluginReactServer } from "./react-server/index.js";
7
+ // the main plugin is version is the server version, if you want the client version, use the `vite-plugin-react-server/client` import
8
+ // this is because the workflow assumes main thread = react server condition
@@ -0,0 +1,2 @@
1
+ export { reactPreservePlugin } from "./plugin.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/preserver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export { reactPreservePlugin } from "./plugin.js";
@@ -0,0 +1,4 @@
1
+ import type { Plugin } from "vite";
2
+ import type { StreamPluginOptions } from "../types.js";
3
+ export declare function reactPreservePlugin(_options: StreamPluginOptions): Plugin;
4
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/preserver/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAsGzE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import MagicString from '../../node_modules/magic-string/dist/magic-string.es.js';
7
+
8
+ const REACT_DIRECTIVES = /* @__PURE__ */ new Set(["use client", "use server"]);
9
+ function reactPreservePlugin(_options) {
10
+ const meta = {};
11
+ return {
12
+ name: "vite-plugin-react-server:preserve-directives",
13
+ enforce: "post",
14
+ transform: {
15
+ order: "post",
16
+ // Ensure this runs last in transform phase
17
+ handler(code, id) {
18
+ if (id.includes("node_modules") || id.includes("vite/dist")) {
19
+ return null;
20
+ }
21
+ let ast;
22
+ try {
23
+ ast = this.parse(code, {
24
+ allowReturnOutsideFunction: true,
25
+ jsx: true
26
+ });
27
+ } catch (e) {
28
+ console.warn(`[PreservePlugin] Failed to parse ${id}`, e);
29
+ return null;
30
+ }
31
+ if (ast.type !== "Program") {
32
+ return null;
33
+ }
34
+ const magicString = new MagicString(code);
35
+ let hasChanged = false;
36
+ for (const node of ast.body) {
37
+ if (node.type !== "ExpressionStatement") {
38
+ break;
39
+ }
40
+ let directive = null;
41
+ if ("directive" in node) {
42
+ directive = node.directive;
43
+ } else if (node.expression.type === "Literal" && typeof node.expression.value === "string" && REACT_DIRECTIVES.has(node.expression.value)) {
44
+ directive = node.expression.value;
45
+ }
46
+ if (directive) {
47
+ meta[id] ||= /* @__PURE__ */ new Set();
48
+ meta[id].add(directive);
49
+ if ("start" in node && "end" in node) {
50
+ magicString.remove(node.start, node.end);
51
+ hasChanged = true;
52
+ }
53
+ }
54
+ }
55
+ if (!hasChanged) {
56
+ return null;
57
+ }
58
+ return {
59
+ code: magicString.toString(),
60
+ map: magicString.generateMap({ hires: true }),
61
+ meta: {
62
+ directives: Array.from(meta[id] || [])
63
+ }
64
+ };
65
+ }
66
+ },
67
+ renderChunk(code, chunk) {
68
+ const chunkDirectives = /* @__PURE__ */ new Set();
69
+ for (const id of chunk.moduleIds) {
70
+ if (meta[id]) {
71
+ meta[id].forEach((d) => chunkDirectives.add(d));
72
+ }
73
+ }
74
+ if (chunkDirectives.size) {
75
+ const magicString = new MagicString(code);
76
+ magicString.prepend(
77
+ Array.from(chunkDirectives).map((d) => `"${d}";`).join("\n") + "\n"
78
+ );
79
+ return {
80
+ code: magicString.toString(),
81
+ map: magicString.generateMap({ hires: true })
82
+ };
83
+ }
84
+ return null;
85
+ }
86
+ };
87
+ }
88
+
89
+ export { reactPreservePlugin };
90
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/preserver/plugin.ts"],"sourcesContent":["import type { Node } from \"estree\";\nimport type { Plugin } from \"vite\";\nimport MagicString from \"magic-string\";\nimport type { StreamPluginOptions } from \"../types.js\";\n\nconst REACT_DIRECTIVES = new Set([\"use client\", \"use server\"]);\n\nexport function reactPreservePlugin(_options: StreamPluginOptions): Plugin {\n const meta: Record<string, Set<string>> = {};\n\n return {\n name: \"vite-plugin-react-server:preserve-directives\",\n enforce: 'post',\n\n transform: {\n order: 'post', // Ensure this runs last in transform phase\n handler(code: string, id: string) {\n // Skip node_modules and vite files\n if (id.includes('node_modules') || id.includes('vite/dist')) {\n return null;\n }\n\n let ast: Node;\n try {\n ast = this.parse(code, {\n allowReturnOutsideFunction: true,\n jsx: true\n }) as Node;\n } catch (e) {\n console.warn(`[PreservePlugin] Failed to parse ${id}`, e);\n return null;\n }\n\n if (ast.type !== 'Program') {\n return null;\n }\n\n const magicString = new MagicString(code);\n let hasChanged = false;\n\n // Only look at top-level directives\n for (const node of ast.body) {\n if (node.type !== 'ExpressionStatement') {\n break;\n }\n\n let directive: string | null = null;\n if ('directive' in node) {\n directive = node.directive;\n } else if (\n node.expression.type === 'Literal' && \n typeof node.expression.value === 'string' &&\n REACT_DIRECTIVES.has(node.expression.value)\n ) {\n directive = node.expression.value;\n }\n\n if (directive) {\n meta[id] ||= new Set<string>();\n meta[id].add(directive);\n \n if ('start' in node && 'end' in node) {\n magicString.remove(node.start as number, node.end as number);\n hasChanged = true;\n }\n }\n }\n\n if (!hasChanged) {\n return null;\n }\n\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ hires: true }),\n meta: {\n directives: Array.from(meta[id] || [])\n }\n };\n }\n },\n\n renderChunk(code, chunk) {\n const chunkDirectives = new Set<string>();\n \n // Collect directives from all modules in chunk\n for (const id of chunk.moduleIds) {\n if (meta[id]) {\n meta[id].forEach(d => chunkDirectives.add(d));\n }\n }\n\n if (chunkDirectives.size) {\n const magicString = new MagicString(code);\n magicString.prepend(\n Array.from(chunkDirectives)\n .map(d => `\"${d}\";`)\n .join('\\n') + '\\n'\n );\n\n return {\n code: magicString.toString(),\n map: magicString.generateMap({ hires: true })\n };\n }\n\n return null;\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;AAKA,MAAM,mCAAuB,IAAA,GAAA,CAAI,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAEtD,SAAS,oBAAoB,QAAuC,EAAA;AACzE,EAAA,MAAM,OAAoC,EAAC;AAE3C,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,8CAAA;AAAA,IACN,OAAS,EAAA,MAAA;AAAA,IAET,SAAW,EAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA;AAAA,MACP,OAAA,CAAQ,MAAc,EAAY,EAAA;AAEhC,QAAA,IAAI,GAAG,QAAS,CAAA,cAAc,KAAK,EAAG,CAAA,QAAA,CAAS,WAAW,CAAG,EAAA;AAC3D,UAAO,OAAA,IAAA;AAAA;AAGT,QAAI,IAAA,GAAA;AACJ,QAAI,IAAA;AACF,UAAM,GAAA,GAAA,IAAA,CAAK,MAAM,IAAM,EAAA;AAAA,YACrB,0BAA4B,EAAA,IAAA;AAAA,YAC5B,GAAK,EAAA;AAAA,WACN,CAAA;AAAA,iBACM,CAAG,EAAA;AACV,UAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,iCAAA,EAAoC,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA;AACxD,UAAO,OAAA,IAAA;AAAA;AAGT,QAAI,IAAA,GAAA,CAAI,SAAS,SAAW,EAAA;AAC1B,UAAO,OAAA,IAAA;AAAA;AAGT,QAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,IAAI,CAAA;AACxC,QAAA,IAAI,UAAa,GAAA,KAAA;AAGjB,QAAW,KAAA,MAAA,IAAA,IAAQ,IAAI,IAAM,EAAA;AAC3B,UAAI,IAAA,IAAA,CAAK,SAAS,qBAAuB,EAAA;AACvC,YAAA;AAAA;AAGF,UAAA,IAAI,SAA2B,GAAA,IAAA;AAC/B,UAAA,IAAI,eAAe,IAAM,EAAA;AACvB,YAAA,SAAA,GAAY,IAAK,CAAA,SAAA;AAAA,WAEjB,MAAA,IAAA,IAAA,CAAK,UAAW,CAAA,IAAA,KAAS,aACzB,OAAO,IAAA,CAAK,UAAW,CAAA,KAAA,KAAU,YACjC,gBAAiB,CAAA,GAAA,CAAI,IAAK,CAAA,UAAA,CAAW,KAAK,CAC1C,EAAA;AACA,YAAA,SAAA,GAAY,KAAK,UAAW,CAAA,KAAA;AAAA;AAG9B,UAAA,IAAI,SAAW,EAAA;AACb,YAAK,IAAA,CAAA,EAAE,CAAM,qBAAA,IAAI,GAAY,EAAA;AAC7B,YAAK,IAAA,CAAA,EAAE,CAAE,CAAA,GAAA,CAAI,SAAS,CAAA;AAEtB,YAAI,IAAA,OAAA,IAAW,IAAQ,IAAA,KAAA,IAAS,IAAM,EAAA;AACpC,cAAA,WAAA,CAAY,MAAO,CAAA,IAAA,CAAK,KAAiB,EAAA,IAAA,CAAK,GAAa,CAAA;AAC3D,cAAa,UAAA,GAAA,IAAA;AAAA;AACf;AACF;AAGF,QAAA,IAAI,CAAC,UAAY,EAAA;AACf,UAAO,OAAA,IAAA;AAAA;AAGT,QAAO,OAAA;AAAA,UACL,IAAA,EAAM,YAAY,QAAS,EAAA;AAAA,UAC3B,KAAK,WAAY,CAAA,WAAA,CAAY,EAAE,KAAA,EAAO,MAAM,CAAA;AAAA,UAC5C,IAAM,EAAA;AAAA,YACJ,YAAY,KAAM,CAAA,IAAA,CAAK,KAAK,EAAE,CAAA,IAAK,EAAE;AAAA;AACvC,SACF;AAAA;AACF,KACF;AAAA,IAEA,WAAA,CAAY,MAAM,KAAO,EAAA;AACvB,MAAM,MAAA,eAAA,uBAAsB,GAAY,EAAA;AAGxC,MAAW,KAAA,MAAA,EAAA,IAAM,MAAM,SAAW,EAAA;AAChC,QAAI,IAAA,IAAA,CAAK,EAAE,CAAG,EAAA;AACZ,UAAA,IAAA,CAAK,EAAE,CAAE,CAAA,OAAA,CAAQ,OAAK,eAAgB,CAAA,GAAA,CAAI,CAAC,CAAC,CAAA;AAAA;AAC9C;AAGF,MAAA,IAAI,gBAAgB,IAAM,EAAA;AACxB,QAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,IAAI,CAAA;AACxC,QAAY,WAAA,CAAA,OAAA;AAAA,UACV,KAAM,CAAA,IAAA,CAAK,eAAe,CAAA,CACvB,GAAI,CAAA,CAAA,CAAA,KAAK,CAAI,CAAA,EAAA,CAAC,CAAI,EAAA,CAAA,CAAA,CAClB,IAAK,CAAA,IAAI,CAAI,GAAA;AAAA,SAClB;AAEA,QAAO,OAAA;AAAA,UACL,IAAA,EAAM,YAAY,QAAS,EAAA;AAAA,UAC3B,KAAK,WAAY,CAAA,WAAA,CAAY,EAAE,KAAA,EAAO,MAAM;AAAA,SAC9C;AAAA;AAGF,MAAO,OAAA,IAAA;AAAA;AACT,GACF;AACF;;;;"}
@@ -0,0 +1,2 @@
1
+ export { reactClientPlugin } from "./plugin.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export { reactClientPlugin } from "./plugin.js";
@@ -0,0 +1,4 @@
1
+ import type { Plugin as VitePlugin } from "vite";
2
+ import type { StreamPluginOptions } from "../types.js";
3
+ export declare function reactClientPlugin(options: StreamPluginOptions): VitePlugin;
4
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAc,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAwB1E"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { resolveOptions } from '../config/resolveOptions.js';
7
+ import { resolveUserConfig } from '../config/resolveUserConfig.js';
8
+
9
+ let userOptions;
10
+ function reactClientPlugin(options) {
11
+ const resolvedOptions = resolveOptions(options);
12
+ if (resolvedOptions.type === "error") {
13
+ throw resolvedOptions.error;
14
+ }
15
+ userOptions = resolvedOptions.userOptions;
16
+ return {
17
+ name: "vite:react-stream-client",
18
+ async config(config) {
19
+ const resolvedConfig = resolveUserConfig({
20
+ condition: "react-client",
21
+ config,
22
+ configEnv: { command: "build"},
23
+ userOptions
24
+ });
25
+ if (resolvedConfig.type === "error") {
26
+ throw resolvedConfig.error;
27
+ }
28
+ return resolvedConfig.userConfig;
29
+ }
30
+ };
31
+ }
32
+
33
+ export { reactClientPlugin };
34
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sources":["../../../plugin/react-client/plugin.ts"],"sourcesContent":["import type { Plugin as VitePlugin, UserConfig } from \"vite\";\n\nimport type { ResolvedUserOptions, StreamPluginOptions } from \"../types.js\";\nimport { resolveOptions } from \"../config/resolveOptions.js\";\nimport { resolveUserConfig } from \"../config/resolveUserConfig.js\";\n\nlet userOptions: ResolvedUserOptions;\n\nexport function reactClientPlugin(options: StreamPluginOptions): VitePlugin {\n const resolvedOptions = resolveOptions(options);\n if (resolvedOptions.type === \"error\") {\n throw resolvedOptions.error;\n }\n userOptions = resolvedOptions.userOptions;\n\n return {\n name: \"vite:react-stream-client\",\n async config(config): Promise<UserConfig> {\n const resolvedConfig = resolveUserConfig({\n condition: \"react-client\",\n config,\n configEnv: { command: \"build\", mode: \"production\" },\n userOptions,\n });\n\n if (resolvedConfig.type === \"error\") {\n throw resolvedConfig.error;\n }\n\n return resolvedConfig.userConfig;\n }\n };\n}\n"],"names":[],"mappings":";;;;;;;;AAMA,IAAI,WAAA;AAEG,SAAS,kBAAkB,OAA0C,EAAA;AAC1E,EAAM,MAAA,eAAA,GAAkB,eAAe,OAAO,CAAA;AAC9C,EAAI,IAAA,eAAA,CAAgB,SAAS,OAAS,EAAA;AACpC,IAAA,MAAM,eAAgB,CAAA,KAAA;AAAA;AAExB,EAAA,WAAA,GAAc,eAAgB,CAAA,WAAA;AAE9B,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,0BAAA;AAAA,IACN,MAAM,OAAO,MAA6B,EAAA;AACxC,MAAA,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,QACvC,SAAW,EAAA,cAAA;AAAA,QACX,MAAA;AAAA,QACA,SAAW,EAAA,EAAE,OAAS,EAAA,OAA4B,CAAA;AAAA,QAClD;AAAA,OACD,CAAA;AAED,MAAI,IAAA,cAAA,CAAe,SAAS,OAAS,EAAA;AACnC,QAAA,MAAM,cAAe,CAAA,KAAA;AAAA;AAGvB,MAAA,OAAO,cAAe,CAAA,UAAA;AAAA;AACxB,GACF;AACF;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDevMiddleware.d.ts","sourceRoot":"","sources":["../../../plugin/react-server/createDevMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG5E,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,IAAI,CACF,mBAAmB,EACnB,YAAY,GAAG,gBAAgB,GAAG,eAAe,GAAG,aAAa,CAClE,CACF,GACC,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;AAExG;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,oBAAoB,GAC5B,cAAc,CAuEhB"}
@@ -0,0 +1,68 @@
1
+ import { IncomingMessage, ServerResponse } from "http";
2
+ import {} from "../types.js";
3
+ import { createHandler } from "./createHandler.js";
4
+ /**
5
+ * Creates a request handler for development
6
+ */
7
+ export function createDevMiddleware(server, options) {
8
+ // Add HMR support
9
+ const hmr = server.hot;
10
+ hmr?.on('vite:beforeUpdate', () => {
11
+ // Clear module cache before updates
12
+ server.moduleGraph.invalidateAll();
13
+ });
14
+ return async (req, res, next) => {
15
+ // Skip non-page requests
16
+ if (!req.url ||
17
+ (req.url.includes(".") && !req.url.endsWith("/index.rsc"))) {
18
+ return next();
19
+ }
20
+ const url = req.url.endsWith("/index.rsc")
21
+ ? req.url.replace("/index.rsc", "/")
22
+ : req.url;
23
+ try {
24
+ console.log("[stream] Handling RSC stream");
25
+ const result = await createHandler(url, options, {
26
+ loader: (id) => {
27
+ const mod = server.ssrLoadModule(id);
28
+ if (!mod) {
29
+ throw new Error(`[RSC] Module not found: ${id}`);
30
+ }
31
+ else {
32
+ console.log('[RSC] Loaded module:', id);
33
+ }
34
+ return mod;
35
+ },
36
+ moduleGraph: server.moduleGraph,
37
+ });
38
+ if (result.type === "error") {
39
+ if (result.error.message?.includes("module runner has been closed")) {
40
+ console.log("[RSC] Module runner closed, returning 503");
41
+ res.writeHead(503, { "Content-Type": "text/x-component" });
42
+ res.end('{"error":"Server restarting..."}');
43
+ return;
44
+ }
45
+ console.error("[RSC] Stream error:", result.error);
46
+ res.writeHead(500, { "Content-Type": "text/x-component" });
47
+ res.end('{"error":"Internal Server Error"}');
48
+ return;
49
+ }
50
+ if (result.type !== "success") {
51
+ res.end();
52
+ return;
53
+ }
54
+ res.setHeader("Content-Type", "text/x-component");
55
+ if (result.stream)
56
+ result.stream.pipe(res);
57
+ }
58
+ catch (error) {
59
+ if (error.message?.includes("module runner has been closed")) {
60
+ console.log("[RSC] Module runner closed, returning 503");
61
+ res.writeHead(503, { "Content-Type": "text/x-component" });
62
+ res.end('{"error":"Server restarting..."}');
63
+ return;
64
+ }
65
+ next(error);
66
+ }
67
+ };
68
+ }