vite-plugin-react-server 1.1.12 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/dist/package.json +10 -8
  2. package/dist/plugin/components/css-collector-elements.d.ts +4 -2
  3. package/dist/plugin/components/css-collector-elements.d.ts.map +1 -1
  4. package/dist/plugin/components/css-collector-elements.js +21 -7
  5. package/dist/plugin/components/css-collector-elements.js.map +1 -1
  6. package/dist/plugin/components/css-collector.d.ts +4 -5
  7. package/dist/plugin/components/css-collector.d.ts.map +1 -1
  8. package/dist/plugin/components/css-collector.js +5 -9
  9. package/dist/plugin/components/css-collector.js.map +1 -1
  10. package/dist/plugin/components/html.d.ts +1 -1
  11. package/dist/plugin/components/html.d.ts.map +1 -1
  12. package/dist/plugin/components/html.js +14 -3
  13. package/dist/plugin/components/html.js.map +1 -1
  14. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +4 -4
  15. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  16. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +14 -9
  17. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +1 -1
  18. package/dist/plugin/config/defaults.d.ts +66 -12
  19. package/dist/plugin/config/defaults.d.ts.map +1 -1
  20. package/dist/plugin/config/defaults.js +69 -15
  21. package/dist/plugin/config/defaults.js.map +1 -1
  22. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts +5 -0
  23. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +1 -0
  24. package/dist/plugin/config/resolveAutoDiscoverMatcher.js +25 -0
  25. package/dist/plugin/config/resolveAutoDiscoverMatcher.js.map +1 -0
  26. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  27. package/dist/plugin/config/resolveEnv.js +16 -5
  28. package/dist/plugin/config/resolveEnv.js.map +1 -1
  29. package/dist/plugin/config/resolveOptions.d.ts +3 -3
  30. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  31. package/dist/plugin/config/resolveOptions.js +59 -87
  32. package/dist/plugin/config/resolveOptions.js.map +1 -1
  33. package/dist/plugin/config/resolveUserConfig.d.ts +4 -4
  34. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  35. package/dist/plugin/config/resolveUserConfig.js +8 -1
  36. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  37. package/dist/plugin/error/toError.d.ts +3 -0
  38. package/dist/plugin/error/toError.d.ts.map +1 -1
  39. package/dist/plugin/error/toError.js +33 -4
  40. package/dist/plugin/error/toError.js.map +1 -1
  41. package/dist/plugin/helpers/cleanObject.d.ts.map +1 -1
  42. package/dist/plugin/helpers/cleanObject.js +19 -5
  43. package/dist/plugin/helpers/cleanObject.js.map +1 -1
  44. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +3 -3
  45. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  46. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +1 -1
  47. package/dist/plugin/helpers/createCssProps.d.ts +4 -3
  48. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  49. package/dist/plugin/helpers/createCssProps.js +7 -2
  50. package/dist/plugin/helpers/createCssProps.js.map +1 -1
  51. package/dist/plugin/helpers/createHandler.d.ts +4 -3
  52. package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
  53. package/dist/plugin/helpers/createHandler.js +1 -1
  54. package/dist/plugin/helpers/createHandler.js.map +1 -1
  55. package/dist/plugin/helpers/createRscStream.d.ts +2 -2
  56. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
  57. package/dist/plugin/helpers/createRscStream.js +15 -5
  58. package/dist/plugin/helpers/createRscStream.js.map +1 -1
  59. package/dist/plugin/helpers/index.d.ts +2 -2
  60. package/dist/plugin/helpers/index.d.ts.map +1 -1
  61. package/dist/plugin/helpers/index.js +2 -2
  62. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  63. package/dist/plugin/helpers/inputNormalizer.js +4 -1
  64. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  65. package/dist/plugin/helpers/moduleResolver.d.ts +3 -0
  66. package/dist/plugin/helpers/moduleResolver.d.ts.map +1 -0
  67. package/dist/plugin/helpers/moduleResolver.js +25 -0
  68. package/dist/plugin/helpers/requestInfo.d.ts +18 -3
  69. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  70. package/dist/plugin/helpers/requestInfo.js +75 -11
  71. package/dist/plugin/helpers/requestInfo.js.map +1 -1
  72. package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
  73. package/dist/plugin/helpers/resolvePage.js +2 -3
  74. package/dist/plugin/helpers/resolvePage.js.map +1 -1
  75. package/dist/plugin/helpers/resolvePageAndProps.d.ts +4 -3
  76. package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
  77. package/dist/plugin/helpers/resolvePageAndProps.js.map +1 -1
  78. package/dist/plugin/helpers/serializeUserOptions.d.ts +3 -2
  79. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  80. package/dist/plugin/helpers/serializeUserOptions.js +13 -1
  81. package/dist/plugin/helpers/serializeUserOptions.js.map +1 -1
  82. package/dist/plugin/helpers/sourceMap.d.ts +8 -0
  83. package/dist/plugin/helpers/sourceMap.d.ts.map +1 -0
  84. package/dist/plugin/helpers/sourceMap.js +136 -0
  85. package/dist/plugin/helpers.js +1 -1
  86. package/dist/plugin/loader/createBuildLoader.d.ts +7 -22
  87. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  88. package/dist/plugin/loader/createBuildLoader.js +79 -65
  89. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  90. package/dist/plugin/loader/createDefaultLoader.d.ts +13 -0
  91. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -0
  92. package/dist/plugin/loader/createDefaultLoader.js +47 -0
  93. package/dist/plugin/loader/css-loader.development.d.ts +1 -0
  94. package/dist/plugin/loader/css-loader.development.d.ts.map +1 -1
  95. package/dist/plugin/loader/css-loader.development.js +1 -1
  96. package/dist/plugin/loader/css-loader.development.js.map +1 -1
  97. package/dist/plugin/loader/handleExports.d.ts +33 -0
  98. package/dist/plugin/loader/handleExports.d.ts.map +1 -0
  99. package/dist/plugin/loader/handleExports.js +174 -0
  100. package/dist/plugin/loader/handleExports.js.map +1 -0
  101. package/dist/plugin/loader/index.d.ts +1 -1
  102. package/dist/plugin/loader/index.d.ts.map +1 -1
  103. package/dist/plugin/loader/index.js +4 -1
  104. package/dist/plugin/loader/parse.d.ts +6 -0
  105. package/dist/plugin/loader/parse.d.ts.map +1 -0
  106. package/dist/plugin/loader/parse.js +23 -0
  107. package/dist/plugin/loader/parse.js.map +1 -0
  108. package/dist/plugin/loader/react-loader.client.d.ts +2 -0
  109. package/dist/plugin/loader/react-loader.client.d.ts.map +1 -0
  110. package/dist/plugin/loader/react-loader.client.js +2 -0
  111. package/dist/plugin/loader/react-loader.d.ts +1 -12
  112. package/dist/plugin/loader/react-loader.d.ts.map +1 -1
  113. package/dist/plugin/loader/react-loader.js +5 -687
  114. package/dist/plugin/loader/react-loader.js.map +1 -1
  115. package/dist/plugin/loader/react-loader.server.d.ts +21 -0
  116. package/dist/plugin/loader/react-loader.server.d.ts.map +1 -0
  117. package/dist/plugin/loader/react-loader.server.js +69 -0
  118. package/dist/plugin/loader/sourceMap.d.ts +35 -0
  119. package/dist/plugin/loader/sourceMap.d.ts.map +1 -0
  120. package/dist/plugin/loader/sourceMap.js +105 -0
  121. package/dist/plugin/loader/temporaryReferences.d.ts +1 -1
  122. package/dist/plugin/loader/temporaryReferences.d.ts.map +1 -1
  123. package/dist/plugin/loader/transformModuleIfNeeded.d.ts +2 -0
  124. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -0
  125. package/dist/plugin/loader/transformModuleIfNeeded.js +27 -0
  126. package/dist/plugin/loader/transformModuleIfNeeded.js.map +1 -0
  127. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts +27 -0
  128. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +1 -0
  129. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +52 -0
  130. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +1 -0
  131. package/dist/plugin/loader/types.d.ts +8 -0
  132. package/dist/plugin/loader/types.d.ts.map +1 -0
  133. package/dist/plugin/loader/types.js +1 -0
  134. package/dist/plugin/plugin.client.d.ts +2 -2
  135. package/dist/plugin/plugin.client.d.ts.map +1 -1
  136. package/dist/plugin/plugin.client.js +2 -3
  137. package/dist/plugin/plugin.client.js.map +1 -1
  138. package/dist/plugin/plugin.server.d.ts +2 -2
  139. package/dist/plugin/plugin.server.d.ts.map +1 -1
  140. package/dist/plugin/plugin.server.js +2 -2
  141. package/dist/plugin/plugin.server.js.map +1 -1
  142. package/dist/plugin/preserver/plugin.d.ts +2 -2
  143. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  144. package/dist/plugin/preserver/plugin.js +6 -2
  145. package/dist/plugin/preserver/plugin.js.map +1 -1
  146. package/dist/plugin/react-client/{server.d.ts → configureWorkerRequestHandler.d.ts} +4 -4
  147. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -0
  148. package/dist/plugin/react-client/{server.js → configureWorkerRequestHandler.js} +11 -8
  149. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +1 -0
  150. package/dist/plugin/react-client/createMessageHandlers.d.ts +1 -1
  151. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  152. package/dist/plugin/react-client/createMessageHandlers.js +18 -11
  153. package/dist/plugin/react-client/createMessageHandlers.js.map +1 -1
  154. package/dist/plugin/react-client/createWorkerStream.d.ts +5 -3
  155. package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
  156. package/dist/plugin/react-client/createWorkerStream.js +61 -27
  157. package/dist/plugin/react-client/createWorkerStream.js.map +1 -1
  158. package/dist/plugin/react-client/handleWorkerRscStream.d.ts +1 -1
  159. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
  160. package/dist/plugin/react-client/handleWorkerRscStream.js +14 -4
  161. package/dist/plugin/react-client/handleWorkerRscStream.js.map +1 -1
  162. package/dist/plugin/react-client/plugin.d.ts +2 -2
  163. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  164. package/dist/plugin/react-client/plugin.js +7 -8
  165. package/dist/plugin/react-client/plugin.js.map +1 -1
  166. package/dist/plugin/react-client/restartWorker.d.ts +1 -1
  167. package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
  168. package/dist/plugin/react-client/restartWorker.js +9 -3
  169. package/dist/plugin/react-client/restartWorker.js.map +1 -1
  170. package/dist/plugin/react-server/configureReactServer.d.ts +9 -0
  171. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -0
  172. package/dist/plugin/react-server/{server.js → configureReactServer.js} +26 -8
  173. package/dist/plugin/react-server/configureReactServer.js.map +1 -0
  174. package/dist/plugin/react-server/handleServerAction.d.ts +5 -0
  175. package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -0
  176. package/dist/plugin/react-server/handleServerAction.js +145 -0
  177. package/dist/plugin/react-server/handleServerAction.js.map +1 -0
  178. package/dist/plugin/react-server/plugin.d.ts +2 -2
  179. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  180. package/dist/plugin/react-server/plugin.js +1 -1
  181. package/dist/plugin/react-server/plugin.js.map +1 -1
  182. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +2 -2
  183. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
  184. package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +1 -1
  185. package/dist/plugin/react-static/collectRscContent.d.ts +2 -2
  186. package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
  187. package/dist/plugin/react-static/collectRscContent.js.map +1 -1
  188. package/dist/plugin/react-static/configurePreviewServer.d.ts +3 -3
  189. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  190. package/dist/plugin/react-static/configurePreviewServer.js +18 -7
  191. package/dist/plugin/react-static/configurePreviewServer.js.map +1 -1
  192. package/dist/plugin/react-static/plugin.d.ts +2 -2
  193. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  194. package/dist/plugin/react-static/plugin.js +28 -12
  195. package/dist/plugin/react-static/plugin.js.map +1 -1
  196. package/dist/plugin/react-static/renderPage.d.ts +2 -2
  197. package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
  198. package/dist/plugin/react-static/renderPage.js.map +1 -1
  199. package/dist/plugin/react-static/renderPages.d.ts +2 -2
  200. package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
  201. package/dist/plugin/react-static/renderPages.js.map +1 -1
  202. package/dist/plugin/react-static/renderStreams.d.ts +2 -2
  203. package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
  204. package/dist/plugin/react-static/renderStreams.js +4 -4
  205. package/dist/plugin/react-static/renderStreams.js.map +1 -1
  206. package/dist/plugin/source-map/createMappingsSerializer.d.ts +2 -0
  207. package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +1 -0
  208. package/dist/plugin/source-map/createMappingsSerializer.js +159 -0
  209. package/dist/plugin/source-map/readMappings.d.ts +2 -0
  210. package/dist/plugin/source-map/readMappings.d.ts.map +1 -0
  211. package/dist/plugin/source-map/readMappings.js +201 -0
  212. package/dist/plugin/transformer/index.d.ts +0 -1
  213. package/dist/plugin/transformer/index.d.ts.map +1 -1
  214. package/dist/plugin/transformer/index.js +0 -1
  215. package/dist/plugin/transformer/plugin.client.d.ts +1 -3
  216. package/dist/plugin/transformer/plugin.client.d.ts.map +1 -1
  217. package/dist/plugin/transformer/plugin.client.js +1 -84
  218. package/dist/plugin/transformer/plugin.server.d.ts +2 -2
  219. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  220. package/dist/plugin/transformer/plugin.server.js +52 -20
  221. package/dist/plugin/transformer/plugin.server.js.map +1 -1
  222. package/dist/plugin/types.d.ts +89 -119
  223. package/dist/plugin/types.d.ts.map +1 -1
  224. package/dist/plugin/utils/callServer.d.ts +1 -1
  225. package/dist/plugin/utils/callServer.d.ts.map +1 -1
  226. package/dist/plugin/utils/createCallServer.d.ts +1 -1
  227. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  228. package/dist/plugin/utils/createCallServer.js +13 -4
  229. package/dist/plugin/utils/createCallServer.js.map +1 -1
  230. package/dist/plugin/utils/index.d.ts +1 -0
  231. package/dist/plugin/utils/index.d.ts.map +1 -1
  232. package/dist/plugin/utils/index.js +1 -0
  233. package/dist/plugin/utils.js +1 -0
  234. package/dist/plugin/utils.js.map +1 -1
  235. package/dist/plugin/vendor/vendor.client.d.ts +2 -1
  236. package/dist/plugin/vendor/vendor.client.d.ts.map +1 -1
  237. package/dist/plugin/vendor/vendor.client.js +2 -1
  238. package/dist/plugin/vendor/vendor.client.js.map +1 -1
  239. package/dist/plugin/vendor/vendor.server.d.ts.map +1 -1
  240. package/dist/plugin/vendor/vendor.server.js +1 -1
  241. package/dist/plugin/vendor/vendor.server.js.map +1 -1
  242. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  243. package/dist/plugin/worker/createWorker.js +17 -22
  244. package/dist/plugin/worker/createWorker.js.map +1 -1
  245. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
  246. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +25 -4
  247. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +1 -1
  248. package/dist/plugin/worker/html/html-worker.development.js +15 -13
  249. package/dist/plugin/worker/html/html-worker.development.js.map +1 -1
  250. package/dist/plugin/worker/html/html-worker.production.js +2 -12
  251. package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
  252. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  253. package/dist/plugin/worker/html/messageHandler.js +2 -2
  254. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  255. package/dist/plugin/worker/rsc/handleRender.d.ts +2 -1
  256. package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
  257. package/dist/plugin/worker/rsc/handleRender.js +8 -8
  258. package/dist/plugin/worker/rsc/handleRender.js.map +1 -1
  259. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  260. package/dist/plugin/worker/rsc/messageHandler.js +166 -107
  261. package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
  262. package/dist/plugin/worker/rsc/rsc-worker.development.js +112 -52
  263. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
  264. package/dist/plugin/worker/rsc/rsc-worker.production.js +1 -1
  265. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -1
  266. package/dist/plugin/worker/rsc/state.d.ts +5 -64
  267. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  268. package/dist/plugin/worker/rsc/state.js +5 -1
  269. package/dist/plugin/worker/rsc/state.js.map +1 -1
  270. package/dist/plugin/worker/sendMessage.d.ts +2 -0
  271. package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
  272. package/dist/plugin/worker/sendMessage.js +2 -1
  273. package/dist/plugin/worker/sendMessage.js.map +1 -1
  274. package/dist/plugin/worker/types.d.ts +52 -53
  275. package/dist/plugin/worker/types.d.ts.map +1 -1
  276. package/dist/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +10 -8
  278. package/plugin/components/css-collector-elements.tsx +30 -9
  279. package/plugin/components/css-collector.tsx +13 -22
  280. package/plugin/components/html.tsx +12 -5
  281. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +31 -13
  282. package/plugin/config/defaults.tsx +72 -16
  283. package/plugin/config/resolveAutoDiscoverMatcher.ts +23 -0
  284. package/plugin/config/resolveEnv.ts +20 -12
  285. package/plugin/config/resolveOptions.ts +152 -155
  286. package/plugin/config/resolveUserConfig.ts +20 -5
  287. package/plugin/error/toError.ts +35 -1
  288. package/plugin/helpers/cleanObject.ts +79 -15
  289. package/plugin/helpers/collectViteModuleGraphCss.ts +4 -3
  290. package/plugin/helpers/createCssProps.tsx +26 -9
  291. package/plugin/helpers/createHandler.ts +7 -4
  292. package/plugin/helpers/createRscStream.tsx +20 -14
  293. package/plugin/helpers/index.ts +2 -2
  294. package/plugin/helpers/inputNormalizer.ts +4 -2
  295. package/plugin/helpers/moduleResolver.ts +36 -0
  296. package/plugin/helpers/requestInfo.ts +117 -23
  297. package/plugin/helpers/resolvePage.ts +2 -3
  298. package/plugin/helpers/resolvePageAndProps.ts +7 -6
  299. package/plugin/helpers/serializeUserOptions.ts +20 -2
  300. package/plugin/helpers/sourceMap.ts +182 -0
  301. package/plugin/loader/createBuildLoader.ts +124 -104
  302. package/plugin/loader/createDefaultLoader.ts +62 -0
  303. package/plugin/loader/css-loader.development.ts +3 -2
  304. package/plugin/loader/handleExports.ts +276 -0
  305. package/plugin/loader/index.ts +6 -1
  306. package/plugin/loader/parse.ts +22 -0
  307. package/plugin/loader/react-loader.client.ts +1 -0
  308. package/plugin/loader/react-loader.server.ts +107 -0
  309. package/plugin/loader/react-loader.ts +4 -1002
  310. package/plugin/loader/sourceMap.ts +118 -0
  311. package/plugin/loader/transformModuleIfNeeded.ts +33 -0
  312. package/plugin/loader/transformModuleWithPreservedFunctions.ts +119 -0
  313. package/plugin/loader/types.ts +10 -0
  314. package/plugin/plugin.client.ts +18 -11
  315. package/plugin/plugin.server.ts +6 -3
  316. package/plugin/preserver/plugin.ts +37 -17
  317. package/plugin/react-client/{server.ts → configureWorkerRequestHandler.ts} +22 -12
  318. package/plugin/react-client/createMessageHandlers.ts +21 -13
  319. package/plugin/react-client/createWorkerStream.ts +71 -33
  320. package/plugin/react-client/handleWorkerRscStream.ts +15 -5
  321. package/plugin/react-client/plugin.ts +18 -13
  322. package/plugin/react-client/restartWorker.ts +17 -5
  323. package/plugin/react-server/{server.ts → configureReactServer.ts} +40 -9
  324. package/plugin/react-server/handleServerAction.ts +177 -0
  325. package/plugin/react-server/plugin.ts +8 -3
  326. package/plugin/react-static/collectHtmlWorkerContent.ts +11 -3
  327. package/plugin/react-static/collectRscContent.ts +17 -9
  328. package/plugin/react-static/configurePreviewServer.ts +37 -17
  329. package/plugin/react-static/plugin.ts +45 -22
  330. package/plugin/react-static/renderPage.ts +12 -6
  331. package/plugin/react-static/renderPages.ts +15 -4
  332. package/plugin/react-static/renderStreams.ts +13 -12
  333. package/plugin/source-map/createMappingsSerializer.ts +182 -0
  334. package/plugin/source-map/readMappings.ts +195 -0
  335. package/plugin/transformer/README.md +295 -29
  336. package/plugin/transformer/index.ts +0 -1
  337. package/plugin/transformer/plugin.client.ts +0 -111
  338. package/plugin/transformer/plugin.server.ts +94 -25
  339. package/plugin/types/react-server-dom-esm.d.ts +183 -24
  340. package/plugin/types/sourceMap.d.ts +2 -0
  341. package/plugin/types/webpack-sources.d.ts +24 -0
  342. package/plugin/types.ts +169 -132
  343. package/plugin/utils/createCallServer.ts +21 -6
  344. package/plugin/utils/index.ts +2 -1
  345. package/plugin/vendor/vendor.client.ts +2 -1
  346. package/plugin/vendor/vendor.server.ts +1 -1
  347. package/plugin/worker/createWorker.ts +21 -24
  348. package/plugin/worker/html/createHtmlWorkerRenderState.tsx +31 -7
  349. package/plugin/worker/html/html-worker.development.tsx +16 -16
  350. package/plugin/worker/html/html-worker.production.tsx +3 -19
  351. package/plugin/worker/html/messageHandler.tsx +2 -4
  352. package/plugin/worker/rsc/handleRender.ts +15 -12
  353. package/plugin/worker/rsc/messageHandler.tsx +191 -120
  354. package/plugin/worker/rsc/rsc-worker.development.ts +148 -77
  355. package/plugin/worker/rsc/rsc-worker.production.ts +1 -1
  356. package/plugin/worker/rsc/state.ts +10 -0
  357. package/plugin/worker/sendMessage.ts +32 -14
  358. package/plugin/worker/types.ts +99 -64
  359. package/dist/plugin/react-client/server.d.ts.map +0 -1
  360. package/dist/plugin/react-client/server.js.map +0 -1
  361. package/dist/plugin/react-server/server.d.ts +0 -9
  362. package/dist/plugin/react-server/server.d.ts.map +0 -1
  363. package/dist/plugin/react-server/server.js.map +0 -1
  364. package/dist/plugin/transformer/plugin.client.js.map +0 -1
  365. package/dist/plugin/transformer/upgradeCssModuleCode.d.ts +0 -2
  366. package/dist/plugin/transformer/upgradeCssModuleCode.d.ts.map +0 -1
  367. package/dist/plugin/transformer/upgradeCssModuleCode.js +0 -40
  368. package/dist/plugin/worker/loader.d.ts +0 -5
  369. package/dist/plugin/worker/loader.d.ts.map +0 -1
  370. package/dist/plugin/worker/loader.js +0 -11
  371. package/dist/plugin/worker/loader.js.map +0 -1
  372. package/plugin/transformer/upgradeCssModuleCode.ts +0 -42
  373. package/plugin/worker/loader.ts +0 -7
