vite-plugin-react-server 1.1.20 → 1.2.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (783) hide show
  1. package/README.md +102 -395
  2. package/dist/_virtual/dynamic-import-helper.js +1 -1
  3. package/dist/client.d.ts +1 -1
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +5 -2
  6. package/dist/index.js +1 -1
  7. package/dist/package.json +58 -25
  8. package/dist/plugin/components/{css-collector-elements.d.ts → css.d.ts} +2 -2
  9. package/dist/plugin/components/css.d.ts.map +1 -0
  10. package/dist/plugin/components/css.js +33 -0
  11. package/dist/plugin/components/html.d.ts +1 -1
  12. package/dist/plugin/components/html.d.ts.map +1 -1
  13. package/dist/plugin/components/html.js +5 -5
  14. package/dist/plugin/components/index.d.ts +3 -3
  15. package/dist/plugin/components/index.d.ts.map +1 -1
  16. package/dist/plugin/components/index.js +9 -3
  17. package/dist/plugin/components/root.d.ts +7 -0
  18. package/dist/plugin/components/root.d.ts.map +1 -0
  19. package/dist/plugin/components/root.js +18 -0
  20. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js +1 -1
  21. package/dist/plugin/config/autoDiscover/customWorkerFiles.js +1 -1
  22. package/dist/plugin/config/autoDiscover/pageAndPropFiles.js +1 -1
  23. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +5 -4
  24. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  25. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +26 -7
  26. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts +25 -2
  27. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -1
  28. package/dist/plugin/config/autoDiscover/resolveBuildPages.js +84 -5
  29. package/dist/plugin/config/createModuleID.d.ts +3 -6
  30. package/dist/plugin/config/createModuleID.d.ts.map +1 -1
  31. package/dist/plugin/config/createModuleID.js +42 -32
  32. package/dist/plugin/config/defaults.d.ts +199 -121
  33. package/dist/plugin/config/defaults.d.ts.map +1 -1
  34. package/dist/plugin/config/defaults.js +155 -89
  35. package/dist/plugin/config/extMap.d.ts +6 -2
  36. package/dist/plugin/config/extMap.d.ts.map +1 -1
  37. package/dist/plugin/config/extMap.js +38 -48
  38. package/dist/plugin/config/flightBindings.d.ts +4 -0
  39. package/dist/plugin/config/flightBindings.d.ts.map +1 -0
  40. package/dist/plugin/config/flightBindings.js +215 -0
  41. package/dist/plugin/config/getCondition.d.ts +2 -0
  42. package/dist/plugin/config/getCondition.d.ts.map +1 -1
  43. package/dist/plugin/config/getCondition.js +4 -2
  44. package/dist/plugin/config/getPaths.js +1 -1
  45. package/dist/plugin/config/index.d.ts +17 -4
  46. package/dist/plugin/config/index.d.ts.map +1 -1
  47. package/dist/plugin/config/index.js +29 -7
  48. package/dist/plugin/config/interpolatePattern.d.ts +13 -0
  49. package/dist/plugin/config/interpolatePattern.d.ts.map +1 -0
  50. package/dist/plugin/config/interpolatePattern.js +13 -0
  51. package/dist/plugin/config/mimeTypes.js +1 -1
  52. package/dist/plugin/config/parsePattern.d.ts +25 -0
  53. package/dist/plugin/config/parsePattern.d.ts.map +1 -0
  54. package/dist/plugin/config/parsePattern.js +30 -0
  55. package/dist/plugin/config/resolveAllowedDirectives.d.ts +26 -0
  56. package/dist/plugin/config/resolveAllowedDirectives.d.ts.map +1 -0
  57. package/dist/plugin/config/resolveAllowedDirectives.js +35 -0
  58. package/dist/plugin/config/resolveDirectiveMatcher.d.ts +25 -0
  59. package/dist/plugin/config/resolveDirectiveMatcher.d.ts.map +1 -0
  60. package/dist/plugin/config/resolveDirectiveMatcher.js +33 -0
  61. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  62. package/dist/plugin/config/resolveEnv.js +14 -4
  63. package/dist/plugin/config/resolveOptions.d.ts +13 -3
  64. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  65. package/dist/plugin/config/resolveOptions.js +228 -206
  66. package/dist/plugin/config/resolvePages.js +1 -1
  67. package/dist/plugin/config/resolvePatternWithValues.d.ts +39 -0
  68. package/dist/plugin/config/resolvePatternWithValues.d.ts.map +1 -0
  69. package/dist/plugin/config/resolvePatternWithValues.js +36 -0
  70. package/dist/plugin/config/resolveRegExp.d.ts +29 -0
  71. package/dist/plugin/config/resolveRegExp.d.ts.map +1 -0
  72. package/dist/plugin/config/resolveRegExp.js +39 -0
  73. package/dist/plugin/config/resolveUrlOption.d.ts +37 -6
  74. package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -1
  75. package/dist/plugin/config/resolveUrlOption.js +42 -12
  76. package/dist/plugin/config/resolveUserConfig.d.ts +5 -4
  77. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  78. package/dist/plugin/config/resolveUserConfig.js +86 -40
  79. package/dist/plugin/env/plugin.d.ts +6 -0
  80. package/dist/plugin/env/plugin.d.ts.map +1 -1
  81. package/dist/plugin/env/plugin.js +111 -93
  82. package/dist/plugin/error/directiveError.d.ts +13 -0
  83. package/dist/plugin/error/directiveError.d.ts.map +1 -0
  84. package/dist/plugin/error/directiveError.js +21 -0
  85. package/dist/plugin/error/enhanceError.d.ts +14 -0
  86. package/dist/plugin/error/enhanceError.d.ts.map +1 -0
  87. package/dist/plugin/error/enhanceError.js +24 -0
  88. package/dist/plugin/error/index.d.ts +4 -0
  89. package/dist/plugin/error/index.d.ts.map +1 -0
  90. package/dist/plugin/error/index.js +9 -0
  91. package/dist/plugin/error/logError.d.ts +3 -0
  92. package/dist/plugin/error/logError.d.ts.map +1 -0
  93. package/dist/plugin/error/logError.js +47 -0
  94. package/dist/plugin/error/serializeError.d.ts +7 -0
  95. package/dist/plugin/error/serializeError.d.ts.map +1 -0
  96. package/dist/plugin/error/serializeError.js +37 -0
  97. package/dist/plugin/error/toError.d.ts +1 -8
  98. package/dist/plugin/error/toError.d.ts.map +1 -1
  99. package/dist/plugin/error/toError.js +62 -34
  100. package/dist/plugin/file-preserver/plugin.js +93 -105
  101. package/dist/plugin/getNodeEnv.d.ts +11 -0
  102. package/dist/plugin/getNodeEnv.d.ts.map +1 -0
  103. package/dist/plugin/getNodeEnv.js +17 -0
  104. package/dist/plugin/helpers/cleanObject.d.ts.map +1 -1
  105. package/dist/plugin/helpers/cleanObject.js +2 -1
  106. package/dist/plugin/helpers/collectManifestCss.js +1 -1
  107. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +6 -4
  108. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  109. package/dist/plugin/helpers/collectViteModuleGraphCss.js +15 -9
  110. package/dist/plugin/helpers/createCssProps.d.ts +3 -4
  111. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  112. package/dist/plugin/helpers/createCssProps.js +16 -4
  113. package/dist/plugin/helpers/createEventHandler.d.ts +2 -2
  114. package/dist/plugin/helpers/createEventHandler.d.ts.map +1 -1
  115. package/dist/plugin/helpers/createEventHandler.js +1 -1
  116. package/dist/plugin/helpers/createHandler.d.ts +10 -8
  117. package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
  118. package/dist/plugin/helpers/createHandler.js +11 -5
  119. package/dist/plugin/helpers/createRscStream.d.ts +18 -5
  120. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
  121. package/dist/plugin/helpers/createRscStream.js +48 -14
  122. package/dist/plugin/helpers/formatMetrics.d.ts +1 -5
  123. package/dist/plugin/helpers/formatMetrics.d.ts.map +1 -1
  124. package/dist/plugin/helpers/formatMetrics.js +2 -39
  125. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
  126. package/dist/plugin/helpers/getBundleManifest.js +9 -2
  127. package/dist/plugin/helpers/getRouteFiles.d.ts +30 -2
  128. package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
  129. package/dist/plugin/helpers/getRouteFiles.js +70 -7
  130. package/dist/plugin/helpers/handleServerAction.d.ts +8 -7
  131. package/dist/plugin/helpers/handleServerAction.d.ts.map +1 -1
  132. package/dist/plugin/helpers/handleServerAction.js +5 -2
  133. package/dist/plugin/helpers/hydrateUserOptions.d.ts +9 -0
  134. package/dist/plugin/helpers/hydrateUserOptions.d.ts.map +1 -0
  135. package/dist/plugin/helpers/hydrateUserOptions.js +22 -0
  136. package/dist/plugin/helpers/index.d.ts +2 -0
  137. package/dist/plugin/helpers/index.d.ts.map +1 -1
  138. package/dist/plugin/helpers/index.js +31 -31
  139. package/dist/plugin/helpers/inputNormalizer.d.ts +1 -1
  140. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  141. package/dist/plugin/helpers/inputNormalizer.js +33 -20
  142. package/dist/plugin/helpers/metrics.d.ts +4 -10
  143. package/dist/plugin/helpers/metrics.d.ts.map +1 -1
  144. package/dist/plugin/helpers/metrics.js +3 -59
  145. package/dist/plugin/helpers/moduleRefs.js +1 -1
  146. package/dist/plugin/helpers/moduleResolver.d.ts +24 -2
  147. package/dist/plugin/helpers/moduleResolver.d.ts.map +1 -1
  148. package/dist/plugin/helpers/moduleResolver.js +61 -22
  149. package/dist/plugin/helpers/requestInfo.d.ts +28 -1
  150. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  151. package/dist/plugin/helpers/requestInfo.js +43 -30
  152. package/dist/plugin/helpers/requestToRoute.d.ts +1 -1
  153. package/dist/plugin/helpers/requestToRoute.d.ts.map +1 -1
  154. package/dist/plugin/helpers/requestToRoute.js +17 -9
  155. package/dist/plugin/helpers/resolveComponent.d.ts +57 -0
  156. package/dist/plugin/helpers/resolveComponent.d.ts.map +1 -0
  157. package/dist/plugin/helpers/resolveComponent.js +71 -0
  158. package/dist/plugin/helpers/resolveComponents.d.ts +27 -0
  159. package/dist/plugin/helpers/resolveComponents.d.ts.map +1 -0
  160. package/dist/plugin/helpers/resolveComponents.js +137 -0
  161. package/dist/plugin/helpers/resolvePage.d.ts +15 -11
  162. package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
  163. package/dist/plugin/helpers/resolvePage.js +11 -7
  164. package/dist/plugin/helpers/resolvePageAndProps.d.ts +3 -10
  165. package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
  166. package/dist/plugin/helpers/resolvePageAndProps.js +28 -18
  167. package/dist/plugin/helpers/resolveProps.d.ts +13 -7
  168. package/dist/plugin/helpers/resolveProps.d.ts.map +1 -1
  169. package/dist/plugin/helpers/resolveProps.js +55 -25
  170. package/dist/plugin/helpers/resolveUserComponents.d.ts +33 -0
  171. package/dist/plugin/helpers/resolveUserComponents.d.ts.map +1 -0
  172. package/dist/plugin/helpers/resolveUserComponents.js +163 -0
  173. package/dist/plugin/helpers/serializeUserOptions.d.ts +7 -7
  174. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  175. package/dist/plugin/helpers/serializeUserOptions.js +127 -42
  176. package/dist/plugin/helpers/stashReturnValue.d.ts +2 -1
  177. package/dist/plugin/helpers/stashReturnValue.d.ts.map +1 -1
  178. package/dist/plugin/helpers/stashReturnValue.js +6 -3
  179. package/dist/plugin/helpers/tryManifest.d.ts +1 -2
  180. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  181. package/dist/plugin/helpers/tryManifest.js +1 -1
  182. package/dist/plugin/loader/createDefaultLoader.d.ts +19 -8
  183. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -1
  184. package/dist/plugin/loader/createDefaultLoader.js +69 -107
  185. package/dist/plugin/loader/createTransformer.d.ts +6 -0
  186. package/dist/plugin/loader/createTransformer.d.ts.map +1 -0
  187. package/dist/plugin/loader/createTransformer.js +97 -0
  188. package/dist/plugin/loader/{css-loader.development.d.ts → css-loader.d.ts} +6 -8
  189. package/dist/plugin/loader/css-loader.d.ts.map +1 -0
  190. package/dist/plugin/loader/css-loader.js +134 -0
  191. package/dist/plugin/loader/directives/addLocalExportedNames.d.ts +4 -0
  192. package/dist/plugin/loader/directives/addLocalExportedNames.d.ts.map +1 -0
  193. package/dist/plugin/loader/directives/addLocalExportedNames.js +57 -0
  194. package/dist/plugin/loader/directives/analyzeDirectives.d.ts +9 -0
  195. package/dist/plugin/loader/directives/analyzeDirectives.d.ts.map +1 -0
  196. package/dist/plugin/loader/directives/analyzeDirectives.js +221 -0
  197. package/dist/plugin/loader/directives/analyzeModule.d.ts +11 -0
  198. package/dist/plugin/loader/directives/analyzeModule.d.ts.map +1 -0
  199. package/dist/plugin/loader/directives/analyzeModule.js +34 -0
  200. package/dist/plugin/loader/directives/collectExports.d.ts +13 -0
  201. package/dist/plugin/loader/directives/collectExports.d.ts.map +1 -0
  202. package/dist/plugin/loader/directives/collectExports.js +116 -0
  203. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +6 -0
  204. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +1 -0
  205. package/dist/plugin/loader/directives/collectExportsFromModule.js +24 -0
  206. package/dist/plugin/loader/directives/findDirectiveMatches.d.ts +3 -0
  207. package/dist/plugin/loader/directives/findDirectiveMatches.d.ts.map +1 -0
  208. package/dist/plugin/loader/directives/findDirectiveMatches.js +46 -0
  209. package/dist/plugin/loader/directives/getExportedName.d.ts +3 -0
  210. package/dist/plugin/loader/directives/getExportedName.d.ts.map +1 -0
  211. package/dist/plugin/loader/directives/getExportedName.js +59 -0
  212. package/dist/plugin/loader/directives/getExports.d.ts +7 -0
  213. package/dist/plugin/loader/directives/getExports.d.ts.map +1 -0
  214. package/dist/plugin/loader/directives/getExports.js +28 -0
  215. package/dist/plugin/loader/directives/getFunctionBody.d.ts +3 -0
  216. package/dist/plugin/loader/directives/getFunctionBody.d.ts.map +1 -0
  217. package/dist/plugin/loader/directives/getFunctionBody.js +31 -0
  218. package/dist/plugin/loader/directives/getFunctionName.d.ts +10 -0
  219. package/dist/plugin/loader/directives/getFunctionName.d.ts.map +1 -0
  220. package/dist/plugin/loader/directives/getFunctionName.js +42 -0
  221. package/dist/plugin/loader/directives/getQualifiedName.d.ts +3 -0
  222. package/dist/plugin/loader/directives/getQualifiedName.d.ts.map +1 -0
  223. package/dist/plugin/loader/directives/getQualifiedName.js +65 -0
  224. package/dist/plugin/loader/directives/index.d.ts +14 -0
  225. package/dist/plugin/loader/directives/index.d.ts.map +1 -0
  226. package/dist/plugin/loader/directives/index.js +18 -0
  227. package/dist/plugin/loader/directives/processFunctionNode.d.ts +4 -0
  228. package/dist/plugin/loader/directives/processFunctionNode.d.ts.map +1 -0
  229. package/dist/plugin/loader/directives/processFunctionNode.js +86 -0
  230. package/dist/plugin/loader/directives/typeGuards.d.ts +37 -0
  231. package/dist/plugin/loader/directives/typeGuards.d.ts.map +1 -0
  232. package/dist/plugin/loader/directives/typeGuards.js +100 -0
  233. package/dist/plugin/loader/directives/types.d.ts +154 -0
  234. package/dist/plugin/loader/directives/types.d.ts.map +1 -0
  235. package/dist/plugin/loader/directives/utils.d.ts +14 -0
  236. package/dist/plugin/loader/directives/utils.d.ts.map +1 -0
  237. package/dist/plugin/loader/directives/utils.js +21 -0
  238. package/dist/plugin/loader/env-loader.d.ts +11 -0
  239. package/dist/plugin/loader/env-loader.d.ts.map +1 -0
  240. package/dist/plugin/loader/env-loader.js +65 -0
  241. package/dist/plugin/loader/index.d.ts +8 -1
  242. package/dist/plugin/loader/index.d.ts.map +1 -1
  243. package/dist/plugin/loader/index.js +13 -4
  244. package/dist/plugin/loader/parse.d.ts +11 -2
  245. package/dist/plugin/loader/parse.d.ts.map +1 -1
  246. package/dist/plugin/loader/parse.js +29 -6
  247. package/dist/plugin/loader/react-loader.d.ts +22 -1
  248. package/dist/plugin/loader/react-loader.d.ts.map +1 -1
  249. package/dist/plugin/loader/react-loader.js +169 -6
  250. package/dist/plugin/loader/removeDirectives.d.ts +5 -0
  251. package/dist/plugin/loader/removeDirectives.d.ts.map +1 -0
  252. package/dist/plugin/loader/removeDirectives.js +17 -0
  253. package/dist/plugin/loader/removeRanges.d.ts +5 -0
  254. package/dist/plugin/loader/removeRanges.d.ts.map +1 -0
  255. package/dist/plugin/loader/removeRanges.js +20 -0
  256. package/dist/plugin/loader/sourceMap.d.ts +16 -24
  257. package/dist/plugin/loader/sourceMap.d.ts.map +1 -1
  258. package/dist/plugin/loader/sourceMap.js +125 -97
  259. package/dist/plugin/loader/transformClientModule.d.ts +10 -0
  260. package/dist/plugin/loader/transformClientModule.d.ts.map +1 -0
  261. package/dist/plugin/loader/transformClientModule.js +46 -0
  262. package/dist/plugin/loader/transformModule.d.ts +6 -0
  263. package/dist/plugin/loader/transformModule.d.ts.map +1 -0
  264. package/dist/plugin/loader/transformModule.js +33 -0
  265. package/dist/plugin/loader/transformModuleIfNeeded.d.ts +12 -1
  266. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
  267. package/dist/plugin/loader/transformModuleIfNeeded.js +9 -20
  268. package/dist/plugin/loader/transformServerModule.d.ts +11 -0
  269. package/dist/plugin/loader/transformServerModule.d.ts.map +1 -0
  270. package/dist/plugin/loader/transformServerModule.js +84 -0
  271. package/dist/plugin/loader/transformWithAcornLoose.d.ts +12 -0
  272. package/dist/plugin/loader/transformWithAcornLoose.d.ts.map +1 -0
  273. package/dist/plugin/loader/transformWithAcornLoose.js +18 -0
  274. package/dist/plugin/loader/types.d.ts +59 -12
  275. package/dist/plugin/loader/types.d.ts.map +1 -1
  276. package/dist/plugin/metrics/collectStreamMetrics.d.ts +9 -0
  277. package/dist/plugin/metrics/collectStreamMetrics.d.ts.map +1 -0
  278. package/dist/plugin/metrics/collectStreamMetrics.js +35 -0
  279. package/dist/plugin/metrics/createRenderMetrics.d.ts +3 -0
  280. package/dist/plugin/metrics/createRenderMetrics.d.ts.map +1 -0
  281. package/dist/plugin/metrics/createRenderMetrics.js +24 -0
  282. package/dist/plugin/metrics/createStreamMetrics.d.ts +3 -0
  283. package/dist/plugin/metrics/createStreamMetrics.d.ts.map +1 -0
  284. package/dist/plugin/metrics/createStreamMetrics.js +19 -0
  285. package/dist/plugin/metrics/formatMetrics.d.ts +6 -3
  286. package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
  287. package/dist/plugin/metrics/formatMetrics.js +5 -2
  288. package/dist/plugin/metrics/index.d.ts +3 -1
  289. package/dist/plugin/metrics/index.d.ts.map +1 -1
  290. package/dist/plugin/metrics/index.js +9 -1
  291. package/dist/plugin/metrics/types.d.ts +23 -0
  292. package/dist/plugin/metrics/types.d.ts.map +1 -0
  293. package/dist/plugin/metrics/types.js +1 -0
  294. package/dist/plugin/plugin.client.d.ts +23 -2
  295. package/dist/plugin/plugin.client.d.ts.map +1 -1
  296. package/dist/plugin/plugin.client.js +30 -17
  297. package/dist/plugin/plugin.server.d.ts +13 -2
  298. package/dist/plugin/plugin.server.d.ts.map +1 -1
  299. package/dist/plugin/plugin.server.js +7 -4
  300. package/dist/plugin/preserver/plugin.d.ts +2 -2
  301. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  302. package/dist/plugin/preserver/plugin.js +33 -29
  303. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts +11 -0
  304. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts.map +1 -0
  305. package/dist/plugin/react-client/cleanupWorkerServerAction.js +18 -0
  306. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts +9 -9
  307. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -1
  308. package/dist/plugin/react-client/configureWorkerRequestHandler.js +25 -14
  309. package/dist/plugin/react-client/createMessageHandlers.d.ts +1 -1
  310. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  311. package/dist/plugin/react-client/createMessageHandlers.js +15 -3
  312. package/dist/plugin/react-client/createWorkerStream.d.ts +12 -10
  313. package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
  314. package/dist/plugin/react-client/createWorkerStream.js +27 -29
  315. package/dist/plugin/react-client/handleWorkerRscStream.d.ts +13 -8
  316. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
  317. package/dist/plugin/react-client/handleWorkerRscStream.js +59 -24
  318. package/dist/plugin/react-client/handleWorkerServerAction.d.ts +2 -1
  319. package/dist/plugin/react-client/handleWorkerServerAction.d.ts.map +1 -1
  320. package/dist/plugin/react-client/handleWorkerServerAction.js +43 -28
  321. package/dist/plugin/react-client/index.d.ts +4 -1
  322. package/dist/plugin/react-client/index.d.ts.map +1 -1
  323. package/dist/plugin/react-client/index.js +10 -1
  324. package/dist/plugin/react-client/plugin.d.ts +5 -3
  325. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  326. package/dist/plugin/react-client/plugin.js +9 -11
  327. package/dist/plugin/react-client/restartWorker.d.ts +5 -4
  328. package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
  329. package/dist/plugin/react-client/restartWorker.js +12 -10
  330. package/dist/plugin/react-server/configureReactServer.d.ts +5 -4
  331. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -1
  332. package/dist/plugin/react-server/configureReactServer.js +98 -43
  333. package/dist/plugin/react-server/handleServerAction.d.ts +3 -2
  334. package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -1
  335. package/dist/plugin/react-server/handleServerAction.js +14 -20
  336. package/dist/plugin/react-server/plugin.d.ts +3 -4
  337. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  338. package/dist/plugin/react-server/plugin.js +14 -17
  339. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +8 -6
  340. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
  341. package/dist/plugin/react-static/collectHtmlWorkerContent.js +4 -4
  342. package/dist/plugin/react-static/collectRscContent.d.ts +8 -6
  343. package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
  344. package/dist/plugin/react-static/collectRscContent.js +4 -4
  345. package/dist/plugin/react-static/configurePreviewServer.d.ts +6 -4
  346. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  347. package/dist/plugin/react-static/configurePreviewServer.js +38 -31
  348. package/dist/plugin/react-static/createBuildLoader.d.ts +5 -5
  349. package/dist/plugin/react-static/createBuildLoader.d.ts.map +1 -1
  350. package/dist/plugin/react-static/createBuildLoader.js +122 -30
  351. package/dist/plugin/react-static/fileWriter.js +1 -1
  352. package/dist/plugin/react-static/plugin.d.ts +3 -4
  353. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  354. package/dist/plugin/react-static/plugin.js +62 -47
  355. package/dist/plugin/react-static/renderPage.d.ts +4 -2
  356. package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
  357. package/dist/plugin/react-static/renderPage.js +33 -17
  358. package/dist/plugin/react-static/renderPages.d.ts +4 -2
  359. package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
  360. package/dist/plugin/react-static/renderPages.js +7 -6
  361. package/dist/plugin/react-static/renderStreams.d.ts +5 -22
  362. package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
  363. package/dist/plugin/react-static/renderStreams.js +6 -6
  364. package/dist/plugin/react-static/rscToHtmlStream.d.ts.map +1 -1
  365. package/dist/plugin/react-static/rscToHtmlStream.js +1 -1
  366. package/dist/plugin/react-static/temporaryReferences.js +1 -1
  367. package/dist/plugin/react-static/types.d.ts +0 -1
  368. package/dist/plugin/react-static/types.d.ts.map +1 -1
  369. package/dist/plugin/root.js +1 -1
  370. package/dist/plugin/transformer/plugin.js +1 -1
  371. package/dist/plugin/transformer/plugin.server.d.ts +5 -3
  372. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  373. package/dist/plugin/transformer/plugin.server.js +43 -44
  374. package/dist/plugin/types/css-tracking.d.ts +2 -2
  375. package/dist/plugin/types/css-tracking.d.ts.map +1 -1
  376. package/dist/plugin/types.d.ts +452 -192
  377. package/dist/plugin/types.d.ts.map +1 -1
  378. package/dist/plugin/types.js +2 -1
  379. package/dist/plugin/utils/callServer.js +1 -1
  380. package/dist/plugin/utils/createCallServer.d.ts +1 -1
  381. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  382. package/dist/plugin/utils/createCallServer.js +1 -1
  383. package/dist/plugin/utils/createReactFetcher.d.ts +2 -3
  384. package/dist/plugin/utils/createReactFetcher.d.ts.map +1 -1
  385. package/dist/plugin/utils/createReactFetcher.js +1 -1
  386. package/dist/plugin/utils/env.js +1 -1
  387. package/dist/plugin/utils/envUrls.node.js +1 -1
  388. package/dist/plugin/utils/index.d.ts +1 -0
  389. package/dist/plugin/utils/index.d.ts.map +1 -1
  390. package/dist/plugin/utils/index.js +12 -5
  391. package/dist/plugin/utils/routeToURL.d.ts +12 -0
  392. package/dist/plugin/utils/routeToURL.d.ts.map +1 -0
  393. package/dist/plugin/utils/routeToURL.js +26 -0
  394. package/dist/plugin/utils/urls.d.ts.map +1 -1
  395. package/dist/plugin/utils/urls.js +5 -3
  396. package/dist/plugin/vendor/index.js +7 -1
  397. package/dist/plugin/vendor/vendor.client.js +1 -1
  398. package/dist/plugin/vendor/vendor.js +1 -1
  399. package/dist/plugin/vendor/vendor.server.js +1 -1
  400. package/dist/plugin/worker/createWorker.d.ts +31 -17
  401. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  402. package/dist/plugin/worker/createWorker.js +18 -12
  403. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts +2 -2
  404. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
  405. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +5 -2
  406. package/dist/plugin/worker/html/html-worker.development.js +3 -3
  407. package/dist/plugin/worker/html/html-worker.production.js +1 -1
  408. package/dist/plugin/worker/html/index.d.ts +1 -1
  409. package/dist/plugin/worker/html/index.d.ts.map +1 -1
  410. package/dist/plugin/worker/html/index.js +1 -1
  411. package/dist/plugin/worker/html/messageHandler.d.ts +1 -1
  412. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  413. package/dist/plugin/worker/html/messageHandler.js +9 -11
  414. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts +3 -0
  415. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts.map +1 -0
  416. package/dist/plugin/worker/html/sendHtmlWorkerMessage.js +2 -0
  417. package/dist/plugin/worker/html/types.d.ts +20 -2
  418. package/dist/plugin/worker/html/types.d.ts.map +1 -1
  419. package/dist/plugin/worker/index.d.ts +3 -0
  420. package/dist/plugin/worker/index.d.ts.map +1 -0
  421. package/dist/plugin/worker/index.js +7 -0
  422. package/dist/plugin/worker/registerLoaders.js +2 -2
  423. package/dist/plugin/worker/rsc/handleRender.d.ts +4 -3
  424. package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
  425. package/dist/plugin/worker/rsc/handleRender.js +54 -32
  426. package/dist/plugin/worker/rsc/handlers.d.ts.map +1 -1
  427. package/dist/plugin/worker/rsc/handlers.js +19 -15
  428. package/dist/plugin/worker/rsc/index.d.ts +1 -1
  429. package/dist/plugin/worker/rsc/index.d.ts.map +1 -1
  430. package/dist/plugin/worker/rsc/index.js +1 -1
  431. package/dist/plugin/worker/rsc/messageHandler.d.ts +1 -1
  432. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  433. package/dist/plugin/worker/rsc/messageHandler.js +16 -4
  434. package/dist/plugin/worker/rsc/rsc-worker.development.js +77 -11
  435. package/dist/plugin/worker/rsc/rsc-worker.production.js +1 -1
  436. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts +3 -0
  437. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts.map +1 -0
  438. package/dist/plugin/worker/rsc/sendRscWorkerMessage.js +11 -0
  439. package/dist/plugin/worker/rsc/state.js +1 -1
  440. package/dist/plugin/worker/rsc/types.d.ts +95 -0
  441. package/dist/plugin/worker/rsc/types.d.ts.map +1 -0
  442. package/dist/plugin/worker/rsc/types.js +1 -0
  443. package/dist/plugin/worker/rsc/userOptions.d.ts +1 -1
  444. package/dist/plugin/worker/rsc/userOptions.d.ts.map +1 -1
  445. package/dist/plugin/worker/rsc/userOptions.js +3 -4
  446. package/dist/plugin/worker/sendMessage.d.ts +3 -4
  447. package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
  448. package/dist/plugin/worker/sendMessage.js +15 -5
  449. package/dist/plugin/worker/types.d.ts +109 -260
  450. package/dist/plugin/worker/types.d.ts.map +1 -1
  451. package/dist/server.js +1 -1
  452. package/dist/tsconfig.tsbuildinfo +1 -1
  453. package/package.json +58 -25
  454. package/plugin/components/{css-collector-elements.tsx → css.tsx} +3 -3
  455. package/plugin/components/html.tsx +4 -4
  456. package/plugin/components/index.ts +3 -3
  457. package/plugin/components/root.tsx +20 -0
  458. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +173 -134
  459. package/plugin/config/autoDiscover/resolveBuildPages.ts +120 -7
  460. package/plugin/config/createModuleID.ts +60 -39
  461. package/plugin/config/defaults.tsx +184 -95
  462. package/plugin/config/extMap.ts +51 -56
  463. package/plugin/config/flightBindings.ts +221 -0
  464. package/plugin/config/getCondition.ts +6 -0
  465. package/plugin/config/index.ts +17 -4
  466. package/plugin/config/interpolatePattern.ts +19 -0
  467. package/plugin/config/parsePattern.ts +81 -0
  468. package/plugin/config/resolveAllowedDirectives.ts +59 -0
  469. package/plugin/config/resolveDirectiveMatcher.ts +57 -0
  470. package/plugin/config/resolveEnv.ts +5 -10
  471. package/plugin/config/resolveOptions.ts +415 -299
  472. package/plugin/config/resolvePatternWithValues.ts +70 -0
  473. package/plugin/config/resolveRegExp.ts +89 -0
  474. package/plugin/config/resolveUrlOption.ts +92 -20
  475. package/plugin/config/resolveUserConfig.ts +417 -351
  476. package/plugin/env/plugin.ts +71 -7
  477. package/plugin/error/directiveError.ts +29 -0
  478. package/plugin/error/enhanceError.ts +41 -0
  479. package/plugin/error/index.ts +3 -0
  480. package/plugin/error/logError.ts +45 -0
  481. package/plugin/error/serializeError.ts +34 -0
  482. package/plugin/error/toError.ts +75 -45
  483. package/plugin/file-preserver/plugin.ts +3 -3
  484. package/plugin/getNodeEnv.ts +24 -0
  485. package/plugin/helpers/cleanObject.ts +2 -1
  486. package/plugin/helpers/collectViteModuleGraphCss.ts +138 -118
  487. package/plugin/helpers/createCssProps.tsx +41 -20
  488. package/plugin/helpers/createEventHandler.ts +1 -1
  489. package/plugin/helpers/createHandler.ts +40 -12
  490. package/plugin/helpers/createRscStream.tsx +97 -35
  491. package/plugin/helpers/formatMetrics.ts +2 -37
  492. package/plugin/helpers/getBundleManifest.ts +10 -1
  493. package/plugin/helpers/getRouteFiles.ts +112 -8
  494. package/plugin/helpers/handleServerAction.ts +10 -6
  495. package/plugin/helpers/hydrateUserOptions.ts +23 -0
  496. package/plugin/helpers/index.ts +4 -0
  497. package/plugin/helpers/inputNormalizer.ts +44 -24
  498. package/plugin/helpers/metrics.ts +4 -64
  499. package/plugin/helpers/moduleResolver.ts +74 -19
  500. package/plugin/helpers/requestInfo.ts +72 -52
  501. package/plugin/helpers/requestToRoute.ts +38 -12
  502. package/plugin/helpers/resolveComponent.ts +173 -0
  503. package/plugin/helpers/resolveComponents.ts +185 -0
  504. package/plugin/helpers/resolvePage.ts +35 -29
  505. package/plugin/helpers/resolvePageAndProps.ts +82 -61
  506. package/plugin/helpers/resolveProps.ts +100 -37
  507. package/plugin/helpers/resolveUserComponents.ts +190 -0
  508. package/plugin/helpers/serializeUserOptions.ts +190 -69
  509. package/plugin/helpers/stashReturnValue.ts +7 -4
  510. package/plugin/helpers/tryManifest.ts +1 -1
  511. package/plugin/loader/createDefaultLoader.ts +119 -119
  512. package/plugin/loader/createTransformer.ts +118 -0
  513. package/plugin/loader/css-loader.ts +206 -0
  514. package/plugin/loader/directives/addLocalExportedNames.ts +78 -0
  515. package/plugin/loader/directives/analyzeDirectives.ts +298 -0
  516. package/plugin/loader/directives/analyzeModule.ts +39 -0
  517. package/plugin/loader/directives/collectExports.ts +181 -0
  518. package/plugin/loader/directives/collectExportsFromModule.ts +25 -0
  519. package/plugin/loader/directives/findDirectiveMatches.ts +58 -0
  520. package/plugin/loader/directives/getExportedName.ts +73 -0
  521. package/plugin/loader/directives/getExports.ts +27 -0
  522. package/plugin/loader/directives/getFunctionBody.ts +32 -0
  523. package/plugin/loader/directives/getFunctionName.ts +70 -0
  524. package/plugin/loader/directives/getQualifiedName.ts +76 -0
  525. package/plugin/loader/directives/index.ts +13 -0
  526. package/plugin/loader/directives/processFunctionNode.ts +97 -0
  527. package/plugin/loader/directives/typeGuards.ts +160 -0
  528. package/plugin/loader/directives/types.ts +174 -0
  529. package/plugin/loader/directives/utils.ts +35 -0
  530. package/plugin/loader/{env-loader.development.ts → env-loader.ts} +8 -22
  531. package/plugin/loader/index.ts +8 -6
  532. package/plugin/loader/parse.ts +42 -12
  533. package/plugin/loader/react-loader.ts +255 -4
  534. package/plugin/loader/removeDirectives.ts +14 -0
  535. package/plugin/loader/removeRanges.ts +21 -0
  536. package/plugin/loader/sourceMap.ts +174 -84
  537. package/plugin/loader/transformClientModule.ts +64 -0
  538. package/plugin/loader/transformModule.ts +54 -0
  539. package/plugin/loader/transformModuleIfNeeded.ts +40 -40
  540. package/plugin/loader/transformServerModule.ts +136 -0
  541. package/plugin/loader/transformWithAcornLoose.ts +27 -0
  542. package/plugin/loader/types.ts +65 -13
  543. package/plugin/metrics/collectStreamMetrics.ts +38 -0
  544. package/plugin/metrics/createRenderMetrics.ts +17 -0
  545. package/plugin/metrics/createStreamMetrics.ts +14 -0
  546. package/plugin/metrics/formatMetrics.ts +7 -3
  547. package/plugin/metrics/index.ts +3 -1
  548. package/plugin/metrics/types.ts +24 -0
  549. package/plugin/plugin.client.ts +39 -15
  550. package/plugin/plugin.server.ts +39 -18
  551. package/plugin/preserver/plugin.ts +42 -42
  552. package/plugin/react-client/cleanupWorkerServerAction.ts +33 -0
  553. package/plugin/react-client/configureWorkerRequestHandler.ts +212 -201
  554. package/plugin/react-client/createMessageHandlers.ts +17 -3
  555. package/plugin/react-client/createWorkerStream.ts +55 -51
  556. package/plugin/react-client/handleWorkerRscStream.ts +141 -61
  557. package/plugin/react-client/handleWorkerServerAction.ts +59 -37
  558. package/plugin/react-client/index.ts +4 -1
  559. package/plugin/react-client/plugin.ts +17 -18
  560. package/plugin/react-client/restartWorker.ts +75 -70
  561. package/plugin/react-server/configureReactServer.ts +200 -142
  562. package/plugin/react-server/handleServerAction.ts +156 -160
  563. package/plugin/react-server/plugin.ts +18 -25
  564. package/plugin/react-static/collectHtmlWorkerContent.ts +109 -102
  565. package/plugin/react-static/collectRscContent.ts +55 -51
  566. package/plugin/react-static/configurePreviewServer.ts +110 -100
  567. package/plugin/react-static/createBuildLoader.ts +157 -48
  568. package/plugin/react-static/plugin.ts +368 -357
  569. package/plugin/react-static/renderPage.ts +43 -24
  570. package/plugin/react-static/renderPages.ts +21 -14
  571. package/plugin/react-static/renderStreams.ts +13 -15
  572. package/plugin/react-static/rscToHtmlStream.ts +4 -6
  573. package/plugin/react-static/types.ts +0 -3
  574. package/plugin/transformer/README.md +82 -8
  575. package/plugin/transformer/plugin.server.ts +55 -82
  576. package/plugin/types/css-tracking.ts +1 -1
  577. package/plugin/types/global.d.ts +2 -2
  578. package/plugin/types/react-server-dom-esm.d.ts +12 -13
  579. package/plugin/types.ts +685 -309
  580. package/plugin/utils/createCallServer.ts +5 -5
  581. package/plugin/utils/createReactFetcher.ts +4 -6
  582. package/plugin/utils/index.ts +2 -1
  583. package/plugin/utils/routeToURL.ts +34 -0
  584. package/plugin/utils/urls.ts +9 -6
  585. package/plugin/worker/createWorker.ts +67 -34
  586. package/plugin/worker/html/README.md +10 -0
  587. package/plugin/worker/html/createHtmlWorkerRenderState.tsx +7 -4
  588. package/plugin/worker/html/html-worker.development.tsx +4 -3
  589. package/plugin/worker/html/index.ts +3 -1
  590. package/plugin/worker/html/messageHandler.tsx +10 -16
  591. package/plugin/worker/html/sendHtmlWorkerMessage.ts +8 -0
  592. package/plugin/worker/html/types.ts +67 -1
  593. package/plugin/worker/index.ts +2 -0
  594. package/plugin/worker/registerLoaders.ts +3 -3
  595. package/plugin/worker/rsc/README.md +203 -1
  596. package/plugin/worker/rsc/handleRender.ts +76 -39
  597. package/plugin/worker/rsc/handlers.ts +30 -22
  598. package/plugin/worker/rsc/index.ts +2 -0
  599. package/plugin/worker/rsc/messageHandler.tsx +17 -10
  600. package/plugin/worker/rsc/rsc-worker.development.ts +104 -17
  601. package/plugin/worker/rsc/sendRscWorkerMessage.ts +7 -0
  602. package/plugin/worker/rsc/state.ts +1 -1
  603. package/plugin/worker/rsc/types.ts +185 -0
  604. package/plugin/worker/rsc/userOptions.ts +2 -3
  605. package/plugin/worker/sendMessage.ts +23 -14
  606. package/plugin/worker/types.ts +131 -386
  607. package/scripts/check-react-version.mjs +3 -3
  608. package/scripts/fix-unused-imports.mjs +77 -0
  609. package/tsconfig.json +1 -1
  610. package/dist/_virtual/dynamic-import-helper.js.map +0 -1
  611. package/dist/client.js.map +0 -1
  612. package/dist/index.js.map +0 -1
  613. package/dist/plugin/components/css-collector-elements.d.ts.map +0 -1
  614. package/dist/plugin/components/css-collector-elements.js +0 -33
  615. package/dist/plugin/components/css-collector-elements.js.map +0 -1
  616. package/dist/plugin/components/css-collector.d.ts +0 -7
  617. package/dist/plugin/components/css-collector.d.ts.map +0 -1
  618. package/dist/plugin/components/css-collector.js +0 -18
  619. package/dist/plugin/components/css-collector.js.map +0 -1
  620. package/dist/plugin/components/html.js.map +0 -1
  621. package/dist/plugin/components.js +0 -9
  622. package/dist/plugin/components.js.map +0 -1
  623. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js.map +0 -1
  624. package/dist/plugin/config/autoDiscover/customWorkerFiles.js.map +0 -1
  625. package/dist/plugin/config/autoDiscover/pageAndPropFiles.js.map +0 -1
  626. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +0 -1
  627. package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +0 -1
  628. package/dist/plugin/config/defaults.js.map +0 -1
  629. package/dist/plugin/config/extMap.js.map +0 -1
  630. package/dist/plugin/config/getCondition.js.map +0 -1
  631. package/dist/plugin/config/getPaths.js.map +0 -1
  632. package/dist/plugin/config/mimeTypes.js.map +0 -1
  633. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts +0 -5
  634. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +0 -1
  635. package/dist/plugin/config/resolveAutoDiscoverMatcher.js +0 -25
  636. package/dist/plugin/config/resolveAutoDiscoverMatcher.js.map +0 -1
  637. package/dist/plugin/config/resolveEnv.js.map +0 -1
  638. package/dist/plugin/config/resolveOptions.js.map +0 -1
  639. package/dist/plugin/config/resolvePages.js.map +0 -1
  640. package/dist/plugin/config/resolveUrlOption.js.map +0 -1
  641. package/dist/plugin/config/resolveUserConfig.js.map +0 -1
  642. package/dist/plugin/config.js +0 -17
  643. package/dist/plugin/config.js.map +0 -1
  644. package/dist/plugin/env.js +0 -79
  645. package/dist/plugin/env.js.map +0 -1
  646. package/dist/plugin/error/toError.js.map +0 -1
  647. package/dist/plugin/file-preserver.js +0 -96
  648. package/dist/plugin/file-preserver.js.map +0 -1
  649. package/dist/plugin/helpers/cleanObject.js.map +0 -1
  650. package/dist/plugin/helpers/collectManifestCss.js.map +0 -1
  651. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +0 -1
  652. package/dist/plugin/helpers/createCssProps.js.map +0 -1
  653. package/dist/plugin/helpers/createEventHandler.js.map +0 -1
  654. package/dist/plugin/helpers/createHandler.js.map +0 -1
  655. package/dist/plugin/helpers/createRscStream.js.map +0 -1
  656. package/dist/plugin/helpers/formatMetrics.js.map +0 -1
  657. package/dist/plugin/helpers/getBundleManifest.js.map +0 -1
  658. package/dist/plugin/helpers/getRouteFiles.js.map +0 -1
  659. package/dist/plugin/helpers/handleServerAction.js.map +0 -1
  660. package/dist/plugin/helpers/inputNormalizer.js.map +0 -1
  661. package/dist/plugin/helpers/metrics.js.map +0 -1
  662. package/dist/plugin/helpers/moduleRefs.js.map +0 -1
  663. package/dist/plugin/helpers/requestInfo.js.map +0 -1
  664. package/dist/plugin/helpers/requestToRoute.js.map +0 -1
  665. package/dist/plugin/helpers/resolvePage.js.map +0 -1
  666. package/dist/plugin/helpers/resolvePageAndProps.js.map +0 -1
  667. package/dist/plugin/helpers/resolveProps.js.map +0 -1
  668. package/dist/plugin/helpers/serializeUserOptions.js.map +0 -1
  669. package/dist/plugin/helpers/sourceMap.d.ts +0 -8
  670. package/dist/plugin/helpers/sourceMap.d.ts.map +0 -1
  671. package/dist/plugin/helpers/sourceMap.js +0 -136
  672. package/dist/plugin/helpers/stashReturnValue.js.map +0 -1
  673. package/dist/plugin/helpers/tryManifest.js.map +0 -1
  674. package/dist/plugin/helpers.js +0 -27
  675. package/dist/plugin/helpers.js.map +0 -1
  676. package/dist/plugin/loader/css-loader.development.d.ts.map +0 -1
  677. package/dist/plugin/loader/css-loader.development.js +0 -76
  678. package/dist/plugin/loader/css-loader.development.js.map +0 -1
  679. package/dist/plugin/loader/css-loader.production.d.ts +0 -31
  680. package/dist/plugin/loader/css-loader.production.d.ts.map +0 -1
  681. package/dist/plugin/loader/css-loader.production.js +0 -45
  682. package/dist/plugin/loader/css-loader.production.js.map +0 -1
  683. package/dist/plugin/loader/env-loader.development.d.ts +0 -13
  684. package/dist/plugin/loader/env-loader.development.d.ts.map +0 -1
  685. package/dist/plugin/loader/env-loader.development.js +0 -68
  686. package/dist/plugin/loader/handleExports.d.ts +0 -40
  687. package/dist/plugin/loader/handleExports.d.ts.map +0 -1
  688. package/dist/plugin/loader/handleExports.js +0 -209
  689. package/dist/plugin/loader/handleExports.js.map +0 -1
  690. package/dist/plugin/loader/parse.js.map +0 -1
  691. package/dist/plugin/loader/react-loader.client.d.ts +0 -2
  692. package/dist/plugin/loader/react-loader.client.d.ts.map +0 -1
  693. package/dist/plugin/loader/react-loader.client.js +0 -2
  694. package/dist/plugin/loader/react-loader.js.map +0 -1
  695. package/dist/plugin/loader/react-loader.server.d.ts +0 -21
  696. package/dist/plugin/loader/react-loader.server.d.ts.map +0 -1
  697. package/dist/plugin/loader/react-loader.server.js +0 -131
  698. package/dist/plugin/loader/transformModuleIfNeeded.js.map +0 -1
  699. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts +0 -48
  700. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +0 -1
  701. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +0 -428
  702. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +0 -1
  703. package/dist/plugin/metrics/formatMetrics.js.map +0 -1
  704. package/dist/plugin/metrics.js +0 -7
  705. package/dist/plugin/metrics.js.map +0 -1
  706. package/dist/plugin/plugin.client.js.map +0 -1
  707. package/dist/plugin/plugin.server.js.map +0 -1
  708. package/dist/plugin/preserver/plugin.js.map +0 -1
  709. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +0 -1
  710. package/dist/plugin/react-client/createMessageHandlers.js.map +0 -1
  711. package/dist/plugin/react-client/createWorkerStream.js.map +0 -1
  712. package/dist/plugin/react-client/handleWorkerRscStream.js.map +0 -1
  713. package/dist/plugin/react-client/handleWorkerServerAction.js.map +0 -1
  714. package/dist/plugin/react-client/plugin.js.map +0 -1
  715. package/dist/plugin/react-client/restartWorker.js.map +0 -1
  716. package/dist/plugin/react-server/configureReactServer.js.map +0 -1
  717. package/dist/plugin/react-server/handleServerAction.js.map +0 -1
  718. package/dist/plugin/react-server/plugin.js.map +0 -1
  719. package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +0 -1
  720. package/dist/plugin/react-static/collectRscContent.js.map +0 -1
  721. package/dist/plugin/react-static/configurePreviewServer.js.map +0 -1
  722. package/dist/plugin/react-static/createBuildLoader.js.map +0 -1
  723. package/dist/plugin/react-static/fileWriter.js.map +0 -1
  724. package/dist/plugin/react-static/plugin.js.map +0 -1
  725. package/dist/plugin/react-static/renderPage.js.map +0 -1
  726. package/dist/plugin/react-static/renderPages.js.map +0 -1
  727. package/dist/plugin/react-static/renderStreams.js.map +0 -1
  728. package/dist/plugin/react-static/rscToHtmlStream.js.map +0 -1
  729. package/dist/plugin/react-static/temporaryReferences.js.map +0 -1
  730. package/dist/plugin/root.js.map +0 -1
  731. package/dist/plugin/source-map/createMappingsSerializer.d.ts +0 -2
  732. package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +0 -1
  733. package/dist/plugin/source-map/createMappingsSerializer.js +0 -129
  734. package/dist/plugin/source-map/createMappingsSerializer.js.map +0 -1
  735. package/dist/plugin/source-map/readMappings.d.ts +0 -2
  736. package/dist/plugin/source-map/readMappings.d.ts.map +0 -1
  737. package/dist/plugin/source-map/readMappings.js +0 -200
  738. package/dist/plugin/transformer/plugin.client.d.ts +0 -2
  739. package/dist/plugin/transformer/plugin.client.d.ts.map +0 -1
  740. package/dist/plugin/transformer/plugin.js.map +0 -1
  741. package/dist/plugin/transformer/plugin.server.js.map +0 -1
  742. package/dist/plugin/utils/callServer.js.map +0 -1
  743. package/dist/plugin/utils/createCallServer.js.map +0 -1
  744. package/dist/plugin/utils/createReactFetcher.js.map +0 -1
  745. package/dist/plugin/utils/env.js.map +0 -1
  746. package/dist/plugin/utils/envUrls.node.js.map +0 -1
  747. package/dist/plugin/utils/urls.js.map +0 -1
  748. package/dist/plugin/utils.js +0 -11
  749. package/dist/plugin/utils.js.map +0 -1
  750. package/dist/plugin/vendor/vendor.client.js.map +0 -1
  751. package/dist/plugin/vendor/vendor.js.map +0 -1
  752. package/dist/plugin/vendor/vendor.server.js.map +0 -1
  753. package/dist/plugin/vendor.js +0 -7
  754. package/dist/plugin/vendor.js.map +0 -1
  755. package/dist/plugin/worker/createWorker.js.map +0 -1
  756. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +0 -1
  757. package/dist/plugin/worker/html/html-worker.development.js.map +0 -1
  758. package/dist/plugin/worker/html/html-worker.production.js.map +0 -1
  759. package/dist/plugin/worker/html/index.js.map +0 -1
  760. package/dist/plugin/worker/html/messageHandler.js.map +0 -1
  761. package/dist/plugin/worker/rsc/handleRender.js.map +0 -1
  762. package/dist/plugin/worker/rsc/handlers.js.map +0 -1
  763. package/dist/plugin/worker/rsc/index.js.map +0 -1
  764. package/dist/plugin/worker/rsc/messageHandler.js.map +0 -1
  765. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +0 -1
  766. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +0 -1
  767. package/dist/plugin/worker/rsc/state.js.map +0 -1
  768. package/dist/plugin/worker/rsc/userOptions.js.map +0 -1
  769. package/dist/plugin/worker/sendMessage.js.map +0 -1
  770. package/dist/server.js.map +0 -1
  771. package/plugin/components/css-collector.tsx +0 -20
  772. package/plugin/config/resolveAutoDiscoverMatcher.ts +0 -23
  773. package/plugin/helpers/sourceMap.ts +0 -182
  774. package/plugin/loader/css-loader.development.ts +0 -135
  775. package/plugin/loader/css-loader.production.ts +0 -84
  776. package/plugin/loader/handleExports.ts +0 -309
  777. package/plugin/loader/react-loader.client.ts +0 -1
  778. package/plugin/loader/react-loader.server.ts +0 -185
  779. package/plugin/loader/transformModuleWithPreservedFunctions.ts +0 -593
  780. package/plugin/source-map/createMappingsSerializer.ts +0 -181
  781. package/plugin/source-map/readMappings.ts +0 -194
  782. package/plugin/transformer/plugin.client.ts +0 -0
  783. /package/dist/plugin/{transformer/plugin.client.js → loader/directives/types.js} +0 -0
