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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1165) hide show
  1. package/README.md +211 -59
  2. package/dist/client.d.ts +4 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +4 -4
  5. package/dist/index.d.ts +3 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +7 -10
  8. package/dist/package.json +102 -27
  9. package/dist/plugin/bundle/bundles.d.ts +11 -0
  10. package/dist/plugin/bundle/bundles.d.ts.map +1 -0
  11. package/dist/plugin/bundle/bundles.js +11 -0
  12. package/dist/plugin/bundle/deferredStaticGeneration.d.ts +31 -0
  13. package/dist/plugin/bundle/deferredStaticGeneration.d.ts.map +1 -0
  14. package/dist/plugin/bundle/deferredStaticGeneration.js +44 -0
  15. package/dist/plugin/bundle/manifests.d.ts +20 -0
  16. package/dist/plugin/bundle/manifests.d.ts.map +1 -0
  17. package/dist/plugin/bundle/manifests.js +54 -0
  18. package/dist/plugin/components/css.d.ts +2 -5
  19. package/dist/plugin/components/css.d.ts.map +1 -1
  20. package/dist/plugin/components/css.js +7 -9
  21. package/dist/plugin/components/html.d.ts +2 -3
  22. package/dist/plugin/components/html.d.ts.map +1 -1
  23. package/dist/plugin/components/html.js +3 -3
  24. package/dist/plugin/components/index.d.ts +1 -1
  25. package/dist/plugin/components/index.d.ts.map +1 -1
  26. package/dist/plugin/components/root.d.ts.map +1 -1
  27. package/dist/plugin/components/root.js +4 -4
  28. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.d.ts.map +1 -1
  29. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js +6 -6
  30. package/dist/plugin/config/autoDiscover/pageAndPropFiles.d.ts.map +1 -1
  31. package/dist/plugin/config/autoDiscover/pageAndPropFiles.js +1 -1
  32. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +6 -5
  33. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  34. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +34 -51
  35. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts +5 -1
  36. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -1
  37. package/dist/plugin/config/autoDiscover/resolveBuildPages.js +124 -52
  38. package/dist/plugin/config/createHandlerOptions.client.d.ts +4 -0
  39. package/dist/plugin/config/createHandlerOptions.client.d.ts.map +1 -0
  40. package/dist/plugin/config/createHandlerOptions.client.js +293 -0
  41. package/dist/plugin/config/createHandlerOptions.d.ts +4 -0
  42. package/dist/plugin/config/createHandlerOptions.d.ts.map +1 -0
  43. package/dist/plugin/config/createHandlerOptions.js +13 -0
  44. package/dist/plugin/config/createHandlerOptions.server.d.ts +4 -0
  45. package/dist/plugin/config/createHandlerOptions.server.d.ts.map +1 -0
  46. package/dist/plugin/config/createHandlerOptions.server.js +344 -0
  47. package/dist/plugin/config/createHandlerOptions.types.d.ts +114 -0
  48. package/dist/plugin/config/createHandlerOptions.types.d.ts.map +1 -0
  49. package/dist/plugin/config/createModuleID.d.ts +1 -1
  50. package/dist/plugin/config/createModuleID.d.ts.map +1 -1
  51. package/dist/plugin/config/createModuleID.js +121 -8
  52. package/dist/plugin/config/defaults.d.ts +152 -17
  53. package/dist/plugin/config/defaults.d.ts.map +1 -1
  54. package/dist/plugin/config/defaults.js +69 -25
  55. package/dist/plugin/config/envPrefixFromConfig.d.ts +3 -0
  56. package/dist/plugin/config/envPrefixFromConfig.d.ts.map +1 -0
  57. package/dist/plugin/config/envPrefixFromConfig.js +8 -0
  58. package/dist/plugin/config/getCondition.d.ts +54 -3
  59. package/dist/plugin/config/getCondition.d.ts.map +1 -1
  60. package/dist/plugin/config/getCondition.js +158 -6
  61. package/dist/plugin/{getNodeEnv.d.ts → config/getNodeEnv.d.ts} +1 -1
  62. package/dist/plugin/config/getNodeEnv.d.ts.map +1 -0
  63. package/dist/plugin/config/getNodeEnv.js +17 -0
  64. package/dist/plugin/config/index.d.ts +43 -1
  65. package/dist/plugin/config/index.d.ts.map +1 -1
  66. package/dist/plugin/config/index.js +9 -4
  67. package/dist/plugin/config/resolveDirectiveMatcher.d.ts +6 -6
  68. package/dist/plugin/config/resolveDirectiveMatcher.d.ts.map +1 -1
  69. package/dist/plugin/config/resolveDirectiveMatcher.js +7 -23
  70. package/dist/plugin/config/resolveEnv.d.ts +1 -1
  71. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  72. package/dist/plugin/config/resolveEnv.js +32 -28
  73. package/dist/plugin/config/resolveOptions.d.ts +3 -2
  74. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  75. package/dist/plugin/config/resolveOptions.js +195 -61
  76. package/dist/plugin/config/resolvePages.d.ts +1 -1
  77. package/dist/plugin/config/resolvePages.d.ts.map +1 -1
  78. package/dist/plugin/config/resolvePages.js +1 -1
  79. package/dist/plugin/config/resolvePatternWithValues.d.ts.map +1 -1
  80. package/dist/plugin/config/resolvePatternWithValues.js +7 -26
  81. package/dist/plugin/config/resolveUrlOption.d.ts +1 -1
  82. package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -1
  83. package/dist/plugin/config/resolveUrlOption.js +2 -2
  84. package/dist/plugin/config/resolveUserConfig.d.ts +5 -3
  85. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  86. package/dist/plugin/config/resolveUserConfig.js +221 -70
  87. package/dist/plugin/config/stashedOptionsState.d.ts +66 -0
  88. package/dist/plugin/config/stashedOptionsState.d.ts.map +1 -0
  89. package/dist/plugin/config/stashedOptionsState.js +25 -0
  90. package/dist/plugin/dev-server/cleanupServerAction.client.d.ts +6 -0
  91. package/dist/plugin/dev-server/cleanupServerAction.client.d.ts.map +1 -0
  92. package/dist/plugin/dev-server/cleanupServerAction.client.js +28 -0
  93. package/dist/plugin/dev-server/cleanupServerAction.d.ts +2 -0
  94. package/dist/plugin/dev-server/cleanupServerAction.d.ts.map +1 -0
  95. package/dist/plugin/dev-server/cleanupServerAction.js +4 -0
  96. package/dist/plugin/dev-server/cleanupServerAction.server.d.ts +8 -0
  97. package/dist/plugin/dev-server/cleanupServerAction.server.d.ts.map +1 -0
  98. package/dist/plugin/dev-server/cleanupServerAction.server.js +15 -0
  99. package/dist/plugin/dev-server/configureReactServer.client.d.ts +7 -0
  100. package/dist/plugin/dev-server/configureReactServer.client.d.ts.map +1 -0
  101. package/dist/plugin/dev-server/configureReactServer.client.js +85 -0
  102. package/dist/plugin/dev-server/configureReactServer.d.ts +2 -0
  103. package/dist/plugin/dev-server/configureReactServer.d.ts.map +1 -0
  104. package/dist/plugin/dev-server/configureReactServer.js +13 -0
  105. package/dist/plugin/dev-server/configureReactServer.server.d.ts +3 -0
  106. package/dist/plugin/dev-server/configureReactServer.server.d.ts.map +1 -0
  107. package/dist/plugin/dev-server/configureReactServer.server.js +444 -0
  108. package/dist/plugin/dev-server/configureRequestHandler.client.d.ts +13 -0
  109. package/dist/plugin/dev-server/configureRequestHandler.client.d.ts.map +1 -0
  110. package/dist/plugin/dev-server/configureRequestHandler.client.js +307 -0
  111. package/dist/plugin/dev-server/configureRequestHandler.d.ts +2 -0
  112. package/dist/plugin/dev-server/configureRequestHandler.d.ts.map +1 -0
  113. package/dist/plugin/dev-server/configureRequestHandler.js +4 -0
  114. package/dist/plugin/dev-server/configureRequestHandler.server.d.ts +6 -0
  115. package/dist/plugin/dev-server/configureRequestHandler.server.d.ts.map +1 -0
  116. package/dist/plugin/dev-server/configureRequestHandler.server.js +44 -0
  117. package/dist/plugin/dev-server/handleServerAction.client.d.ts +11 -0
  118. package/dist/plugin/dev-server/handleServerAction.client.d.ts.map +1 -0
  119. package/dist/plugin/dev-server/handleServerAction.client.js +97 -0
  120. package/dist/plugin/dev-server/handleServerAction.d.ts +2 -0
  121. package/dist/plugin/dev-server/handleServerAction.d.ts.map +1 -0
  122. package/dist/plugin/dev-server/handleServerAction.js +13 -0
  123. package/dist/plugin/dev-server/handleServerAction.server.d.ts +3 -0
  124. package/dist/plugin/dev-server/handleServerAction.server.d.ts.map +1 -0
  125. package/dist/plugin/dev-server/handleServerAction.server.js +15 -0
  126. package/dist/plugin/dev-server/index.client.d.ts +7 -0
  127. package/dist/plugin/dev-server/index.client.d.ts.map +1 -0
  128. package/dist/plugin/dev-server/index.client.js +11 -0
  129. package/dist/plugin/dev-server/index.d.ts +4 -0
  130. package/dist/plugin/dev-server/index.d.ts.map +1 -0
  131. package/dist/plugin/dev-server/index.js +19 -0
  132. package/dist/plugin/dev-server/index.server.d.ts +7 -0
  133. package/dist/plugin/dev-server/index.server.d.ts.map +1 -0
  134. package/dist/plugin/dev-server/index.server.js +11 -0
  135. package/dist/plugin/dev-server/plugin.client.d.ts +7 -0
  136. package/dist/plugin/dev-server/plugin.client.d.ts.map +1 -0
  137. package/dist/plugin/dev-server/plugin.client.js +122 -0
  138. package/dist/plugin/dev-server/plugin.server.d.ts +8 -0
  139. package/dist/plugin/dev-server/plugin.server.d.ts.map +1 -0
  140. package/dist/plugin/dev-server/plugin.server.js +108 -0
  141. package/dist/plugin/dev-server/restartWorker.client.d.ts +3 -0
  142. package/dist/plugin/dev-server/restartWorker.client.d.ts.map +1 -0
  143. package/dist/plugin/dev-server/restartWorker.client.js +131 -0
  144. package/dist/plugin/dev-server/restartWorker.d.ts +2 -0
  145. package/dist/plugin/dev-server/restartWorker.d.ts.map +1 -0
  146. package/dist/plugin/dev-server/restartWorker.js +4 -0
  147. package/dist/plugin/dev-server/restartWorker.server.d.ts +3 -0
  148. package/dist/plugin/dev-server/restartWorker.server.d.ts.map +1 -0
  149. package/dist/plugin/dev-server/restartWorker.server.js +88 -0
  150. package/dist/plugin/dev-server/types.d.ts +38 -0
  151. package/dist/plugin/dev-server/types.d.ts.map +1 -0
  152. package/dist/plugin/dev-server/virtualRscHmrPlugin.d.ts +7 -0
  153. package/dist/plugin/dev-server/virtualRscHmrPlugin.d.ts.map +1 -0
  154. package/dist/plugin/dev-server/virtualRscHmrPlugin.js +80 -0
  155. package/dist/plugin/env/createConfigEnv.d.ts +13 -0
  156. package/dist/plugin/env/createConfigEnv.d.ts.map +1 -0
  157. package/dist/plugin/env/createConfigEnv.js +43 -0
  158. package/dist/plugin/env/createEnvPlugin.d.ts +3 -0
  159. package/dist/plugin/env/createEnvPlugin.d.ts.map +1 -0
  160. package/dist/plugin/env/createEnvPlugin.js +59 -0
  161. package/dist/plugin/env/getArgValue.d.ts +8 -0
  162. package/dist/plugin/env/getArgValue.d.ts.map +1 -0
  163. package/dist/plugin/env/getArgValue.js +52 -0
  164. package/dist/plugin/env/getEnvKey.d.ts +46 -0
  165. package/dist/plugin/env/getEnvKey.d.ts.map +1 -0
  166. package/dist/plugin/env/getEnvKey.js +32 -0
  167. package/dist/plugin/env/index.d.ts +5 -0
  168. package/dist/plugin/env/index.d.ts.map +1 -1
  169. package/dist/plugin/env/index.js +7 -0
  170. package/dist/plugin/env/plugin.client.d.ts +2 -0
  171. package/dist/plugin/env/plugin.client.d.ts.map +1 -0
  172. package/dist/plugin/env/plugin.client.js +2 -0
  173. package/dist/plugin/env/plugin.d.ts +4 -34
  174. package/dist/plugin/env/plugin.d.ts.map +1 -1
  175. package/dist/plugin/env/plugin.js +27 -102
  176. package/dist/plugin/env/plugin.server.d.ts +2 -0
  177. package/dist/plugin/env/plugin.server.d.ts.map +1 -0
  178. package/dist/plugin/env/plugin.server.js +2 -0
  179. package/dist/plugin/env/userConfigEnv.d.ts +2 -0
  180. package/dist/plugin/env/userConfigEnv.d.ts.map +1 -0
  181. package/dist/plugin/env/userConfigEnv.js +12 -0
  182. package/dist/plugin/environments/createBuildEventPlugin.d.ts +4 -0
  183. package/dist/plugin/environments/createBuildEventPlugin.d.ts.map +1 -0
  184. package/dist/plugin/environments/createBuildEventPlugin.js +100 -0
  185. package/dist/plugin/environments/createEnvironmentPlugin.d.ts +19 -0
  186. package/dist/plugin/environments/createEnvironmentPlugin.d.ts.map +1 -0
  187. package/dist/plugin/environments/createEnvironmentPlugin.js +257 -0
  188. package/dist/plugin/environments/hashCoordination.d.ts +14 -0
  189. package/dist/plugin/environments/hashCoordination.d.ts.map +1 -0
  190. package/dist/plugin/environments/hashCoordination.js +35 -0
  191. package/dist/plugin/environments/resolveEnvironmentConfig.d.ts +41 -0
  192. package/dist/plugin/environments/resolveEnvironmentConfig.d.ts.map +1 -0
  193. package/dist/plugin/environments/resolveEnvironmentConfig.js +232 -0
  194. package/dist/plugin/error/assertPanic.d.ts +2 -0
  195. package/dist/plugin/error/assertPanic.d.ts.map +1 -0
  196. package/dist/plugin/error/assertPanic.js +15 -0
  197. package/dist/plugin/error/handleError.d.ts +9 -0
  198. package/dist/plugin/error/handleError.d.ts.map +1 -0
  199. package/dist/plugin/error/handleError.js +51 -0
  200. package/dist/plugin/error/index.d.ts +3 -0
  201. package/dist/plugin/error/index.d.ts.map +1 -1
  202. package/dist/plugin/error/index.js +4 -1
  203. package/dist/plugin/error/logError.d.ts +6 -2
  204. package/dist/plugin/error/logError.d.ts.map +1 -1
  205. package/dist/plugin/error/logError.js +35 -34
  206. package/dist/plugin/error/panicThresholdHandler.d.ts +27 -0
  207. package/dist/plugin/error/panicThresholdHandler.d.ts.map +1 -0
  208. package/dist/plugin/error/panicThresholdHandler.js +13 -0
  209. package/dist/plugin/error/serializeError.d.ts +6 -2
  210. package/dist/plugin/error/serializeError.d.ts.map +1 -1
  211. package/dist/plugin/error/serializeError.js +30 -10
  212. package/dist/plugin/error/serializeErrorInfo.d.ts +5 -0
  213. package/dist/plugin/error/serializeErrorInfo.d.ts.map +1 -0
  214. package/dist/plugin/error/serializeErrorInfo.js +19 -0
  215. package/dist/plugin/error/setupGlobalErrorHandler.d.ts +4 -0
  216. package/dist/plugin/error/setupGlobalErrorHandler.d.ts.map +1 -0
  217. package/dist/plugin/error/setupGlobalErrorHandler.js +52 -0
  218. package/dist/plugin/error/shouldPanic.d.ts +6 -0
  219. package/dist/plugin/error/shouldPanic.d.ts.map +1 -0
  220. package/dist/plugin/error/shouldPanic.js +15 -0
  221. package/dist/plugin/error/toError.d.ts +5 -1
  222. package/dist/plugin/error/toError.d.ts.map +1 -1
  223. package/dist/plugin/error/toError.js +43 -19
  224. package/dist/plugin/error/types.d.ts +28 -0
  225. package/dist/plugin/error/types.d.ts.map +1 -0
  226. package/dist/plugin/helpers/collectManifestCss.d.ts.map +1 -1
  227. package/dist/plugin/helpers/collectManifestCss.js +19 -5
  228. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +3 -3
  229. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  230. package/dist/plugin/helpers/collectViteModuleGraphCss.js +64 -3
  231. package/dist/plugin/helpers/createBufferedRscStream.d.ts +52 -0
  232. package/dist/plugin/helpers/createBufferedRscStream.d.ts.map +1 -0
  233. package/dist/plugin/helpers/createBufferedRscStream.js +147 -0
  234. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  235. package/dist/plugin/helpers/createCssProps.js +15 -25
  236. package/dist/plugin/helpers/createElementWithReact.d.ts +9 -0
  237. package/dist/plugin/helpers/createElementWithReact.d.ts.map +1 -0
  238. package/dist/plugin/helpers/createElementWithReact.js +87 -0
  239. package/dist/plugin/helpers/createPatternMatcher.d.ts +24 -0
  240. package/dist/plugin/helpers/createPatternMatcher.d.ts.map +1 -0
  241. package/dist/plugin/helpers/createPatternMatcher.js +50 -0
  242. package/dist/plugin/helpers/createRscRenderHelpers.d.ts +16 -0
  243. package/dist/plugin/helpers/createRscRenderHelpers.d.ts.map +1 -0
  244. package/dist/plugin/helpers/createRscRenderHelpers.js +60 -0
  245. package/dist/plugin/helpers/createSafePageComponent.d.ts +36 -0
  246. package/dist/plugin/helpers/createSafePageComponent.d.ts.map +1 -0
  247. package/dist/plugin/helpers/createSafePageComponent.js +50 -0
  248. package/dist/plugin/helpers/createSerializableHandlerOptions.d.ts +60 -0
  249. package/dist/plugin/helpers/createSerializableHandlerOptions.d.ts.map +1 -0
  250. package/dist/plugin/helpers/createSerializableHandlerOptions.js +94 -0
  251. package/dist/plugin/helpers/createSharedLoader.d.ts +44 -0
  252. package/dist/plugin/helpers/createSharedLoader.d.ts.map +1 -0
  253. package/dist/plugin/helpers/createSharedLoader.js +137 -0
  254. package/dist/plugin/helpers/createUnifiedCssProcessor.d.ts +70 -0
  255. package/dist/plugin/helpers/createUnifiedCssProcessor.d.ts.map +1 -0
  256. package/dist/plugin/helpers/createUnifiedCssProcessor.js +89 -0
  257. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
  258. package/dist/plugin/helpers/getBundleManifest.js +2 -3
  259. package/dist/plugin/helpers/getRouteFiles.d.ts +2 -2
  260. package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
  261. package/dist/plugin/helpers/getRouteFiles.js +67 -36
  262. package/dist/plugin/helpers/handleServerAction.client.d.ts +29 -0
  263. package/dist/plugin/helpers/handleServerAction.client.d.ts.map +1 -0
  264. package/dist/plugin/helpers/handleServerAction.client.js +93 -0
  265. package/dist/plugin/helpers/handleServerAction.d.ts +2 -34
  266. package/dist/plugin/helpers/handleServerAction.d.ts.map +1 -1
  267. package/dist/plugin/helpers/handleServerAction.js +15 -44
  268. package/dist/plugin/helpers/handleServerAction.server.d.ts +25 -0
  269. package/dist/plugin/helpers/handleServerAction.server.d.ts.map +1 -0
  270. package/dist/plugin/helpers/handleServerAction.server.js +80 -0
  271. package/dist/plugin/helpers/handleServerActionHelper.d.ts +61 -0
  272. package/dist/plugin/helpers/handleServerActionHelper.d.ts.map +1 -0
  273. package/dist/plugin/helpers/handleServerActionHelper.js +183 -0
  274. package/dist/plugin/helpers/headlessStreamReuseHandler.d.ts +12 -0
  275. package/dist/plugin/helpers/headlessStreamReuseHandler.d.ts.map +1 -0
  276. package/dist/plugin/helpers/headlessStreamReuseHandler.js +29 -0
  277. package/dist/plugin/helpers/headlessStreamState.d.ts +71 -0
  278. package/dist/plugin/helpers/headlessStreamState.d.ts.map +1 -0
  279. package/dist/plugin/helpers/headlessStreamState.js +81 -0
  280. package/dist/plugin/helpers/hydrateUserOptions.d.ts +1 -1
  281. package/dist/plugin/helpers/hydrateUserOptions.d.ts.map +1 -1
  282. package/dist/plugin/helpers/hydrateUserOptions.js +2 -2
  283. package/dist/plugin/helpers/index.d.ts +12 -5
  284. package/dist/plugin/helpers/index.d.ts.map +1 -1
  285. package/dist/plugin/helpers/index.js +18 -4
  286. package/dist/plugin/helpers/logRenderStart.d.ts +17 -0
  287. package/dist/plugin/helpers/logRenderStart.d.ts.map +1 -0
  288. package/dist/plugin/helpers/logRenderStart.js +13 -0
  289. package/dist/plugin/helpers/mergeMessageWithDefaults.d.ts +90 -0
  290. package/dist/plugin/helpers/mergeMessageWithDefaults.d.ts.map +1 -0
  291. package/dist/plugin/helpers/mergeMessageWithDefaults.js +67 -0
  292. package/dist/plugin/helpers/pipeToResponse.d.ts +19 -0
  293. package/dist/plugin/helpers/pipeToResponse.d.ts.map +1 -0
  294. package/dist/plugin/helpers/pipeToResponse.js +55 -0
  295. package/dist/plugin/helpers/requestInfo.d.ts +6 -4
  296. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  297. package/dist/plugin/helpers/requestInfo.js +48 -30
  298. package/dist/plugin/helpers/resolveComponents.client.d.ts +34 -0
  299. package/dist/plugin/helpers/resolveComponents.client.d.ts.map +1 -0
  300. package/dist/plugin/helpers/resolveComponents.client.js +126 -0
  301. package/dist/plugin/helpers/resolveModuleFromManifest.d.ts +36 -0
  302. package/dist/plugin/helpers/resolveModuleFromManifest.d.ts.map +1 -0
  303. package/dist/plugin/helpers/resolveModuleFromManifest.js +60 -0
  304. package/dist/plugin/helpers/resolvePageAndProps.d.ts +23 -2
  305. package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
  306. package/dist/plugin/helpers/resolvePageAndProps.js +150 -9
  307. package/dist/plugin/helpers/resolveRenderUrl.d.ts +11 -0
  308. package/dist/plugin/helpers/resolveRenderUrl.d.ts.map +1 -0
  309. package/dist/plugin/helpers/resolveRenderUrl.js +19 -0
  310. package/dist/plugin/helpers/resolveStreamElements.client.d.ts +14 -0
  311. package/dist/plugin/helpers/resolveStreamElements.client.d.ts.map +1 -0
  312. package/dist/plugin/helpers/resolveStreamElements.client.js +36 -0
  313. package/dist/plugin/helpers/resolveStreamElements.d.ts +3 -0
  314. package/dist/plugin/helpers/resolveStreamElements.d.ts.map +1 -0
  315. package/dist/plugin/helpers/resolveStreamElements.js +13 -0
  316. package/dist/plugin/helpers/resolveStreamElements.server.d.ts +15 -0
  317. package/dist/plugin/helpers/resolveStreamElements.server.d.ts.map +1 -0
  318. package/dist/plugin/helpers/resolveStreamElements.server.js +35 -0
  319. package/dist/plugin/helpers/resolveStreamElements.types.d.ts +22 -0
  320. package/dist/plugin/helpers/resolveStreamElements.types.d.ts.map +1 -0
  321. package/dist/plugin/helpers/resolveStreamElements.types.js +1 -0
  322. package/dist/plugin/helpers/resolveVirtualAndNodeModules.d.ts +15 -0
  323. package/dist/plugin/helpers/resolveVirtualAndNodeModules.d.ts.map +1 -0
  324. package/dist/plugin/helpers/resolveVirtualAndNodeModules.js +45 -0
  325. package/dist/plugin/helpers/resolveWithDefaultRootAndHtml.d.ts +18 -0
  326. package/dist/plugin/helpers/resolveWithDefaultRootAndHtml.d.ts.map +1 -0
  327. package/dist/plugin/helpers/resolveWithDefaultRootAndHtml.js +17 -0
  328. package/dist/plugin/helpers/serializeUserOptions.d.ts +2 -2
  329. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  330. package/dist/plugin/helpers/serializeUserOptions.js +28 -13
  331. package/dist/plugin/helpers/tryManifest.d.ts +2 -2
  332. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  333. package/dist/plugin/helpers/tryManifest.js +12 -6
  334. package/dist/plugin/helpers/validateRscRenderMessage.d.ts +9 -0
  335. package/dist/plugin/helpers/validateRscRenderMessage.d.ts.map +1 -0
  336. package/dist/plugin/helpers/validateRscRenderMessage.js +13 -0
  337. package/dist/plugin/helpers/workerCleanup.d.ts +29 -0
  338. package/dist/plugin/helpers/workerCleanup.d.ts.map +1 -0
  339. package/dist/plugin/helpers/workerCleanup.js +28 -0
  340. package/dist/plugin/helpers/workerManager.d.ts +5 -0
  341. package/dist/plugin/helpers/workerManager.d.ts.map +1 -0
  342. package/dist/plugin/helpers/workerManager.js +18 -0
  343. package/dist/plugin/index.d.ts +4 -1
  344. package/dist/plugin/index.d.ts.map +1 -1
  345. package/dist/plugin/index.js +5 -2
  346. package/dist/plugin/loader/createDefaultLoader.d.ts +1 -1
  347. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -1
  348. package/dist/plugin/loader/createDefaultLoader.js +2 -22
  349. package/dist/plugin/loader/createTransformer.d.ts.map +1 -1
  350. package/dist/plugin/loader/createTransformer.js +157 -32
  351. package/dist/plugin/loader/directives/analyzeDirectives.d.ts +3 -2
  352. package/dist/plugin/loader/directives/analyzeDirectives.d.ts.map +1 -1
  353. package/dist/plugin/loader/directives/analyzeDirectives.js +53 -26
  354. package/dist/plugin/loader/directives/analyzeModule.d.ts +2 -6
  355. package/dist/plugin/loader/directives/analyzeModule.d.ts.map +1 -1
  356. package/dist/plugin/loader/directives/analyzeModule.js +32 -11
  357. package/dist/plugin/loader/env-loader.d.ts +3 -2
  358. package/dist/plugin/loader/env-loader.d.ts.map +1 -1
  359. package/dist/plugin/loader/env-loader.js +32 -9
  360. package/dist/plugin/loader/parse.d.ts +3 -2
  361. package/dist/plugin/loader/parse.d.ts.map +1 -1
  362. package/dist/plugin/loader/parse.js +2 -2
  363. package/dist/plugin/loader/react-loader.d.ts +4 -4
  364. package/dist/plugin/loader/react-loader.d.ts.map +1 -1
  365. package/dist/plugin/loader/react-loader.js +101 -73
  366. package/dist/plugin/loader/transformClientModule.d.ts +4 -5
  367. package/dist/plugin/loader/transformClientModule.d.ts.map +1 -1
  368. package/dist/plugin/loader/transformClientModule.js +63 -18
  369. package/dist/plugin/loader/transformModule.d.ts.map +1 -1
  370. package/dist/plugin/loader/transformModule.js +82 -14
  371. package/dist/plugin/loader/transformModuleIfNeeded.d.ts +6 -1
  372. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
  373. package/dist/plugin/loader/transformModuleIfNeeded.js +10 -18
  374. package/dist/plugin/loader/transformNonServerEnvironment.d.ts +10 -0
  375. package/dist/plugin/loader/transformNonServerEnvironment.d.ts.map +1 -0
  376. package/dist/plugin/loader/transformNonServerEnvironment.js +74 -0
  377. package/dist/plugin/loader/transformServerModule.d.ts +2 -3
  378. package/dist/plugin/loader/transformServerModule.d.ts.map +1 -1
  379. package/dist/plugin/loader/transformServerModule.js +80 -22
  380. package/dist/plugin/loader/transformWithAcornLoose.js +1 -3
  381. package/dist/plugin/loader/types.d.ts +37 -32
  382. package/dist/plugin/loader/types.d.ts.map +1 -1
  383. package/dist/plugin/metrics/collectStreamMetrics.d.ts +1 -2
  384. package/dist/plugin/metrics/collectStreamMetrics.d.ts.map +1 -1
  385. package/dist/plugin/metrics/collectStreamMetrics.js +1 -1
  386. package/dist/plugin/metrics/convertStreamMetrics.d.ts +3 -0
  387. package/dist/plugin/metrics/convertStreamMetrics.d.ts.map +1 -0
  388. package/dist/plugin/metrics/convertStreamMetrics.js +26 -0
  389. package/dist/plugin/metrics/createModuleResolutionMetrics.d.ts +12 -0
  390. package/dist/plugin/metrics/createModuleResolutionMetrics.d.ts.map +1 -0
  391. package/dist/plugin/metrics/createModuleResolutionMetrics.js +32 -0
  392. package/dist/plugin/metrics/createRenderMetrics.d.ts +2 -2
  393. package/dist/plugin/metrics/createRenderMetrics.d.ts.map +1 -1
  394. package/dist/plugin/metrics/createRenderMetrics.js +45 -13
  395. package/dist/plugin/metrics/createStreamMetrics.d.ts +2 -2
  396. package/dist/plugin/metrics/createStreamMetrics.d.ts.map +1 -1
  397. package/dist/plugin/metrics/createStreamMetrics.js +15 -4
  398. package/dist/plugin/metrics/createWorkerStartupMetrics.d.ts +12 -0
  399. package/dist/plugin/metrics/createWorkerStartupMetrics.d.ts.map +1 -0
  400. package/dist/plugin/metrics/createWorkerStartupMetrics.js +14 -0
  401. package/dist/plugin/metrics/formatMetrics.d.ts +0 -6
  402. package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
  403. package/dist/plugin/metrics/formatMetrics.js +7 -29
  404. package/dist/plugin/metrics/index.d.ts +6 -3
  405. package/dist/plugin/metrics/index.d.ts.map +1 -1
  406. package/dist/plugin/metrics/index.js +6 -3
  407. package/dist/plugin/metrics/metricWatcher.d.ts +9 -0
  408. package/dist/plugin/metrics/metricWatcher.d.ts.map +1 -0
  409. package/dist/plugin/metrics/metricWatcher.js +141 -0
  410. package/dist/plugin/metrics/types.d.ts +72 -6
  411. package/dist/plugin/metrics/types.d.ts.map +1 -1
  412. package/dist/plugin/orchestrator/createPluginOrchestrator.client.d.ts +3 -0
  413. package/dist/plugin/orchestrator/createPluginOrchestrator.client.d.ts.map +1 -0
  414. package/dist/plugin/orchestrator/createPluginOrchestrator.client.js +36 -0
  415. package/dist/plugin/orchestrator/createPluginOrchestrator.d.ts +19 -0
  416. package/dist/plugin/orchestrator/createPluginOrchestrator.d.ts.map +1 -0
  417. package/dist/plugin/orchestrator/createPluginOrchestrator.js +13 -0
  418. package/dist/plugin/orchestrator/createPluginOrchestrator.server.d.ts +3 -0
  419. package/dist/plugin/orchestrator/createPluginOrchestrator.server.d.ts.map +1 -0
  420. package/dist/plugin/orchestrator/createPluginOrchestrator.server.js +44 -0
  421. package/dist/plugin/orchestrator/index.d.ts +2 -0
  422. package/dist/plugin/orchestrator/index.d.ts.map +1 -0
  423. package/dist/plugin/orchestrator/index.js +1 -0
  424. package/dist/plugin/orchestrator/plugin.js +7 -0
  425. package/dist/plugin/orchestrator/resolveStrategy.d.ts +19 -0
  426. package/dist/plugin/orchestrator/resolveStrategy.d.ts.map +1 -0
  427. package/dist/plugin/orchestrator/resolveStrategy.js +35 -0
  428. package/dist/plugin/orchestrator/types.d.ts +21 -0
  429. package/dist/plugin/orchestrator/types.d.ts.map +1 -0
  430. package/dist/plugin/orchestrator/types.js +1 -0
  431. package/dist/plugin/plugin.client.d.ts +11 -19
  432. package/dist/plugin/plugin.client.d.ts.map +1 -1
  433. package/dist/plugin/plugin.client.js +28 -29
  434. package/dist/plugin/plugin.d.ts +2 -1
  435. package/dist/plugin/plugin.d.ts.map +1 -1
  436. package/dist/plugin/plugin.js +4 -2
  437. package/dist/plugin/plugin.server.d.ts +13 -11
  438. package/dist/plugin/plugin.server.d.ts.map +1 -1
  439. package/dist/plugin/plugin.server.js +19 -22
  440. package/dist/plugin/process-env.d.ts +19 -6
  441. package/dist/plugin/process-env.d.ts.map +1 -1
  442. package/dist/plugin/process-env.js +17 -0
  443. package/dist/plugin/react-client/createMessageHandlers.d.ts +2 -10
  444. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  445. package/dist/plugin/react-client/createMessageHandlers.js +42 -69
  446. package/dist/plugin/react-client/index.client.d.ts +2 -0
  447. package/dist/plugin/react-client/index.client.d.ts.map +1 -0
  448. package/dist/plugin/react-client/index.client.js +1 -0
  449. package/dist/plugin/react-client/index.d.ts +3 -4
  450. package/dist/plugin/react-client/index.d.ts.map +1 -1
  451. package/dist/plugin/react-client/index.js +10 -5
  452. package/dist/plugin/react-client/index.server.d.ts +2 -0
  453. package/dist/plugin/react-client/index.server.d.ts.map +1 -0
  454. package/dist/plugin/react-client/index.server.js +1 -0
  455. package/dist/plugin/react-client/plugin.client.d.ts +15 -0
  456. package/dist/plugin/react-client/plugin.client.d.ts.map +1 -0
  457. package/dist/plugin/react-client/plugin.client.js +98 -0
  458. package/dist/plugin/react-client/plugin.d.ts +2 -5
  459. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  460. package/dist/plugin/react-client/plugin.js +6 -121
  461. package/dist/plugin/react-client/plugin.server.d.ts +15 -0
  462. package/dist/plugin/react-client/plugin.server.d.ts.map +1 -0
  463. package/dist/plugin/react-client/plugin.server.js +93 -0
  464. package/dist/plugin/react-client/types.d.ts +60 -0
  465. package/dist/plugin/react-client/types.d.ts.map +1 -0
  466. package/dist/plugin/react-client/types.js +1 -0
  467. package/dist/plugin/react-server/index.client.d.ts +2 -0
  468. package/dist/plugin/react-server/index.client.d.ts.map +1 -0
  469. package/dist/plugin/react-server/index.client.js +1 -0
  470. package/dist/plugin/react-server/index.d.ts +3 -1
  471. package/dist/plugin/react-server/index.d.ts.map +1 -1
  472. package/dist/plugin/react-server/index.js +13 -1
  473. package/dist/plugin/react-server/index.server.d.ts +2 -0
  474. package/dist/plugin/react-server/index.server.d.ts.map +1 -0
  475. package/dist/plugin/react-server/index.server.js +1 -0
  476. package/dist/plugin/react-server/plugin.client.d.ts +3 -0
  477. package/dist/plugin/react-server/plugin.client.d.ts.map +1 -0
  478. package/dist/plugin/react-server/plugin.client.js +40 -0
  479. package/dist/plugin/react-server/plugin.d.ts +2 -5
  480. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  481. package/dist/plugin/react-server/plugin.js +5 -141
  482. package/dist/plugin/react-server/plugin.server.d.ts +3 -0
  483. package/dist/plugin/react-server/plugin.server.d.ts.map +1 -0
  484. package/dist/plugin/react-server/plugin.server.js +18 -0
  485. package/dist/plugin/react-server/types.d.ts +11 -0
  486. package/dist/plugin/react-server/types.d.ts.map +1 -0
  487. package/dist/plugin/react-server/types.js +1 -0
  488. package/dist/plugin/react-static/collectHtmlContent.d.ts +15 -0
  489. package/dist/plugin/react-static/collectHtmlContent.d.ts.map +1 -0
  490. package/dist/plugin/react-static/collectHtmlContent.js +104 -0
  491. package/dist/plugin/react-static/collectRscContent.d.ts +10 -15
  492. package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
  493. package/dist/plugin/react-static/collectRscContent.js +71 -20
  494. package/dist/plugin/react-static/configurePreviewServer.d.ts +1 -7
  495. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  496. package/dist/plugin/react-static/configurePreviewServer.js +15 -29
  497. package/dist/plugin/react-static/createBuildLoader.client.d.ts +2 -0
  498. package/dist/plugin/react-static/createBuildLoader.client.d.ts.map +1 -0
  499. package/dist/plugin/react-static/createBuildLoader.client.js +7 -0
  500. package/dist/plugin/react-static/createBuildLoader.d.ts +3 -19
  501. package/dist/plugin/react-static/createBuildLoader.d.ts.map +1 -1
  502. package/dist/plugin/react-static/createBuildLoader.js +4 -226
  503. package/dist/plugin/react-static/createBuildLoader.server.d.ts +9 -0
  504. package/dist/plugin/react-static/createBuildLoader.server.d.ts.map +1 -0
  505. package/dist/plugin/react-static/createBuildLoader.server.js +253 -0
  506. package/dist/plugin/react-static/fileWriter.d.ts +3 -14
  507. package/dist/plugin/react-static/fileWriter.d.ts.map +1 -1
  508. package/dist/plugin/react-static/fileWriter.js +233 -42
  509. package/dist/plugin/react-static/index.client.d.ts +7 -0
  510. package/dist/plugin/react-static/index.client.d.ts.map +1 -0
  511. package/dist/plugin/react-static/index.client.js +6 -0
  512. package/dist/plugin/react-static/index.d.ts +7 -1
  513. package/dist/plugin/react-static/index.d.ts.map +1 -1
  514. package/dist/plugin/react-static/index.js +19 -1
  515. package/dist/plugin/react-static/index.server.d.ts +7 -0
  516. package/dist/plugin/react-static/index.server.d.ts.map +1 -0
  517. package/dist/plugin/react-static/index.server.js +6 -0
  518. package/dist/plugin/react-static/plugin.client.d.ts +32 -0
  519. package/dist/plugin/react-static/plugin.client.d.ts.map +1 -0
  520. package/dist/plugin/react-static/plugin.client.js +801 -0
  521. package/dist/plugin/react-static/plugin.d.ts +3 -20
  522. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  523. package/dist/plugin/react-static/plugin.js +4 -365
  524. package/dist/plugin/react-static/plugin.server.d.ts +18 -0
  525. package/dist/plugin/react-static/plugin.server.d.ts.map +1 -0
  526. package/dist/plugin/react-static/plugin.server.js +615 -0
  527. package/dist/plugin/react-static/processCssFilesForPages.d.ts +16 -0
  528. package/dist/plugin/react-static/processCssFilesForPages.d.ts.map +1 -0
  529. package/dist/plugin/react-static/processCssFilesForPages.js +94 -0
  530. package/dist/plugin/react-static/renderPage.client.d.ts +49 -0
  531. package/dist/plugin/react-static/renderPage.client.d.ts.map +1 -0
  532. package/dist/plugin/react-static/renderPage.client.js +555 -0
  533. package/dist/plugin/react-static/renderPage.d.ts +3 -4
  534. package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
  535. package/dist/plugin/react-static/renderPage.js +6 -131
  536. package/dist/plugin/react-static/renderPage.server.d.ts +24 -0
  537. package/dist/plugin/react-static/renderPage.server.d.ts.map +1 -0
  538. package/dist/plugin/react-static/renderPage.server.js +533 -0
  539. package/dist/plugin/react-static/renderPages.d.ts +11 -3
  540. package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
  541. package/dist/plugin/react-static/renderPages.js +533 -92
  542. package/dist/plugin/react-static/renderPagesBatched.d.ts +6 -0
  543. package/dist/plugin/react-static/renderPagesBatched.d.ts.map +1 -0
  544. package/dist/plugin/react-static/renderPagesBatched.js +195 -0
  545. package/dist/plugin/react-static/renderStreams.d.ts +2 -5
  546. package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
  547. package/dist/plugin/react-static/renderStreams.js +36 -24
  548. package/dist/plugin/react-static/rscToHtmlStream.client.d.ts +12 -0
  549. package/dist/plugin/react-static/rscToHtmlStream.client.d.ts.map +1 -0
  550. package/dist/plugin/react-static/rscToHtmlStream.client.js +32 -0
  551. package/dist/plugin/react-static/rscToHtmlStream.d.ts +3 -21
  552. package/dist/plugin/react-static/rscToHtmlStream.d.ts.map +1 -1
  553. package/dist/plugin/react-static/rscToHtmlStream.js +4 -53
  554. package/dist/plugin/react-static/rscToHtmlStream.server.d.ts +3 -0
  555. package/dist/plugin/react-static/rscToHtmlStream.server.d.ts.map +1 -0
  556. package/dist/plugin/react-static/rscToHtmlStream.server.js +39 -0
  557. package/dist/plugin/react-static/temporaryReferences.client.d.ts +2 -0
  558. package/dist/plugin/react-static/temporaryReferences.client.d.ts.map +1 -0
  559. package/dist/plugin/react-static/temporaryReferences.client.js +1 -0
  560. package/dist/plugin/react-static/temporaryReferences.d.ts +2 -1
  561. package/dist/plugin/react-static/temporaryReferences.d.ts.map +1 -1
  562. package/dist/plugin/react-static/temporaryReferences.js +6 -10
  563. package/dist/plugin/react-static/temporaryReferences.server.d.ts +2 -0
  564. package/dist/plugin/react-static/temporaryReferences.server.d.ts.map +1 -0
  565. package/dist/plugin/react-static/temporaryReferences.server.js +3 -0
  566. package/dist/plugin/react-static/types.d.ts +83 -9
  567. package/dist/plugin/react-static/types.d.ts.map +1 -1
  568. package/dist/plugin/root.d.ts.map +1 -1
  569. package/dist/plugin/root.js +2 -5
  570. package/dist/plugin/stream/MessagePortReadable.d.ts +22 -0
  571. package/dist/plugin/stream/MessagePortReadable.d.ts.map +1 -0
  572. package/dist/plugin/stream/MessagePortReadable.js +101 -0
  573. package/dist/plugin/stream/MessagePortWritable.d.ts +22 -0
  574. package/dist/plugin/stream/MessagePortWritable.d.ts.map +1 -0
  575. package/dist/plugin/stream/MessagePortWritable.js +85 -0
  576. package/dist/plugin/stream/client.js +12 -0
  577. package/dist/plugin/stream/createFromNodeStream.client.d.ts +9 -0
  578. package/dist/plugin/stream/createFromNodeStream.client.d.ts.map +1 -0
  579. package/dist/plugin/stream/createFromNodeStream.client.js +76 -0
  580. package/dist/plugin/stream/createFromNodeStream.d.ts +3 -0
  581. package/dist/plugin/stream/createFromNodeStream.d.ts.map +1 -0
  582. package/dist/plugin/stream/createFromNodeStream.js +6 -0
  583. package/dist/plugin/stream/createFromNodeStream.server.d.ts +9 -0
  584. package/dist/plugin/stream/createFromNodeStream.server.d.ts.map +1 -0
  585. package/dist/plugin/stream/createFromNodeStream.server.js +27 -0
  586. package/dist/plugin/stream/createFromNodeStream.types.d.ts +37 -0
  587. package/dist/plugin/stream/createFromNodeStream.types.d.ts.map +1 -0
  588. package/dist/plugin/stream/createFromNodeStream.types.js +1 -0
  589. package/dist/plugin/stream/createHtmlStream.client.d.ts +3 -0
  590. package/dist/plugin/stream/createHtmlStream.client.d.ts.map +1 -0
  591. package/dist/plugin/stream/createHtmlStream.client.js +42 -0
  592. package/dist/plugin/stream/createHtmlStream.d.ts +3 -0
  593. package/dist/plugin/stream/createHtmlStream.d.ts.map +1 -0
  594. package/dist/plugin/stream/createHtmlStream.js +6 -0
  595. package/dist/plugin/stream/createHtmlStream.server.d.ts +6 -0
  596. package/dist/plugin/stream/createHtmlStream.server.d.ts.map +1 -0
  597. package/dist/plugin/stream/createHtmlStream.server.js +224 -0
  598. package/dist/plugin/stream/createHtmlStream.types.d.ts +43 -0
  599. package/dist/plugin/stream/createHtmlStream.types.d.ts.map +1 -0
  600. package/dist/plugin/stream/createHtmlStream.types.js +1 -0
  601. package/dist/plugin/stream/createMainThreadHandlers.d.ts +11 -0
  602. package/dist/plugin/stream/createMainThreadHandlers.d.ts.map +1 -0
  603. package/dist/plugin/stream/createMainThreadHandlers.js +32 -0
  604. package/dist/plugin/stream/createMessageChannels.d.ts +29 -0
  605. package/dist/plugin/stream/createMessageChannels.d.ts.map +1 -0
  606. package/dist/plugin/stream/createMessageChannels.js +35 -0
  607. package/dist/plugin/stream/createRenderToPipeableStreamHandler.client.d.ts +10 -0
  608. package/dist/plugin/stream/createRenderToPipeableStreamHandler.client.d.ts.map +1 -0
  609. package/dist/plugin/stream/createRenderToPipeableStreamHandler.client.js +188 -0
  610. package/dist/plugin/stream/createRenderToPipeableStreamHandler.d.ts +3 -0
  611. package/dist/plugin/stream/createRenderToPipeableStreamHandler.d.ts.map +1 -0
  612. package/dist/plugin/stream/createRenderToPipeableStreamHandler.js +6 -0
  613. package/dist/plugin/stream/createRenderToPipeableStreamHandler.server.d.ts +45 -0
  614. package/dist/plugin/stream/createRenderToPipeableStreamHandler.server.d.ts.map +1 -0
  615. package/dist/plugin/stream/createRenderToPipeableStreamHandler.server.js +249 -0
  616. package/dist/plugin/stream/createRenderToPipeableStreamHandler.types.d.ts +17 -0
  617. package/dist/plugin/stream/createRenderToPipeableStreamHandler.types.d.ts.map +1 -0
  618. package/dist/plugin/stream/createRenderToPipeableStreamHandler.types.js +1 -0
  619. package/dist/plugin/stream/createRscStream.client.d.ts +18 -0
  620. package/dist/plugin/stream/createRscStream.client.d.ts.map +1 -0
  621. package/dist/plugin/stream/createRscStream.client.js +79 -0
  622. package/dist/plugin/stream/createRscStream.d.ts +2 -0
  623. package/dist/plugin/stream/createRscStream.d.ts.map +1 -0
  624. package/dist/plugin/stream/createRscStream.js +13 -0
  625. package/dist/plugin/stream/createRscStream.server.d.ts +46 -0
  626. package/dist/plugin/stream/createRscStream.server.d.ts.map +1 -0
  627. package/dist/plugin/stream/createRscStream.server.js +113 -0
  628. package/dist/plugin/stream/createRscStream.types.d.ts +134 -0
  629. package/dist/plugin/stream/createRscStream.types.d.ts.map +1 -0
  630. package/dist/plugin/stream/createRscStream.types.js +1 -0
  631. package/dist/plugin/stream/createRscStream.utils.d.ts +54 -0
  632. package/dist/plugin/stream/createRscStream.utils.d.ts.map +1 -0
  633. package/dist/plugin/stream/createRscStream.utils.js +91 -0
  634. package/dist/plugin/stream/createRscWorkerStream.d.ts +41 -0
  635. package/dist/plugin/stream/createRscWorkerStream.d.ts.map +1 -0
  636. package/dist/plugin/stream/createRscWorkerStream.js +120 -0
  637. package/dist/plugin/stream/handleRscStream.client.d.ts +17 -0
  638. package/dist/plugin/stream/handleRscStream.client.d.ts.map +1 -0
  639. package/dist/plugin/stream/handleRscStream.client.js +163 -0
  640. package/dist/plugin/stream/handleRscStream.d.ts +3 -0
  641. package/dist/plugin/stream/handleRscStream.d.ts.map +1 -0
  642. package/dist/plugin/stream/handleRscStream.js +13 -0
  643. package/dist/plugin/stream/handleRscStream.server.d.ts +6 -0
  644. package/dist/plugin/stream/handleRscStream.server.d.ts.map +1 -0
  645. package/dist/plugin/stream/handleRscStream.server.js +70 -0
  646. package/dist/plugin/stream/handleRscStream.types.d.ts +28 -0
  647. package/dist/plugin/stream/handleRscStream.types.d.ts.map +1 -0
  648. package/dist/plugin/stream/handleRscStream.types.js +1 -0
  649. package/dist/plugin/stream/index.client.d.ts +7 -0
  650. package/dist/plugin/stream/index.client.d.ts.map +1 -0
  651. package/dist/plugin/stream/index.client.js +11 -0
  652. package/dist/plugin/stream/index.d.ts +95 -0
  653. package/dist/plugin/stream/index.d.ts.map +1 -0
  654. package/dist/plugin/stream/index.js +21 -0
  655. package/dist/plugin/stream/index.server.d.ts +7 -0
  656. package/dist/plugin/stream/index.server.d.ts.map +1 -0
  657. package/dist/plugin/stream/index.server.js +11 -0
  658. package/dist/plugin/stream/renderRscStream.server.d.ts +21 -0
  659. package/dist/plugin/stream/renderRscStream.server.d.ts.map +1 -0
  660. package/dist/plugin/stream/renderRscStream.server.js +153 -0
  661. package/dist/plugin/stream/renderRscStream.types.d.ts +36 -0
  662. package/dist/plugin/stream/renderRscStream.types.d.ts.map +1 -0
  663. package/dist/plugin/stream/renderRscStream.types.js +1 -0
  664. package/dist/plugin/stream/renderRscStreamHelpers.server.d.ts +9 -0
  665. package/dist/plugin/stream/renderRscStreamHelpers.server.d.ts.map +1 -0
  666. package/dist/plugin/stream/renderRscStreamHelpers.server.js +63 -0
  667. package/dist/plugin/stream/server.js +12 -0
  668. package/dist/plugin/stream/setMaxListeners.d.ts +16 -0
  669. package/dist/plugin/stream/setMaxListeners.d.ts.map +1 -0
  670. package/dist/plugin/stream/setMaxListeners.js +16 -0
  671. package/dist/plugin/transformer/createTransformerPlugin.d.ts +18 -0
  672. package/dist/plugin/transformer/createTransformerPlugin.d.ts.map +1 -0
  673. package/dist/plugin/transformer/createTransformerPlugin.js +269 -0
  674. package/dist/plugin/transformer/plugin.client.d.ts +3 -0
  675. package/dist/plugin/transformer/plugin.client.d.ts.map +1 -0
  676. package/dist/plugin/transformer/plugin.client.js +5 -0
  677. package/dist/plugin/transformer/plugin.server.d.ts +2 -29
  678. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  679. package/dist/plugin/transformer/plugin.server.js +5 -104
  680. package/dist/plugin/transformer/transformerEnv.d.ts +15 -0
  681. package/dist/plugin/transformer/transformerEnv.d.ts.map +1 -0
  682. package/dist/plugin/transformer/transformerEnv.js +26 -0
  683. package/dist/plugin/types.d.ts +368 -143
  684. package/dist/plugin/types.d.ts.map +1 -1
  685. package/dist/plugin/types.js +1 -2
  686. package/dist/plugin/utils/callServer.d.ts +1 -1
  687. package/dist/plugin/utils/callServer.d.ts.map +1 -1
  688. package/dist/plugin/utils/createCallServer.d.ts +1 -1
  689. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  690. package/dist/plugin/utils/createCallServer.js +4 -9
  691. package/dist/plugin/utils/createReactFetcher.d.ts +43 -2
  692. package/dist/plugin/utils/createReactFetcher.d.ts.map +1 -1
  693. package/dist/plugin/utils/createReactFetcher.js +14 -3
  694. package/dist/plugin/utils/envUrls.node.d.ts.map +1 -1
  695. package/dist/plugin/utils/envUrls.node.js +11 -11
  696. package/dist/plugin/utils/index.client.d.ts +8 -0
  697. package/dist/plugin/utils/index.client.d.ts.map +1 -0
  698. package/dist/plugin/utils/index.client.js +8 -0
  699. package/dist/plugin/utils/index.d.ts +1 -0
  700. package/dist/plugin/utils/index.d.ts.map +1 -1
  701. package/dist/plugin/utils/index.js +3 -2
  702. package/dist/plugin/utils/index.server.d.ts +6 -0
  703. package/dist/plugin/utils/index.server.d.ts.map +1 -0
  704. package/dist/plugin/utils/index.server.js +8 -0
  705. package/dist/plugin/utils/routeToURL.d.ts.map +1 -1
  706. package/dist/plugin/utils/routeToURL.js +4 -4
  707. package/dist/plugin/utils/urls.d.ts +1 -1
  708. package/dist/plugin/utils/urls.d.ts.map +1 -1
  709. package/dist/plugin/utils/urls.js +29 -8
  710. package/dist/plugin/utils/useRscHmr.d.ts +39 -0
  711. package/dist/plugin/utils/useRscHmr.d.ts.map +1 -0
  712. package/dist/plugin/utils/useRscHmr.js +27 -0
  713. package/dist/plugin/vendor/vendor.client.d.ts +3 -3
  714. package/dist/plugin/vendor/vendor.client.d.ts.map +1 -1
  715. package/dist/plugin/vendor/vendor.client.js +7 -6
  716. package/dist/plugin/vendor/vendor.d.ts +1 -1
  717. package/dist/plugin/vendor/vendor.d.ts.map +1 -1
  718. package/dist/plugin/vendor/vendor.js +4 -6
  719. package/dist/plugin/vendor/vendor.server.d.ts +4 -2
  720. package/dist/plugin/vendor/vendor.server.d.ts.map +1 -1
  721. package/dist/plugin/vendor/vendor.server.js +2 -3
  722. package/dist/plugin/vendor/vendor.static.d.ts +4 -0
  723. package/dist/plugin/vendor/vendor.static.d.ts.map +1 -0
  724. package/dist/plugin/vendor/vendor.static.js +15 -0
  725. package/dist/plugin/worker/createWorker.d.ts +16 -5
  726. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  727. package/dist/plugin/worker/createWorker.js +207 -30
  728. package/dist/plugin/worker/html/handleHtmlRender.d.ts +14 -0
  729. package/dist/plugin/worker/html/handleHtmlRender.d.ts.map +1 -0
  730. package/dist/plugin/worker/html/handleHtmlRender.js +190 -0
  731. package/dist/plugin/worker/html/html-worker.development.js +9 -26
  732. package/dist/plugin/worker/html/html-worker.js +4 -4
  733. package/dist/plugin/worker/html/html-worker.production.js +7 -13
  734. package/dist/plugin/worker/html/index.d.ts +1 -1
  735. package/dist/plugin/worker/html/index.js +6 -2
  736. package/dist/plugin/worker/html/messageHandler.d.ts +1 -1
  737. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  738. package/dist/plugin/worker/html/messageHandler.js +291 -104
  739. package/dist/plugin/worker/html/state.d.ts +10 -0
  740. package/dist/plugin/worker/html/state.d.ts.map +1 -0
  741. package/dist/plugin/worker/html/state.js +28 -0
  742. package/dist/plugin/worker/html/types.d.ts +52 -23
  743. package/dist/plugin/worker/html/types.d.ts.map +1 -1
  744. package/dist/plugin/worker/index.js +1 -1
  745. package/dist/plugin/worker/rsc/createBundleLoader.d.ts +22 -0
  746. package/dist/plugin/worker/rsc/createBundleLoader.d.ts.map +1 -0
  747. package/dist/plugin/worker/rsc/createBundleLoader.js +55 -0
  748. package/dist/plugin/worker/rsc/createRscWorkerLoader.d.ts +23 -0
  749. package/dist/plugin/worker/rsc/createRscWorkerLoader.d.ts.map +1 -0
  750. package/dist/plugin/worker/rsc/createRscWorkerLoader.js +79 -0
  751. package/dist/plugin/worker/rsc/handleRscRender.d.ts +32 -0
  752. package/dist/plugin/worker/rsc/handleRscRender.d.ts.map +1 -0
  753. package/dist/plugin/worker/rsc/handleRscRender.js +349 -0
  754. package/dist/plugin/worker/rsc/handlers.d.ts +8 -2
  755. package/dist/plugin/worker/rsc/handlers.d.ts.map +1 -1
  756. package/dist/plugin/worker/rsc/handlers.js +137 -200
  757. package/dist/plugin/worker/rsc/hydrateRscRenderMessage.d.ts +118 -0
  758. package/dist/plugin/worker/rsc/hydrateRscRenderMessage.d.ts.map +1 -0
  759. package/dist/plugin/worker/rsc/hydrateRscRenderMessage.js +61 -0
  760. package/dist/plugin/worker/rsc/messageHandler.d.ts +1 -1
  761. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  762. package/dist/plugin/worker/rsc/messageHandler.js +927 -47
  763. package/dist/plugin/worker/rsc/rsc-worker.development.js +153 -148
  764. package/dist/plugin/worker/rsc/rsc-worker.js +2 -3
  765. package/dist/plugin/worker/rsc/rsc-worker.production.js +240 -15
  766. package/dist/plugin/worker/rsc/state.d.ts +6 -0
  767. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  768. package/dist/plugin/worker/rsc/state.js +37 -5
  769. package/dist/plugin/worker/rsc/types.d.ts +73 -12
  770. package/dist/plugin/worker/rsc/types.d.ts.map +1 -1
  771. package/dist/plugin/worker/rsc/workerUserOptions.d.ts +10 -0
  772. package/dist/plugin/worker/rsc/workerUserOptions.d.ts.map +1 -0
  773. package/dist/plugin/worker/rsc/workerUserOptions.js +39 -0
  774. package/dist/plugin/worker/sendMessage.d.ts +2 -3
  775. package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
  776. package/dist/plugin/worker/sendMessage.js +24 -38
  777. package/dist/plugin/worker/types.d.ts +42 -56
  778. package/dist/plugin/worker/types.d.ts.map +1 -1
  779. package/dist/plugin/worker/worker-handlers.server.d.ts +2 -0
  780. package/dist/plugin/worker/worker-handlers.server.d.ts.map +1 -0
  781. package/dist/plugin/worker/worker-handlers.server.js +1 -0
  782. package/dist/server.d.ts +5 -1
  783. package/dist/server.d.ts.map +1 -1
  784. package/dist/server.js +4 -6
  785. package/dist/static.js +11 -0
  786. package/dist/tsconfig.tsbuildinfo +1 -1
  787. package/package.json +102 -27
  788. package/plugin/bundle/bundles.ts +22 -0
  789. package/plugin/bundle/deferredStaticGeneration.ts +48 -0
  790. package/plugin/bundle/manifests.ts +73 -0
  791. package/plugin/components/css.tsx +3 -7
  792. package/plugin/components/html.tsx +4 -3
  793. package/plugin/components/index.ts +1 -1
  794. package/plugin/components/root.tsx +3 -3
  795. package/plugin/config/autoDiscover/createGlobAutoDiscover.ts +10 -5
  796. package/plugin/config/autoDiscover/pageAndPropFiles.ts +4 -2
  797. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +64 -79
  798. package/plugin/config/autoDiscover/resolveBuildPages.ts +181 -69
  799. package/plugin/config/createHandlerOptions.client.ts +403 -0
  800. package/plugin/config/createHandlerOptions.server.ts +477 -0
  801. package/plugin/config/createHandlerOptions.ts +46 -0
  802. package/plugin/config/createHandlerOptions.types.ts +119 -0
  803. package/plugin/config/createModuleID.ts +201 -10
  804. package/plugin/config/defaults.tsx +108 -55
  805. package/plugin/config/envPrefixFromConfig.ts +10 -0
  806. package/plugin/config/getCondition.ts +267 -10
  807. package/plugin/{getNodeEnv.ts → config/getNodeEnv.ts} +4 -2
  808. package/plugin/config/index.ts +60 -1
  809. package/plugin/config/resolveDirectiveMatcher.ts +13 -34
  810. package/plugin/config/resolveEnv.ts +37 -33
  811. package/plugin/config/resolveOptions.ts +375 -154
  812. package/plugin/config/resolvePages.ts +1 -1
  813. package/plugin/config/resolvePatternWithValues.ts +6 -26
  814. package/plugin/config/resolveUrlOption.ts +2 -2
  815. package/plugin/config/resolveUserConfig.ts +359 -124
  816. package/plugin/config/stashedOptionsState.ts +144 -0
  817. package/plugin/dev-server/cleanupServerAction.client.ts +47 -0
  818. package/plugin/dev-server/cleanupServerAction.server.ts +24 -0
  819. package/plugin/dev-server/cleanupServerAction.ts +8 -0
  820. package/plugin/dev-server/configureReactServer.client.ts +107 -0
  821. package/plugin/dev-server/configureReactServer.server.ts +558 -0
  822. package/plugin/dev-server/configureReactServer.ts +8 -0
  823. package/plugin/dev-server/configureRequestHandler.client.ts +382 -0
  824. package/plugin/dev-server/configureRequestHandler.server.ts +46 -0
  825. package/plugin/dev-server/configureRequestHandler.ts +8 -0
  826. package/plugin/dev-server/handleServerAction.client.ts +126 -0
  827. package/plugin/dev-server/handleServerAction.server.ts +10 -0
  828. package/plugin/dev-server/handleServerAction.ts +8 -0
  829. package/plugin/dev-server/index.client.ts +6 -0
  830. package/plugin/dev-server/index.server.ts +6 -0
  831. package/plugin/dev-server/index.ts +20 -0
  832. package/plugin/dev-server/plugin.client.ts +160 -0
  833. package/plugin/dev-server/plugin.server.ts +133 -0
  834. package/plugin/dev-server/restartWorker.client.ts +155 -0
  835. package/plugin/dev-server/restartWorker.server.ts +108 -0
  836. package/plugin/dev-server/restartWorker.ts +8 -0
  837. package/plugin/dev-server/types.ts +78 -0
  838. package/plugin/dev-server/virtualRscHmrPlugin.ts +82 -0
  839. package/plugin/env/createConfigEnv.ts +59 -0
  840. package/plugin/env/createEnvPlugin.ts +76 -0
  841. package/plugin/env/getArgValue.ts +56 -0
  842. package/plugin/env/getEnvKey.ts +80 -0
  843. package/plugin/env/index.ts +14 -1
  844. package/plugin/env/plugin.client.ts +3 -0
  845. package/plugin/env/plugin.server.ts +4 -0
  846. package/plugin/env/plugin.ts +40 -164
  847. package/plugin/env/userConfigEnv.ts +22 -0
  848. package/plugin/environments/createBuildEventPlugin.ts +117 -0
  849. package/plugin/environments/createEnvironmentPlugin.ts +332 -0
  850. package/plugin/environments/hashCoordination.ts +39 -0
  851. package/plugin/environments/resolveEnvironmentConfig.ts +320 -0
  852. package/plugin/error/assertPanic.ts +9 -0
  853. package/plugin/error/handleError.ts +63 -0
  854. package/plugin/error/index.ts +4 -1
  855. package/plugin/error/logError.ts +64 -40
  856. package/plugin/error/panicThresholdHandler.ts +52 -0
  857. package/plugin/error/serializeError.ts +36 -11
  858. package/plugin/error/serializeErrorInfo.ts +17 -0
  859. package/plugin/error/setupGlobalErrorHandler.ts +71 -0
  860. package/plugin/error/shouldPanic.ts +14 -0
  861. package/plugin/error/toError.ts +59 -19
  862. package/plugin/error/types.ts +32 -0
  863. package/plugin/helpers/README.md +112 -0
  864. package/plugin/helpers/collectManifestCss.ts +24 -5
  865. package/plugin/helpers/collectViteModuleGraphCss.ts +83 -9
  866. package/plugin/helpers/createBufferedRscStream.ts +194 -0
  867. package/plugin/helpers/createCssProps.tsx +22 -41
  868. package/plugin/helpers/createElementWithReact.tsx +121 -0
  869. package/plugin/helpers/createPatternMatcher.ts +100 -0
  870. package/plugin/helpers/createRscRenderHelpers.ts +77 -0
  871. package/plugin/helpers/createSafePageComponent.ts +64 -0
  872. package/plugin/helpers/createSerializableHandlerOptions.ts +183 -0
  873. package/plugin/helpers/createSharedLoader.ts +207 -0
  874. package/plugin/helpers/createUnifiedCssProcessor.ts +175 -0
  875. package/plugin/helpers/getBundleManifest.ts +2 -3
  876. package/plugin/helpers/getRouteFiles.ts +94 -48
  877. package/plugin/helpers/handleServerAction.client.ts +145 -0
  878. package/plugin/helpers/handleServerAction.server.ts +151 -0
  879. package/plugin/helpers/handleServerAction.ts +19 -78
  880. package/plugin/helpers/handleServerActionHelper.ts +270 -0
  881. package/plugin/helpers/headlessStreamReuseHandler.ts +48 -0
  882. package/plugin/helpers/headlessStreamState.ts +122 -0
  883. package/plugin/helpers/hydrateUserOptions.ts +2 -2
  884. package/plugin/helpers/index.ts +32 -5
  885. package/plugin/helpers/logRenderStart.ts +26 -0
  886. package/plugin/helpers/mergeMessageWithDefaults.ts +80 -0
  887. package/plugin/helpers/pipeToResponse.ts +77 -0
  888. package/plugin/helpers/requestInfo.ts +59 -39
  889. package/plugin/helpers/resolveComponents.client.ts +183 -0
  890. package/plugin/helpers/resolveModuleFromManifest.ts +99 -0
  891. package/plugin/helpers/resolvePageAndProps.ts +237 -50
  892. package/plugin/helpers/resolveRenderUrl.ts +26 -0
  893. package/plugin/helpers/resolveStreamElements.client.ts +50 -0
  894. package/plugin/helpers/resolveStreamElements.server.ts +43 -0
  895. package/plugin/helpers/resolveStreamElements.ts +13 -0
  896. package/plugin/helpers/resolveStreamElements.types.ts +29 -0
  897. package/plugin/helpers/resolveVirtualAndNodeModules.ts +75 -0
  898. package/plugin/helpers/resolveWithDefaultRootAndHtml.ts +25 -0
  899. package/plugin/helpers/serializeUserOptions.ts +37 -15
  900. package/plugin/helpers/tryManifest.ts +15 -6
  901. package/plugin/helpers/validateRscRenderMessage.ts +13 -0
  902. package/plugin/helpers/workerCleanup.ts +85 -0
  903. package/plugin/helpers/workerManager.ts +16 -0
  904. package/plugin/index.ts +6 -2
  905. package/plugin/loader/createDefaultLoader.ts +0 -21
  906. package/plugin/loader/createTransformer.ts +232 -46
  907. package/plugin/loader/directives/analyzeDirectives.ts +163 -73
  908. package/plugin/loader/directives/analyzeModule.ts +46 -19
  909. package/plugin/loader/env-loader.ts +56 -14
  910. package/plugin/loader/parse.ts +2 -2
  911. package/plugin/loader/react-loader.ts +133 -85
  912. package/plugin/loader/transformClientModule.ts +84 -26
  913. package/plugin/loader/transformModule.ts +103 -18
  914. package/plugin/loader/transformModuleIfNeeded.ts +20 -23
  915. package/plugin/loader/transformNonServerEnvironment.ts +103 -0
  916. package/plugin/loader/transformServerModule.ts +132 -37
  917. package/plugin/loader/types.ts +31 -23
  918. package/plugin/metrics/collectStreamMetrics.ts +1 -2
  919. package/plugin/metrics/convertStreamMetrics.ts +28 -0
  920. package/plugin/metrics/createModuleResolutionMetrics.ts +38 -0
  921. package/plugin/metrics/createRenderMetrics.ts +46 -13
  922. package/plugin/metrics/createStreamMetrics.ts +16 -6
  923. package/plugin/metrics/createWorkerStartupMetrics.ts +38 -0
  924. package/plugin/metrics/formatMetrics.ts +5 -33
  925. package/plugin/metrics/index.ts +6 -3
  926. package/plugin/metrics/metricWatcher.ts +216 -0
  927. package/plugin/metrics/types.ts +87 -8
  928. package/plugin/orchestrator/createPluginOrchestrator.client.ts +47 -0
  929. package/plugin/orchestrator/createPluginOrchestrator.server.ts +55 -0
  930. package/plugin/orchestrator/createPluginOrchestrator.ts +29 -0
  931. package/plugin/orchestrator/index.ts +1 -0
  932. package/plugin/orchestrator/resolveStrategy.ts +53 -0
  933. package/plugin/orchestrator/types.ts +24 -0
  934. package/plugin/plugin.client.ts +30 -32
  935. package/plugin/plugin.server.ts +38 -45
  936. package/plugin/plugin.ts +8 -2
  937. package/plugin/process-env.ts +30 -6
  938. package/plugin/react-client/createMessageHandlers.ts +9 -34
  939. package/plugin/react-client/index.client.ts +1 -0
  940. package/plugin/react-client/index.server.ts +1 -0
  941. package/plugin/react-client/index.ts +13 -4
  942. package/plugin/react-client/plugin.client.ts +124 -0
  943. package/plugin/react-client/plugin.server.ts +108 -0
  944. package/plugin/react-client/plugin.ts +13 -152
  945. package/plugin/react-client/types.ts +95 -0
  946. package/plugin/react-server/index.client.ts +1 -0
  947. package/plugin/react-server/index.server.ts +1 -0
  948. package/plugin/react-server/index.ts +13 -1
  949. package/plugin/react-server/plugin.client.ts +54 -0
  950. package/plugin/react-server/plugin.server.ts +27 -0
  951. package/plugin/react-server/plugin.ts +8 -183
  952. package/plugin/react-server/types.ts +24 -0
  953. package/plugin/react-static/collectHtmlContent.ts +131 -0
  954. package/plugin/react-static/collectRscContent.ts +92 -49
  955. package/plugin/react-static/configurePreviewServer.ts +20 -41
  956. package/plugin/react-static/createBuildLoader.client.ts +7 -0
  957. package/plugin/react-static/createBuildLoader.server.ts +333 -0
  958. package/plugin/react-static/createBuildLoader.ts +8 -300
  959. package/plugin/react-static/fileWriter.ts +303 -64
  960. package/plugin/react-static/index.client.ts +6 -0
  961. package/plugin/react-static/index.server.ts +6 -0
  962. package/plugin/react-static/index.ts +25 -1
  963. package/plugin/react-static/plugin.client.ts +932 -0
  964. package/plugin/react-static/plugin.server.ts +713 -0
  965. package/plugin/react-static/plugin.ts +8 -446
  966. package/plugin/react-static/processCssFilesForPages.ts +148 -0
  967. package/plugin/react-static/renderPage.client.ts +640 -0
  968. package/plugin/react-static/renderPage.server.ts +655 -0
  969. package/plugin/react-static/renderPage.ts +10 -172
  970. package/plugin/react-static/renderPages.ts +736 -139
  971. package/plugin/react-static/renderPagesBatched.ts +264 -0
  972. package/plugin/react-static/renderStreams.ts +12 -16
  973. package/plugin/react-static/rscToHtmlStream.client.ts +61 -0
  974. package/plugin/react-static/rscToHtmlStream.server.ts +66 -0
  975. package/plugin/react-static/rscToHtmlStream.ts +8 -80
  976. package/plugin/react-static/temporaryReferences.client.ts +1 -0
  977. package/plugin/react-static/temporaryReferences.server.ts +5 -0
  978. package/plugin/react-static/temporaryReferences.ts +11 -2
  979. package/plugin/react-static/types.ts +202 -8
  980. package/plugin/root.ts +1 -3
  981. package/plugin/stream/MessagePortReadable.ts +131 -0
  982. package/plugin/stream/MessagePortWritable.ts +104 -0
  983. package/plugin/stream/createFromNodeStream.client.ts +90 -0
  984. package/plugin/stream/createFromNodeStream.server.ts +30 -0
  985. package/plugin/stream/createFromNodeStream.ts +13 -0
  986. package/plugin/stream/createFromNodeStream.types.ts +53 -0
  987. package/plugin/stream/createHtmlStream.client.ts +47 -0
  988. package/plugin/stream/createHtmlStream.server.ts +312 -0
  989. package/plugin/stream/createHtmlStream.ts +13 -0
  990. package/plugin/stream/createHtmlStream.types.ts +63 -0
  991. package/plugin/stream/createMainThreadHandlers.ts +44 -0
  992. package/plugin/stream/createMessageChannels.ts +52 -0
  993. package/plugin/stream/createRenderToPipeableStreamHandler.client.ts +224 -0
  994. package/plugin/stream/createRenderToPipeableStreamHandler.server.ts +358 -0
  995. package/plugin/stream/createRenderToPipeableStreamHandler.ts +13 -0
  996. package/plugin/stream/createRenderToPipeableStreamHandler.types.ts +69 -0
  997. package/plugin/stream/createRscStream.client.ts +122 -0
  998. package/plugin/stream/createRscStream.server.ts +188 -0
  999. package/plugin/stream/createRscStream.ts +8 -0
  1000. package/plugin/stream/createRscStream.types.ts +168 -0
  1001. package/plugin/stream/createRscStream.utils.ts +171 -0
  1002. package/plugin/stream/createRscWorkerStream.ts +178 -0
  1003. package/plugin/stream/handleRscStream.client.ts +214 -0
  1004. package/plugin/stream/handleRscStream.server.ts +82 -0
  1005. package/plugin/stream/handleRscStream.ts +11 -0
  1006. package/plugin/stream/handleRscStream.types.ts +70 -0
  1007. package/plugin/stream/index.client.ts +15 -0
  1008. package/plugin/stream/index.server.ts +15 -0
  1009. package/plugin/stream/index.ts +137 -0
  1010. package/plugin/stream/renderRscStream.server.ts +182 -0
  1011. package/plugin/stream/renderRscStream.types.ts +43 -0
  1012. package/plugin/stream/renderRscStreamHelpers.server.ts +88 -0
  1013. package/plugin/stream/setMaxListeners.ts +30 -0
  1014. package/plugin/transformer/README.md +2 -381
  1015. package/plugin/transformer/createTransformerPlugin.ts +388 -0
  1016. package/plugin/transformer/plugin.client.ts +7 -0
  1017. package/plugin/transformer/plugin.server.ts +6 -140
  1018. package/plugin/transformer/transformerEnv.ts +49 -0
  1019. package/plugin/types/react-server-dom-esm.d.ts +269 -110
  1020. package/plugin/types/virtual-rsc-hmr.d.ts +21 -0
  1021. package/plugin/types.ts +637 -225
  1022. package/plugin/utils/createCallServer.ts +8 -18
  1023. package/plugin/utils/createReactFetcher.ts +87 -5
  1024. package/plugin/utils/env.ts +1 -1
  1025. package/plugin/utils/envUrls.node.ts +15 -10
  1026. package/plugin/utils/index.client.ts +8 -0
  1027. package/plugin/utils/index.server.ts +8 -0
  1028. package/plugin/utils/index.ts +5 -1
  1029. package/plugin/utils/routeToURL.ts +3 -4
  1030. package/plugin/utils/urls.ts +41 -9
  1031. package/plugin/utils/useRscHmr.ts +72 -0
  1032. package/plugin/vendor/vendor.client.ts +9 -7
  1033. package/plugin/vendor/vendor.server.ts +5 -4
  1034. package/plugin/vendor/vendor.static.ts +12 -0
  1035. package/plugin/vendor/vendor.ts +10 -5
  1036. package/plugin/worker/createWorker.ts +283 -41
  1037. package/plugin/worker/html/README.md +2 -65
  1038. package/plugin/worker/html/handleHtmlRender.ts +245 -0
  1039. package/plugin/worker/html/html-worker.development.tsx +5 -17
  1040. package/plugin/worker/html/html-worker.production.tsx +1 -1
  1041. package/plugin/worker/html/html-worker.ts +5 -5
  1042. package/plugin/worker/html/index.ts +6 -6
  1043. package/plugin/worker/html/messageHandler.tsx +317 -98
  1044. package/plugin/worker/html/state.ts +38 -0
  1045. package/plugin/worker/html/types.ts +108 -35
  1046. package/plugin/worker/rsc/README.md +2 -257
  1047. package/plugin/worker/rsc/createBundleLoader.ts +92 -0
  1048. package/plugin/worker/rsc/createRscWorkerLoader.ts +104 -0
  1049. package/plugin/worker/rsc/handleRscRender.ts +510 -0
  1050. package/plugin/worker/rsc/handlers.ts +159 -238
  1051. package/plugin/worker/rsc/hydrateRscRenderMessage.ts +118 -0
  1052. package/plugin/worker/rsc/messageHandler.tsx +1289 -56
  1053. package/plugin/worker/rsc/rsc-worker.development.ts +198 -185
  1054. package/plugin/worker/rsc/rsc-worker.production.ts +306 -21
  1055. package/plugin/worker/rsc/rsc-worker.tsx +3 -5
  1056. package/plugin/worker/rsc/state.ts +54 -2
  1057. package/plugin/worker/rsc/types.ts +110 -32
  1058. package/plugin/worker/rsc/workerUserOptions.ts +63 -0
  1059. package/plugin/worker/sendMessage.ts +33 -53
  1060. package/plugin/worker/types.ts +94 -91
  1061. package/scripts/generate-toc.mjs +311 -0
  1062. package/scripts/remove-toc.mjs +51 -0
  1063. package/scripts/test-both.sh +82 -0
  1064. package/dist/plugin/config/resolveDevServerConfig.d.ts +0 -2
  1065. package/dist/plugin/config/resolveDevServerConfig.d.ts.map +0 -1
  1066. package/dist/plugin/getNodeEnv.d.ts.map +0 -1
  1067. package/dist/plugin/getNodeEnv.js +0 -17
  1068. package/dist/plugin/helpers/collectBundleManifestCss.d.ts +0 -2
  1069. package/dist/plugin/helpers/collectBundleManifestCss.d.ts.map +0 -1
  1070. package/dist/plugin/helpers/collectBundleManifestCss.js +0 -2
  1071. package/dist/plugin/helpers/createEventHandler.d.ts +0 -22
  1072. package/dist/plugin/helpers/createEventHandler.d.ts.map +0 -1
  1073. package/dist/plugin/helpers/createEventHandler.js +0 -36
  1074. package/dist/plugin/helpers/createHandler.d.ts +0 -14
  1075. package/dist/plugin/helpers/createHandler.d.ts.map +0 -1
  1076. package/dist/plugin/helpers/createHandler.js +0 -75
  1077. package/dist/plugin/helpers/createRscStream.d.ts +0 -26
  1078. package/dist/plugin/helpers/createRscStream.d.ts.map +0 -1
  1079. package/dist/plugin/helpers/createRscStream.js +0 -174
  1080. package/dist/plugin/helpers/defaultFileWriter.d.ts +0 -2
  1081. package/dist/plugin/helpers/defaultFileWriter.d.ts.map +0 -1
  1082. package/dist/plugin/helpers/resolveComponents.d.ts +0 -27
  1083. package/dist/plugin/helpers/resolveComponents.d.ts.map +0 -1
  1084. package/dist/plugin/helpers/resolveComponents.js +0 -137
  1085. package/dist/plugin/helpers/resolveUserComponents.d.ts +0 -33
  1086. package/dist/plugin/helpers/resolveUserComponents.d.ts.map +0 -1
  1087. package/dist/plugin/helpers/resolveUserComponents.js +0 -163
  1088. package/dist/plugin/preserver/index.d.ts +0 -2
  1089. package/dist/plugin/preserver/index.d.ts.map +0 -1
  1090. package/dist/plugin/preserver/index.js +0 -1
  1091. package/dist/plugin/preserver/plugin.d.ts +0 -3
  1092. package/dist/plugin/preserver/plugin.d.ts.map +0 -1
  1093. package/dist/plugin/preserver/plugin.js +0 -134
  1094. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts +0 -11
  1095. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts.map +0 -1
  1096. package/dist/plugin/react-client/cleanupWorkerServerAction.js +0 -18
  1097. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts +0 -17
  1098. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +0 -1
  1099. package/dist/plugin/react-client/configureWorkerRequestHandler.js +0 -209
  1100. package/dist/plugin/react-client/createWorkerStream.d.ts +0 -26
  1101. package/dist/plugin/react-client/createWorkerStream.d.ts.map +0 -1
  1102. package/dist/plugin/react-client/createWorkerStream.js +0 -163
  1103. package/dist/plugin/react-client/handleWorkerRscStream.d.ts +0 -24
  1104. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +0 -1
  1105. package/dist/plugin/react-client/handleWorkerRscStream.js +0 -99
  1106. package/dist/plugin/react-client/handleWorkerServerAction.d.ts +0 -13
  1107. package/dist/plugin/react-client/handleWorkerServerAction.d.ts.map +0 -1
  1108. package/dist/plugin/react-client/handleWorkerServerAction.js +0 -62
  1109. package/dist/plugin/react-client/restartWorker.d.ts +0 -12
  1110. package/dist/plugin/react-client/restartWorker.d.ts.map +0 -1
  1111. package/dist/plugin/react-client/restartWorker.js +0 -70
  1112. package/dist/plugin/react-server/configureReactServer.d.ts +0 -10
  1113. package/dist/plugin/react-server/configureReactServer.d.ts.map +0 -1
  1114. package/dist/plugin/react-server/configureReactServer.js +0 -205
  1115. package/dist/plugin/react-server/handleServerAction.d.ts +0 -6
  1116. package/dist/plugin/react-server/handleServerAction.d.ts.map +0 -1
  1117. package/dist/plugin/react-server/handleServerAction.js +0 -159
  1118. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +0 -25
  1119. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +0 -1
  1120. package/dist/plugin/react-static/collectHtmlWorkerContent.js +0 -94
  1121. package/dist/plugin/react-static/streamHandler.d.ts +0 -2
  1122. package/dist/plugin/react-static/streamHandler.d.ts.map +0 -1
  1123. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts +0 -12
  1124. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +0 -1
  1125. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +0 -130
  1126. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts +0 -3
  1127. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts.map +0 -1
  1128. package/dist/plugin/worker/html/sendHtmlWorkerMessage.js +0 -2
  1129. package/dist/plugin/worker/rsc/handleRender.d.ts +0 -5
  1130. package/dist/plugin/worker/rsc/handleRender.d.ts.map +0 -1
  1131. package/dist/plugin/worker/rsc/handleRender.js +0 -140
  1132. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts +0 -3
  1133. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts.map +0 -1
  1134. package/dist/plugin/worker/rsc/sendRscWorkerMessage.js +0 -11
  1135. package/dist/plugin/worker/rsc/userOptions.d.ts +0 -2
  1136. package/dist/plugin/worker/rsc/userOptions.d.ts.map +0 -1
  1137. package/dist/plugin/worker/rsc/userOptions.js +0 -16
  1138. package/plugin/helpers/collectBundleManifestCss.ts +0 -1
  1139. package/plugin/helpers/createEventHandler.ts +0 -44
  1140. package/plugin/helpers/createHandler.ts +0 -97
  1141. package/plugin/helpers/createRscStream.tsx +0 -221
  1142. package/plugin/helpers/defaultFileWriter.ts +0 -0
  1143. package/plugin/helpers/resolveComponents.ts +0 -185
  1144. package/plugin/helpers/resolveUserComponents.ts +0 -190
  1145. package/plugin/preserver/index.ts +0 -1
  1146. package/plugin/preserver/plugin.ts +0 -178
  1147. package/plugin/react-client/cleanupWorkerServerAction.ts +0 -33
  1148. package/plugin/react-client/configureWorkerRequestHandler.ts +0 -255
  1149. package/plugin/react-client/createWorkerStream.ts +0 -210
  1150. package/plugin/react-client/handleWorkerRscStream.ts +0 -156
  1151. package/plugin/react-client/handleWorkerServerAction.ts +0 -96
  1152. package/plugin/react-client/restartWorker.ts +0 -91
  1153. package/plugin/react-server/configureReactServer.ts +0 -231
  1154. package/plugin/react-server/handleServerAction.ts +0 -192
  1155. package/plugin/react-static/collectHtmlWorkerContent.ts +0 -147
  1156. package/plugin/react-static/streamHandler.ts +0 -0
  1157. package/plugin/worker/html/createHtmlWorkerRenderState.tsx +0 -142
  1158. package/plugin/worker/html/sendHtmlWorkerMessage.ts +0 -8
  1159. package/plugin/worker/rsc/handleRender.ts +0 -175
  1160. package/plugin/worker/rsc/sendRscWorkerMessage.ts +0 -7
  1161. package/plugin/worker/rsc/userOptions.ts +0 -7
  1162. /package/dist/plugin/config/{resolveDevServerConfig.js → createHandlerOptions.types.js} +0 -0
  1163. /package/dist/plugin/{helpers/defaultFileWriter.js → dev-server/types.js} +0 -0
  1164. /package/dist/plugin/{react-static/streamHandler.js → error/types.js} +0 -0
  1165. /package/plugin/{config/resolveDevServerConfig.tsx → worker/worker-handlers.server.ts} +0 -0