@@ -0,0 +1,182 @@
1
+ import { basename } from "path";
2
+ import type { SourceMap } from "../types/sourceMap.js";
3
+
4
+ // VLQ encoding helpers
5
+ const VLQ_SHIFT = 5;
6
+ const VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;
7
+ const VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;
8
+ const BASE64_CHARS =
9
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
10
+
11
+ export function encodeVLQ(numbers: number[]): string {
12
+ return numbers
13
+ .map((num) => {
14
+ // Convert to VLQ
15
+ const vlq = num < 0 ? (-num << 1) | 1 : num << 1;
16
+
17
+ let result = "";
18
+ let value = vlq;
19
+
20
+ do {
21
+ let digit = value & VLQ_VALUE_MASK;
22
+ value >>>= VLQ_SHIFT;
23
+ if (value > 0) {
24
+ digit |= VLQ_CONTINUATION_BIT;
25
+ }
26
+ result += BASE64_CHARS[digit];
27
+ } while (value > 0);
28
+
29
+ return result;
30
+ })
31
+ .join("");
32
+ }
33
+
34
+ export function decodeVLQ(str: string): number[] {
35
+ const numbers: number[] = [];
36
+ let value = 0;
37
+ let shift = 0;
38
+ let index = 0;
39
+
40
+ while (index < str.length && !/[,;]/.test(str[index])) {
41
+ const digit = BASE64_CHARS.indexOf(str[index]);
42
+ if (digit === -1) break;
43
+
44
+ value += (digit & VLQ_VALUE_MASK) << shift;
45
+
46
+ if ((digit & VLQ_CONTINUATION_BIT) === 0) {
47
+ const negate = value & 1;
48
+ value >>>= 1;
49
+ numbers.push(negate ? -value : value);
50
+ value = shift = 0;
51
+ } else {
52
+ shift += VLQ_SHIFT;
53
+ }
54
+
55
+ index++;
56
+ }
57
+
58
+ return numbers;
59
+ }
60
+
61
+ export function readMappings(
62
+ mappings: string,
63
+ callback: (
64
+ generatedLine: number,
65
+ generatedColumn: number,
66
+ sourceIndex: number,
67
+ originalLine: number,
68
+ originalColumn: number,
69
+ nameIndex: number
70
+ ) => void
71
+ ) {
72
+ let line = 1;
73
+ let column = 0;
74
+ let sourceIndex = 0;
75
+ let originalLine = 1;
76
+ let originalColumn = 0;
77
+ let nameIndex = 0;
78
+
79
+ const segments = mappings.split(";");
80
+ for (let i = 0; i < segments.length; i++) {
81
+ const segment = segments[i];
82
+ if (segment === "") {
83
+ line++;
84
+ column = 0;
85
+ continue;
86
+ }
87
+
88
+ const parts = segment.split(",");
89
+ for (let j = 0; j < parts.length; j++) {
90
+ const part = parts[j];
91
+ if (part === "") continue;
92
+
93
+ const numbers = decodeVLQ(part);
94
+ column += numbers[0];
95
+ if (numbers.length > 1) {
96
+ sourceIndex += numbers[1];
97
+ originalLine += numbers[2];
98
+ originalColumn += numbers[3];
99
+ if (numbers.length > 4) {
100
+ nameIndex += numbers[4];
101
+ }
102
+ }
103
+
104
+ callback(
105
+ line,
106
+ column,
107
+ sourceIndex,
108
+ originalLine,
109
+ originalColumn,
110
+ nameIndex
111
+ );
112
+ }
113
+ }
114
+ }
115
+
116
+ export function createMappingsSerializer() {
117
+ let previousGeneratedLine = 1;
118
+ let previousGeneratedColumn = 0;
119
+ let previousOriginalFile = 0;
120
+ let previousOriginalLine = 0;
121
+ let previousOriginalColumn = 0;
122
+ let previousNameIndex = 0;
123
+
124
+ return function (
125
+ generatedLine: number,
126
+ generatedColumn: number,
127
+ originalFile: number,
128
+ originalLine: number,
129
+ originalColumn: number,
130
+ nameIndex: number
131
+ ): string {
132
+ // Reset column when moving to a new line
133
+ if (generatedLine > previousGeneratedLine) {
134
+ previousGeneratedColumn = 0;
135
+ let lines = "";
136
+ for (let i = previousGeneratedLine; i < generatedLine; i++) {
137
+ lines += ";";
138
+ }
139
+ previousGeneratedLine = generatedLine;
140
+ if (lines) return lines;
141
+ }
142
+
143
+ // Calculate deltas
144
+ const segment = [
145
+ generatedColumn - previousGeneratedColumn,
146
+ originalFile - previousOriginalFile,
147
+ originalLine - previousOriginalLine,
148
+ originalColumn - previousOriginalColumn,
149
+ ];
150
+
151
+ if (nameIndex >= 0) {
152
+ segment.push(nameIndex - previousNameIndex);
153
+ }
154
+
155
+ // Update previous values
156
+ previousGeneratedColumn = generatedColumn;
157
+ previousOriginalFile = originalFile;
158
+ previousOriginalLine = originalLine;
159
+ previousOriginalColumn = originalColumn;
160
+ previousNameIndex = nameIndex;
161
+
162
+ return encodeVLQ(segment) + ",";
163
+ };
164
+ }
165
+
166
+ export function createSourceMap(originalSource: string): SourceMap {
167
+ return {
168
+ version: 3,
169
+ file: basename(originalSource),
170
+ sources: [originalSource],
171
+ sourcesContent: [originalSource],
172
+ names: [],
173
+ mappings: "AAAA;", // Simple line mapping
174
+ sourceRoot: "",
175
+ };
176
+ }
177
+
178
+ export function updateSourceMap(sourceMap: SourceMap, originalSource: string) {
179
+ // Update the source map with the transformed source
180
+ sourceMap.sourcesContent = [originalSource];
181
+ sourceMap.mappings = "AAAA;"; // Simple line mapping
182
+ }
@@ -1,14 +1,22 @@
1
1
  import { join } from "node:path";