@@ -2,12 +2,17 @@
2
2
 
3
3
  The RSC worker is used by the client plugin to handle React Server Components when the main thread is running without the `react-server` condition. It provides the server-condition capabilities that the client plugin needs but can't access directly.
4
4
 
5
+ > **Part of**: [Vite React Server Plugin](../../../README.md)
6
+ > **Documentation**: [Plugin Architecture Overview](../../../docs/README.md#plugin-architecture-documentation)
7
+
5
8
  ## Purpose
6
9
 
7
10
  The RSC worker serves several key functions:
8
11
 
9
12
  1. **Server Condition Access**: Enables RSC processing in a client-focused environment
10
13
  2. **Message-Based Communication**: Handles RSC streaming through a message passing interface
14
+ 3. **Context Isolation**: Provides a clean environment for server-side React processing
15
+ 4. **Streaming Support**: Handles RSC chunk processing and streaming responses
11
16
 
12
17
  ## Implementation Details
13
18
 
@@ -16,6 +21,22 @@ The worker comes in two variants:
16
21
  - `rsc-worker.development.ts`: Full implementation with detailed logging and error handling
17
22
  - `rsc-worker.production.ts`: Optimized implementation for production builds
18
23
 
24
+ ### Message Types
25
+
26
+ The worker handles several message types:
27
+
28
+ - `RSC_RENDER`: Renders React Server Components
29
+ - `SERVER_ACTION`: Executes server actions
30
+ - `CLEANUP`: Cleans up worker resources
31
+
32
+ ### State Management
33
+
34
+ The worker maintains state for:
35
+ - Active render requests
36
+ - Server action handlers
37
+ - Streaming connections
38
+ - Error boundaries
39
+
19
40
  ## Extending the Worker
20
41
 
21
42
  Users can create their own RSC workers for application-level use. This allows for:
@@ -42,6 +63,130 @@ if (typeof WorkerGlobalScope !== 'undefined') {
42
63
  }
43
64
  ```
44
65
 
66
+ ## ⚠️ Advanced Configuration: Custom Loader Paths
67
+
68
+ > **Warning**: These are escape hatches for advanced users. Most users should NOT use these options as they can break React Server Components, CSS processing, or environment handling, during the rsc-worker development workflow.
69
+
70
+ The RSC worker supports custom loader paths that allow you to completely replace the core loading mechanisms:
71
+
72
+ ```typescript
73
+ // vite.config.ts
74
+ import { defineConfig } from "vite";
75
+ import { vitePluginReactServer } from "vite-plugin-react-server";
76
+
77
+ export default defineConfig({
78
+ plugins: [
79
+ vitePluginReactServer({
80
+ // ⚠️ EXPERIMENTAL: Custom loader paths
81
+ reactLoaderPath: "./custom-loaders/my-react-loader.js", // Replaces React loading
82
+ cssLoaderPath: "./custom-loaders/my-css-loader.js", // Replaces CSS processing
83
+ envLoaderPath: "./custom-loaders/my-env-loader.js", // Replaces environment handling
84
+
85
+ // Legacy general loader path (discouraged)
86
+ loaderPath: "./custom-loaders/react-loader.js",
87
+ }),
88
+ ],
89
+ });
90
+ ```
91
+
92
+ ### Custom React Loader Example
93
+
94
+ ```js
95
+ // custom-loaders/my-react-loader.js
96
+ /**
97
+ * ⚠️ ADVANCED: Custom React loader
98
+ * This replaces the entire React loading mechanism
99
+ * Use at your own risk - may break RSC functionality!
100
+ */
101
+
102
+ export function load(url, context, nextLoad) {
103
+ if (url === 'react' || url.startsWith('react/')) {
104
+ console.log('🚨 Intercepting React import:', url);
105
+ // Could redirect to different React build, but likely to break RSC
106
+ // return nextLoad('react@experimental', context);
107
+ }
108
+
109
+ return nextLoad(url, context);
110
+ }
111
+ ```
112
+
113
+ ### Custom CSS Loader Example
114
+
115
+ ```js
116
+ // custom-loaders/my-css-loader.js
117
+ /**
118
+ * ⚠️ ADVANCED: Custom CSS processing
119
+ * This replaces the built-in CSS handling
120
+ */
121
+
122
+ export async function load(url, context, nextLoad) {
123
+ if (url.endsWith('.css')) {
124
+ console.log('🎨 Custom CSS processing:', url);
125
+
126
+ const source = await fetch(url).then(r => r.text());
127
+ const processed = await customCssProcessor(source);
128
+
129
+ return {
130
+ format: 'module',
131
+ source: `export default ${JSON.stringify(processed)}`,
132
+ shortCircuit: true
133
+ };
134
+ }
135
+
136
+ return nextLoad(url, context);
137
+ }
138
+
139
+ async function customCssProcessor(css) {
140
+ // Your custom CSS processing logic
141
+ return css.replace(/\/\*.*?\*\//g, ''); // Remove comments
142
+ }
143
+ ```
144
+
145
+ ### Why These May Not Work As Expected
146
+
147
+ These custom loader paths:
148
+
149
+ 1. **Break RSC Integration**: The plugin expects specific loader behavior for React Server Components to work correctly
150
+ 2. **Bypass Safety Checks**: Built-in loaders handle React conditions, serialization, and worker communication
151
+ 3. **Can Cause Compatibility Issues**: Different React builds or processing might break streaming and component registration
152
+ 4. **Are Undocumented Internal APIs**: These APIs may change without notice and could destabilize the plugin
153
+
154
+ ### Safer Alternatives
155
+
156
+ Instead of completely replacing loaders, consider these safer customization options:
157
+
158
+ ```typescript
159
+ // vite.config.ts - Safer customization
160
+ export default defineConfig({
161
+ plugins: [
162
+ vitePluginReactServer({
163
+ // Customize loader behavior safely
164
+ loader: {
165
+ importServerPath: "my-server-imports",
166
+ importClientPath: "my-client-imports",
167
+ registerServerReferenceName: "myRegisterServer",
168
+ registerClientReferenceName: "myRegisterClient",
169
+ },
170
+
171
+ // Custom CSS processing
172
+ css: {
173
+ inlineCss: true,
174
+ inlineThreshold: 1024,
175
+ },
176
+
177
+ // Event hooks for monitoring/customization
178
+ onEvent: (event) => {
179
+ if (event.type === 'css.process') {
180
+ console.log('CSS processed:', event.data);
181
+ }
182
+ },
183
+ }),
184
+ ],
185
+ });
186
+ ```
187
+
188
+ These safer alternatives provide customization without replacing core functionality.
189
+
45
190
  ## Future Possibilities
46
191
 
47
192
  The RSC worker architecture is designed to be extensible. Future enhancements could include:
@@ -55,4 +200,61 @@ The RSC worker architecture is designed to be extensible. Future enhancements co
55
200
 
56
201
  - The worker must be initialized with appropriate Node conditions
57
202
  - Message handling must account for streaming data
58
- - Consider memory usage when processing large RSC payloads
203
+ - Consider memory usage when processing large RSC payloads
204
+
205
+ ### Example: Restoring Default React Server Components Loader
206
+
207
+ Here's how you can restore the default `@react-server-dom-esm-node-loader.production.js` behavior as a custom hook:
208
+
209
+ ```javascript
210
+ // custom-react-loader.js
211
+ import { transformSource } from 'react-server-dom-esm/node-loader';
212
+
213
+ /**
214
+ * Custom React loader that restores default RSC behavior
215
+ * Just delegates to the official React Server Components loader
216
+ */
217
+ export const load = async (url, context, defaultLoad) => {
218
+ // First load the file using the default loader
219
+ const result = await defaultLoad(url, context);
220
+
221
+ // If it's not a module or source isn't a string, return as-is
222
+ if (result.format !== 'module' || typeof result.source !== 'string') {
223
+ return result;
224
+ }
225
+
226
+ // Use the official React Server Components transformSource function
227
+ const transformed = await transformSource(result.source, context, (source, ctx) => ({ source }));
228
+
229
+ return {
230
+ format: "module",
231
+ source: transformed.source,
232
+ shortCircuit: true
233
+ };
234
+ };
235
+ ```
236
+
237
+ **Usage:**
238
+
239
+ ```typescript
240
+ // vite.config.ts
241
+ export default defineConfig({
242
+ plugins: [
243
+ react(),
244
+ reactServer({
245
+ reactLoaderPath: './custom-react-loader.js'
246
+ })
247
+ ]
248
+ })
249
+ ```
250
+
251
+ This custom loader:
252
+ 1. **Accepts string source code** (as you mentioned)
253
+ 2. **Parses for "use client"/"use server" directives**
254
+ 3. **Transforms client modules** to register client references
255
+ 4. **Transforms server modules** to register server references
256
+ 5. **Maintains the same behavior** as the default React loader
257
+
258
+ The key requirement you mentioned is correct - the source must be a string, and this loader handles that properly while replicating the core RSC transformation logic.
259
+
260
+ // ... existing code ...
@@ -1,27 +1,33 @@
1
- import { resolvePageAndProps } from "../../helpers/resolvePageAndProps.js";
2
- import type { RscRenderMessage, StreamHandlers } from "../types.js";
1
+ import { resolveComponents } from "../../helpers/resolveComponents.js";
2
+ import type { RscRenderMessage } from "./types.js";
3
+ import type { StreamHandlers } from "../types.js";
3
4
  import { activeStreams, cssFiles } from "./state.js";
4
5
  import { createRscStream } from "../../helpers/createRscStream.js";
5
- import { CssCollector } from "../../components/css-collector.js";
6
6
  import { PassThrough } from "node:stream";
7
7
  import { join } from "node:path";
8
8
  import { workerData } from "node:worker_threads";
9
- import { React } from "../../vendor/vendor.server.js";
10
9
  import { hmrState } from "./state.js";
11
10
  import { performance } from "node:perf_hooks";
12
- import type { PagePropOpt } from "../../types.js";
11
+ import type { BuildModuleLoader, ResolvedUserOptions } from "../../types.js";
12
+ import React from "react";
13
+ import { routeToURL } from "../../utils/routeToURL.js";
13
14
 
14
- export async function handleRender<
15
- T extends PagePropOpt = PagePropOpt
16
- >(
17
- msg: RscRenderMessage<T>,
15
+ export type HandleRenderFn = <Msg extends RscRenderMessage = RscRenderMessage>(
16
+ msg: Msg,
18
17
  handlers: StreamHandlers
18
+ ) => Promise<void>;
19
+
20
+ export const handleRender: HandleRenderFn = async function _handleRender(
21
+ msg,
22
+ handlers
19
23
  ) {
20
- let {
21
- id = workerData.id,
22
- route = workerData.route,
23
- pagePath = workerData.pagePath,
24
- propsPath = workerData.propsPath,
24
+ const {
25
+ id,
26
+ route,
27
+ pagePath,
28
+ propsPath,
29
+ rootPath,
30
+ htmlPath,
25
31
  pageExportName = workerData.userOptions.pageExportName,
26
32
  propsExportName = workerData.userOptions.propsExportName,
27
33
  projectRoot = workerData.userOptions.projectRoot,
@@ -31,37 +37,64 @@ export async function handleRender<
31
37
  moduleBase = workerData.userOptions.moduleBase,
32
38
  pipeableStreamOptions = workerData.userOptions.pipeableStreamOptions,
33
39
  cssFiles: messageCssFiles,
34
- globalCss = workerData.globalCss,
40
+ globalCss,
41
+ verbose = workerData.userOptions.verbose,
42
+ build = workerData.userOptions.build,
35
43
  } = msg;
36
44
  try {
37
- // Load modules
38
- const pageAndPropsResult = await resolvePageAndProps({
45
+ // Create loader function for module resolution
46
+ const loader = async (moduleID: string) => {
47
+ // Handle #Page/#props suffixes
48
+ const [id, exportName] = moduleID.split('#');
49
+ if (hmrState.get(id)?.invalidated) {
50
+ hmrState.delete(id);
51
+ const res = await import(join(projectRoot, id) + `?t=${Date.now()}`)
52
+ if(!exportName) return res;
53
+ if(exportName in res) return { [exportName]: res[exportName] };
54
+ return res;
55
+ }
56
+ const res = await import(join(projectRoot, id))
57
+ if(!exportName) return res;
58
+ if(exportName in res) return { [exportName]: res[exportName] };
59
+ return res;
60
+ };
61
+
62
+ // Load modules (page, props, and components together)
63
+ const componentsResult = await resolveComponents({
39
64
  pagePath,
40
65
  propsPath,
66
+ rootPath,
67
+ htmlPath,
41
68
  pageExportName,
42
69
  propsExportName,
70
+ rootExportName: workerData.userOptions.rootExportName,
71
+ htmlExportName: workerData.userOptions.htmlExportName,
43
72
  route,
44
- loader: (id: string) => {
45
- try {
46
- if (hmrState.get(id)?.invalidated) {
47
- // Clear the HMR state for this module
48
- hmrState.delete(id);
49
- return import(join(projectRoot, id) + `?t=${Date.now()}`);
50
- }
51
- return import(join(projectRoot, id));
52
- } catch (error) {
53
- return Promise.reject(error);
54
- }
55
- },
73
+ verbose: workerData.userOptions.verbose,
74
+ loader: loader as BuildModuleLoader<ResolvedUserOptions>,
75
+ // Use components override for headless RSC streams in development
76
+ HtmlComponent: React.Fragment,
77
+ moduleBaseURL,
78
+ build,
56
79
  });
57
- if (pageAndPropsResult.type !== "success") {
58
- const { error, ...rest } = pageAndPropsResult;
59
- return handlers.onError(id, error, rest);
80
+ if (componentsResult.type !== "success") {
81
+ const { error, reason } = componentsResult;
82
+ handlers.onError(id, error, { reason });
83
+ return; // Don't propagate the error after handling it
60
84
  }
61
85
 
62
- const { PageComponent, pageProps } = pageAndPropsResult;
86
+ const { PageComponent, pageProps, RootComponent } = componentsResult;
87
+
88
+ // Override HtmlComponent with React.Fragment for headless RSC streams in development
89
+ const finalHtmlComponent = React.Fragment;
63
90
 
64
- const adaptedOnEvent = (event: "error" | "postpone", data: any) => {
91
+ const adaptedOnEvent = (event: "error" | "postpone", data: {
92
+ error?: Error | null;
93
+ errorInfo?: {
94
+ componentStack?: string | null;
95
+ digest?: string | null;
96
+ };
97
+ }) => {
65
98
  if (event === "error") {
66
99
  handlers.onError(id, data.error, data.errorInfo);
67
100
  }
@@ -73,13 +106,16 @@ export async function handleRender<
73
106
  cssFiles.set(id, cssContent);
74
107
  }
75
108
  }
109
+ const url = routeToURL(route, moduleBaseURL, build.rscOutputPath);
110
+
76
111
 
77
112
  // Create stream
78
113
  const streamResult = createRscStream({
114
+ url: url,
79
115
  projectRoot: projectRoot,
80
- Html: React.Fragment,
81
- PageComponent,
82
- CssCollector,
116
+ HtmlComponent: finalHtmlComponent,
117
+ PageComponent: PageComponent,
118
+ RootComponent: RootComponent,
83
119
  pageProps,
84
120
  moduleBase,
85
121
  moduleRootPath,
@@ -92,11 +128,12 @@ export async function handleRender<
92
128
  globalCss,
93
129
  onEvent: adaptedOnEvent,
94
130
  pipeableStreamOptions: pipeableStreamOptions,
131
+ verbose,
95
132
  });
96
133
 
97
134
  if (streamResult.type !== "success") {
98
135
  handlers.onError(id, streamResult.error);
99
- return;
136
+ return; // Already handled the error
100
137
  }
101
138
 
102
139
  const { stream, metrics } = streamResult;
@@ -133,6 +170,6 @@ export async function handleRender<
133
170
  });
134
171
  } catch (error) {
135
172
  handlers.onError(id, error as Error, { reason: `${id} render error` });
136
- return Promise.reject(error);
173
+ return; // Don't propagate the error after handling it
137
174
  }
138
175
  }
@@ -1,4 +1,4 @@
1
- import { sendRscWorkerMessage } from "../sendMessage.js";
1
+ import { sendRscWorkerMessage } from "./sendRscWorkerMessage.js";
2
2
  import type { StreamHandlers } from "../types.js";
3
3
  import { toError } from "../../error/toError.js";
4
4
  import { userOptions } from "./userOptions.js";
@@ -7,33 +7,39 @@ import { join } from "path";
7
7
  import { ReactDOMServer } from "../../vendor/vendor.server.js";
8
8
  import { PassThrough } from "node:stream";
9
9
 
10
+ // Helper function to serialize errors for worker thread communication
11
+ const serializeError = (error: unknown) => {
12
+ const err = toError(error);
13
+ return {
14
+ message: err.message,
15
+ name: err.name,
16
+ stack: err.stack,
17
+ };
18
+ };
19
+
10
20
  export const handlers: Required<StreamHandlers> = {
11
21
  onError: (id, error, errorInfo) => {
12
22
  sendRscWorkerMessage({
13
23
  type: "ERROR",
14
24
  id: id,
15
25
  errorInfo,
16
- error: toError(error),
17
- });
18
- sendRscWorkerMessage({
19
- type: "RSC_END",
20
- id: id,
26
+ error: serializeError(error),
21
27
  });
22
28
  },
23
- onData: (id, data: any) => {
29
+ onData: (id, data) => {
24
30
  sendRscWorkerMessage({
25
31
  type: "RSC_CHUNK",
26
32
  id: id,
27
33
  chunk: data,
28
34
  });
29
35
  },
30
- onEnd: (id: string) => {
36
+ onEnd: (id) => {
31
37
  sendRscWorkerMessage({
32
38
  type: "RSC_END",
33
39
  id: id,
34
40
  });
35
41
  },
36
- onMetrics: (id: string, metrics: any) => {
42
+ onMetrics: (id, metrics) => {
37
43
  sendRscWorkerMessage({
38
44
  type: "RSC_METRICS",
39
45
  id: id,
@@ -65,17 +71,19 @@ export const handlers: Required<StreamHandlers> = {
65
71
  },
66
72
  onServerActionResponse: (id, result) => {
67
73
  const stream = ReactDOMServer.renderToPipeableStream(
68
- {
69
- type: "server-action-response",
70
- returnValue: result
71
- },
74
+ result && typeof result === "object" && "returnValue" in result
75
+ ? result
76
+ : {
77
+ type: "server-action-response",
78
+ returnValue: result,
79
+ },
72
80
  userOptions.moduleBasePath,
73
81
  {
74
82
  onError(error: Error) {
75
83
  sendRscWorkerMessage({
76
84
  type: "ERROR",
77
85
  id,
78
- error: toError(error),
86
+ error: serializeError(error),
79
87
  });
80
88
  },
81
89
  }
@@ -103,7 +111,7 @@ export const handlers: Required<StreamHandlers> = {
103
111
  sendRscWorkerMessage({
104
112
  type: "ERROR",
105
113
  id,
106
- error: toError(error),
114
+ error: serializeError(error),
107
115
  });
108
116
  });
109
117
  },
@@ -137,7 +145,7 @@ export const handlers: Required<StreamHandlers> = {
137
145
  const stream = ReactDOMServer.renderToPipeableStream(
138
146
  {
139
147
  type: "server-action-response",
140
- returnValue: result
148
+ returnValue: result,
141
149
  },
142
150
  userOptions.moduleBasePath,
143
151
  {
@@ -145,7 +153,7 @@ export const handlers: Required<StreamHandlers> = {
145
153
  sendRscWorkerMessage({
146
154
  type: "ERROR",
147
155
  id,
148
- error: toError(error),
156
+ error: serializeError(error),
149
157
  });
150
158
  },
151
159
  }
@@ -173,16 +181,16 @@ export const handlers: Required<StreamHandlers> = {
173
181
  sendRscWorkerMessage({
174
182
  type: "ERROR",
175
183
  id,
176
- error: toError(error),
184
+ error: serializeError(error),
177
185
  });
178
186
  });
179
187
  } catch (error: unknown) {
180
- const errorMessage = toError(error).message;
188
+ const errorMessage = serializeError(error).message;
181
189
  // Send error response using RSC stream
182
190
  const stream = ReactDOMServer.renderToPipeableStream(
183
191
  {
184
192
  type: "server-action-response",
185
- returnValue: { success: false, error: errorMessage }
193
+ returnValue: { success: false, error: errorMessage },
186
194
  },
187
195
  userOptions.moduleBasePath,
188
196
  {
@@ -190,7 +198,7 @@ export const handlers: Required<StreamHandlers> = {
190
198
  sendRscWorkerMessage({
191
199
  type: "ERROR",
192
200
  id,
193
- error: toError(error),
201
+ error: serializeError(error),
194
202
  });
195
203
  },
196
204
  }
@@ -218,7 +226,7 @@ export const handlers: Required<StreamHandlers> = {
218
226
  sendRscWorkerMessage({
219
227
  type: "ERROR",
220
228
  id,
221
- error: toError(error),
229
+ error: serializeError(error),
222
230
  });
223
231
  });
224
232
  }
@@ -3,3 +3,5 @@ await(
3
3
  ? import("./rsc-worker.production.js")
4
4
  : import("./rsc-worker.development.js")
5
5
  );
6
+
7
+ export * from './types.js';
@@ -1,20 +1,17 @@
1
1
  import { parentPort } from "node:worker_threads";
2
- import {
3
- activeStreams,
4
- hmrState,
5
- } from "./state.js";
2
+ import { activeStreams, hmrState } from "./state.js";
6
3
  import { handleRender } from "./handleRender.js";
7
- import type {
8
- RscWorkerInputMessage,
9
- } from "../types.js";
4
+ import type { RscWorkerInputMessage } from "./types.js";
10
5
  import { toError } from "../../error/toError.js";
11
6
  import { handlers } from "./handlers.js";
7
+ import { join } from "node:path";
8
+ import { workerData } from "node:worker_threads";
9
+ import { sendMessage } from "../sendMessage.js";
12
10
 
13
11
  // In test mode, we want errors to propagate up immediately
14
12
  const isTestEnv = process.env["VITEST"] || process.env["NODE_ENV"] === "test";
15
13
  const isDevEnv = process.env["NODE_ENV"] !== "production";
16
14
 
17
-
18
15
  export async function messageHandler(
19
16
  msg: RscWorkerInputMessage,
20
17
  port = parentPort
@@ -54,6 +51,16 @@ export async function messageHandler(
54
51
  case "SERVER_MODULE":
55
52
  handlers.onServerModule(msg.id, msg.url, msg.source);
56
53
  return;
54
+ case "MODULE_REQUEST": {
55
+ const { id, path } = msg;
56
+ try {
57
+ const module = await import(join(workerData.userOptions.projectRoot, path));
58
+ handlers.onServerModule(id, path, module);
59
+ } catch (error) {
60
+ handlers.onError(id, toError(error));
61
+ }
62
+ return;
63
+ }
57
64
  case "SHUTDOWN": {
58
65
  // If id is "*", clean up all render states
59
66
  if (msg.id === "*") {
@@ -80,11 +87,11 @@ export async function messageHandler(
80
87
  }
81
88
  // In dev mode, try to send error message before exiting
82
89
  if (parentPort) {
83
- port?.postMessage({
90
+ sendMessage({
84
91
  type: "ERROR",
85
92
  id: "rsc-worker",
86
93
  error: err,
87
- });
94
+ }, port);
88
95
  }
89
96
  if (!isDevEnv || isTestEnv) {
90
97
  // In test mode or production mode, just throw the error to fail fast