@@ -7,12 +7,60 @@ import { Worker } from 'node:worker_threads';
7
7
  import { getNodePath, getMode } from '../config/getPaths.js';
8
8
  import { getCondition } from '../config/getCondition.js';
9
9
  import { join } from 'node:path';
10
+ import { existsSync } from 'node:fs';
10
11
  import { pluginRoot } from '../root.js';
11
- import * as React from 'react';
12
12
  import { DEFAULT_CONFIG } from '../config/defaults.js';
13
13
  import { createLogger } from 'vite';
14
+ import { handleError } from '../error/handleError.js';
14
15
  import { toError } from '../error/toError.js';
15
16
 
17
+ const activeWorkers = /* @__PURE__ */ new Set();
18
+ async function shutdownAllWorkers(timeout = 1e3) {
19
+ if (activeWorkers.size === 0) return;
20
+ const shutdownPromises = Array.from(activeWorkers).map((worker) => {
21
+ return new Promise((resolve) => {
22
+ let messageHandler;
23
+ const timeoutId = setTimeout(() => {
24
+ worker.removeListener("message", messageHandler);
25
+ worker.removeAllListeners();
26
+ try {
27
+ worker.terminate();
28
+ } catch (error) {
29
+ }
30
+ activeWorkers.delete(worker);
31
+ resolve();
32
+ }, timeout);
33
+ messageHandler = (message) => {
34
+ if (message.type === "SHUTDOWN_COMPLETE") {
35
+ clearTimeout(timeoutId);
36
+ worker.removeListener("message", messageHandler);
37
+ worker.removeAllListeners();
38
+ activeWorkers.delete(worker);
39
+ resolve();
40
+ }
41
+ };
42
+ worker.on("message", messageHandler);
43
+ try {
44
+ worker.postMessage({
45
+ type: "SHUTDOWN",
46
+ id: "*"
47
+ });
48
+ } catch (error) {
49
+ clearTimeout(timeoutId);
50
+ worker.removeListener("message", messageHandler);
51
+ worker.removeAllListeners();
52
+ try {
53
+ worker.terminate();
54
+ } catch (terminateError) {
55
+ }
56
+ activeWorkers.delete(worker);
57
+ resolve();
58
+ }
59
+ });
60
+ });
61
+ await Promise.all(shutdownPromises);
62
+ activeWorkers.clear();
63
+ }
16
64
  const createWorker = async function _createWorker(options) {
17
65
  const {
18
66
  projectRoot = process.cwd(),
@@ -35,64 +83,134 @@ const createWorker = async function _createWorker(options) {
35
83
  const id = reverseCondition === "react-server" ? "worker/rsc" : "worker/html";
36
84
  let workerPathWithDefault = typeof workerPath === "string" ? workerPath : void 0;
37
85
  if (!workerPathWithDefault) {
38
- workerPathWithDefault = join(pluginRoot, id);
86
+ const isProduction = mode === "production";
87
+ const workerFileName = reverseCondition === "react-server" ? `rsc-worker.${isProduction ? "production" : "development"}.js` : `html-worker.${isProduction ? "production" : "development"}.js`;
88
+ const sourcePath = join(pluginRoot, id, workerFileName);
89
+ if (verbose) {
90
+ logger.info(
91
+ `[create:${id}] Checking paths - Source: ${sourcePath}, PluginRoot: ${pluginRoot}`
92
+ );
93
+ }
94
+ if (!existsSync(sourcePath)) {
95
+ throw new Error(
96
+ `[create:${id}] Worker file doesn't exist: ${sourcePath}`
97
+ );
98
+ } else {
99
+ workerPathWithDefault = sourcePath;
100
+ if (verbose) {
101
+ logger.info(`[create:${id}] Using source worker path: ${sourcePath}`);
102
+ }
103
+ }
39
104
  }
40
105
  if (!workerPathWithDefault.startsWith("/")) {
41
106
  workerPathWithDefault = join("./", workerPathWithDefault);
42
107
  }
43
108
  const workerData = {
44
- userOptions: options.workerData.userOptions,
45
- resolvedConfig: options.workerData.resolvedConfig,
46
- reactVersion: options.workerData.reactVersion ?? React.version,
109
+ ...options.workerData,
47
110
  id: options.workerData.id ?? id
48
111
  };
49
112
  try {
50
- const isTestEnv = process.env["VITEST"] || process.env["NODE_ENV"] === "test";
51
- const nodeEnv = isTestEnv ? "test" : mode;
113
+ if (verbose) {
114
+ logger.info(
115
+ `[create:${id}] workerData.userOptions.build:
116
+ ${JSON.stringify(workerData.userOptions?.build)}
117
+
118
+ Call stack: ${new Error().stack?.split("\n").slice(1, 4).join("\n")}
119
+ Creating worker with path: ${workerPathWithDefault}
120
+ Node environment: ${mode}
121
+ Current condition: ${currentCondition}, Reverse condition: ${reverseCondition}`
122
+ );
123
+ }
124
+ const stripConditionsFromArgv = (argv) => {
125
+ const out = [];
126
+ for (let i = 0; i < argv.length; i++) {
127
+ const arg = argv[i];
128
+ if (arg === "--conditions" || arg === "-C") {
129
+ i++;
130
+ continue;
131
+ }
132
+ if (arg.startsWith("--conditions=")) {
133
+ continue;
134
+ }
135
+ out.push(arg);
136
+ }
137
+ return out;
138
+ };
139
+ const computedExecArgv = [
140
+ ...stripConditionsFromArgv(process.execArgv || []),
141
+ "--conditions",
142
+ reverseCondition
143
+ ];
144
+ if (verbose) {
145
+ logger.info(
146
+ `[create:${id}] Setting up worker with reverse condition: ${reverseCondition}`
147
+ );
148
+ logger.info(
149
+ `[create:${id}] Computed execArgv: ${JSON.stringify(computedExecArgv)}`
150
+ );
151
+ logger.info(
152
+ `[create:${id}] Current NODE_OPTIONS: ${process.env["NODE_OPTIONS"]}`
153
+ );
154
+ }
52
155
  const env = {
156
+ // Inherit all existing environment variables
157
+ ...process.env,
158
+ // Override with our specific variables
53
159
  [envPrefix + "DEV"]: mode === "development" ? "1" : "0",
54
160
  [envPrefix + "MODE"]: mode,
55
161
  [envPrefix + "PROD"]: mode === "production" ? "1" : "0",
56
162
  [envPrefix + "SSR"]: "true",
57
- [envPrefix + "BASE_URL"]: workerData.userOptions.moduleBaseURL ?? "",
58
- [envPrefix + "PUBLIC_ORIGIN"]: workerData.userOptions.publicOrigin ?? "",
59
- NODE_ENV: nodeEnv,
163
+ [envPrefix + "BASE_URL"]: workerData.userOptions?.moduleBaseURL ?? "",
164
+ [envPrefix + "PUBLIC_ORIGIN"]: workerData.userOptions?.publicOrigin ?? "",
165
+ NODE_ENV: process.env["NODE_ENV"] ?? "production",
60
166
  NODE_PATH: nodePath,
61
- NODE_OPTIONS: process.env["NODE_OPTIONS"]?.includes(reverseCondition) ? process.env["NODE_OPTIONS"] : process.env["NODE_OPTIONS"]?.includes(currentCondition) ? process.env["NODE_OPTIONS"]?.replace(
167
+ // Ensure NODE_OPTIONS has the correct condition
168
+ NODE_OPTIONS: process.env["NODE_OPTIONS"]?.includes(reverseCondition) ? process.env["NODE_OPTIONS"] : currentCondition != null && process.env["NODE_OPTIONS"]?.includes(currentCondition) ? process.env["NODE_OPTIONS"]?.replaceAll(
62
169
  currentCondition,
63
170
  reverseCondition
64
171
  ) : `${process.env["NODE_OPTIONS"] ?? ""} --conditions ${reverseCondition}`,
65
172
  HTML_CHUNK_SIZE: htmlChunkSize.toString()
66
173
  };
174
+ if (verbose) {
175
+ logger.info(
176
+ `[create:${id}] Worker NODE_OPTIONS will be: ${env.NODE_OPTIONS}`
177
+ );
178
+ logger.info(
179
+ `[create:${id}] Environment variables: ${Object.keys(env).join(", ")}`
180
+ );
181
+ logger.info(`[create:${id}] execArgv: ${computedExecArgv.join(" ")}`);
182
+ }
67
183
  const worker = new Worker(workerPathWithDefault, {
68
184
  env,
185
+ execArgv: computedExecArgv,
69
186
  resourceLimits,
70
187
  workerData,
71
188
  transferList
72
189
  });
190
+ activeWorkers.add(worker);
73
191
  worker.setMaxListeners(maxListeners);
192
+ if (verbose) {
193
+ logger.info(
194
+ `[create:${id}] Worker created, waiting for READY message...`
195
+ );
196
+ }
74
197
  return await new Promise(
75
198
  (resolve, reject) => {
76
199
  const workerType = reverseCondition === "react-server" ? "rsc" : "html";
77
- const startupTimeout = workerType === "rsc" ? options.workerData.userOptions.rscWorkerStartupTimeout : options.workerData.userOptions.htmlWorkerStartupTimeout;
200
+ const startupTimeout = workerType === "rsc" ? options.workerData.userOptions?.rscWorkerStartupTimeout : options.workerData.userOptions?.htmlWorkerStartupTimeout;
78
201
  const timeout = setTimeout(() => {
79
202
  reject({ type: "error", error: new Error("Worker ready timeout") });
80
203
  }, startupTimeout);
81
204
  const exitHandler = (code) => {
82
205
  clearTimeout(timeout);
83
206
  worker.removeListener("message", messageHandler);
84
- worker.removeListener("exit", exitHandler);
85
- if (code === 0) {
86
- resolve({
87
- type: "skip",
88
- reason: "Worker exited with code 0",
89
- workerPath: workerPathWithDefault
90
- });
91
- } else {
92
- const error = `[create:${id}] exited with code ${code}`;
93
- resolve({
94
- type: "skip",
95
- reason: error,
207
+ activeWorkers.delete(worker);
208
+ if (code !== 0) {
209
+ reject({
210
+ type: "error",
211
+ error: new Error(
212
+ `[create:${id}] Worker exited with code ${code}`
213
+ ),
96
214
  workerPath: workerPathWithDefault
97
215
  });
98
216
  }
@@ -100,19 +218,19 @@ const createWorker = async function _createWorker(options) {
100
218
  const messageHandler = (msg) => {
101
219
  if (verbose)
102
220
  logger.info(`[create:${id}] Initial worker message ${msg.type}`);
103
- if (msg.type === "READY") {
221
+ if (msg.type === "READY" && msg.id === id) {
104
222
  if (verbose)
105
223
  logger.info(`[create:${id}] Worker running for ${msg.env}`);
106
224
  clearTimeout(timeout);
107
225
  worker.removeListener("message", messageHandler);
108
226
  worker.removeListener("exit", exitHandler);
109
- if (msg.env !== nodeEnv) {
227
+ if (msg.env !== mode) {
110
228
  if (verbose)
111
229
  logger.info(`[create:${id}] Worker environment mismatch.`);
112
230
  reject({
113
231
  type: "error",
114
232
  error: new Error(
115
- `Worker environment mismatch: ${msg.env} !== ${nodeEnv}`
233
+ `Worker environment mismatch: ${msg.env} !== ${mode}`
116
234
  ),
117
235
  workerPath: workerPathWithDefault
118
236
  });
@@ -126,16 +244,75 @@ const createWorker = async function _createWorker(options) {
126
244
  };
127
245
  worker.once("message", messageHandler);
128
246
  worker.once("exit", exitHandler);
247
+ worker.on("error", (err) => {
248
+ activeWorkers.delete(worker);
249
+ if (verbose && err != null) {
250
+ logger.error(
251
+ `[create:${id}] Worker error: ${err.message}.
252
+ ${err.stack}`,
253
+ { error: err }
254
+ );
255
+ }
256
+ const panicError = handleError({
257
+ error: err,
258
+ logger,
259
+ panicThreshold: workerData.userOptions?.panicThreshold,
260
+ critical: false,
261
+ context: `Worker thread error for route ${id}`
262
+ });
263
+ if (panicError != null) {
264
+ if (verbose) {
265
+ logger.error(
266
+ `[create:${id}] Panic error detected: ${panicError.message}`,
267
+ { error: panicError }
268
+ );
269
+ }
270
+ reject({
271
+ type: "error",
272
+ error: err,
273
+ workerPath: workerPathWithDefault
274
+ });
275
+ }
276
+ reject({
277
+ type: "error",
278
+ error: new Error("Worker thread error", { cause: err }),
279
+ workerPath: workerPathWithDefault
280
+ });
281
+ });
129
282
  }
130
283
  );
131
284
  } catch (error) {
285
+ if (verbose) {
286
+ logger.error(
287
+ `[create:${id}] Caught error during worker creation: ${toError(error).message}`,
288
+ { error: error instanceof Error ? error : new Error(String(error)) }
289
+ );
290
+ }
291
+ const panicError = handleError({
292
+ error,
293
+ logger,
294
+ panicThreshold: workerData.userOptions?.panicThreshold,
295
+ critical: false});
296
+ if (panicError != null) {
297
+ if (verbose) {
298
+ logger.error(
299
+ `[create:${id}] Panic error in catch block: ${panicError.message}`,
300
+ { error: panicError }
301
+ );
302
+ }
303
+ return {
304
+ type: "error",
305
+ error: panicError,
306
+ workerPath: workerPathWithDefault
307
+ };
308
+ }
132
309
  return {
133
310
  type: "error",
134
- error: toError(error),
311
+ error: error instanceof Error ? error : new Error(String(error)),
135
312
  workerPath: workerPathWithDefault
136
313
  };
137
314
  }
138
315
  };
139
316
 
140
- export { createWorker };
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlV29ya2VyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vd29ya2VyL2NyZWF0ZVdvcmtlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBXb3JrZXIsXG4gIHR5cGUgUmVzb3VyY2VMaW1pdHMsXG4gIHR5cGUgVHJhbnNmZXJMaXN0SXRlbSxcbn0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB7IGdldE1vZGUsIGdldE5vZGVQYXRoIH0gZnJvbSBcIi4uL2NvbmZpZy9nZXRQYXRocy5qc1wiO1xuaW1wb3J0IHsgZ2V0Q29uZGl0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZy9nZXRDb25kaXRpb24uanNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwbHVnaW5Sb290IH0gZnJvbSBcIi4uL3Jvb3QuanNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tIFwiLi4vY29uZmlnL2RlZmF1bHRzLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIHR5cGUgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgSHRtbFdvcmtlck91dHB1dE1lc3NhZ2UgfSBmcm9tIFwiLi9odG1sL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJzY1dvcmtlck91dHB1dE1lc3NhZ2UgfSBmcm9tIFwiLi9yc2MvdHlwZXMuanNcIjtcbmltcG9ydCB7IHRvRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3IvdG9FcnJvci5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBTZXJpYWxpemVkUmVzb2x2ZWRDb25maWcsXG4gIFNlcmlhbGl6ZWRVc2VyT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbnR5cGUgQ3JlYXRlV29ya2VyU3VjY2VzcyA9IHtcbiAgdHlwZTogXCJzdWNjZXNzXCI7XG4gIHdvcmtlclBhdGg6IHN0cmluZztcbiAgcmVhc29uPzogbmV2ZXI7XG4gIGVycm9yPzogbmV2ZXI7XG4gIHdvcmtlcjogV29ya2VyO1xufTtcblxudHlwZSBDcmVhdGVXb3JrZXJFcnJvciA9IHtcbiAgdHlwZTogXCJlcnJvclwiO1xuICB3b3JrZXJQYXRoOiBzdHJpbmc7XG4gIGVycm9yOiBFcnJvcjtcbiAgd29ya2VyPzogbmV2ZXI7XG4gIHJlYXNvbj86IG5ldmVyO1xufTtcblxudHlwZSBDcmVhdGVXb3JrZXJTa2lwID0ge1xuICB0eXBlOiBcInNraXBcIjtcbiAgcmVhc29uOiBzdHJpbmc7XG4gIHdvcmtlclBhdGg6IHN0cmluZztcbiAgd29ya2VyPzogbmV2ZXI7XG4gIGVycm9yPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVXb3JrZXJSZXR1cm4gPVxuICB8IENyZWF0ZVdvcmtlclN1Y2Nlc3NcbiAgfCBDcmVhdGVXb3JrZXJFcnJvclxuICB8IENyZWF0ZVdvcmtlclNraXA7XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVdvcmtlck9wdGlvbnMgPSB7XG4gIHByb2plY3RSb290Pzogc3RyaW5nO1xuICBjdXJyZW50Q29uZGl0aW9uPzogXCJyZWFjdC1zZXJ2ZXJcIiB8IFwicmVhY3QtY2xpZW50XCI7XG4gIG5vZGVQYXRoPzogc3RyaW5nO1xuICBub2RlT3B0aW9ucz86IHN0cmluZ1tdO1xuICBlbnZQcmVmaXg/OiBzdHJpbmc7XG4gIG1vZGU/OiBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIjtcbiAgcmV2ZXJzZUNvbmRpdGlvbj86IHN0cmluZztcbiAgbWF4TGlzdGVuZXJzPzogbnVtYmVyO1xuICB3b3JrZXJQYXRoPzogc3RyaW5nO1xuICByZXNvdXJjZUxpbWl0cz86IFJlc291cmNlTGltaXRzO1xuICB0eXBlc2NyaXB0PzogYm9vbGVhbjtcbiAgaHRtbENodW5rU2l6ZT86IG51bWJlcjsgLy8gU2l6ZSBvZiBIVE1MIGNodW5rcyBpbiBieXRlc1xuICB3b3JrZXJEYXRhOiB7XG4gICAgdXNlck9wdGlvbnM6IFNlcmlhbGl6ZWRVc2VyT3B0aW9ucztcbiAgICByZXNvbHZlZENvbmZpZzogU2VyaWFsaXplZFJlc29sdmVkQ29uZmlnO1xuICAgIHJlYWN0VmVyc2lvbj86IHN0cmluZztcbiAgICBpZD86IHN0cmluZztcbiAgfTtcbiAgdHJhbnNmZXJMaXN0PzogVHJhbnNmZXJMaXN0SXRlbVtdO1xuICBsb2dnZXI/OiBMb2dnZXI7XG4gIHZlcmJvc2U/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlV29ya2VyRm4gPSAoXG4gIG9wdGlvbnM6IENyZWF0ZVdvcmtlck9wdGlvbnNcbikgPT4gUHJvbWlzZTxDcmVhdGVXb3JrZXJSZXR1cm4+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlV29ya2VyOiBDcmVhdGVXb3JrZXJGbiA9IGFzeW5jIGZ1bmN0aW9uIF9jcmVhdGVXb3JrZXIoXG4gIG9wdGlvbnNcbikge1xuICBjb25zdCB7XG4gICAgcHJvamVjdFJvb3QgPSBwcm9jZXNzLmN3ZCgpLFxuICAgIG5vZGVQYXRoID0gZ2V0Tm9kZVBhdGgocHJvamVjdFJvb3QpLFxuICAgIGN1cnJlbnRDb25kaXRpb24gPSBnZXRDb25kaXRpb24oKSxcbiAgICBlbnZQcmVmaXggPSBERUZBVUxUX0NPTkZJRy5FTlZfUFJFRklYLFxuICAgIHJldmVyc2VDb25kaXRpb24gPSBjdXJyZW50Q29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiXG4gICAgICA/IFwicmVhY3QtY2xpZW50XCJcbiAgICAgIDogXCJyZWFjdC1zZXJ2ZXJcIixcbiAgICBtYXhMaXN0ZW5lcnMgPSAxMDAsXG4gICAgbW9kZSA9IGdldE1vZGUoKSxcbiAgICB3b3JrZXJQYXRoLFxuICAgIHJlc291cmNlTGltaXRzID0ge1xuICAgICAgbWF4T2xkR2VuZXJhdGlvblNpemVNYjogMTI4LFxuICAgICAgbWF4WW91bmdHZW5lcmF0aW9uU2l6ZU1iOiA2NCxcbiAgICB9LFxuICAgIGh0bWxDaHVua1NpemUgPSA4ICogMTAyNCxcbiAgICB0cmFuc2Zlckxpc3QgPSBbXSxcbiAgICBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoKSxcbiAgICB2ZXJib3NlID0gZmFsc2UsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBpZCA9IHJldmVyc2VDb25kaXRpb24gPT09IFwicmVhY3Qtc2VydmVyXCIgPyBcIndvcmtlci9yc2NcIiA6IFwid29ya2VyL2h0bWxcIjtcbiAgbGV0IHdvcmtlclBhdGhXaXRoRGVmYXVsdCA9XG4gICAgdHlwZW9mIHdvcmtlclBhdGggPT09IFwic3RyaW5nXCIgPyB3b3JrZXJQYXRoIDogdW5kZWZpbmVkO1xuICBpZiAoIXdvcmtlclBhdGhXaXRoRGVmYXVsdCkge1xuICAgIHdvcmtlclBhdGhXaXRoRGVmYXVsdCA9IGpvaW4ocGx1Z2luUm9vdCwgaWQpO1xuICB9XG4gIGlmICghd29ya2VyUGF0aFdpdGhEZWZhdWx0LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgd29ya2VyUGF0aFdpdGhEZWZhdWx0ID0gam9pbihcIi4vXCIsIHdvcmtlclBhdGhXaXRoRGVmYXVsdCk7XG4gIH1cbiAgLy8gRW5zdXJlIHdvcmtlciB1c2VzIHRoZSBzYW1lIFJlYWN0IHZlcnNpb25cbiAgY29uc3Qgd29ya2VyRGF0YSA9IHtcbiAgICB1c2VyT3B0aW9uczogb3B0aW9ucy53b3JrZXJEYXRhLnVzZXJPcHRpb25zLFxuICAgIHJlc29sdmVkQ29uZmlnOiBvcHRpb25zLndvcmtlckRhdGEucmVzb2x2ZWRDb25maWcsXG4gICAgcmVhY3RWZXJzaW9uOiBvcHRpb25zLndvcmtlckRhdGEucmVhY3RWZXJzaW9uID8/IFJlYWN0LnZlcnNpb24sXG4gICAgaWQ6IG9wdGlvbnMud29ya2VyRGF0YS5pZCA/PyBpZCxcbiAgfTtcblxuICB0cnkge1xuICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IE5PREVfRU5WIGJldHdlZW4gbWFpbiB0aHJlYWQgYW5kIHdvcmtlclxuICAgIGNvbnN0IGlzVGVzdEVudiA9XG4gICAgICBwcm9jZXNzLmVudltcIlZJVEVTVFwiXSB8fCBwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID09PSBcInRlc3RcIjtcbiAgICBjb25zdCBub2RlRW52ID0gaXNUZXN0RW52ID8gXCJ0ZXN0XCIgOiBtb2RlO1xuXG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgW2VudlByZWZpeCArIFwiREVWXCJdOiBtb2RlID09PSBcImRldmVsb3BtZW50XCIgPyBcIjFcIiA6IFwiMFwiLFxuICAgICAgW2VudlByZWZpeCArIFwiTU9ERVwiXTogbW9kZSxcbiAgICAgIFtlbnZQcmVmaXggKyBcIlBST0RcIl06IG1vZGUgPT09IFwicHJvZHVjdGlvblwiID8gXCIxXCIgOiBcIjBcIixcbiAgICAgIFtlbnZQcmVmaXggKyBcIlNTUlwiXTogXCJ0cnVlXCIsXG4gICAgICBbZW52UHJlZml4ICsgXCJCQVNFX1VSTFwiXTogd29ya2VyRGF0YS51c2VyT3B0aW9ucy5tb2R1bGVCYXNlVVJMID8/IFwiXCIsXG4gICAgICBbZW52UHJlZml4ICsgXCJQVUJMSUNfT1JJR0lOXCJdOiB3b3JrZXJEYXRhLnVzZXJPcHRpb25zLnB1YmxpY09yaWdpbiA/PyBcIlwiLFxuICAgICAgTk9ERV9FTlY6IG5vZGVFbnYsXG4gICAgICBOT0RFX1BBVEg6IG5vZGVQYXRoLFxuICAgICAgTk9ERV9PUFRJT05TOiBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXT8uaW5jbHVkZXMocmV2ZXJzZUNvbmRpdGlvbilcbiAgICAgICAgPyBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXVxuICAgICAgICA6IHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdPy5pbmNsdWRlcyhjdXJyZW50Q29uZGl0aW9uKVxuICAgICAgICA/IHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdPy5yZXBsYWNlKFxuICAgICAgICAgICAgY3VycmVudENvbmRpdGlvbixcbiAgICAgICAgICAgIHJldmVyc2VDb25kaXRpb25cbiAgICAgICAgICApXG4gICAgICAgIDogYCR7XG4gICAgICAgICAgICBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXSA/PyBcIlwiXG4gICAgICAgICAgfSAtLWNvbmRpdGlvbnMgJHtyZXZlcnNlQ29uZGl0aW9ufWAsXG4gICAgICBIVE1MX0NIVU5LX1NJWkU6IGh0bWxDaHVua1NpemUudG9TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIHdvcmtlciB3aXRoIHByb3BlciBlbnZpcm9ubWVudCBhbmQgbG9hZGVyc1xuICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyUGF0aFdpdGhEZWZhdWx0LCB7XG4gICAgICBlbnYsXG4gICAgICByZXNvdXJjZUxpbWl0cyxcbiAgICAgIHdvcmtlckRhdGEsXG4gICAgICB0cmFuc2Zlckxpc3QsXG4gICAgfSk7XG5cbiAgICB3b3JrZXIuc2V0TWF4TGlzdGVuZXJzKG1heExpc3RlbmVycyk7XG5cbiAgICAvLyBXYWl0IGZvciB3b3JrZXIgdG8gYmUgcmVhZHlcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8Q3JlYXRlV29ya2VyU3VjY2VzcyB8IENyZWF0ZVdvcmtlclNraXA+KFxuICAgICAgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAvLyBVc2UgYXBwcm9wcmlhdGUgdGltZW91dCBiYXNlZCBvbiB3b3JrZXIgdHlwZVxuICAgICAgICBjb25zdCB3b3JrZXJUeXBlID0gcmV2ZXJzZUNvbmRpdGlvbiA9PT0gXCJyZWFjdC1zZXJ2ZXJcIiA/IFwicnNjXCIgOiBcImh0bWxcIjtcbiAgICAgICAgY29uc3Qgc3RhcnR1cFRpbWVvdXQgPSB3b3JrZXJUeXBlID09PSBcInJzY1wiIFxuICAgICAgICAgID8gb3B0aW9ucy53b3JrZXJEYXRhLnVzZXJPcHRpb25zLnJzY1dvcmtlclN0YXJ0dXBUaW1lb3V0IFxuICAgICAgICAgIDogb3B0aW9ucy53b3JrZXJEYXRhLnVzZXJPcHRpb25zLmh0bWxXb3JrZXJTdGFydHVwVGltZW91dDtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZWplY3QoeyB0eXBlOiBcImVycm9yXCIsIGVycm9yOiBuZXcgRXJyb3IoXCJXb3JrZXIgcmVhZHkgdGltZW91dFwiKSB9KTtcbiAgICAgICAgfSwgc3RhcnR1cFRpbWVvdXQpO1xuICAgICAgICBjb25zdCBleGl0SGFuZGxlciA9IChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwiZXhpdFwiLCBleGl0SGFuZGxlcik7XG4gICAgICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICB0eXBlOiBcInNraXBcIixcbiAgICAgICAgICAgICAgcmVhc29uOiBcIldvcmtlciBleGl0ZWQgd2l0aCBjb2RlIDBcIixcbiAgICAgICAgICAgICAgd29ya2VyUGF0aDogd29ya2VyUGF0aFdpdGhEZWZhdWx0LFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgQ3JlYXRlV29ya2VyU2tpcCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gYFtjcmVhdGU6JHtpZH1dIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfWA7XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgdHlwZTogXCJza2lwXCIsXG4gICAgICAgICAgICAgIHJlYXNvbjogZXJyb3IsXG4gICAgICAgICAgICAgIHdvcmtlclBhdGg6IHdvcmtlclBhdGhXaXRoRGVmYXVsdCxcbiAgICAgICAgICAgIH0gc2F0aXNmaWVzIENyZWF0ZVdvcmtlclNraXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWVzc2FnZUhhbmRsZXIgPSAoXG4gICAgICAgICAgbXNnOiBIdG1sV29ya2VyT3V0cHV0TWVzc2FnZSB8IFJzY1dvcmtlck91dHB1dE1lc3NhZ2VcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gSW5pdGlhbCB3b3JrZXIgbWVzc2FnZSAke21zZy50eXBlfWApO1xuICAgICAgICAgIGlmIChtc2cudHlwZSA9PT0gXCJSRUFEWVwiKSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSlcbiAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBydW5uaW5nIGZvciAke21zZy5lbnZ9YCk7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICB3b3JrZXIucmVtb3ZlTGlzdGVuZXIoXCJtZXNzYWdlXCIsIG1lc3NhZ2VIYW5kbGVyKTtcbiAgICAgICAgICAgIHdvcmtlci5yZW1vdmVMaXN0ZW5lcihcImV4aXRcIiwgZXhpdEhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKG1zZy5lbnYgIT09IG5vZGVFbnYpIHtcbiAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBlbnZpcm9ubWVudCBtaXNtYXRjaC5gKTtcbiAgICAgICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBXb3JrZXIgZW52aXJvbm1lbnQgbWlzbWF0Y2g6ICR7bXNnLmVudn0gIT09ICR7bm9kZUVudn1gXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB3b3JrZXJQYXRoOiB3b3JrZXJQYXRoV2l0aERlZmF1bHQsXG4gICAgICAgICAgICAgIH0gc2F0aXNmaWVzIENyZWF0ZVdvcmtlckVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgd29ya2VyLFxuICAgICAgICAgICAgICB3b3JrZXJQYXRoOiB3b3JrZXJQYXRoV2l0aERlZmF1bHQsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBDcmVhdGVXb3JrZXJTdWNjZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdvcmtlci5vbmNlKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICAgIHdvcmtlci5vbmNlKFwiZXhpdFwiLCBleGl0SGFuZGxlcik7XG4gICAgICB9XG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgZXJyb3I6IHRvRXJyb3IoZXJyb3IpLFxuICAgICAgd29ya2VyUGF0aDogd29ya2VyUGF0aFdpdGhEZWZhdWx0LFxuICAgIH07XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkVhLE1BQUEsWUFBQSxHQUErQixlQUFlLGFBQUEsQ0FDekQsT0FDQSxFQUFBO0FBQ0EsRUFBTSxNQUFBO0FBQUEsSUFDSixXQUFBLEdBQWMsUUFBUSxHQUFJLEVBQUE7QUFBQSxJQUMxQixRQUFBLEdBQVcsWUFBWSxXQUFXLENBQUE7QUFBQSxJQUNsQyxtQkFBbUIsWUFBYSxFQUFBO0FBQUEsSUFDaEMsWUFBWSxjQUFlLENBQUEsVUFBQTtBQUFBLElBQzNCLGdCQUFBLEdBQW1CLGdCQUFxQixLQUFBLGNBQUEsR0FDcEMsY0FDQSxHQUFBLGNBQUE7QUFBQSxJQUNKLFlBQWUsR0FBQSxHQUFBO0FBQUEsSUFDZixPQUFPLE9BQVEsRUFBQTtBQUFBLElBQ2YsVUFBQTtBQUFBLElBQ0EsY0FBaUIsR0FBQTtBQUFBLE1B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
317
+ export { createWorker, shutdownAllWorkers };
318
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlV29ya2VyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vd29ya2VyL2NyZWF0ZVdvcmtlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBXb3JrZXIsXG4gIHR5cGUgUmVzb3VyY2VMaW1pdHMsXG4gIHR5cGUgVHJhbnNmZXJMaXN0SXRlbSxcbiAgdHlwZSBNZXNzYWdlUG9ydCxcbn0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlnRW52IH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IGdldE1vZGUsIGdldE5vZGVQYXRoIH0gZnJvbSBcIi4uL2NvbmZpZy9nZXRQYXRocy5qc1wiO1xuaW1wb3J0IHsgZ2V0Q29uZGl0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZy9nZXRDb25kaXRpb24uanNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IHBsdWdpblJvb3QgfSBmcm9tIFwiLi4vcm9vdC5qc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tIFwiLi4vY29uZmlnL2RlZmF1bHRzLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIHR5cGUgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgSHRtbFdvcmtlck91dHB1dE1lc3NhZ2UgfSBmcm9tIFwiLi9odG1sL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJzY1dvcmtlck91dHB1dE1lc3NhZ2UgfSBmcm9tIFwiLi9yc2MvdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgU2VyaWFsaXplZFJlc29sdmVkQ29uZmlnLFxuICBTZXJpYWxpemVkVXNlck9wdGlvbnMsXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBNYW5pZmVzdCB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgdHlwZSB7IE91dHB1dEJ1bmRsZSB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCB7IGhhbmRsZUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yL2hhbmRsZUVycm9yLmpzXCI7XG5pbXBvcnQgeyB0b0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9yL3RvRXJyb3IuanNcIjtcblxuLy8gR2xvYmFsIHdvcmtlciByZWdpc3RyeSBmb3IgZ3JhY2VmdWwgc2h1dGRvd25cbmNvbnN0IGFjdGl2ZVdvcmtlcnMgPSBuZXcgU2V0PFdvcmtlcj4oKTtcblxuLy8gR3JhY2VmdWwgc2h1dGRvd24gZnVuY3Rpb24gdXNpbmcgdGhlIGV4aXN0aW5nIFNIVVRET1dOIHByb3RvY29sXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2h1dGRvd25BbGxXb3JrZXJzKHRpbWVvdXQ6IG51bWJlciA9IDEwMDApOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKGFjdGl2ZVdvcmtlcnMuc2l6ZSA9PT0gMCkgcmV0dXJuO1xuXG4gIGNvbnN0IHNodXRkb3duUHJvbWlzZXMgPSBBcnJheS5mcm9tKGFjdGl2ZVdvcmtlcnMpLm1hcCh3b3JrZXIgPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IG1lc3NhZ2VIYW5kbGVyOiAoKG1lc3NhZ2U6IGFueSkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gICAgICBcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB3b3JrZXIucmVtb3ZlTGlzdGVuZXIoXCJtZXNzYWdlXCIsIG1lc3NhZ2VIYW5kbGVyISk7XG4gICAgICAgIHdvcmtlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgLy8gSWdub3JlIHRlcm1pbmF0aW9uIGVycm9yc1xuICAgICAgICB9XG4gICAgICAgIGFjdGl2ZVdvcmtlcnMuZGVsZXRlKHdvcmtlcik7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0sIHRpbWVvdXQpO1xuXG4gICAgICBtZXNzYWdlSGFuZGxlciA9IChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJTSFVURE9XTl9DT01QTEVURVwiKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlciEpO1xuICAgICAgICAgIHdvcmtlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgICBhY3RpdmVXb3JrZXJzLmRlbGV0ZSh3b3JrZXIpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgd29ya2VyLm9uKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICBcbiAgICAgIC8vIFNlbmQgZ3JhY2VmdWwgc2h1dGRvd24gbWVzc2FnZVxuICAgICAgdHJ5IHtcbiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICB0eXBlOiBcIlNIVVRET1dOXCIsXG4gICAgICAgICAgaWQ6IFwiKlwiLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIElmIHdlIGNhbid0IHNlbmQgdGhlIG1lc3NhZ2UsIGZvcmNlIHRlcm1pbmF0ZVxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlciEpO1xuICAgICAgICB3b3JrZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgICAgICB9IGNhdGNoICh0ZXJtaW5hdGVFcnJvcikge1xuICAgICAgICAgIC8vIElnbm9yZSB0ZXJtaW5hdGlvbiBlcnJvcnNcbiAgICAgICAgfVxuICAgICAgICBhY3RpdmVXb3JrZXJzLmRlbGV0ZSh3b3JrZXIpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGF3YWl0IFByb21pc2UuYWxsKHNodXRkb3duUHJvbWlzZXMpO1xuICBhY3RpdmVXb3JrZXJzLmNsZWFyKCk7XG59XG5cblxudHlwZSBDcmVhdGVXb3JrZXJTdWNjZXNzID0ge1xuICB0eXBlOiBcInN1Y2Nlc3NcIjtcbiAgd29ya2VyUGF0aDogc3RyaW5nO1xuICByZWFzb24/OiBuZXZlcjtcbiAgZXJyb3I/OiBuZXZlcjtcbiAgd29ya2VyOiBXb3JrZXI7XG59O1xuXG50eXBlIENyZWF0ZVdvcmtlckVycm9yID0ge1xuICB0eXBlOiBcImVycm9yXCI7XG4gIHdvcmtlclBhdGg6IHN0cmluZztcbiAgZXJyb3I6IEVycm9yIHwgbnVsbDtcbiAgd29ya2VyPzogbmV2ZXI7XG4gIHJlYXNvbj86IG5ldmVyO1xufTtcblxudHlwZSBDcmVhdGVXb3JrZXJTa2lwID0ge1xuICB0eXBlOiBcInNraXBcIjtcbiAgcmVhc29uOiBzdHJpbmc7XG4gIHdvcmtlclBhdGg6IHN0cmluZztcbiAgd29ya2VyPzogbmV2ZXI7XG4gIGVycm9yPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVXb3JrZXJSZXR1cm4gPVxuICB8IENyZWF0ZVdvcmtlclN1Y2Nlc3NcbiAgfCBDcmVhdGVXb3JrZXJFcnJvclxuICB8IENyZWF0ZVdvcmtlclNraXA7XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVdvcmtlck9wdGlvbnMgPSB7XG4gIHByb2plY3RSb290Pzogc3RyaW5nO1xuICBjdXJyZW50Q29uZGl0aW9uPzogXCJyZWFjdC1zZXJ2ZXJcIiB8IFwicmVhY3QtY2xpZW50XCI7XG4gIG5vZGVQYXRoPzogc3RyaW5nO1xuICBub2RlT3B0aW9ucz86IHN0cmluZ1tdO1xuICBlbnZQcmVmaXg/OiBzdHJpbmc7XG4gIG1vZGU/OiBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIiB8IFwidGVzdFwiO1xuICByZXZlcnNlQ29uZGl0aW9uPzogc3RyaW5nO1xuICBtYXhMaXN0ZW5lcnM/OiBudW1iZXI7XG4gIHdvcmtlclBhdGg/OiBzdHJpbmc7XG4gIHJlc291cmNlTGltaXRzPzogUmVzb3VyY2VMaW1pdHM7XG4gIHR5cGVzY3JpcHQ/OiBib29sZWFuO1xuICBodG1sQ2h1bmtTaXplPzogbnVtYmVyOyAvLyBTaXplIG9mIEhUTUwgY2h1bmtzIGluIGJ5dGVzXG4gIHdvcmtlckRhdGE6IHtcbiAgICB1c2VyT3B0aW9ucz86IFNlcmlhbGl6ZWRVc2VyT3B0aW9ucztcbiAgICByZXNvbHZlZENvbmZpZz86IFNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZztcbiAgICBjb25maWdFbnY/OiBDb25maWdFbnY7XG4gICAgcmVhY3RWZXJzaW9uPzogc3RyaW5nO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHNlcnZlck1hbmlmZXN0PzogTWFuaWZlc3Q7XG4gICAgYnVuZGxlPzogT3V0cHV0QnVuZGxlO1xuICAgIHN0YXRpY0J1bmRsZT86IE91dHB1dEJ1bmRsZTtcbiAgICBzZXJ2ZXJQaXBlYWJsZVN0cmVhbU9wdGlvbnM/OiBhbnk7XG4gICAgY2xpZW50UGlwZWFibGVTdHJlYW1PcHRpb25zPzogYW55O1xuICAgIGhtclBvcnQ/OiBNZXNzYWdlUG9ydDtcbiAgfTtcbiAgdHJhbnNmZXJMaXN0PzogVHJhbnNmZXJMaXN0SXRlbVtdO1xuICBsb2dnZXI/OiBMb2dnZXI7XG4gIHZlcmJvc2U/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlV29ya2VyRm4gPSAoXG4gIG9wdGlvbnM6IENyZWF0ZVdvcmtlck9wdGlvbnNcbikgPT4gUHJvbWlzZTxDcmVhdGVXb3JrZXJSZXR1cm4+O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlV29ya2VyOiBDcmVhdGVXb3JrZXJGbiA9IGFzeW5jIGZ1bmN0aW9uIF9jcmVhdGVXb3JrZXIoXG4gIG9wdGlvbnNcbikge1xuICBjb25zdCB7XG4gICAgcHJvamVjdFJvb3QgPSBwcm9jZXNzLmN3ZCgpLFxuICAgIG5vZGVQYXRoID0gZ2V0Tm9kZVBhdGgocHJvamVjdFJvb3QpLFxuICAgIGN1cnJlbnRDb25kaXRpb24gPSBnZXRDb25kaXRpb24oKSxcbiAgICBlbnZQcmVmaXggPSBERUZBVUxUX0NPTkZJRy5FTlZfUFJFRklYLFxuICAgIHJldmVyc2VDb25kaXRpb24gPSBjdXJyZW50Q29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiXG4gICAgICA/IFwicmVhY3QtY2xpZW50XCJcbiAgICAgIDogXCJyZWFjdC1zZXJ2ZXJcIixcbiAgICBtYXhMaXN0ZW5lcnMgPSAxMDAsXG4gICAgbW9kZSA9IGdldE1vZGUoKSxcbiAgICB3b3JrZXJQYXRoLFxuICAgIHJlc291cmNlTGltaXRzID0ge1xuICAgICAgbWF4T2xkR2VuZXJhdGlvblNpemVNYjogMTI4LFxuICAgICAgbWF4WW91bmdHZW5lcmF0aW9uU2l6ZU1iOiA2NCxcbiAgICB9LFxuICAgIGh0bWxDaHVua1NpemUgPSA4ICogMTAyNCxcbiAgICB0cmFuc2Zlckxpc3QgPSBbXSxcbiAgICBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoKSxcbiAgICB2ZXJib3NlID0gZmFsc2UsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBpZCA9IHJldmVyc2VDb25kaXRpb24gPT09IFwicmVhY3Qtc2VydmVyXCIgPyBcIndvcmtlci9yc2NcIiA6IFwid29ya2VyL2h0bWxcIjtcbiAgbGV0IHdvcmtlclBhdGhXaXRoRGVmYXVsdCA9XG4gICAgdHlwZW9mIHdvcmtlclBhdGggPT09IFwic3RyaW5nXCIgPyB3b3JrZXJQYXRoIDogdW5kZWZpbmVkO1xuICBpZiAoIXdvcmtlclBhdGhXaXRoRGVmYXVsdCkge1xuICAgIC8vIFVzZSB0aGUgZGVmYXVsdCB3b3JrZXIgcGF0aHMgdGhhdCBpbmNsdWRlIHRoZSBmdWxsIGZpbGVuYW1lXG4gICAgY29uc3QgaXNQcm9kdWN0aW9uID0gbW9kZSA9PT0gXCJwcm9kdWN0aW9uXCI7XG4gICAgY29uc3Qgd29ya2VyRmlsZU5hbWUgPVxuICAgICAgcmV2ZXJzZUNvbmRpdGlvbiA9PT0gXCJyZWFjdC1zZXJ2ZXJcIlxuICAgICAgICA/IGByc2Mtd29ya2VyLiR7aXNQcm9kdWN0aW9uID8gXCJwcm9kdWN0aW9uXCIgOiBcImRldmVsb3BtZW50XCJ9LmpzYFxuICAgICAgICA6IGBodG1sLXdvcmtlci4ke2lzUHJvZHVjdGlvbiA/IFwicHJvZHVjdGlvblwiIDogXCJkZXZlbG9wbWVudFwifS5qc2A7XG5cbiAgICAvLyBUcnkgc291cmNlIGRpcmVjdG9yeSBmaXJzdFxuICAgIGNvbnN0IHNvdXJjZVBhdGggPSBqb2luKHBsdWdpblJvb3QsIGlkLCB3b3JrZXJGaWxlTmFtZSk7XG5cbiAgICAvLyBBbHdheXMgbG9nIHRoZSBwYXRocyBmb3IgZGVidWdnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgW2NyZWF0ZToke2lkfV0gQ2hlY2tpbmcgcGF0aHMgLSBTb3VyY2U6ICR7c291cmNlUGF0aH0sIFBsdWdpblJvb3Q6ICR7cGx1Z2luUm9vdH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIElmIHNvdXJjZSBwYXRoIGRvZXNuJ3QgZXhpc3QsIHRyeSBidWlsdCBkaXJlY3RvcnlcbiAgICBpZiAoIWV4aXN0c1N5bmMoc291cmNlUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBmaWxlIGRvZXNuJ3QgZXhpc3Q6ICR7c291cmNlUGF0aH1gXG4gICAgICApO1xuICAgICAgLy8gY29uc3QgYnVpbHRQYXRoID0gam9pbihwbHVnaW5Sb290LnJlcGxhY2UoXCIvcGx1Z2luL1wiLCBcIi9kaXN0L3BsdWdpbi9cIiksIGlkLCB3b3JrZXJGaWxlTmFtZSk7XG4gICAgICAvLyBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gU291cmNlIHBhdGggZG9lc24ndCBleGlzdCwgY2hlY2tpbmcgYnVpbHQgcGF0aDogJHtidWlsdFBhdGh9YCk7XG5cbiAgICAgIC8vIGlmIChleGlzdHNTeW5jKGJ1aWx0UGF0aCkpIHtcbiAgICAgIC8vICAgd29ya2VyUGF0aFdpdGhEZWZhdWx0ID0gYnVpbHRQYXRoO1xuICAgICAgLy8gICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gVXNpbmcgYnVpbHQgd29ya2VyIHBhdGg6ICR7YnVpbHRQYXRofWApO1xuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vICAgd29ya2VyUGF0aFdpdGhEZWZhdWx0ID0gc291cmNlUGF0aDsgLy8gRmFsbGJhY2sgdG8gc291cmNlIHBhdGggZm9yIGVycm9yIG1lc3NhZ2VcbiAgICAgIC8vICAgbG9nZ2VyLmluZm8oYFtjcmVhdGU6JHtpZH1dIE5laXRoZXIgc291cmNlIG5vciBidWlsdCBwYXRoIGV4aXN0cy4gU291cmNlOiAke3NvdXJjZVBhdGh9LCBCdWlsdDogJHtidWlsdFBhdGh9YCk7XG4gICAgICAvLyB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHdvcmtlclBhdGhXaXRoRGVmYXVsdCA9IHNvdXJjZVBhdGg7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gVXNpbmcgc291cmNlIHdvcmtlciBwYXRoOiAke3NvdXJjZVBhdGh9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghd29ya2VyUGF0aFdpdGhEZWZhdWx0LnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgd29ya2VyUGF0aFdpdGhEZWZhdWx0ID0gam9pbihcIi4vXCIsIHdvcmtlclBhdGhXaXRoRGVmYXVsdCk7XG4gIH1cbiAgLy8gRW5zdXJlIHdvcmtlciB1c2VzIHRoZSBzYW1lIFJlYWN0IHZlcnNpb25cbiAgY29uc3Qgd29ya2VyRGF0YSA9IHtcbiAgICAuLi5vcHRpb25zLndvcmtlckRhdGEsXG4gICAgaWQ6IG9wdGlvbnMud29ya2VyRGF0YS5pZCA/PyBpZCxcbiAgfTtcblxuICB0cnkge1xuICAgIC8vIEVuc3VyZSBjb25zaXN0ZW50IE5PREVfRU5WIGJldHdlZW4gbWFpbiB0aHJlYWQgYW5kIHdvcmtlclxuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgW2NyZWF0ZToke2lkfV0gd29ya2VyRGF0YS51c2VyT3B0aW9ucy5idWlsZDpcbiR7SlNPTi5zdHJpbmdpZnkod29ya2VyRGF0YS51c2VyT3B0aW9ucz8uYnVpbGQpfVxuXG5DYWxsIHN0YWNrOiAke25ldyBFcnJvcigpLnN0YWNrPy5zcGxpdChcIlxcblwiKS5zbGljZSgxLCA0KS5qb2luKFwiXFxuXCIpfVxuQ3JlYXRpbmcgd29ya2VyIHdpdGggcGF0aDogJHt3b3JrZXJQYXRoV2l0aERlZmF1bHR9XG5Ob2RlIGVudmlyb25tZW50OiAke21vZGV9XG5DdXJyZW50IGNvbmRpdGlvbjogJHtjdXJyZW50Q29uZGl0aW9ufSwgUmV2ZXJzZSBjb25kaXRpb246ICR7cmV2ZXJzZUNvbmRpdGlvbn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgZXhlY0FyZ3YgZm9yIHRoZSB3b3JrZXIgd2l0aCBleGFjdGx5IG9uZSAtLWNvbmRpdGlvbnMgZmxhZ1xuICAgIGNvbnN0IHN0cmlwQ29uZGl0aW9uc0Zyb21Bcmd2ID0gKGFyZ3Y6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYXJnID0gYXJndltpXTtcbiAgICAgICAgaWYgKGFyZyA9PT0gXCItLWNvbmRpdGlvbnNcIiB8fCBhcmcgPT09IFwiLUNcIikge1xuICAgICAgICAgIGkrKzsgLy8gc2tpcCB2YWx1ZVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmcuc3RhcnRzV2l0aChcIi0tY29uZGl0aW9ucz1cIikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBvdXQucHVzaChhcmcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIGNvbnN0IGNvbXB1dGVkRXhlY0FyZ3YgPSBbXG4gICAgICAuLi5zdHJpcENvbmRpdGlvbnNGcm9tQXJndihwcm9jZXNzLmV4ZWNBcmd2IHx8IFtdKSxcbiAgICAgIFwiLS1jb25kaXRpb25zXCIsXG4gICAgICByZXZlcnNlQ29uZGl0aW9uLFxuICAgIF07XG5cbiAgICAvLyBBbHdheXMgbG9nIHRoZSBjb25kaXRpb24gc2V0dXAgZm9yIGRlYnVnZ2luZ1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFNldHRpbmcgdXAgd29ya2VyIHdpdGggcmV2ZXJzZSBjb25kaXRpb246ICR7cmV2ZXJzZUNvbmRpdGlvbn1gXG4gICAgICApO1xuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBbY3JlYXRlOiR7aWR9XSBDb21wdXRlZCBleGVjQXJndjogJHtKU09OLnN0cmluZ2lmeShjb21wdXRlZEV4ZWNBcmd2KX1gXG4gICAgICApO1xuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBbY3JlYXRlOiR7aWR9XSBDdXJyZW50IE5PREVfT1BUSU9OUzogJHtwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIC8vIEluaGVyaXQgYWxsIGV4aXN0aW5nIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgICAgLi4ucHJvY2Vzcy5lbnYsXG5cbiAgICAgIC8vIE92ZXJyaWRlIHdpdGggb3VyIHNwZWNpZmljIHZhcmlhYmxlc1xuICAgICAgW2VudlByZWZpeCArIFwiREVWXCJdOiBtb2RlID09PSBcImRldmVsb3BtZW50XCIgPyBcIjFcIiA6IFwiMFwiLFxuICAgICAgW2VudlByZWZpeCArIFwiTU9ERVwiXTogbW9kZSxcbiAgICAgIFtlbnZQcmVmaXggKyBcIlBST0RcIl06IG1vZGUgPT09IFwicHJvZHVjdGlvblwiID8gXCIxXCIgOiBcIjBcIixcbiAgICAgIFtlbnZQcmVmaXggKyBcIlNTUlwiXTogXCJ0cnVlXCIsXG4gICAgICBbZW52UHJlZml4ICsgXCJCQVNFX1VSTFwiXTogd29ya2VyRGF0YS51c2VyT3B0aW9ucz8ubW9kdWxlQmFzZVVSTCA/PyBcIlwiLFxuICAgICAgW2VudlByZWZpeCArIFwiUFVCTElDX09SSUdJTlwiXTogd29ya2VyRGF0YS51c2VyT3B0aW9ucz8ucHVibGljT3JpZ2luID8/IFwiXCIsXG4gICAgICBOT0RFX0VOVjogcHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXSA/PyBcInByb2R1Y3Rpb25cIixcbiAgICAgIE5PREVfUEFUSDogbm9kZVBhdGgsXG5cbiAgICAgIC8vIEVuc3VyZSBOT0RFX09QVElPTlMgaGFzIHRoZSBjb3JyZWN0IGNvbmRpdGlvblxuICAgICAgTk9ERV9PUFRJT05TOiBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXT8uaW5jbHVkZXMocmV2ZXJzZUNvbmRpdGlvbilcbiAgICAgICAgPyBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXVxuICAgICAgICA6IGN1cnJlbnRDb25kaXRpb24gIT0gbnVsbCAmJlxuICAgICAgICAgIHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdPy5pbmNsdWRlcyhjdXJyZW50Q29uZGl0aW9uKVxuICAgICAgICA/IHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdPy5yZXBsYWNlQWxsKFxuICAgICAgICAgICAgY3VycmVudENvbmRpdGlvbixcbiAgICAgICAgICAgIHJldmVyc2VDb25kaXRpb25cbiAgICAgICAgICApXG4gICAgICAgIDogYCR7XG4gICAgICAgICAgICBwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXSA/PyBcIlwiXG4gICAgICAgICAgfSAtLWNvbmRpdGlvbnMgJHtyZXZlcnNlQ29uZGl0aW9ufWAsXG4gICAgICBIVE1MX0NIVU5LX1NJWkU6IGh0bWxDaHVua1NpemUudG9TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vIEFsd2F5cyBsb2cgdGhlIE5PREVfT1BUSU9OUyBmb3IgZGVidWdnaW5nXG4gICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBOT0RFX09QVElPTlMgd2lsbCBiZTogJHtlbnYuTk9ERV9PUFRJT05TfWBcbiAgICAgICk7XG4gICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgYFtjcmVhdGU6JHtpZH1dIEVudmlyb25tZW50IHZhcmlhYmxlczogJHtPYmplY3Qua2V5cyhlbnYpLmpvaW4oXCIsIFwiKX1gXG4gICAgICApO1xuICAgICAgbG9nZ2VyLmluZm8oYFtjcmVhdGU6JHtpZH1dIGV4ZWNBcmd2OiAke2NvbXB1dGVkRXhlY0FyZ3Yuam9pbihcIiBcIil9YCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHdvcmtlciB3aXRoIHByb3BlciBlbnZpcm9ubWVudCBhbmQgbG9hZGVyc1xuICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyUGF0aFdpdGhEZWZhdWx0LCB7XG4gICAgICBlbnYsXG4gICAgICBleGVjQXJndjogY29tcHV0ZWRFeGVjQXJndixcbiAgICAgIHJlc291cmNlTGltaXRzLFxuICAgICAgd29ya2VyRGF0YSxcbiAgICAgIHRyYW5zZmVyTGlzdCxcbiAgICB9KTtcblxuICAgIC8vIFJlZ2lzdGVyIHdvcmtlciBmb3IgZ3JhY2VmdWwgc2h1dGRvd25cbiAgICBhY3RpdmVXb3JrZXJzLmFkZCh3b3JrZXIpO1xuXG4gICAgd29ya2VyLnNldE1heExpc3RlbmVycyhtYXhMaXN0ZW5lcnMpO1xuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgW2NyZWF0ZToke2lkfV0gV29ya2VyIGNyZWF0ZWQsIHdhaXRpbmcgZm9yIFJFQURZIG1lc3NhZ2UuLi5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxDcmVhdGVXb3JrZXJTdWNjZXNzIHwgQ3JlYXRlV29ya2VyU2tpcD4oXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIC8vIFVzZSBhcHByb3ByaWF0ZSB0aW1lb3V0IGJhc2VkIG9uIHdvcmtlciB0eXBlXG4gICAgICAgIGNvbnN0IHdvcmtlclR5cGUgPSByZXZlcnNlQ29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiID8gXCJyc2NcIiA6IFwiaHRtbFwiO1xuICAgICAgICBjb25zdCBzdGFydHVwVGltZW91dCA9XG4gICAgICAgICAgd29ya2VyVHlwZSA9PT0gXCJyc2NcIlxuICAgICAgICAgICAgPyBvcHRpb25zLndvcmtlckRhdGEudXNlck9wdGlvbnM/LnJzY1dvcmtlclN0YXJ0dXBUaW1lb3V0XG4gICAgICAgICAgICA6IG9wdGlvbnMud29ya2VyRGF0YS51c2VyT3B0aW9ucz8uaHRtbFdvcmtlclN0YXJ0dXBUaW1lb3V0O1xuXG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZWplY3QoeyB0eXBlOiBcImVycm9yXCIsIGVycm9yOiBuZXcgRXJyb3IoXCJXb3JrZXIgcmVhZHkgdGltZW91dFwiKSB9KTtcbiAgICAgICAgfSwgc3RhcnR1cFRpbWVvdXQpO1xuICAgICAgICBjb25zdCBleGl0SGFuZGxlciA9IChjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwibWVzc2FnZVwiLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgLy8gUmVtb3ZlIHdvcmtlciBmcm9tIHJlZ2lzdHJ5IHdoZW4gaXQgZXhpdHNcbiAgICAgICAgICBhY3RpdmVXb3JrZXJzLmRlbGV0ZSh3b3JrZXIpO1xuICAgICAgICAgIC8vIERvIG5vdCByZW1vdmUgZXhpdCBoYW5kbGVyIGhlcmUsIGxldCBpdCBmaXJlIGlmIG5lZWRlZFxuICAgICAgICAgIGlmIChjb2RlICE9PSAwKSB7XG4gICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHdvcmtlclBhdGg6IHdvcmtlclBhdGhXaXRoRGVmYXVsdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWVzc2FnZUhhbmRsZXIgPSAoXG4gICAgICAgICAgbXNnOiBSc2NXb3JrZXJPdXRwdXRNZXNzYWdlIHwgSHRtbFdvcmtlck91dHB1dE1lc3NhZ2VcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gSW5pdGlhbCB3b3JrZXIgbWVzc2FnZSAke21zZy50eXBlfWApO1xuICAgICAgICAgIGlmIChtc2cudHlwZSA9PT0gXCJSRUFEWVwiICYmIG1zZy5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKVxuICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gV29ya2VyIHJ1bm5pbmcgZm9yICR7bXNnLmVudn1gKTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgICAgICAgIHdvcmtlci5yZW1vdmVMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgbWVzc2FnZUhhbmRsZXIpO1xuICAgICAgICAgICAgd29ya2VyLnJlbW92ZUxpc3RlbmVyKFwiZXhpdFwiLCBleGl0SGFuZGxlcik7XG4gICAgICAgICAgICBpZiAobXNnLmVudiAhPT0gbW9kZSkge1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSlcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NyZWF0ZToke2lkfV0gV29ya2VyIGVudmlyb25tZW50IG1pc21hdGNoLmApO1xuICAgICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICBlcnJvcjogbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgYFdvcmtlciBlbnZpcm9ubWVudCBtaXNtYXRjaDogJHttc2cuZW52fSAhPT0gJHttb2RlfWBcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHdvcmtlclBhdGg6IHdvcmtlclBhdGhXaXRoRGVmYXVsdCxcbiAgICAgICAgICAgICAgfSBzYXRpc2ZpZXMgQ3JlYXRlV29ya2VyRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgICB3b3JrZXIsXG4gICAgICAgICAgICAgIHdvcmtlclBhdGg6IHdvcmtlclBhdGhXaXRoRGVmYXVsdCxcbiAgICAgICAgICAgIH0gc2F0aXNmaWVzIENyZWF0ZVdvcmtlclN1Y2Nlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd29ya2VyLm9uY2UoXCJtZXNzYWdlXCIsIG1lc3NhZ2VIYW5kbGVyKTtcbiAgICAgICAgd29ya2VyLm9uY2UoXCJleGl0XCIsIGV4aXRIYW5kbGVyKTtcbiAgICAgICAgd29ya2VyLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICAgIC8vIFJlbW92ZSB3b3JrZXIgZnJvbSByZWdpc3RyeSBvbiBlcnJvclxuICAgICAgICAgIGFjdGl2ZVdvcmtlcnMuZGVsZXRlKHdvcmtlcik7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKHZlcmJvc2UgJiYgZXJyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFdvcmtlciBlcnJvcjogJHtlcnIubWVzc2FnZX0uXFxuJHtlcnIuc3RhY2t9YCxcbiAgICAgICAgICAgICAgeyBlcnJvcjogZXJyIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHBhbmljRXJyb3IgPSBoYW5kbGVFcnJvcih7XG4gICAgICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgICAgICAgbG9nZ2VyOiBsb2dnZXIsXG4gICAgICAgICAgICBwYW5pY1RocmVzaG9sZDogd29ya2VyRGF0YS51c2VyT3B0aW9ucz8ucGFuaWNUaHJlc2hvbGQsXG4gICAgICAgICAgICBjcml0aWNhbDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZXh0OiBgV29ya2VyIHRocmVhZCBlcnJvciBmb3Igcm91dGUgJHtpZH1gLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChwYW5pY0Vycm9yICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICBgW2NyZWF0ZToke2lkfV0gUGFuaWMgZXJyb3IgZGV0ZWN0ZWQ6ICR7cGFuaWNFcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgeyBlcnJvcjogcGFuaWNFcnJvciB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICAgIHdvcmtlclBhdGg6IHdvcmtlclBhdGhXaXRoRGVmYXVsdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcihcIldvcmtlciB0aHJlYWQgZXJyb3JcIiwgeyBjYXVzZTogZXJyIH0pLFxuICAgICAgICAgICAgd29ya2VyUGF0aDogd29ya2VyUGF0aFdpdGhEZWZhdWx0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgIGBbY3JlYXRlOiR7aWR9XSBDYXVnaHQgZXJyb3IgZHVyaW5nIHdvcmtlciBjcmVhdGlvbjogJHtcbiAgICAgICAgICB0b0Vycm9yKGVycm9yKS5tZXNzYWdlXG4gICAgICAgIH1gLFxuICAgICAgICB7IGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSkgfVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgcGFuaWNUaHJlc2hvbGQ6IHdvcmtlckRhdGEudXNlck9wdGlvbnM/LnBhbmljVGhyZXNob2xkLFxuICAgICAgY3JpdGljYWw6IGZhbHNlLFxuICAgICAgY29udGV4dDogYFdvcmtlciB0aHJlYWQgZXJyb3IgZm9yIHJvdXRlICR7aWR9YCxcbiAgICB9KTtcbiAgICBpZiAocGFuaWNFcnJvciAhPSBudWxsKSB7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgYFtjcmVhdGU6JHtpZH1dIFBhbmljIGVycm9yIGluIGNhdGNoIGJsb2NrOiAke3BhbmljRXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgIHsgZXJyb3I6IHBhbmljRXJyb3IgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgICBlcnJvcjogcGFuaWNFcnJvcixcbiAgICAgICAgd29ya2VyUGF0aDogd29ya2VyUGF0aFdpdGhEZWZhdWx0LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSksXG4gICAgICB3b3JrZXJQYXRoOiB3b3JrZXJQYXRoV2l0aERlZmF1bHQsXG4gICAgfTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLE1BQU0sYUFBQSx1QkFBb0IsR0FBWSxFQUFBO0FBR3RDLGVBQXNCLGtCQUFBLENBQW1CLFVBQWtCLEdBQXFCLEVBQUE7QUFDOUUsRUFBSSxJQUFBLGFBQUEsQ0FBYyxTQUFTLENBQUcsRUFBQTtBQUU5QixFQUFBLE1BQU0sbUJBQW1CLEtBQU0sQ0FBQSxJQUFBLENBQUssYUFBYSxDQUFBLENBQUUsSUFBSSxDQUFVLE1BQUEsS0FBQTtBQUMvRCxJQUFPLE9BQUEsSUFBSSxPQUFjLENBQUEsQ0FBQyxPQUFZLEtBQUE7QUFDcEMsTUFBSSxJQUFBLGNBQUE7QUFFSixNQUFNLE1BQUEsU0FBQSxHQUFZLFdBQVcsTUFBTTtBQUNqQyxRQUFPLE1BQUEsQ0FBQSxjQUFBLENBQWUsV0FBVyxjQUFlLENBQUE7QUFDaEQsUUFBQSxNQUFBLENBQU8sa0JBQW1CLEVBQUE7QUFDMUIsUUFBSSxJQUFBO0FBQ0YsVUFBQSxNQUFBLENBQU8sU0FBVSxFQUFBO0FBQUEsaUJBQ1YsS0FBTyxFQUFBO0FBQUE7QUFHaEIsUUFBQSxhQUFBLENBQWMsT0FBTyxNQUFNLENBQUE7QUFDM0IsUUFBUSxPQUFBLEVBQUE7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
@@ -0,0 +1,14 @@
1
+ import type { HandleHtmlRenderFn } from "./types.js";
2
+ /**
3
+ * Handle the render of an HTML stream from RSC chunks, creates the stream once and pipes directly.
4
+ *
5
+ * This html render expects all components as a serialized rsc stream.
6
+ *
7
+ * It does not have to resolve components, it just renders the html.
8
+ *
9
+ * @param handlerOptions
10
+ * @param handlers
11
+ * @param logger
12
+ */
13
+ export declare const handleHtmlRender: HandleHtmlRenderFn;
14
+ //# sourceMappingURL=handleHtmlRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleHtmlRender.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/html/handleHtmlRender.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAWrD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBA2N9B,CAAC"}
@@ -0,0 +1,190 @@
1
+ import { workerData } from "node:worker_threads";
2
+ import { join } from "node:path";
3
+ import { handleError } from "../../error/handleError.js";
4
+ import { assertNonReactServer } from "../../config/getCondition.js";
5
+ // Import React DOM Client for RSC stream processing
6
+ import { createFromNodeStream } from "../../stream/createFromNodeStream.client.js";
7
+ import { createModuleResolutionMetrics } from "../../metrics/createModuleResolutionMetrics.js";
8
+ import { ReactDOMServer } from "../../vendor/vendor.client.js";
9
+ assertNonReactServer();
10
+ /**
11
+ * Handle the render of an HTML stream from RSC chunks, creates the stream once and pipes directly.
12
+ *
13
+ * This html render expects all components as a serialized rsc stream.
14
+ *
15
+ * It does not have to resolve components, it just renders the html.
16
+ *
17
+ * @param handlerOptions
18
+ * @param handlers
19
+ * @param logger
20
+ */
21
+ export const handleHtmlRender = function _handleHtmlRender(handlerOptions, handlers) {
22
+ const { route, id = route, rscStream, // Use the RSC stream id passed from the main thread
23
+ moduleRootPath, moduleBaseURL, moduleBasePath, verbose, logger, projectRoot, } = handlerOptions;
24
+ try {
25
+ if (verbose) {
26
+ logger.info(`[html-worker:${route}] Creating HTML stream (${id})`);
27
+ }
28
+ if (!rscStream) {
29
+ throw new Error("RSC stream is required for HTML rendering");
30
+ }
31
+ // Convert RSC stream to React elements using ReactDOMClient.createFromNodeStream
32
+ //
33
+ // IMPORTANT: ReactDOMClient comes from react-server-dom-esm/client.node
34
+ // We have reverse-engineered our own types for this (plugin/types/react-server-dom-esm.d.ts)
35
+ // because there's no official @types package for react-server-dom-esm
36
+ //
37
+ // ACTUAL SIGNATURE FROM SOURCE CODE (patches/react-server-dom-esm+0.0.1.patch:9437):
38
+ // exports.createFromNodeStream = function (stream, moduleRootPath, moduleBaseURL, options)
39
+ //
40
+ // This takes 4 parameters:
41
+ // 1. stream: NodeJS.ReadableStream - the RSC stream
42
+ // 2. moduleRootPath: string - the module root path for resolving client modules
43
+ // 3. moduleBaseURL: string - the module base URL for resolving client modules
44
+ // 4. options: object - optional configuration (encodeFormAction, nonce, etc.)
45
+ // Construct the correct moduleRootPath using the projectRoot + moduleBasePath
46
+ let resolvedModuleRootPath = moduleRootPath || "";
47
+ if (typeof resolvedModuleRootPath !== "string") {
48
+ throw new Error("moduleRootPath is required");
49
+ }
50
+ else if (!resolvedModuleRootPath.startsWith(projectRoot)) {
51
+ resolvedModuleRootPath = join(projectRoot, resolvedModuleRootPath);
52
+ }
53
+ if (!resolvedModuleRootPath.endsWith(moduleBasePath)) {
54
+ resolvedModuleRootPath = resolvedModuleRootPath + moduleBasePath;
55
+ }
56
+ if (moduleBasePath === "" && !resolvedModuleRootPath.endsWith("/")) {
57
+ resolvedModuleRootPath = `${resolvedModuleRootPath}/`;
58
+ }
59
+ if (verbose) {
60
+ logger.info(`[html-worker:${route}] Final resolvedModuleRootPath: ${resolvedModuleRootPath}`);
61
+ }
62
+ // Start measuring module resolution time
63
+ const moduleResolutionStartTime = performance.now();
64
+ // Note: Module resolution metric will be emitted in onAllReady callback
65
+ if (verbose) {
66
+ logger.info(`[html-worker:${route}] Starting HTML render for route: ${route}`);
67
+ }
68
+ if (!rscStream.readable) {
69
+ throw new Error("RSC stream is not readable");
70
+ }
71
+ // Convert RSC stream to React elements using createFromNodeStream (like client-side)
72
+ const result = createFromNodeStream({
73
+ rscStream: rscStream,
74
+ moduleRootPath: resolvedModuleRootPath,
75
+ moduleBasePath: moduleBasePath,
76
+ moduleBaseURL: moduleBaseURL,
77
+ logger,
78
+ });
79
+ const mergedPipeableStreamOptions = {
80
+ ...workerData.userOptions?.clientPipeableStreamOptions,
81
+ ...handlerOptions.clientPipeableStreamOptions,
82
+ };
83
+ // Render React elements to HTML stream using ReactDOMServer.renderToPipeableStream
84
+ if (verbose) {
85
+ logger.info(`[html-worker:${route}] clientPipeableStreamOptions: ${JSON.stringify(mergedPipeableStreamOptions)}`);
86
+ }
87
+ // Create the stream once and pipe directly with onData
88
+ const { pipe } = ReactDOMServer.renderToPipeableStream(result.children, {
89
+ ...mergedPipeableStreamOptions,
90
+ onShellReady() {
91
+ if (verbose) {
92
+ logger.info(`[html-worker:${route}] Shell ready, starting to pipe HTML`);
93
+ }
94
+ if (handlers.onShellReady) {
95
+ handlers.onShellReady(route);
96
+ }
97
+ if (mergedPipeableStreamOptions?.onShellReady) {
98
+ mergedPipeableStreamOptions.onShellReady();
99
+ }
100
+ },
101
+ onAllReady() {
102
+ if (verbose) {
103
+ logger.info(`[html-worker:${route}] All ready, HTML rendering complete`);
104
+ }
105
+ // Calculate module resolution time
106
+ const moduleResolutionTime = performance.now() - moduleResolutionStartTime;
107
+ // Send metrics
108
+ if (handlers.onMetrics) {
109
+ const moduleResolutionMetric = createModuleResolutionMetrics({
110
+ route,
111
+ workerType: "html",
112
+ resolutionTime: moduleResolutionTime,
113
+ fromMainThread: false,
114
+ fromRscWorker: false,
115
+ fromHtmlWorker: true,
116
+ description: `Module resolution for route ${route}`,
117
+ });
118
+ handlers.onMetrics(route, moduleResolutionMetric);
119
+ }
120
+ if (handlers.onAllReady) {
121
+ handlers.onAllReady(route);
122
+ }
123
+ if (mergedPipeableStreamOptions?.onAllReady) {
124
+ mergedPipeableStreamOptions.onAllReady();
125
+ }
126
+ },
127
+ onError(error, errorInfo) {
128
+ if (verbose) {
129
+ logger.error(`[html-worker:${route}] React rendering error: ${error}`);
130
+ }
131
+ handlers.onError(route, error, errorInfo);
132
+ if (handlers.onError) {
133
+ handlers.onError(route, error, errorInfo);
134
+ }
135
+ if (mergedPipeableStreamOptions?.onError) {
136
+ mergedPipeableStreamOptions.onError(error, errorInfo);
137
+ }
138
+ },
139
+ });
140
+ // Create a custom writable stream that pipes directly to onData
141
+ const customWritable = {
142
+ write(chunk, _encoding, callback) {
143
+ handlers.onData(id, chunk);
144
+ if (callback)
145
+ callback();
146
+ },
147
+ end(chunk, _encoding, callback) {
148
+ if (chunk) {
149
+ handlers.onData(id, chunk);
150
+ }
151
+ handlers.onEnd(id);
152
+ if (callback)
153
+ callback();
154
+ },
155
+ on() { }, // No-op for event listeners
156
+ once() { }, // No-op for event listeners
157
+ emit() { return false; }, // No-op for event emitters
158
+ };
159
+ // Pipe the React stream directly to our custom writable
160
+ pipe(customWritable);
161
+ // Set up RSC stream error handling
162
+ rscStream.on("error", (error) => {
163
+ if (verbose) {
164
+ logger.error(`[html-worker:${route}] RSC stream error: ${error}`);
165
+ }
166
+ handlers.onError(id, error, {
167
+ componentStack: undefined,
168
+ digest: undefined,
169
+ });
170
+ });
171
+ }
172
+ catch (error) {
173
+ if (verbose) {
174
+ logger.error(`[html-worker:${route}] Error in handleHtmlRender: ${error}`);
175
+ }
176
+ const panicError = handleError({
177
+ error: error,
178
+ logger: logger,
179
+ panicThreshold: workerData.userOptions?.panicThreshold,
180
+ context: `HTML worker error for route ${route}`,
181
+ });
182
+ if (panicError != null) {
183
+ handlers.onError(id, panicError, {
184
+ componentStack: undefined,
185
+ digest: undefined,
186
+ });
187
+ }
188
+ throw error;
189
+ }
190
+ };