2
- import type { ResolvedUserConfig, ResolvedUserOptions } from "../../server.js";
2
+ import type {
3
+ InlineCssOpt,
4
+ PagePropOpt,
5
+ ResolvedUserConfig,
6
+ ResolvedUserOptions,
7
+ } from "../../server.js";
3
8
  import type { Manifest } from "vite";
4
9
  import { getModuleRef } from "../helpers/moduleRefs.js";
5
- import { readFile } from "node:fs/promises";
6
10
  import type { OutputBundle } from "rollup";
7
11
  import { temporaryReferences } from "./temporaryReferences.js";
12
+ import { toError } from "../error/toError.js";
8
13
 
9
- export interface BuildLoaderOptions {
14
+ export interface BuildLoaderOptions<
15
+ T extends PagePropOpt = PagePropOpt,
16
+ InlineCSS extends InlineCssOpt = InlineCssOpt
17
+ > {
10
18
  userConfig: ResolvedUserConfig;
11
- userOptions: ResolvedUserOptions;
19
+ userOptions: ResolvedUserOptions<T, InlineCSS>;
12
20
  serverManifest: Manifest;
13
21
  clientManifest: Manifest;
14
22
  staticManifest: Manifest;
@@ -18,42 +26,33 @@ export interface BuildLoaderOptions {
18
26
  * Creates a loader function for handling module resolution during build.
19
27
  *
20
28
  * The loader handles the following strategy:
21
- * - Just load any file from any manifest we can find in the order of client, server, static
22
- * - Ideally the buildLoader is only used form loading pages, props and inline css modules
23
- * -
24
- *
25
- * During build:
26
- * - We use the manifest information to get module exports
27
- * - The manifest contains the transformed modules with their exports
28
- * - We store the module in temporaryReferences for later use
29
- *
30
- * @param options.root - The project root directory
31
- * @param options.pluginContext - The Rollup plugin context
32
- * @param options.userConfig - Resolved user configuration
33
- * @param options.userOptions - Resolved user options
34
- * @param options.serverManifest - Vite server manifest
35
- * @param options.clientManifest - Vite client manifest
36
- * @param options.options - Additional options including temporaryReferences
37
- *
38
- * @returns A loader function that resolves module paths to their exports
29
+ * - For client components: Use client manifest and client.browser.js
30
+ * - For server components: Use server manifest and server.js
31
+ * - For static assets: Use static manifest
39
32
  */
40
- export async function createBuildLoader(
33
+ export async function createBuildLoader<
34
+ T extends PagePropOpt = PagePropOpt,
35
+ InlineCSS extends InlineCssOpt = InlineCssOpt
36
+ >(
41
37
  {
42
38
  userOptions,
43
39
  serverManifest,
44
40
  clientManifest,
45
41
  staticManifest,
46
- }: BuildLoaderOptions,
42
+ }: BuildLoaderOptions<T, InlineCSS>,
47
43
  bundle: OutputBundle
48
44
  ) {
49
45
  const manifestKeys = Object.keys(serverManifest);
50
46
  if (!manifestKeys.length) {
51
47
  throw new Error("Server manifest is empty");
52
48
  }
49
+
53
50
  return async function buildLoader(id: string) {
54
51
  const [withoutQuery, query] = id.split("?", 2);
55
- const [, normalizedValue] = userOptions.normalizer(withoutQuery);
52
+ const [normalizedKey, normalizedValue] =
53
+ userOptions.normalizer(withoutQuery);
56
54
  const moduleRef = getModuleRef(id);
55
+
57
56
  // Check if we have a temporary reference (cached module)
58
57
  if (temporaryReferences?.has(moduleRef)) {
59
58
  const mod = temporaryReferences.get(moduleRef);
@@ -67,107 +66,128 @@ export async function createBuildLoader(
67
66
  try {
68
67
  // For inline modules, handle them directly
69
68
  if (query === "inline") {
70
- // Then check server manifest
69
+ const startsWithMarker = normalizedKey.split("-")[0];
71
70
  const serverChunk =
72
71
  bundle[serverManifest[normalizedValue]?.file] ??
73
72
  bundle[staticManifest[normalizedValue]?.file] ??
74
73
  bundle[clientManifest[normalizedValue]?.file] ??
75
- bundle[withoutQuery];
74
+ bundle[withoutQuery] ??
75
+ bundle[normalizedValue] ??
76
+ Object.entries(bundle).find(
77
+ ([, value]) => value.name === normalizedValue
78
+ )?.[1] ??
79
+ Object.entries(bundle).find(([_key]) =>
80
+ _key.startsWith(startsWithMarker)
81
+ )?.[1];
82
+
76
83
  if (serverChunk) {
77
84
  if (serverChunk.type === "asset") {
85
+ // For CSS files, ensure we're in the React Server environment
86
+ if (userOptions.autoDiscover.jsonPattern(normalizedValue)) {
87
+ const jsonContent = serverChunk.source;
88
+ if (typeof jsonContent === "string") {
89
+ return { default: JSON.parse(jsonContent) };
90
+ }
91
+ } else if (userOptions.autoDiscover.cssPattern(normalizedValue)) {
92
+ const cssContent = serverChunk.source;
93
+ if (typeof cssContent === "string") {
94
+ return { default: cssContent };
95
+ }
96
+ }
78
97
  return { default: serverChunk.source };
79
98
  } else if ("code" in serverChunk) {
80
99
  return { default: serverChunk.code };
81
- } else {
82
- console.warn("Could not find inline module for: " + normalizedValue);
83
100
  }
84
101
  }
85
-
86
- // If not found in either manifest, try reading the file directly
87
- const module = {
88
- default: await readFile(
89
- join(
90
- userOptions.projectRoot,
91
- userOptions.build.outDir,
92
- userOptions.build.static,
93
- normalizedValue
94
- ),
95
- "utf-8"
96
- ),
97
- };
98
- temporaryReferences?.set(moduleRef, module);
99
- return module;
100
- }
101
- const clientEntry = clientManifest[normalizedValue];
102
- if (clientEntry) {
103
- const module = await import(
104
- join(
105
- userOptions.projectRoot,
106
- userOptions.build.outDir,
107
- userOptions.build.client,
108
- clientEntry.file
109
- )
110
- );
111
- console.warn(
112
- "client module used in buildLoader, consider making this available in the server manifest",
113
- module
114
- );
115
- temporaryReferences?.set(moduleRef, module);
116
- return module;
102
+ console.warn("Could not find inline module for: " + normalizedValue);
103
+ return null;
117
104
  }
118
- const bundleEntry = bundle[withoutQuery];
119
- if (bundleEntry) {
120
- // Load the module
121
- const module = await import(
122
- join(
123
- userOptions.projectRoot,
124
- userOptions.build.outDir,
125
- userOptions.build.server,
126
- bundleEntry.fileName
127
- )
128
- );
129
- temporaryReferences?.set(moduleRef, module);
105
+
106
+ // Determine if this is a client component
107
+ const isClientComponent =
108
+ userOptions.autoDiscover.clientComponents(normalizedValue);
109
+ const isServerAction =
110
+ userOptions.autoDiscover.serverFunctions(normalizedValue);
111
+ const isPage = userOptions.autoDiscover.pagePattern(normalizedValue);
112
+ const isProps = userOptions.autoDiscover.propsPattern(normalizedValue);
113
+
114
+ // For client components, use client manifest
115
+ if (isClientComponent) {
116
+ const clientEntry = clientManifest[normalizedValue];
117
+ if (clientEntry) {
118
+ try {
119
+ const module = await import(
120
+ join(
121
+ userOptions.projectRoot,
122
+ userOptions.build.outDir,
123
+ userOptions.build.client,
124
+ clientEntry.file
125
+ )
126
+ );
127
+ temporaryReferences?.set(moduleRef, module);
128
+ return module;
129
+ } catch (error) {
130
+ const err = toError(error);
131
+ console.warn("Error loading client module:", err);
132
+ temporaryReferences?.delete(moduleRef);
133
+ throw err;
134
+ }
135
+ }
130
136
  }
131
- // Try to resolve the module using Vite's resolution
132
- const serverEntry = serverManifest[normalizedValue];
133
- if (serverEntry) {
134
- // Load the module
135
- const module = await import(
136
- join(
137
- userOptions.projectRoot,
138
- userOptions.build.outDir,
139
- userOptions.build.server,
140
- serverEntry.file
141
- )
142
- );
143
- temporaryReferences?.set(moduleRef, module);
144
- return module;
137
+
138
+ // For server components and actions, use server manifest
139
+ if (isServerAction || isPage || isProps) {
140
+ const serverEntry = serverManifest[normalizedValue];
141
+ if (serverEntry) {
142
+ try {
143
+ const module = await import(
144
+ join(
145
+ userOptions.projectRoot,
146
+ userOptions.build.outDir,
147
+ userOptions.build.server,
148
+ serverEntry.file
149
+ )
150
+ );
151
+ temporaryReferences?.set(moduleRef, module);
152
+ return module;
153
+ } catch (error) {
154
+ const err = toError(error);
155
+ console.warn("Error loading server module:", err);
156
+ temporaryReferences?.delete(moduleRef);
157
+ throw err;
158
+ }
159
+ }
145
160
  }
146
- // try static manifest
161
+
162
+ // For static assets, use static manifest
147
163
  const staticEntry = staticManifest[normalizedValue];
148
164
  if (staticEntry) {
149
- const module = await import(
150
- join(
151
- userOptions.projectRoot,
152
- userOptions.build.outDir,
153
- userOptions.build.static,
154
- staticEntry.file
155
- )
156
- );
157
- console.warn(
158
- "static module used in buildLoader, consider making this available in the server manifest",
159
- module
160
- );
161
- temporaryReferences?.set(moduleRef, module);
162
- return module;
165
+ try {
166
+ const module = await import(
167
+ join(
168
+ userOptions.projectRoot,
169
+ userOptions.build.outDir,
170
+ userOptions.build.static,
171
+ staticEntry.file
172
+ )
173
+ );
174
+ temporaryReferences?.set(moduleRef, module);
175
+ return module;
176
+ } catch (error) {
177
+ const err = toError(error);
178
+ console.warn("Error loading static module:", err);
179
+ temporaryReferences?.delete(moduleRef);
180
+ throw err;
181
+ }
163
182
  }
164
- throw new Error(`Module ${normalizedValue} not found`);
183
+
184
+ throw new Error(`Module ${normalizedValue} not found during build`);
165
185
  } catch (error) {
166
186
  const emptyExports = {
167
187
  error: error instanceof Error ? error : new Error(String(error)),
168
188
  id: id,
169
189
  };
170
- temporaryReferences?.set(moduleRef, emptyExports);
190
+ temporaryReferences?.delete(moduleRef);
171
191
  return emptyExports;
172
192
  }
173
193
  };
@@ -0,0 +1,62 @@
1
+ import { readFileSync } from "fs";
2
+ import * as esbuild from "esbuild";
3
+ import type { LoaderContext } from "../types.js";
4
+
5
+ export interface LoaderResult {
6
+ source: string;
7
+ map: any | null;
8
+ }
9
+
10
+ export interface Loader {
11
+ (id: string, context?: LoaderContext, nextLoad?: any): LoaderResult;
12
+ }
13
+
14
+ /**
15
+ * Creates a default loader function that either uses provided source or reads from file
16
+ */
17
+ export function createDefaultLoader(source?: string): Loader {
18
+ if (typeof source === "string") {
19
+ return function load(id: string): LoaderResult {
20
+ // Use esbuild to transform the code
21
+ const result = esbuild.transformSync(source, {
22
+ loader: "tsx",
23
+ format: "esm",
24
+ target: "esnext",
25
+ sourcemap: true,
26
+ sourcefile: id,
27
+ });
28
+ return {
29
+ source: result.code,
30
+ map: result.map ? JSON.parse(result.map) : null,
31
+ };
32
+ };
33
+ }
34
+ return function load(
35
+ id: string,
36
+ context?: LoaderContext,
37
+ nextLoad?: any
38
+ ): LoaderResult {
39
+ if (!nextLoad) {
40
+ nextLoad = (id: string) => {
41
+ const source = readFileSync(id, "utf-8");
42
+ // Use esbuild to transform the code
43
+ const result = esbuild.transformSync(source, {
44
+ loader: "tsx",
45
+ format: "esm",
46
+ target: "esnext",
47
+ sourcemap: true,
48
+ sourcefile: id,
49
+ });
50
+ return {
51
+ source: result.code,
52
+ map: result.map ? JSON.parse(result.map) : null,
53
+ };
54
+ };
55
+ }
56
+ const result = nextLoad(id, context);
57
+ return {
58
+ ...result,
59
+ map: "map" in result ? result.map : null,
60
+ };
61
+ };
62
+ }
@@ -7,6 +7,7 @@ import type { ResolvedConfig } from "vite";
7
7
  import { readFile } from "node:fs/promises";
8
8
  import { join } from "node:path";
9
9
  import { env } from "../utils/env.js";
10
+ import type { InitializedCssLoaderMessage } from "../worker/types.js";
10
11
 
11
12
  /**
12
13
  * Global port for communication between the main thread and the CSS loader.
@@ -31,10 +32,10 @@ let resolvedConfig: ResolvedConfig | undefined;
31
32
  * @param data - Configuration data for the CSS loader
32
33
  * @param data.port - The message port for communication
33
34
  */
34
- export async function initialize(data: { port: MessagePort, resolvedConfig: SerializedUserConfig }) {
35
+ export async function initialize(data: { id: string, port: MessagePort, resolvedConfig: SerializedUserConfig }) {
35
36
  loaderPort = data.port;
36
37
  resolvedConfig = data.resolvedConfig;
37
- data.port.postMessage({ type: "INITIALIZED_CSS_LOADER" });
38
+ data.port.postMessage({ type: "INITIALIZED_CSS_LOADER", id: data.id } satisfies InitializedCssLoaderMessage);
38
39
  }
39
40
 
40
41
  /**