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
@@ -11,6 +11,7 @@ import { pluginRoot } from '../root.js';
11
11
  import * as React from 'react';
12
12
  import { DEFAULT_CONFIG } from '../config/defaults.js';
13
13
  import { createLogger } from 'vite';
14
+ import { toError } from '../error/toError.js';
14
15
 
15
16
  async function createWorker(options) {
16
17
  const {
@@ -31,20 +32,18 @@ async function createWorker(options) {
31
32
  logger = createLogger(),
32
33
  verbose = false
33
34
  } = options;
35
+ const id = reverseCondition === "react-server" ? "worker/rsc" : "worker/html";
34
36
  let workerPathWithDefault = typeof workerPath === "string" ? workerPath : undefined;
35
37
  if (!workerPathWithDefault) {
36
- if (currentCondition === "react-server") {
37
- workerPathWithDefault = join(pluginRoot, `worker/rsc`);
38
- } else {
39
- workerPathWithDefault = join(pluginRoot, `worker/html`);
40
- }
38
+ workerPathWithDefault = join(pluginRoot, id);
41
39
  }
42
40
  if (!workerPathWithDefault.startsWith("/")) {
43
41
  workerPathWithDefault = join("./", workerPathWithDefault);
44
42
  }
45
43
  const workerData = {
46
44
  ...options.workerData,
47
- reactVersion: React.version
45
+ reactVersion: React.version,
46
+ id
48
47
  };
49
48
  try {
50
49
  const isTestEnv = process.env["VITEST"] || process.env["NODE_ENV"] === "test";
@@ -87,24 +86,23 @@ async function createWorker(options) {
87
86
  workerPath: workerPathWithDefault
88
87
  });
89
88
  } else {
90
- const error = new Error(`Worker exited with code ${code}`);
91
- logger.error(`worker exited with code ${code}`, { error });
92
- reject({
93
- type: "error",
94
- error,
89
+ const error = `[create:${id}] exited with code ${code}`;
90
+ resolve({
91
+ type: "skip",
92
+ reason: error,
95
93
  workerPath: workerPathWithDefault
96
94
  });
97
95
  }
98
96
  };
99
97
  const messageHandler = (msg) => {
100
- if (verbose) logger.info(`Initial worker message ${msg.type}`);
98
+ if (verbose) logger.info(`[create:${id}] Initial worker message ${msg.type}`);
101
99
  if (msg.type === "READY") {
102
- if (verbose) logger.info(`Worker running for ${msg.env}`);
100
+ if (verbose) logger.info(`[create:${id}] Worker running for ${msg.env}`);
103
101
  clearTimeout(timeout);
104
102
  worker.removeListener("message", messageHandler);
105
103
  worker.removeListener("exit", exitHandler);
106
104
  if (msg.env !== nodeEnv) {
107
- if (verbose) logger.info(`Worker environment mismatch.`);
105
+ if (verbose) logger.info(`[create:${id}] Worker environment mismatch.`);
108
106
  reject({
109
107
  type: "error",
110
108
  error: new Error(
@@ -125,14 +123,11 @@ async function createWorker(options) {
125
123
  }
126
124
  );
127
125
  } catch (error) {
128
- if (error instanceof Error) {
129
- return {
130
- type: "error",
131
- workerPath: workerPathWithDefault,
132
- error
133
- };
134
- }
135
- return error;
126
+ return {
127
+ type: "error",
128
+ error: toError(error),
129
+ workerPath: workerPathWithDefault
130
+ };
136
131
  }
137
132
  }
138
133
 
@@ -1 +1 @@
1
- {"version":3,"file":"createWorker.js","sources":["../../../plugin/worker/createWorker.ts"],"sourcesContent":["import {\n Worker,\n type ResourceLimits,\n type TransferListItem,\n} from \"node:worker_threads\";\nimport { getMode, getNodePath } from \"../config/getPaths.js\";\nimport { getCondition } from \"../config/getCondition.js\";\nimport { join } from \"node:path\";\nimport { pluginRoot } from \"../root.js\";\nimport * as React from \"react\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { createLogger, type Logger } from \"vite\";\nimport type { HtmlWorkerOutputMessage } from \"./types.js\";\nimport type { RscWorkerOutputMessage } from \"./types.js\";\n\nexport type CreateWorkerOptions = {\n projectRoot?: string;\n currentCondition?: \"react-server\" | \"react-client\";\n nodePath?: string;\n nodeOptions?: string[];\n envPrefix?: string;\n mode?: \"production\" | \"development\";\n reverseCondition?: string;\n maxListeners?: number;\n workerPath?: string;\n resourceLimits?: ResourceLimits;\n typescript?: boolean;\n htmlChunkSize?: number; // Size of HTML chunks in bytes\n workerData?: any;\n transferList?: TransferListItem[];\n logger?: Logger;\n verbose?: boolean;\n};\n\ntype CreateWorkerSuccess = {\n type: \"success\";\n workerPath: string;\n worker: Worker;\n};\n\ntype CreateWorkerError = {\n type: \"error\";\n workerPath: string;\n error: Error;\n};\n\ntype CreateWorkerSkip = {\n type: \"skip\";\n reason: string;\n workerPath: string;\n};\n\nexport async function createWorker(\n options: CreateWorkerOptions\n): Promise<CreateWorkerSuccess | CreateWorkerError | CreateWorkerSkip> {\n const {\n projectRoot = process.cwd(),\n nodePath = getNodePath(projectRoot),\n currentCondition = getCondition(),\n envPrefix = DEFAULT_CONFIG.ENV_PREFIX,\n reverseCondition = currentCondition === \"react-server\"\n ? \"react-client\"\n : \"react-server\",\n maxListeners = 100,\n mode = getMode(),\n workerPath,\n resourceLimits = {\n maxOldGenerationSizeMb: 128,\n maxYoungGenerationSizeMb: 64,\n },\n htmlChunkSize = 8 * 1024,\n transferList = [],\n logger = createLogger(),\n verbose = false,\n } = options;\n let workerPathWithDefault =\n typeof workerPath === \"string\" ? workerPath : undefined;\n if (!workerPathWithDefault) {\n if (currentCondition === \"react-server\") {\n workerPathWithDefault = join(pluginRoot, `worker/rsc`);\n } else {\n workerPathWithDefault = join(pluginRoot, `worker/html`);\n }\n }\n if (!workerPathWithDefault.startsWith(\"/\")) {\n workerPathWithDefault = join(\"./\", workerPathWithDefault);\n }\n // Ensure worker uses the same React version\n const workerData = {\n ...options.workerData,\n reactVersion: React.version,\n };\n\n try {\n // Ensure consistent NODE_ENV between main thread and worker\n const isTestEnv =\n process.env[\"VITEST\"] || process.env[\"NODE_ENV\"] === \"test\";\n const nodeEnv = isTestEnv ? \"test\" : mode;\n\n const env = {\n [envPrefix + \"DEV\"]: mode === \"development\" ? \"1\" : \"0\",\n [envPrefix + \"MODE\"]: mode,\n [envPrefix + \"PROD\"]: mode === \"production\" ? \"1\" : \"0\",\n [envPrefix + \"SSR\"]: \"true\",\n [envPrefix + \"BASE_URL\"]: options.workerData.userOptions.moduleBaseURL,\n [envPrefix + \"PUBLIC_ORIGIN\"]:\n options.workerData.userOptions.publicOrigin,\n NODE_ENV: nodeEnv,\n NODE_PATH: nodePath,\n NODE_OPTIONS: process.env[\"NODE_OPTIONS\"]?.includes(reverseCondition)\n ? process.env[\"NODE_OPTIONS\"]\n : process.env[\"NODE_OPTIONS\"]?.includes(currentCondition)\n ? process.env[\"NODE_OPTIONS\"]?.replace(\n currentCondition,\n reverseCondition\n )\n : `${\n process.env[\"NODE_OPTIONS\"] ?? \"\"\n } --conditions ${reverseCondition}`,\n HTML_CHUNK_SIZE: htmlChunkSize.toString(),\n };\n\n // Create worker with proper environment and loaders\n const worker = new Worker(workerPathWithDefault, {\n env,\n resourceLimits,\n workerData,\n transferList,\n });\n\n worker.setMaxListeners(maxListeners);\n\n // Wait for worker to be ready\n return await new Promise<CreateWorkerSuccess | CreateWorkerSkip>(\n (resolve, reject) => {\n const timeout = setTimeout(() => {\n reject({ type: \"error\", error: new Error(\"Worker ready timeout\") });\n }, 5000);\n const exitHandler = (code: number) => {\n clearTimeout(timeout);\n worker.removeListener(\"message\", messageHandler);\n worker.removeListener(\"exit\", exitHandler);\n if (code === 0) {\n resolve({\n type: \"skip\",\n reason: \"Worker exited with code 0\",\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerSkip);\n } else {\n const error = new Error(`Worker exited with code ${code}`);\n logger.error(`worker exited with code ${code}`, { error });\n reject({\n type: \"error\",\n error,\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerError);\n }\n };\n const messageHandler = (msg: HtmlWorkerOutputMessage | RscWorkerOutputMessage) => {\n if (verbose) logger.info(`Initial worker message ${msg.type}`);\n if (msg.type === \"READY\") {\n if (verbose) logger.info(`Worker running for ${msg.env}`);\n clearTimeout(timeout);\n worker.removeListener(\"message\", messageHandler);\n worker.removeListener(\"exit\", exitHandler);\n if (msg.env !== nodeEnv) {\n if (verbose) logger.info(`Worker environment mismatch.`);\n reject({\n type: \"error\",\n error: new Error(\n `Worker environment mismatch: ${msg.env} !== ${nodeEnv}`\n ),\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerError);\n }\n resolve({\n type: \"success\",\n worker,\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerSuccess);\n }\n }\n worker.once(\"message\", messageHandler);\n worker.once(\"exit\", exitHandler);\n }\n );\n } catch (error) {\n if (error instanceof Error) {\n return {\n type: \"error\",\n workerPath: workerPathWithDefault,\n error: error,\n } satisfies CreateWorkerError;\n }\n return error as CreateWorkerError;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createWorker.js","sources":["../../../plugin/worker/createWorker.ts"],"sourcesContent":["import {\n Worker,\n type ResourceLimits,\n type TransferListItem,\n} from \"node:worker_threads\";\nimport { getMode, getNodePath } from \"../config/getPaths.js\";\nimport { getCondition } from \"../config/getCondition.js\";\nimport { join } from \"node:path\";\nimport { pluginRoot } from \"../root.js\";\nimport * as React from \"react\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport { createLogger, type Logger } from \"vite\";\nimport type { HtmlWorkerOutputMessage } from \"./types.js\";\nimport type { RscWorkerOutputMessage } from \"./types.js\";\nimport { toError } from \"../error/toError.js\";\n\nexport type CreateWorkerOptions = {\n projectRoot?: string;\n currentCondition?: \"react-server\" | \"react-client\";\n nodePath?: string;\n nodeOptions?: string[];\n envPrefix?: string;\n mode?: \"production\" | \"development\";\n reverseCondition?: string;\n maxListeners?: number;\n workerPath?: string;\n resourceLimits?: ResourceLimits;\n typescript?: boolean;\n htmlChunkSize?: number; // Size of HTML chunks in bytes\n workerData?: any;\n transferList?: TransferListItem[];\n logger?: Logger;\n verbose?: boolean;\n};\n\ntype CreateWorkerSuccess = {\n type: \"success\";\n workerPath: string;\n worker: Worker;\n};\n\ntype CreateWorkerError = {\n type: \"error\";\n workerPath: string;\n error: Error;\n};\n\ntype CreateWorkerSkip = {\n type: \"skip\";\n reason: string;\n workerPath: string;\n};\n\nexport async function createWorker(\n options: CreateWorkerOptions\n): Promise<CreateWorkerSuccess | CreateWorkerError | CreateWorkerSkip> {\n const {\n projectRoot = process.cwd(),\n nodePath = getNodePath(projectRoot),\n currentCondition = getCondition(),\n envPrefix = DEFAULT_CONFIG.ENV_PREFIX,\n reverseCondition = currentCondition === \"react-server\"\n ? \"react-client\"\n : \"react-server\",\n maxListeners = 100,\n mode = getMode(),\n workerPath,\n resourceLimits = {\n maxOldGenerationSizeMb: 128,\n maxYoungGenerationSizeMb: 64,\n },\n htmlChunkSize = 8 * 1024,\n transferList = [],\n logger = createLogger(),\n verbose = false,\n } = options;\n const id = reverseCondition === \"react-server\" ? \"worker/rsc\" : \"worker/html\";\n let workerPathWithDefault =\n typeof workerPath === \"string\" ? workerPath : undefined;\n if (!workerPathWithDefault) {\n workerPathWithDefault = join(pluginRoot, id);\n }\n if (!workerPathWithDefault.startsWith(\"/\")) {\n workerPathWithDefault = join(\"./\", workerPathWithDefault);\n }\n // Ensure worker uses the same React version\n const workerData = {\n ...options.workerData,\n reactVersion: React.version,\n id: id,\n };\n\n try {\n // Ensure consistent NODE_ENV between main thread and worker\n const isTestEnv =\n process.env[\"VITEST\"] || process.env[\"NODE_ENV\"] === \"test\";\n const nodeEnv = isTestEnv ? \"test\" : mode;\n\n const env = {\n [envPrefix + \"DEV\"]: mode === \"development\" ? \"1\" : \"0\",\n [envPrefix + \"MODE\"]: mode,\n [envPrefix + \"PROD\"]: mode === \"production\" ? \"1\" : \"0\",\n [envPrefix + \"SSR\"]: \"true\",\n [envPrefix + \"BASE_URL\"]: options.workerData.userOptions.moduleBaseURL,\n [envPrefix + \"PUBLIC_ORIGIN\"]:\n options.workerData.userOptions.publicOrigin,\n NODE_ENV: nodeEnv,\n NODE_PATH: nodePath,\n NODE_OPTIONS: process.env[\"NODE_OPTIONS\"]?.includes(reverseCondition)\n ? process.env[\"NODE_OPTIONS\"]\n : process.env[\"NODE_OPTIONS\"]?.includes(currentCondition)\n ? process.env[\"NODE_OPTIONS\"]?.replace(\n currentCondition,\n reverseCondition\n )\n : `${\n process.env[\"NODE_OPTIONS\"] ?? \"\"\n } --conditions ${reverseCondition}`,\n HTML_CHUNK_SIZE: htmlChunkSize.toString(),\n };\n\n // Create worker with proper environment and loaders\n const worker = new Worker(workerPathWithDefault, {\n env,\n resourceLimits,\n workerData,\n transferList,\n });\n\n worker.setMaxListeners(maxListeners);\n\n // Wait for worker to be ready\n return await new Promise<CreateWorkerSuccess | CreateWorkerSkip>(\n (resolve, reject) => {\n const timeout = setTimeout(() => {\n reject({ type: \"error\", error: new Error(\"Worker ready timeout\") });\n }, 5000);\n const exitHandler = (code: number) => {\n clearTimeout(timeout);\n worker.removeListener(\"message\", messageHandler);\n worker.removeListener(\"exit\", exitHandler);\n if (code === 0) {\n resolve({\n type: \"skip\",\n reason: \"Worker exited with code 0\",\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerSkip);\n } else {\n const error = `[create:${id}] exited with code ${code}`;\n resolve({\n type: \"skip\",\n reason: error,\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerSkip);\n }\n };\n const messageHandler = (\n msg: HtmlWorkerOutputMessage | RscWorkerOutputMessage\n ) => {\n if (verbose) logger.info(`[create:${id}] Initial worker message ${msg.type}`);\n if (msg.type === \"READY\") {\n if (verbose) logger.info(`[create:${id}] Worker running for ${msg.env}`);\n clearTimeout(timeout);\n worker.removeListener(\"message\", messageHandler);\n worker.removeListener(\"exit\", exitHandler);\n if (msg.env !== nodeEnv) {\n if (verbose) logger.info(`[create:${id}] Worker environment mismatch.`);\n reject({\n type: \"error\",\n error: new Error(\n `Worker environment mismatch: ${msg.env} !== ${nodeEnv}`\n ),\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerError);\n }\n resolve({\n type: \"success\",\n worker,\n workerPath: workerPathWithDefault,\n } satisfies CreateWorkerSuccess);\n }\n };\n worker.once(\"message\", messageHandler);\n worker.once(\"exit\", exitHandler);\n }\n );\n } catch (error) {\n return {\n type: \"error\",\n error: toError(error),\n workerPath: workerPathWithDefault,\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createHtmlWorkerRenderState.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/html/createHtmlWorkerRenderState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAmB,0CAA0C,EAAE,MAAM,aAAa,CAAC;AAI/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiB3D,wBAAgB,2BAA2B,CACzC,EACE,WAAgD,EAChD,cAAsD,EACtD,aAAoD,EACpD,qBAAoE,EACpE,EAAkB,GACnB,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,0CAA0C,CAAC;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,EACD,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,IAAI,EACnD,SAAS,cAAoB,GAC5B,qBAAqB,CA0EvB"}
1
+ {"version":3,"file":"createHtmlWorkerRenderState.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/html/createHtmlWorkerRenderState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,aAAa,CAAC;AAG9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAkB3D,wBAAgB,2BAA2B,CACzC,EACE,WAAgD,EAChD,cAAsD,EACtD,aAAoD,EACpD,qBAAoE,EACpE,EAAkB,GACnB,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,0CAA0C,CAAC;IACnE,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,EACD,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,KAAK,IAAI,EACnD,SAAS,cAAoB,GAC5B,qBAAqB,CAkGvB"}
@@ -4,12 +4,11 @@
4
4
  * MIT License
5
5
  */
6
6
  import { PassThrough } from 'stream';
7
- import { workerData } from 'node:worker_threads';
7
+ import { workerData, parentPort } from 'node:worker_threads';
8
8
  import 'react';
9
- import { createFromNodeStream } from 'react-server-dom-esm/client.node';
10
9
  import { Transform } from 'node:stream';
11
10
  import { join } from 'node:path';
12
- import { ReactDOMServer } from '../../vendor/vendor.client.js';
11
+ import { ReactDOMClient, ReactDOMServer } from '../../vendor/vendor.client.js';
13
12
 
14
13
  const createMetrics = () => {
15
14
  return {
@@ -37,7 +36,29 @@ function createHtmlWorkerRenderState({
37
36
  if (!moduleRootPath.endsWith("/")) {
38
37
  moduleRootPath = moduleRootPath + "/";
39
38
  }
40
- const elements = createFromNodeStream(rscStream, moduleRootPath, moduleBaseURL);
39
+ const elements = ReactDOMClient.createFromNodeStream(rscStream, moduleRootPath, moduleBaseURL, {
40
+ callServer: async (id2, args) => {
41
+ sendMessage({
42
+ type: "SERVER_ACTION",
43
+ id: id2,
44
+ args
45
+ });
46
+ console.log("[html-worker] callServer", id2, args);
47
+ return new Promise((resolve, reject) => {
48
+ const handler = (msg) => {
49
+ if (msg.type === "SERVER_ACTION_RESPONSE" && msg.id === id2) {
50
+ parentPort?.removeListener("message", handler);
51
+ if (msg.error) {
52
+ reject(new Error(msg.error));
53
+ } else {
54
+ resolve(msg.result);
55
+ }
56
+ }
57
+ };
58
+ parentPort?.on("message", handler);
59
+ });
60
+ }
61
+ });
41
62
  const metrics = createMetrics();
42
63
  const htmlTransform = new Transform({
43
64
  transform(chunk, encoding, callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"createHtmlWorkerRenderState.js","sources":["../../../../plugin/worker/html/createHtmlWorkerRenderState.tsx"],"sourcesContent":["import type { HtmlWorkerRenderState } from \"./types.js\";\nimport { PassThrough } from \"stream\";\nimport { workerData } from \"node:worker_threads\";\nimport type { AllReadyMessage, SerializeableRenderToPipeableStreamOptions } from \"../types.js\";\nimport { type ErrorInfo } from \"react\";\nimport { createFromNodeStream } from \"react-server-dom-esm/client.node\";\nimport { Transform } from \"node:stream\";\nimport type { HtmlWorkerOutputMessage } from \"../types.js\";\nimport { join } from \"node:path\";\nimport type { StreamMetrics } from \"../../types.js\";\nimport { ReactDOMServer } from \"../../vendor/vendor.client.js\";\n\n\nconst createMetrics = (): StreamMetrics => {\n return {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: 0,\n duration: 0,\n startTime: 0,\n };\n};\nexport function createHtmlWorkerRenderState(\n {\n projectRoot = workerData.userOptions.projectRoot,\n moduleRootPath = workerData.userOptions.moduleRootPath,\n moduleBaseURL = workerData.userOptions.moduleBaseURL,\n pipeableStreamOptions = workerData.userOptions.pipeableStreamOptions,\n id = workerData.id,\n }: {\n projectRoot?: string;\n moduleRootPath?: string;\n moduleBaseURL?: string;\n pipeableStreamOptions?: SerializeableRenderToPipeableStreamOptions;\n id?: string;\n },\n sendMessage: (msg: HtmlWorkerOutputMessage) => void,\n rscStream = new PassThrough()\n): HtmlWorkerRenderState {\n if (typeof moduleRootPath !== \"string\") {\n throw new Error(\"moduleRootPath is required\");\n } else if (!moduleRootPath.startsWith(projectRoot)) {\n moduleRootPath = join(projectRoot, moduleRootPath);\n }\n if(!moduleRootPath.endsWith('/')) {\n moduleRootPath = moduleRootPath + '/';\n }\n const elements = createFromNodeStream(rscStream, moduleRootPath, moduleBaseURL);\n const metrics = createMetrics();\n const htmlTransform = new Transform({\n transform(chunk, encoding, callback) {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n\n // Send HTML chunks\n sendMessage({\n type: \"HTML_CHUNK\",\n id: id,\n chunk: chunk,\n encoding,\n } satisfies HtmlWorkerOutputMessage);\n callback();\n },\n flush(callback) {\n sendMessage({\n type: \"HTML_COMPLETE\",\n id,\n success: true,\n metrics: metrics,\n });\n callback();\n },\n })\n const stream = ReactDOMServer.renderToPipeableStream(elements, {\n ...pipeableStreamOptions,\n onAllReady: () => {\n rscStream.end();\n sendMessage({\n type: \"ALL_READY\",\n id,\n } satisfies AllReadyMessage);\n },\n onError: (error: unknown, errorInfo: ErrorInfo) => {\n sendMessage({\n type: \"ERROR\",\n id,\n error: error instanceof Error ? error : new Error(String(error)),\n errorInfo: errorInfo,\n });\n },\n onShellReady: () => {\n sendMessage({\n type: \"SHELL_READY\",\n id,\n });\n },\n onShellError: (error: unknown) => {\n sendMessage({\n type: \"SHELL_ERROR\",\n id,\n error: error instanceof Error ? error : new Error(String(error)),\n });\n },\n });\n stream.pipe(htmlTransform);\n return {\n rscStream: rscStream,\n metrics,\n isReady: false,\n htmlTransform: htmlTransform,\n stream: stream,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createHtmlWorkerRenderState.js","sources":["../../../../plugin/worker/html/createHtmlWorkerRenderState.tsx"],"sourcesContent":["import type { HtmlWorkerRenderState } from \"./types.js\";\nimport { PassThrough } from \"stream\";\nimport { workerData, parentPort } from \"node:worker_threads\";\nimport type { SerializeableRenderToPipeableStreamOptions } from \"../types.js\";\nimport { type ErrorInfo } from \"react\";\nimport { Transform } from \"node:stream\";\nimport type { HtmlWorkerOutputMessage } from \"../types.js\";\nimport { join } from \"node:path\";\nimport type { StreamMetrics } from \"../../types.js\";\nimport { ReactDOMServer, ReactDOMClient } from \"../../vendor/vendor.client.js\";\n\ntype CallServerCallback = (id: string, args: unknown[]) => Promise<unknown>;\n\nconst createMetrics = (): StreamMetrics => {\n return {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: 0,\n duration: 0,\n startTime: 0,\n };\n};\nexport function createHtmlWorkerRenderState(\n {\n projectRoot = workerData.userOptions.projectRoot,\n moduleRootPath = workerData.userOptions.moduleRootPath,\n moduleBaseURL = workerData.userOptions.moduleBaseURL,\n pipeableStreamOptions = workerData.userOptions.pipeableStreamOptions,\n id = workerData.id,\n }: {\n projectRoot?: string;\n moduleRootPath?: string;\n moduleBaseURL?: string;\n pipeableStreamOptions?: SerializeableRenderToPipeableStreamOptions;\n id?: string;\n },\n sendMessage: (msg: HtmlWorkerOutputMessage) => void,\n rscStream = new PassThrough()\n): HtmlWorkerRenderState {\n if (typeof moduleRootPath !== \"string\") {\n throw new Error(\"moduleRootPath is required\");\n } else if (!moduleRootPath.startsWith(projectRoot)) {\n moduleRootPath = join(projectRoot, moduleRootPath);\n }\n if(!moduleRootPath.endsWith('/')) {\n moduleRootPath = moduleRootPath + '/';\n }\n const elements = ReactDOMClient.createFromNodeStream(rscStream, moduleRootPath, moduleBaseURL, {\n callServer: (async (id: string, args: unknown[]) => {\n // Forward server action calls back to the main thread\n sendMessage({\n type: \"SERVER_ACTION\",\n id,\n args\n } as HtmlWorkerOutputMessage);\n console.log('[html-worker] callServer', id, args);\n // Wait for response\n return new Promise((resolve, reject) => {\n const handler = (msg: any) => {\n if (msg.type === \"SERVER_ACTION_RESPONSE\" && msg.id === id) {\n parentPort?.removeListener(\"message\", handler);\n if (msg.error) {\n reject(new Error(msg.error));\n } else {\n resolve(msg.result);\n }\n }\n };\n parentPort?.on(\"message\", handler);\n });\n }) as CallServerCallback\n });\n const metrics = createMetrics();\n const htmlTransform = new Transform({\n transform(chunk, encoding, callback) {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n\n // Send HTML chunks\n sendMessage({\n type: \"HTML_CHUNK\",\n id: id,\n chunk: chunk,\n encoding,\n } satisfies HtmlWorkerOutputMessage);\n callback();\n },\n flush(callback) {\n sendMessage({\n type: \"HTML_COMPLETE\",\n id,\n success: true,\n metrics: metrics,\n } satisfies HtmlWorkerOutputMessage);\n callback();\n },\n })\n const stream = ReactDOMServer.renderToPipeableStream(elements, {\n ...pipeableStreamOptions,\n onAllReady: () => {\n rscStream.end();\n sendMessage({\n type: \"ALL_READY\",\n id,\n } satisfies HtmlWorkerOutputMessage);\n },\n onError: (error: unknown, errorInfo: ErrorInfo) => {\n sendMessage({\n type: \"ERROR\",\n id,\n error: error instanceof Error ? error : new Error(String(error)),\n errorInfo: errorInfo,\n });\n },\n onShellReady: () => {\n sendMessage({\n type: \"SHELL_READY\",\n id,\n });\n },\n onShellError: (error: unknown) => {\n sendMessage({\n type: \"SHELL_ERROR\",\n id,\n error: error instanceof Error ? error : new Error(String(error)),\n });\n },\n });\n stream.pipe(htmlTransform);\n return {\n rscStream: rscStream,\n metrics,\n isReady: false,\n htmlTransform: htmlTransform,\n stream: stream,\n };\n}\n"],"names":["id"],"mappings":"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"}
@@ -3,23 +3,25 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { join } from 'node:path';
7
6
  import { messageHandler } from './messageHandler.js';
8
- import { MessageChannel, parentPort } from 'node:worker_threads';
9
- import { pluginRoot } from '../../root.js';
10
- import { register } from 'node:module';
7
+ import { workerData, parentPort } from 'node:worker_threads';
11
8
 
12
- const cssLoaderChannel = new MessageChannel();
13
- cssLoaderChannel.port2.on("message", messageHandler);
14
- const cssLoaderPath = "file://" + join(pluginRoot, "loader/css-loader.development.js");
15
- register(cssLoaderPath, {
16
- parentURL: pluginRoot,
17
- data: { port: cssLoaderChannel.port1 },
18
- transferList: [cssLoaderChannel.port1]
19
- });
20
- parentPort?.on("message", messageHandler);
9
+ const verbose = workerData.verbose;
10
+ function developmentMessageHandler(msg) {
11
+ if (verbose) {
12
+ if ("chunk" in msg) {
13
+ let preview = Buffer.from(msg.chunk).toString("utf-8");
14
+ console.log(`[html-worker:${msg.type}] ${preview}`);
15
+ } else {
16
+ console.log(`[html-worker:${msg.type}] ${JSON.stringify(msg)}`);
17
+ }
18
+ }
19
+ messageHandler(msg);
20
+ }
21
+ parentPort?.on("message", developmentMessageHandler);
21
22
  parentPort?.postMessage({
22
23
  type: "READY",
24
+ id: "html-worker",
23
25
  env: process.env["NODE_ENV"],
24
26
  pid: process.pid
25
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"html-worker.development.js","sources":["../../../../plugin/worker/html/html-worker.development.tsx"],"sourcesContent":["import { join } from \"node:path\";\nimport { messageHandler } from \"./messageHandler.js\";\nimport { MessageChannel, parentPort } from \"node:worker_threads\";\nimport { pluginRoot } from \"../../root.js\";\nimport { register } from \"node:module\";\nimport type { ReadyMessage } from \"../types.js\";\n\n// Create channels for each loader\nconst cssLoaderChannel = new MessageChannel();\ncssLoaderChannel.port2.on(\"message\", messageHandler);\n\nconst cssLoaderPath = \"file://\" + join(pluginRoot, \"loader/css-loader.development.js\");\nregister(cssLoaderPath, {\n parentURL: pluginRoot,\n data: { port: cssLoaderChannel.port1 },\n transferList: [cssLoaderChannel.port1],\n});\n\n\n// Signal ready with environment\nparentPort?.on(\"message\", messageHandler);\nparentPort?.postMessage({\n type: \"READY\",\n env: process.env[\"NODE_ENV\"],\n pid: process.pid,\n} satisfies ReadyMessage);"],"names":[],"mappings":";;;;;;;;;;;AAQA,MAAM,gBAAA,GAAmB,IAAI,cAAe,EAAA;AAC5C,gBAAiB,CAAA,KAAA,CAAM,EAAG,CAAA,SAAA,EAAW,cAAc,CAAA;AAEnD,MAAM,aAAgB,GAAA,SAAA,GAAY,IAAK,CAAA,UAAA,EAAY,kCAAkC,CAAA;AACrF,QAAA,CAAS,aAAe,EAAA;AAAA,EACtB,SAAW,EAAA,UAAA;AAAA,EACX,IAAM,EAAA,EAAE,IAAM,EAAA,gBAAA,CAAiB,KAAM,EAAA;AAAA,EACrC,YAAA,EAAc,CAAC,gBAAA,CAAiB,KAAK;AACvC,CAAC,CAAA;AAID,UAAY,EAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AACxC,UAAA,EAAY,WAAY,CAAA;AAAA,EACtB,IAAM,EAAA,OAAA;AAAA,EACN,GAAA,EAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA;AAAA,EAC3B,KAAK,OAAQ,CAAA;AACf,CAAwB,CAAA"}
1
+ {"version":3,"file":"html-worker.development.js","sources":["../../../../plugin/worker/html/html-worker.development.tsx"],"sourcesContent":["import { messageHandler } from \"./messageHandler.js\";\nimport { parentPort, workerData } from \"node:worker_threads\";\nimport type { ReadyMessage } from \"../types.js\";\n\nconst verbose = workerData.verbose;\n\nfunction developmentMessageHandler(msg: any) {\n if (verbose) {\n if (\"chunk\" in msg) {\n let preview = Buffer.from(msg.chunk).toString(\"utf-8\");\n console.log(`[html-worker:${msg.type}] ${preview}`);\n } else {\n console.log(`[html-worker:${msg.type}] ${JSON.stringify(msg)}`);\n }\n }\n messageHandler(msg);\n}\n\n// Signal ready with environment\nparentPort?.on(\"message\", developmentMessageHandler);\nparentPort?.postMessage({\n type: \"READY\",\n id: \"html-worker\",\n env: process.env[\"NODE_ENV\"],\n pid: process.pid,\n} satisfies ReadyMessage);\n"],"names":[],"mappings":";;;;;;;;AAIA,MAAM,UAAU,UAAW,CAAA,OAAA;AAE3B,SAAS,0BAA0B,GAAU,EAAA;AAC3C,EAAA,IAAI,OAAS,EAAA;AACX,IAAA,IAAI,WAAW,GAAK,EAAA;AAClB,MAAA,IAAI,UAAU,MAAO,CAAA,IAAA,CAAK,IAAI,KAAK,CAAA,CAAE,SAAS,OAAO,CAAA;AACrD,MAAA,OAAA,CAAQ,IAAI,CAAgB,aAAA,EAAA,GAAA,CAAI,IAAI,CAAA,EAAA,EAAK,OAAO,CAAE,CAAA,CAAA;AAAA,KAC7C,MAAA;AACL,MAAQ,OAAA,CAAA,GAAA,CAAI,gBAAgB,GAAI,CAAA,IAAI,KAAK,IAAK,CAAA,SAAA,CAAU,GAAG,CAAC,CAAE,CAAA,CAAA;AAAA;AAChE;AAEF,EAAA,cAAA,CAAe,GAAG,CAAA;AACpB;AAGA,UAAY,EAAA,EAAA,CAAG,WAAW,yBAAyB,CAAA;AACnD,UAAA,EAAY,WAAY,CAAA;AAAA,EACtB,IAAM,EAAA,OAAA;AAAA,EACN,EAAI,EAAA,aAAA;AAAA,EACJ,GAAA,EAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA;AAAA,EAC3B,KAAK,OAAQ,CAAA;AACf,CAAwB,CAAA"}
@@ -3,23 +3,13 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { join } from 'node:path';
7
6
  import { messageHandler } from './messageHandler.js';
8
- import { MessageChannel, parentPort } from 'node:worker_threads';
9
- import { pluginRoot } from '../../root.js';
10
- import { register } from 'node:module';
7
+ import { parentPort } from 'node:worker_threads';
11
8
 
12
- const cssLoaderChannel = new MessageChannel();
13
- cssLoaderChannel.port2.on("message", messageHandler);
14
- const cssLoaderPath = "file://" + join(pluginRoot, "loader/css-loader.production.js");
15
- register(cssLoaderPath, {
16
- parentURL: pluginRoot,
17
- data: { port: cssLoaderChannel.port1 },
18
- transferList: [cssLoaderChannel.port1]
19
- });
20
9
  parentPort?.on("message", messageHandler);
21
10
  parentPort?.postMessage({
22
11
  type: "READY",
12
+ id: "html-worker",
23
13
  env: process.env["NODE_ENV"],
24
14
  pid: process.pid
25
15
  });
@@ -1 +1 @@
1
- {"version":3,"file":"html-worker.production.js","sources":["../../../../plugin/worker/html/html-worker.production.tsx"],"sourcesContent":["import { join } from \"node:path\";\nimport { messageHandler } from \"./messageHandler.js\";\nimport { MessageChannel, parentPort } from \"node:worker_threads\";\nimport { pluginRoot } from \"../../root.js\";\nimport { register } from \"node:module\";\nimport type { ReadyMessage } from \"../types.js\";\n\n// Create channels for each loader\nconst cssLoaderChannel = new MessageChannel();\n\ncssLoaderChannel.port2.on(\"message\", messageHandler);\n\nconst cssLoaderPath = \"file://\" + join(pluginRoot, \"loader/css-loader.production.js\");\n\nregister(cssLoaderPath, {\n parentURL: pluginRoot,\n data: { port: cssLoaderChannel.port1 },\n transferList: [cssLoaderChannel.port1],\n});\n\n\n// Signal ready with environment\nparentPort?.on(\"message\", messageHandler);\nparentPort?.postMessage({\n type: \"READY\",\n env: process.env[\"NODE_ENV\"],\n pid: process.pid,\n} satisfies ReadyMessage);"],"names":[],"mappings":";;;;;;;;;;;AAQA,MAAM,gBAAA,GAAmB,IAAI,cAAe,EAAA;AAE5C,gBAAiB,CAAA,KAAA,CAAM,EAAG,CAAA,SAAA,EAAW,cAAc,CAAA;AAEnD,MAAM,aAAgB,GAAA,SAAA,GAAY,IAAK,CAAA,UAAA,EAAY,iCAAiC,CAAA;AAEpF,QAAA,CAAS,aAAe,EAAA;AAAA,EACtB,SAAW,EAAA,UAAA;AAAA,EACX,IAAM,EAAA,EAAE,IAAM,EAAA,gBAAA,CAAiB,KAAM,EAAA;AAAA,EACrC,YAAA,EAAc,CAAC,gBAAA,CAAiB,KAAK;AACvC,CAAC,CAAA;AAID,UAAY,EAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AACxC,UAAA,EAAY,WAAY,CAAA;AAAA,EACtB,IAAM,EAAA,OAAA;AAAA,EACN,GAAA,EAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA;AAAA,EAC3B,KAAK,OAAQ,CAAA;AACf,CAAwB,CAAA"}
1
+ {"version":3,"file":"html-worker.production.js","sources":["../../../../plugin/worker/html/html-worker.production.tsx"],"sourcesContent":["import { messageHandler } from \"./messageHandler.js\";\nimport { parentPort } from \"node:worker_threads\";\nimport type { ReadyMessage } from \"../types.js\";\n\n// Signal ready with environment\nparentPort?.on(\"message\", messageHandler);\nparentPort?.postMessage({\n type: \"READY\",\n id: \"html-worker\",\n env: process.env[\"NODE_ENV\"],\n pid: process.pid,\n} satisfies ReadyMessage);\n"],"names":[],"mappings":";;;;;;;;AAKA,UAAY,EAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AACxC,UAAA,EAAY,WAAY,CAAA;AAAA,EACtB,IAAM,EAAA,OAAA;AAAA,EACN,EAAI,EAAA,aAAA;AAAA,EACJ,GAAA,EAAK,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA;AAAA,EAC3B,KAAK,OAAQ,CAAA;AACf,CAAwB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/html/messageHandler.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AAwCrB,wBAAsB,cAAc,CAAC,GAAG,EAAE,sBAAsB,iBAiF/D"}
1
+ {"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/html/messageHandler.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EAEvB,MAAM,aAAa,CAAC;AAsCrB,wBAAsB,cAAc,CAAC,GAAG,EAAE,sBAAsB,iBAiF/D"}
@@ -4,8 +4,8 @@
4
4
  * MIT License
5
5
  */
6
6
  import { parentPort } from 'node:worker_threads';
7
- import 'react-dom/server.node';
8
7
  import { createHtmlWorkerRenderState } from './createHtmlWorkerRenderState.js';
8
+ import { toError } from '../../error/toError.js';
9
9
 
10
10
  const activeRenders = /* @__PURE__ */ new Map();
11
11
  function sendMessage(msg) {
@@ -106,7 +106,7 @@ async function messageHandler(msg) {
106
106
  sendMessage({
107
107
  type: "ERROR",
108
108
  id,
109
- error: error instanceof Error ? error : new Error(String(error))
109
+ error: toError(error)
110
110
  });
111
111
  }
112
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messageHandler.js","sources":["../../../../plugin/worker/html/messageHandler.tsx"],"sourcesContent":["import { parentPort } from \"node:worker_threads\";\nimport type {\n HtmlWorkerInputMessage,\n HtmlWorkerOutputMessage,\n} from \"../types.js\";\n// @ts-ignore\nimport * as ReactDOMServer from \"react-dom/server.node\";\nimport type { HtmlWorkerRenderState } from \"./types.js\";\nimport { createHtmlWorkerRenderState } from \"./createHtmlWorkerRenderState.js\";\n\n// Track active renders\nconst activeRenders = new Map<string, HtmlWorkerRenderState>();\n\nfunction sendMessage(msg: HtmlWorkerOutputMessage) {\n // Send the original message\n if (\"error\" in msg && msg.error instanceof Error) {\n parentPort?.postMessage({\n ...msg,\n error: {\n message: msg.error.message,\n stack: msg.error.stack,\n name: msg.error.name,\n cause: msg.error.cause,\n },\n });\n } else {\n parentPort?.postMessage(msg);\n }\n}\n\nfunction cleanup(id: string) {\n const renderState = activeRenders.get(id);\n if (renderState) {\n renderState.rscStream.destroy();\n renderState.htmlTransform?.destroy();\n activeRenders.delete(id);\n\n sendMessage({\n type: \"CLEANUP_COMPLETE\",\n id,\n });\n }\n}\n\nexport async function messageHandler(msg: HtmlWorkerInputMessage) {\n const { type, id } = msg;\n try {\n switch (type) {\n case \"ROUTE_READY\": {\n let renderState = activeRenders.get(id);\n if (!renderState) {\n renderState = createHtmlWorkerRenderState(msg, sendMessage);\n \n activeRenders.set(id, renderState);\n } else {\n throw new Error(\"Render state already exists\");\n }\n break;\n }\n case \"RSC_CHUNK\": {\n let renderState = activeRenders.get(id);\n if (!renderState) {\n throw new Error(`No render state found for id: ${id}`);\n }\n\n try {\n // Write RSC chunk to the RSC stream\n renderState.rscStream.write(msg.chunk);\n sendMessage({\n type: \"CHUNK_PROCESSED\",\n id,\n success: true,\n });\n } catch (error: any) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: `Error writing chunk: ${error.message}`,\n });\n cleanup(id);\n }\n break;\n }\n case \"RSC_END\": {\n const renderState = activeRenders.get(id);\n if (!renderState) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: \"No render state found\",\n });\n return;\n }\n\n // Pipe the rendered content to the HTML stream\n break;\n }\n case \"CLEANUP\": {\n cleanup(id);\n break;\n }\n case \"SHUTDOWN\": {\n // If id is \"*\", clean up all render states\n if (id === \"*\") {\n for (const [renderId] of activeRenders) {\n cleanup(renderId);\n }\n } else {\n cleanup(id);\n }\n // Send SHUTDOWN_COMPLETE message to signal that shutdown is complete\n sendMessage({\n type: \"SHUTDOWN_COMPLETE\",\n id,\n });\n break;\n }\n }\n } catch (error) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: error instanceof Error ? error : new Error(String(error)),\n });\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAWA,MAAM,aAAA,uBAAoB,GAAmC,EAAA;AAE7D,SAAS,YAAY,GAA8B,EAAA;AAEjD,EAAA,IAAI,OAAW,IAAA,GAAA,IAAO,GAAI,CAAA,KAAA,YAAiB,KAAO,EAAA;AAChD,IAAA,UAAA,EAAY,WAAY,CAAA;AAAA,MACtB,GAAG,GAAA;AAAA,MACH,KAAO,EAAA;AAAA,QACL,OAAA,EAAS,IAAI,KAAM,CAAA,OAAA;AAAA,QACnB,KAAA,EAAO,IAAI,KAAM,CAAA,KAAA;AAAA,QACjB,IAAA,EAAM,IAAI,KAAM,CAAA,IAAA;AAAA,QAChB,KAAA,EAAO,IAAI,KAAM,CAAA;AAAA;AACnB,KACD,CAAA;AAAA,GACI,MAAA;AACL,IAAA,UAAA,EAAY,YAAY,GAAG,CAAA;AAAA;AAE/B;AAEA,SAAS,QAAQ,EAAY,EAAA;AAC3B,EAAM,MAAA,WAAA,GAAc,aAAc,CAAA,GAAA,CAAI,EAAE,CAAA;AACxC,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,WAAA,CAAY,UAAU,OAAQ,EAAA;AAC9B,IAAA,WAAA,CAAY,eAAe,OAAQ,EAAA;AACnC,IAAA,aAAA,CAAc,OAAO,EAAE,CAAA;AAEvB,IAAY,WAAA,CAAA;AAAA,MACV,IAAM,EAAA,kBAAA;AAAA,MACN;AAAA,KACD,CAAA;AAAA;AAEL;AAEA,eAAsB,eAAe,GAA6B,EAAA;AAChE,EAAM,MAAA,EAAE,IAAM,EAAA,EAAA,EAAO,GAAA,GAAA;AACrB,EAAI,IAAA;AACF,IAAA,QAAQ,IAAM;AAAA,MACZ,KAAK,aAAe,EAAA;AAClB,QAAI,IAAA,WAAA,GAAc,aAAc,CAAA,GAAA,CAAI,EAAE,CAAA;AACtC,QAAA,IAAI,CAAC,WAAa,EAAA;AAChB,UAAc,WAAA,GAAA,2BAAA,CAA4B,KAAK,WAAW,CAAA;AAE1D,UAAc,aAAA,CAAA,GAAA,CAAI,IAAI,WAAW,CAAA;AAAA,SAC5B,MAAA;AACL,UAAM,MAAA,IAAI,MAAM,6BAA6B,CAAA;AAAA;AAE/C,QAAA;AAAA;AACF,MACA,KAAK,WAAa,EAAA;AAChB,QAAI,IAAA,WAAA,GAAc,aAAc,CAAA,GAAA,CAAI,EAAE,CAAA;AACtC,QAAA,IAAI,CAAC,WAAa,EAAA;AAChB,UAAA,MAAM,IAAI,KAAA,CAAM,CAAiC,8BAAA,EAAA,EAAE,CAAE,CAAA,CAAA;AAAA;AAGvD,QAAI,IAAA;AAEF,UAAY,WAAA,CAAA,SAAA,CAAU,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA;AACrC,UAAY,WAAA,CAAA;AAAA,YACV,IAAM,EAAA,iBAAA;AAAA,YACN,EAAA;AAAA,YACA,OAAS,EAAA;AAAA,WACV,CAAA;AAAA,iBACM,KAAY,EAAA;AACnB,UAAY,WAAA,CAAA;AAAA,YACV,IAAM,EAAA,OAAA;AAAA,YACN,EAAA;AAAA,YACA,KAAA,EAAO,CAAwB,qBAAA,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,WAC7C,CAAA;AACD,UAAA,OAAA,CAAQ,EAAE,CAAA;AAAA;AAEZ,QAAA;AAAA;AACF,MACA,KAAK,SAAW,EAAA;AACd,QAAM,MAAA,WAAA,GAAc,aAAc,CAAA,GAAA,CAAI,EAAE,CAAA;AACxC,QAAA,IAAI,CAAC,WAAa,EAAA;AAChB,UAAY,WAAA,CAAA;AAAA,YACV,IAAM,EAAA,OAAA;AAAA,YACN,EAAA;AAAA,YACA,KAAO,EAAA;AAAA,WACR,CAAA;AACD,UAAA;AAAA;AAIF,QAAA;AAAA;AACF,MACA,KAAK,SAAW,EAAA;AACd,QAAA,OAAA,CAAQ,EAAE,CAAA;AACV,QAAA;AAAA;AACF,MACA,KAAK,UAAY,EAAA;AAEf,QAAA,IAAI,OAAO,GAAK,EAAA;AACd,UAAW,KAAA,MAAA,CAAC,QAAQ,CAAA,IAAK,aAAe,EAAA;AACtC,YAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA;AAClB,SACK,MAAA;AACL,UAAA,OAAA,CAAQ,EAAE,CAAA;AAAA;AAGZ,QAAY,WAAA,CAAA;AAAA,UACV,IAAM,EAAA,mBAAA;AAAA,UACN;AAAA,SACD,CAAA;AACD,QAAA;AAAA;AACF;AACF,WACO,KAAO,EAAA;AACd,IAAY,WAAA,CAAA;AAAA,MACV,IAAM,EAAA,OAAA;AAAA,MACN,EAAA;AAAA,MACA,KAAA,EAAO,iBAAiB,KAAQ,GAAA,KAAA,GAAQ,IAAI,KAAM,CAAA,MAAA,CAAO,KAAK,CAAC;AAAA,KAChE,CAAA;AAAA;AAEL;;;;"}
1
+ {"version":3,"file":"messageHandler.js","sources":["../../../../plugin/worker/html/messageHandler.tsx"],"sourcesContent":["import { parentPort } from \"node:worker_threads\";\nimport type {\n HtmlWorkerInputMessage,\n HtmlWorkerOutputMessage,\n} from \"../types.js\";\nimport type { HtmlWorkerRenderState } from \"./types.js\";\nimport { createHtmlWorkerRenderState } from \"./createHtmlWorkerRenderState.js\";\nimport { toError } from \"../../error/toError.js\";\n\n// Track active renders\nconst activeRenders = new Map<string, HtmlWorkerRenderState>();\n\nfunction sendMessage(msg: HtmlWorkerOutputMessage) {\n // Send the original message\n if (\"error\" in msg && msg.error instanceof Error) {\n parentPort?.postMessage({\n ...msg,\n error: {\n message: msg.error.message,\n stack: msg.error.stack,\n name: msg.error.name,\n cause: msg.error.cause,\n },\n });\n } else {\n parentPort?.postMessage(msg);\n }\n}\n\nfunction cleanup(id: string) {\n const renderState = activeRenders.get(id);\n if (renderState) {\n renderState.rscStream.destroy();\n renderState.htmlTransform?.destroy();\n activeRenders.delete(id);\n\n sendMessage({\n type: \"CLEANUP_COMPLETE\",\n id,\n });\n }\n}\nexport async function messageHandler(msg: HtmlWorkerInputMessage) {\n const { type, id } = msg;\n try {\n switch (type) {\n case \"ROUTE_READY\": {\n let renderState = activeRenders.get(id);\n if (!renderState) {\n renderState = createHtmlWorkerRenderState(msg, sendMessage);\n \n activeRenders.set(id, renderState);\n } else {\n throw new Error(\"Render state already exists\");\n }\n break;\n }\n case \"RSC_CHUNK\": {\n let renderState = activeRenders.get(id);\n if (!renderState) {\n throw new Error(`No render state found for id: ${id}`);\n }\n\n try {\n // Write RSC chunk to the RSC stream\n renderState.rscStream.write(msg.chunk);\n sendMessage({\n type: \"CHUNK_PROCESSED\",\n id,\n success: true,\n });\n } catch (error: any) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: `Error writing chunk: ${error.message}`,\n });\n cleanup(id);\n }\n break;\n }\n case \"RSC_END\": {\n const renderState = activeRenders.get(id);\n if (!renderState) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: \"No render state found\",\n });\n return;\n }\n\n // Pipe the rendered content to the HTML stream\n break;\n }\n case \"CLEANUP\": {\n cleanup(id);\n break;\n }\n case \"SHUTDOWN\": {\n // If id is \"*\", clean up all render states\n if (id === \"*\") {\n for (const [renderId] of activeRenders) {\n cleanup(renderId);\n }\n } else {\n cleanup(id);\n }\n // Send SHUTDOWN_COMPLETE message to signal that shutdown is complete\n sendMessage({\n type: \"SHUTDOWN_COMPLETE\",\n id,\n });\n break;\n }\n }\n } catch (error) {\n sendMessage({\n type: \"ERROR\",\n id,\n error: toError(error),\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { RscRenderMessage, StreamHandlers } from "../types.js";
2
- export declare function handleRender(msg: RscRenderMessage, handlers: StreamHandlers): Promise<void>;
2
+ import type { PagePropOpt } from "../../types.js";
3
+ export declare function handleRender<T extends PagePropOpt = PagePropOpt>(msg: RscRenderMessage<T>, handlers: StreamHandlers): Promise<void>;
3
4
  //# sourceMappingURL=handleRender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleRender.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/handleRender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWpE,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,cAAc,iBAyHzB"}
1
+ {"version":3,"file":"handleRender.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/handleRender.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAsB,YAAY,CAChC,CAAC,SAAS,WAAW,GAAG,WAAW,EAEnC,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,cAAc,iBAyHzB"}
@@ -51,12 +51,12 @@ async function handleRender(msg, handlers) {
51
51
  });
52
52
  if (pageAndPropsResult.type !== "success") {
53
53
  const { error, ...rest } = pageAndPropsResult;
54
- return handlers.onError(error, rest);
54
+ return handlers.onError(id, error, rest);
55
55
  }
56
56
  const { PageComponent, pageProps } = pageAndPropsResult;
57
57
  const adaptedOnEvent = (event, data) => {
58
58
  if (event === "error") {
59
- handlers.onError(data.error, data.errorInfo);
59
+ handlers.onError(id, data.error, data.errorInfo);
60
60
  }
61
61
  };
62
62
  if (messageCssFiles && messageCssFiles.size > 0) {
@@ -83,7 +83,7 @@ async function handleRender(msg, handlers) {
83
83
  pipeableStreamOptions
84
84
  });
85
85
  if (streamResult.type !== "success") {
86
- handlers.onError(streamResult.error);
86
+ handlers.onError(id, streamResult.error);
87
87
  return;
88
88
  }
89
89
  const { stream, metrics } = streamResult;
@@ -94,22 +94,22 @@ async function handleRender(msg, handlers) {
94
94
  metrics.chunks++;
95
95
  metrics.bytes += chunk.length;
96
96
  metrics.duration = performance.now() - metrics.startTime;
97
- handlers.onData(chunk);
97
+ handlers.onData(id, chunk);
98
98
  });
99
99
  passThrough.on("end", () => {
100
100
  metrics.duration = performance.now() - metrics.startTime;
101
- handlers.onEnd();
101
+ handlers.onEnd(id);
102
102
  if (activeStreams.has(id)) {
103
- handlers.onMetrics(metrics);
103
+ handlers.onMetrics(id, metrics);
104
104
  activeStreams.delete(id);
105
105
  }
106
106
  });
107
107
  passThrough.on("error", (error) => {
108
- handlers.onError(error, { reason: `${id} stream error` });
108
+ handlers.onError(id, error, { reason: `${id} stream error` });
109
109
  activeStreams.delete(id);
110
110
  });
111
111
  } catch (error) {
112
- handlers.onError(error, { reason: `${id} render error` });
112
+ handlers.onError(id, error, { reason: `${id} render error` });
113
113
  return Promise.reject(error);
114
114
  }
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleRender.js","sources":["../../../../plugin/worker/rsc/handleRender.ts"],"sourcesContent":["import { resolvePageAndProps } from \"../../helpers/resolvePageAndProps.js\";\nimport type { RscRenderMessage, StreamHandlers } from \"../types.js\";\nimport { activeStreams, cssFiles } from \"./state.js\";\nimport { createRscStream } from \"../../helpers/createRscStream.js\";\nimport { CssCollector } from \"../../components/css-collector.js\";\nimport { PassThrough } from \"node:stream\";\nimport { join } from \"node:path\";\nimport { workerData } from \"node:worker_threads\";\nimport { React } from \"../../vendor/vendor.server.js\";\nimport { hmrState } from \"./state.js\";\nimport { performance } from \"node:perf_hooks\";\n\nexport async function handleRender(\n msg: RscRenderMessage,\n handlers: StreamHandlers\n) {\n let {\n id = workerData.id,\n route = workerData.route,\n pagePath = workerData.pagePath,\n propsPath = workerData.propsPath,\n pageExportName = workerData.userOptions.pageExportName,\n propsExportName = workerData.userOptions.propsExportName,\n projectRoot = workerData.userOptions.projectRoot,\n moduleRootPath = workerData.userOptions.moduleRootPath,\n moduleBaseURL = workerData.userOptions.moduleBaseURL ?? \"/\",\n moduleBasePath = workerData.userOptions.moduleBasePath ?? \"/\",\n moduleBase = workerData.userOptions.moduleBase,\n pipeableStreamOptions = workerData.userOptions.pipeableStreamOptions,\n cssFiles: messageCssFiles,\n globalCss = workerData.globalCss,\n } = msg;\n try {\n // Load modules\n const pageAndPropsResult = await resolvePageAndProps({\n pagePath,\n propsPath,\n pageExportName,\n propsExportName,\n route,\n loader: (id: string) => {\n try {\n if (hmrState.get(id)?.invalidated) {\n // Clear the HMR state for this module\n hmrState.delete(id);\n // Force a reload by using a unique query parameter\n return import(join(projectRoot, id) + `?t=${Date.now()}`);\n }\n return import(join(projectRoot, id));\n } catch (error) {\n return Promise.reject(error);\n }\n },\n });\n if (pageAndPropsResult.type !== \"success\") {\n const { error, ...rest } = pageAndPropsResult;\n return handlers.onError(error, rest);\n }\n\n const { PageComponent, pageProps } = pageAndPropsResult;\n\n const adaptedOnEvent = (event: \"error\" | \"postpone\", data: any) => {\n if (event === \"error\") {\n handlers.onError(data.error, data.errorInfo);\n }\n };\n\n if (messageCssFiles && messageCssFiles.size > 0) {\n // if any css is added to the message, add it to the cssFiles map\n for (const [id, cssContent] of messageCssFiles.entries()) {\n cssFiles.set(id, cssContent);\n }\n }\n\n // Create stream\n const streamResult = createRscStream({\n projectRoot: projectRoot,\n Html: React.Fragment,\n PageComponent: PageComponent,\n CssCollector: CssCollector,\n pageProps,\n moduleBase,\n moduleRootPath,\n moduleBasePath,\n moduleBaseURL,\n manifest: {},\n route,\n // this is a stateful object, which at this point we assume contains all the css files\n cssFiles,\n globalCss,\n onEvent: adaptedOnEvent,\n pipeableStreamOptions: pipeableStreamOptions,\n });\n\n if (streamResult.type !== \"success\") {\n handlers.onError(streamResult.error);\n return;\n }\n\n const { stream, metrics } = streamResult;\n\n // Create pass-through stream\n const passThrough = new PassThrough();\n activeStreams.set(id, passThrough);\n\n // Pipe stream to pass-through\n stream.pipe(passThrough);\n\n // Handle data chunks\n passThrough.on(\"data\", (chunk) => {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n metrics.duration = performance.now() - metrics.startTime;\n handlers.onData(chunk);\n });\n\n // Handle stream end\n passThrough.on(\"end\", () => {\n metrics.duration = performance.now() - metrics.startTime;\n handlers.onEnd();\n if (activeStreams.has(id)) {\n handlers.onMetrics(metrics);\n activeStreams.delete(id);\n }\n });\n\n // Handle errors\n passThrough.on(\"error\", (error) => {\n handlers.onError(error as Error, { reason: `${id} stream error` });\n activeStreams.delete(id);\n });\n } catch (error) {\n handlers.onError(error as Error, { reason: `${id} render error` });\n return Promise.reject(error);\n }\n}\n"],"names":["id"],"mappings":"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"}
1
+ {"version":3,"file":"handleRender.js","sources":["../../../../plugin/worker/rsc/handleRender.ts"],"sourcesContent":["import { resolvePageAndProps } from \"../../helpers/resolvePageAndProps.js\";\nimport type { RscRenderMessage, StreamHandlers } from \"../types.js\";\nimport { activeStreams, cssFiles } from \"./state.js\";\nimport { createRscStream } from \"../../helpers/createRscStream.js\";\nimport { CssCollector } from \"../../components/css-collector.js\";\nimport { PassThrough } from \"node:stream\";\nimport { join } from \"node:path\";\nimport { workerData } from \"node:worker_threads\";\nimport { React } from \"../../vendor/vendor.server.js\";\nimport { hmrState } from \"./state.js\";\nimport { performance } from \"node:perf_hooks\";\nimport type { PagePropOpt } from \"../../types.js\";\n\nexport async function handleRender<\n T extends PagePropOpt = PagePropOpt\n>(\n msg: RscRenderMessage<T>,\n handlers: StreamHandlers\n) {\n let {\n id = workerData.id,\n route = workerData.route,\n pagePath = workerData.pagePath,\n propsPath = workerData.propsPath,\n pageExportName = workerData.userOptions.pageExportName,\n propsExportName = workerData.userOptions.propsExportName,\n projectRoot = workerData.userOptions.projectRoot,\n moduleRootPath = workerData.userOptions.moduleRootPath,\n moduleBaseURL = workerData.userOptions.moduleBaseURL ?? \"/\",\n moduleBasePath = workerData.userOptions.moduleBasePath ?? \"/\",\n moduleBase = workerData.userOptions.moduleBase,\n pipeableStreamOptions = workerData.userOptions.pipeableStreamOptions,\n cssFiles: messageCssFiles,\n globalCss = workerData.globalCss,\n } = msg;\n try {\n // Load modules\n const pageAndPropsResult = await resolvePageAndProps({\n pagePath,\n propsPath,\n pageExportName,\n propsExportName,\n route,\n loader: (id: string) => {\n try {\n if (hmrState.get(id)?.invalidated) {\n // Clear the HMR state for this module\n hmrState.delete(id);\n // Force a reload by using a unique query parameter\n return import(join(projectRoot, id) + `?t=${Date.now()}`);\n }\n return import(join(projectRoot, id));\n } catch (error) {\n return Promise.reject(error);\n }\n },\n });\n if (pageAndPropsResult.type !== \"success\") {\n const { error, ...rest } = pageAndPropsResult;\n return handlers.onError(id, error, rest);\n }\n\n const { PageComponent, pageProps } = pageAndPropsResult;\n\n const adaptedOnEvent = (event: \"error\" | \"postpone\", data: any) => {\n if (event === \"error\") {\n handlers.onError(id, data.error, data.errorInfo);\n }\n };\n\n if (messageCssFiles && messageCssFiles.size > 0) {\n // if any css is added to the message, add it to the cssFiles map\n for (const [id, cssContent] of messageCssFiles.entries()) {\n cssFiles.set(id, cssContent);\n }\n }\n\n // Create stream\n const streamResult = createRscStream({\n projectRoot: projectRoot,\n Html: React.Fragment,\n PageComponent,\n CssCollector,\n pageProps,\n moduleBase,\n moduleRootPath,\n moduleBasePath,\n moduleBaseURL,\n manifest: {},\n route,\n // this is a stateful object, which at this point we assume contains all the css files\n cssFiles,\n globalCss,\n onEvent: adaptedOnEvent,\n pipeableStreamOptions: pipeableStreamOptions,\n });\n\n if (streamResult.type !== \"success\") {\n handlers.onError(id, streamResult.error);\n return;\n }\n\n const { stream, metrics } = streamResult;\n\n // Create pass-through stream\n const passThrough = new PassThrough();\n activeStreams.set(id, passThrough);\n\n // Pipe stream to pass-through\n stream.pipe(passThrough);\n\n // Handle data chunks\n passThrough.on(\"data\", (chunk) => {\n metrics.chunks++;\n metrics.bytes += chunk.length;\n metrics.duration = performance.now() - metrics.startTime;\n handlers.onData(id, chunk);\n });\n\n // Handle stream end\n passThrough.on(\"end\", () => {\n metrics.duration = performance.now() - metrics.startTime;\n handlers.onEnd(id);\n if (activeStreams.has(id)) {\n handlers.onMetrics(id, metrics);\n activeStreams.delete(id);\n }\n });\n\n // Handle errors\n passThrough.on(\"error\", (error) => {\n handlers.onError(id, error as Error, { reason: `${id} stream error` });\n activeStreams.delete(id);\n });\n } catch (error) {\n handlers.onError(id, error as Error, { reason: `${id} render error` });\n return Promise.reject(error);\n }\n}\n"],"names":["id"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/messageHandler.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAGtB,MAAM,aAAa,CAAC;AAGrB,wBAAsB,cAAc,CAClC,GAAG,EAAE,qBAAqB,EAC1B,IAAI,8CAAa,iBA4HlB"}
1
+ {"version":3,"file":"messageHandler.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/messageHandler.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAwGrB,wBAAsB,cAAc,CAClC,GAAG,EAAE,qBAAqB,EAC1B,IAAI,8CAAa,iBA2FlB"}