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

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 (824) hide show
  1. package/README.md +95 -396
  2. package/dist/_virtual/dynamic-import-helper.js +1 -1
  3. package/dist/client.d.ts +2 -1
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +6 -2
  6. package/dist/index.js +1 -1
  7. package/dist/package.json +58 -25
  8. package/dist/plugin/components/{css-collector-elements.d.ts → css.d.ts} +2 -2
  9. package/dist/plugin/components/css.d.ts.map +1 -0
  10. package/dist/plugin/components/css.js +33 -0
  11. package/dist/plugin/components/html.d.ts +1 -1
  12. package/dist/plugin/components/html.d.ts.map +1 -1
  13. package/dist/plugin/components/html.js +5 -5
  14. package/dist/plugin/components/index.d.ts +3 -3
  15. package/dist/plugin/components/index.d.ts.map +1 -1
  16. package/dist/plugin/components/index.js +9 -3
  17. package/dist/plugin/components/root.d.ts +7 -0
  18. package/dist/plugin/components/root.d.ts.map +1 -0
  19. package/dist/plugin/components/root.js +18 -0
  20. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js +1 -1
  21. package/dist/plugin/config/autoDiscover/customWorkerFiles.js +1 -1
  22. package/dist/plugin/config/autoDiscover/pageAndPropFiles.js +1 -1
  23. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts +5 -4
  24. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  25. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +26 -7
  26. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts +25 -2
  27. package/dist/plugin/config/autoDiscover/resolveBuildPages.d.ts.map +1 -1
  28. package/dist/plugin/config/autoDiscover/resolveBuildPages.js +84 -5
  29. package/dist/plugin/config/createModuleID.d.ts +3 -6
  30. package/dist/plugin/config/createModuleID.d.ts.map +1 -1
  31. package/dist/plugin/config/createModuleID.js +42 -32
  32. package/dist/plugin/config/defaults.d.ts +294 -121
  33. package/dist/plugin/config/defaults.d.ts.map +1 -1
  34. package/dist/plugin/config/defaults.js +156 -89
  35. package/dist/plugin/config/extMap.d.ts +6 -2
  36. package/dist/plugin/config/extMap.d.ts.map +1 -1
  37. package/dist/plugin/config/extMap.js +38 -48
  38. package/dist/plugin/config/flightBindings.d.ts +4 -0
  39. package/dist/plugin/config/flightBindings.d.ts.map +1 -0
  40. package/dist/plugin/config/flightBindings.js +215 -0
  41. package/dist/plugin/config/getCondition.d.ts +2 -0
  42. package/dist/plugin/config/getCondition.d.ts.map +1 -1
  43. package/dist/plugin/config/getCondition.js +4 -2
  44. package/dist/plugin/config/getPaths.js +1 -1
  45. package/dist/plugin/config/index.d.ts +17 -4
  46. package/dist/plugin/config/index.d.ts.map +1 -1
  47. package/dist/plugin/config/index.js +29 -7
  48. package/dist/plugin/config/interpolatePattern.d.ts +13 -0
  49. package/dist/plugin/config/interpolatePattern.d.ts.map +1 -0
  50. package/dist/plugin/config/interpolatePattern.js +13 -0
  51. package/dist/plugin/config/mimeTypes.js +1 -1
  52. package/dist/plugin/config/parsePattern.d.ts +25 -0
  53. package/dist/plugin/config/parsePattern.d.ts.map +1 -0
  54. package/dist/plugin/config/parsePattern.js +30 -0
  55. package/dist/plugin/config/resolveAllowedDirectives.d.ts +26 -0
  56. package/dist/plugin/config/resolveAllowedDirectives.d.ts.map +1 -0
  57. package/dist/plugin/config/resolveAllowedDirectives.js +35 -0
  58. package/dist/plugin/config/resolveDirectiveMatcher.d.ts +25 -0
  59. package/dist/plugin/config/resolveDirectiveMatcher.d.ts.map +1 -0
  60. package/dist/plugin/config/resolveDirectiveMatcher.js +33 -0
  61. package/dist/plugin/config/resolveEnv.d.ts +1 -1
  62. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  63. package/dist/plugin/config/resolveEnv.js +45 -28
  64. package/dist/plugin/config/resolveOptions.d.ts +13 -3
  65. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  66. package/dist/plugin/config/resolveOptions.js +230 -219
  67. package/dist/plugin/config/resolvePages.js +1 -1
  68. package/dist/plugin/config/resolvePatternWithValues.d.ts +39 -0
  69. package/dist/plugin/config/resolvePatternWithValues.d.ts.map +1 -0
  70. package/dist/plugin/config/resolvePatternWithValues.js +36 -0
  71. package/dist/plugin/config/resolveRegExp.d.ts +29 -0
  72. package/dist/plugin/config/resolveRegExp.d.ts.map +1 -0
  73. package/dist/plugin/config/resolveRegExp.js +39 -0
  74. package/dist/plugin/config/resolveUrlOption.d.ts +37 -6
  75. package/dist/plugin/config/resolveUrlOption.d.ts.map +1 -1
  76. package/dist/plugin/config/resolveUrlOption.js +42 -12
  77. package/dist/plugin/config/resolveUserConfig.d.ts +5 -4
  78. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  79. package/dist/plugin/config/resolveUserConfig.js +98 -47
  80. package/dist/plugin/env/createConfigEnv.d.ts +7 -0
  81. package/dist/plugin/env/createConfigEnv.d.ts.map +1 -0
  82. package/dist/plugin/env/createConfigEnv.js +30 -0
  83. package/dist/plugin/env/getArgValue.d.ts +8 -0
  84. package/dist/plugin/env/getArgValue.d.ts.map +1 -0
  85. package/dist/plugin/env/getArgValue.js +32 -0
  86. package/dist/plugin/env/getEnvKey.d.ts +40 -0
  87. package/dist/plugin/env/getEnvKey.d.ts.map +1 -0
  88. package/dist/plugin/env/getEnvKey.js +24 -0
  89. package/dist/plugin/env/index.d.ts +3 -0
  90. package/dist/plugin/env/index.d.ts.map +1 -1
  91. package/dist/plugin/env/index.js +3 -0
  92. package/dist/plugin/env/plugin.d.ts +6 -0
  93. package/dist/plugin/env/plugin.d.ts.map +1 -1
  94. package/dist/plugin/env/plugin.js +69 -93
  95. package/dist/plugin/env/userConfigEnv.d.ts +2 -0
  96. package/dist/plugin/env/userConfigEnv.d.ts.map +1 -0
  97. package/dist/plugin/env/userConfigEnv.js +21 -0
  98. package/dist/plugin/error/directiveError.d.ts +13 -0
  99. package/dist/plugin/error/directiveError.d.ts.map +1 -0
  100. package/dist/plugin/error/directiveError.js +21 -0
  101. package/dist/plugin/error/enhanceError.d.ts +14 -0
  102. package/dist/plugin/error/enhanceError.d.ts.map +1 -0
  103. package/dist/plugin/error/enhanceError.js +24 -0
  104. package/dist/plugin/error/index.d.ts +4 -0
  105. package/dist/plugin/error/index.d.ts.map +1 -0
  106. package/dist/plugin/error/index.js +9 -0
  107. package/dist/plugin/error/logError.d.ts +3 -0
  108. package/dist/plugin/error/logError.d.ts.map +1 -0
  109. package/dist/plugin/error/logError.js +50 -0
  110. package/dist/plugin/error/serializeError.d.ts +7 -0
  111. package/dist/plugin/error/serializeError.d.ts.map +1 -0
  112. package/dist/plugin/error/serializeError.js +37 -0
  113. package/dist/plugin/error/toError.d.ts +1 -8
  114. package/dist/plugin/error/toError.d.ts.map +1 -1
  115. package/dist/plugin/error/toError.js +62 -34
  116. package/dist/plugin/file-preserver/plugin.js +93 -105
  117. package/dist/plugin/getNodeEnv.d.ts +11 -0
  118. package/dist/plugin/getNodeEnv.d.ts.map +1 -0
  119. package/dist/plugin/getNodeEnv.js +17 -0
  120. package/dist/plugin/helpers/cleanObject.d.ts.map +1 -1
  121. package/dist/plugin/helpers/cleanObject.js +2 -1
  122. package/dist/plugin/helpers/collectManifestCss.js +1 -1
  123. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +6 -4
  124. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  125. package/dist/plugin/helpers/collectViteModuleGraphCss.js +15 -9
  126. package/dist/plugin/helpers/createCssProps.d.ts +3 -4
  127. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  128. package/dist/plugin/helpers/createCssProps.js +16 -15
  129. package/dist/plugin/helpers/createEventHandler.d.ts +2 -2
  130. package/dist/plugin/helpers/createEventHandler.d.ts.map +1 -1
  131. package/dist/plugin/helpers/createEventHandler.js +1 -1
  132. package/dist/plugin/helpers/createHandler.d.ts +10 -8
  133. package/dist/plugin/helpers/createHandler.d.ts.map +1 -1
  134. package/dist/plugin/helpers/createHandler.js +11 -5
  135. package/dist/plugin/helpers/createRscStream.d.ts +18 -5
  136. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
  137. package/dist/plugin/helpers/createRscStream.js +53 -15
  138. package/dist/plugin/helpers/formatMetrics.d.ts +1 -5
  139. package/dist/plugin/helpers/formatMetrics.d.ts.map +1 -1
  140. package/dist/plugin/helpers/formatMetrics.js +2 -39
  141. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -1
  142. package/dist/plugin/helpers/getBundleManifest.js +9 -2
  143. package/dist/plugin/helpers/getRouteFiles.d.ts +30 -2
  144. package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
  145. package/dist/plugin/helpers/getRouteFiles.js +100 -8
  146. package/dist/plugin/helpers/handleServerAction.d.ts +8 -7
  147. package/dist/plugin/helpers/handleServerAction.d.ts.map +1 -1
  148. package/dist/plugin/helpers/handleServerAction.js +7 -3
  149. package/dist/plugin/helpers/hydrateUserOptions.d.ts +9 -0
  150. package/dist/plugin/helpers/hydrateUserOptions.d.ts.map +1 -0
  151. package/dist/plugin/helpers/hydrateUserOptions.js +22 -0
  152. package/dist/plugin/helpers/index.d.ts +2 -0
  153. package/dist/plugin/helpers/index.d.ts.map +1 -1
  154. package/dist/plugin/helpers/index.js +31 -31
  155. package/dist/plugin/helpers/inputNormalizer.d.ts +1 -1
  156. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  157. package/dist/plugin/helpers/inputNormalizer.js +33 -20
  158. package/dist/plugin/helpers/metrics.d.ts +4 -10
  159. package/dist/plugin/helpers/metrics.d.ts.map +1 -1
  160. package/dist/plugin/helpers/metrics.js +3 -59
  161. package/dist/plugin/helpers/moduleRefs.js +1 -1
  162. package/dist/plugin/helpers/moduleResolver.d.ts +24 -2
  163. package/dist/plugin/helpers/moduleResolver.d.ts.map +1 -1
  164. package/dist/plugin/helpers/moduleResolver.js +61 -22
  165. package/dist/plugin/helpers/requestInfo.d.ts +31 -4
  166. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  167. package/dist/plugin/helpers/requestInfo.js +62 -35
  168. package/dist/plugin/helpers/requestToRoute.d.ts +1 -1
  169. package/dist/plugin/helpers/requestToRoute.d.ts.map +1 -1
  170. package/dist/plugin/helpers/requestToRoute.js +17 -9
  171. package/dist/plugin/helpers/resolveComponent.d.ts +57 -0
  172. package/dist/plugin/helpers/resolveComponent.d.ts.map +1 -0
  173. package/dist/plugin/helpers/resolveComponent.js +71 -0
  174. package/dist/plugin/helpers/resolveComponents.d.ts +27 -0
  175. package/dist/plugin/helpers/resolveComponents.d.ts.map +1 -0
  176. package/dist/plugin/helpers/resolveComponents.js +146 -0
  177. package/dist/plugin/helpers/resolvePage.d.ts +15 -11
  178. package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
  179. package/dist/plugin/helpers/resolvePage.js +11 -7
  180. package/dist/plugin/helpers/resolvePageAndProps.d.ts +3 -10
  181. package/dist/plugin/helpers/resolvePageAndProps.d.ts.map +1 -1
  182. package/dist/plugin/helpers/resolvePageAndProps.js +28 -18
  183. package/dist/plugin/helpers/resolveProps.d.ts +13 -7
  184. package/dist/plugin/helpers/resolveProps.d.ts.map +1 -1
  185. package/dist/plugin/helpers/resolveProps.js +55 -25
  186. package/dist/plugin/helpers/resolveUserComponents.d.ts +33 -0
  187. package/dist/plugin/helpers/resolveUserComponents.d.ts.map +1 -0
  188. package/dist/plugin/helpers/resolveUserComponents.js +163 -0
  189. package/dist/plugin/helpers/serializeUserOptions.d.ts +7 -7
  190. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  191. package/dist/plugin/helpers/serializeUserOptions.js +127 -42
  192. package/dist/plugin/helpers/stashReturnValue.d.ts +2 -1
  193. package/dist/plugin/helpers/stashReturnValue.d.ts.map +1 -1
  194. package/dist/plugin/helpers/stashReturnValue.js +6 -3
  195. package/dist/plugin/helpers/tryManifest.d.ts +1 -2
  196. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  197. package/dist/plugin/helpers/tryManifest.js +1 -1
  198. package/dist/plugin/loader/createDefaultLoader.d.ts +19 -8
  199. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -1
  200. package/dist/plugin/loader/createDefaultLoader.js +69 -107
  201. package/dist/plugin/loader/createTransformer.d.ts +6 -0
  202. package/dist/plugin/loader/createTransformer.d.ts.map +1 -0
  203. package/dist/plugin/loader/createTransformer.js +92 -0
  204. package/dist/plugin/loader/{css-loader.development.d.ts → css-loader.d.ts} +6 -8
  205. package/dist/plugin/loader/css-loader.d.ts.map +1 -0
  206. package/dist/plugin/loader/css-loader.js +134 -0
  207. package/dist/plugin/loader/directives/addLocalExportedNames.d.ts +4 -0
  208. package/dist/plugin/loader/directives/addLocalExportedNames.d.ts.map +1 -0
  209. package/dist/plugin/loader/directives/addLocalExportedNames.js +57 -0
  210. package/dist/plugin/loader/directives/analyzeDirectives.d.ts +9 -0
  211. package/dist/plugin/loader/directives/analyzeDirectives.d.ts.map +1 -0
  212. package/dist/plugin/loader/directives/analyzeDirectives.js +221 -0
  213. package/dist/plugin/loader/directives/analyzeModule.d.ts +7 -0
  214. package/dist/plugin/loader/directives/analyzeModule.d.ts.map +1 -0
  215. package/dist/plugin/loader/directives/analyzeModule.js +48 -0
  216. package/dist/plugin/loader/directives/collectExports.d.ts +13 -0
  217. package/dist/plugin/loader/directives/collectExports.d.ts.map +1 -0
  218. package/dist/plugin/loader/directives/collectExports.js +116 -0
  219. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +6 -0
  220. package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +1 -0
  221. package/dist/plugin/loader/directives/collectExportsFromModule.js +24 -0
  222. package/dist/plugin/loader/directives/findDirectiveMatches.d.ts +3 -0
  223. package/dist/plugin/loader/directives/findDirectiveMatches.d.ts.map +1 -0
  224. package/dist/plugin/loader/directives/findDirectiveMatches.js +46 -0
  225. package/dist/plugin/loader/directives/getExportedName.d.ts +3 -0
  226. package/dist/plugin/loader/directives/getExportedName.d.ts.map +1 -0
  227. package/dist/plugin/loader/directives/getExportedName.js +59 -0
  228. package/dist/plugin/loader/directives/getExports.d.ts +7 -0
  229. package/dist/plugin/loader/directives/getExports.d.ts.map +1 -0
  230. package/dist/plugin/loader/directives/getExports.js +28 -0
  231. package/dist/plugin/loader/directives/getFunctionBody.d.ts +3 -0
  232. package/dist/plugin/loader/directives/getFunctionBody.d.ts.map +1 -0
  233. package/dist/plugin/loader/directives/getFunctionBody.js +31 -0
  234. package/dist/plugin/loader/directives/getFunctionName.d.ts +10 -0
  235. package/dist/plugin/loader/directives/getFunctionName.d.ts.map +1 -0
  236. package/dist/plugin/loader/directives/getFunctionName.js +42 -0
  237. package/dist/plugin/loader/directives/getQualifiedName.d.ts +3 -0
  238. package/dist/plugin/loader/directives/getQualifiedName.d.ts.map +1 -0
  239. package/dist/plugin/loader/directives/getQualifiedName.js +65 -0
  240. package/dist/plugin/loader/directives/index.d.ts +14 -0
  241. package/dist/plugin/loader/directives/index.d.ts.map +1 -0
  242. package/dist/plugin/loader/directives/index.js +18 -0
  243. package/dist/plugin/loader/directives/processFunctionNode.d.ts +4 -0
  244. package/dist/plugin/loader/directives/processFunctionNode.d.ts.map +1 -0
  245. package/dist/plugin/loader/directives/processFunctionNode.js +86 -0
  246. package/dist/plugin/loader/directives/typeGuards.d.ts +37 -0
  247. package/dist/plugin/loader/directives/typeGuards.d.ts.map +1 -0
  248. package/dist/plugin/loader/directives/typeGuards.js +100 -0
  249. package/dist/plugin/loader/directives/types.d.ts +154 -0
  250. package/dist/plugin/loader/directives/types.d.ts.map +1 -0
  251. package/dist/plugin/loader/directives/utils.d.ts +14 -0
  252. package/dist/plugin/loader/directives/utils.d.ts.map +1 -0
  253. package/dist/plugin/loader/directives/utils.js +21 -0
  254. package/dist/plugin/loader/env-loader.d.ts +12 -0
  255. package/dist/plugin/loader/env-loader.d.ts.map +1 -0
  256. package/dist/plugin/loader/env-loader.js +88 -0
  257. package/dist/plugin/loader/index.d.ts +8 -1
  258. package/dist/plugin/loader/index.d.ts.map +1 -1
  259. package/dist/plugin/loader/index.js +13 -4
  260. package/dist/plugin/loader/parse.d.ts +12 -2
  261. package/dist/plugin/loader/parse.d.ts.map +1 -1
  262. package/dist/plugin/loader/parse.js +28 -5
  263. package/dist/plugin/loader/react-loader.d.ts +22 -1
  264. package/dist/plugin/loader/react-loader.d.ts.map +1 -1
  265. package/dist/plugin/loader/react-loader.js +169 -6
  266. package/dist/plugin/loader/removeDirectives.d.ts +5 -0
  267. package/dist/plugin/loader/removeDirectives.d.ts.map +1 -0
  268. package/dist/plugin/loader/removeDirectives.js +17 -0
  269. package/dist/plugin/loader/removeRanges.d.ts +5 -0
  270. package/dist/plugin/loader/removeRanges.d.ts.map +1 -0
  271. package/dist/plugin/loader/removeRanges.js +20 -0
  272. package/dist/plugin/loader/sourceMap.d.ts +16 -24
  273. package/dist/plugin/loader/sourceMap.d.ts.map +1 -1
  274. package/dist/plugin/loader/sourceMap.js +125 -97
  275. package/dist/plugin/loader/transformClientModule.d.ts +9 -0
  276. package/dist/plugin/loader/transformClientModule.d.ts.map +1 -0
  277. package/dist/plugin/loader/transformClientModule.js +46 -0
  278. package/dist/plugin/loader/transformModule.d.ts +6 -0
  279. package/dist/plugin/loader/transformModule.d.ts.map +1 -0
  280. package/dist/plugin/loader/transformModule.js +37 -0
  281. package/dist/plugin/loader/transformModuleIfNeeded.d.ts +12 -1
  282. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
  283. package/dist/plugin/loader/transformModuleIfNeeded.js +9 -20
  284. package/dist/plugin/loader/transformNonServerEnvironment.d.ts +10 -0
  285. package/dist/plugin/loader/transformNonServerEnvironment.d.ts.map +1 -0
  286. package/dist/plugin/loader/transformNonServerEnvironment.js +72 -0
  287. package/dist/plugin/loader/transformServerModule.d.ts +10 -0
  288. package/dist/plugin/loader/transformServerModule.d.ts.map +1 -0
  289. package/dist/plugin/loader/transformServerModule.js +103 -0
  290. package/dist/plugin/loader/transformWithAcornLoose.d.ts +12 -0
  291. package/dist/plugin/loader/transformWithAcornLoose.d.ts.map +1 -0
  292. package/dist/plugin/loader/transformWithAcornLoose.js +16 -0
  293. package/dist/plugin/loader/types.d.ts +48 -13
  294. package/dist/plugin/loader/types.d.ts.map +1 -1
  295. package/dist/plugin/metrics/collectStreamMetrics.d.ts +9 -0
  296. package/dist/plugin/metrics/collectStreamMetrics.d.ts.map +1 -0
  297. package/dist/plugin/metrics/collectStreamMetrics.js +35 -0
  298. package/dist/plugin/metrics/createRenderMetrics.d.ts +3 -0
  299. package/dist/plugin/metrics/createRenderMetrics.d.ts.map +1 -0
  300. package/dist/plugin/metrics/createRenderMetrics.js +24 -0
  301. package/dist/plugin/metrics/createStreamMetrics.d.ts +3 -0
  302. package/dist/plugin/metrics/createStreamMetrics.d.ts.map +1 -0
  303. package/dist/plugin/metrics/createStreamMetrics.js +19 -0
  304. package/dist/plugin/metrics/formatMetrics.d.ts +6 -3
  305. package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
  306. package/dist/plugin/metrics/formatMetrics.js +5 -2
  307. package/dist/plugin/metrics/index.d.ts +3 -1
  308. package/dist/plugin/metrics/index.d.ts.map +1 -1
  309. package/dist/plugin/metrics/index.js +9 -1
  310. package/dist/plugin/metrics/types.d.ts +23 -0
  311. package/dist/plugin/metrics/types.d.ts.map +1 -0
  312. package/dist/plugin/metrics/types.js +1 -0
  313. package/dist/plugin/plugin.client.d.ts +23 -2
  314. package/dist/plugin/plugin.client.d.ts.map +1 -1
  315. package/dist/plugin/plugin.client.js +14 -9
  316. package/dist/plugin/plugin.server.d.ts +13 -2
  317. package/dist/plugin/plugin.server.d.ts.map +1 -1
  318. package/dist/plugin/plugin.server.js +15 -16
  319. package/dist/plugin/process-env.d.ts +18 -6
  320. package/dist/plugin/process-env.d.ts.map +1 -1
  321. package/dist/plugin/process-env.js +17 -0
  322. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts +11 -0
  323. package/dist/plugin/react-client/cleanupWorkerServerAction.d.ts.map +1 -0
  324. package/dist/plugin/react-client/cleanupWorkerServerAction.js +18 -0
  325. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts +9 -9
  326. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -1
  327. package/dist/plugin/react-client/configureWorkerRequestHandler.js +31 -26
  328. package/dist/plugin/react-client/createMessageHandlers.d.ts +1 -1
  329. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  330. package/dist/plugin/react-client/createMessageHandlers.js +15 -3
  331. package/dist/plugin/react-client/createWorkerStream.d.ts +12 -10
  332. package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
  333. package/dist/plugin/react-client/createWorkerStream.js +27 -29
  334. package/dist/plugin/react-client/handleWorkerRscStream.d.ts +13 -8
  335. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
  336. package/dist/plugin/react-client/handleWorkerRscStream.js +51 -24
  337. package/dist/plugin/react-client/handleWorkerServerAction.d.ts +2 -1
  338. package/dist/plugin/react-client/handleWorkerServerAction.d.ts.map +1 -1
  339. package/dist/plugin/react-client/handleWorkerServerAction.js +43 -28
  340. package/dist/plugin/react-client/index.d.ts +4 -1
  341. package/dist/plugin/react-client/index.d.ts.map +1 -1
  342. package/dist/plugin/react-client/index.js +10 -1
  343. package/dist/plugin/react-client/plugin.d.ts +5 -3
  344. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  345. package/dist/plugin/react-client/plugin.js +9 -11
  346. package/dist/plugin/react-client/restartWorker.d.ts +5 -4
  347. package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
  348. package/dist/plugin/react-client/restartWorker.js +14 -13
  349. package/dist/plugin/react-server/configureReactServer.d.ts +5 -4
  350. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -1
  351. package/dist/plugin/react-server/configureReactServer.js +106 -47
  352. package/dist/plugin/react-server/handleServerAction.d.ts +3 -2
  353. package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -1
  354. package/dist/plugin/react-server/handleServerAction.js +14 -20
  355. package/dist/plugin/react-server/plugin.d.ts +3 -4
  356. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  357. package/dist/plugin/react-server/plugin.js +30 -31
  358. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts +8 -6
  359. package/dist/plugin/react-static/collectHtmlWorkerContent.d.ts.map +1 -1
  360. package/dist/plugin/react-static/collectHtmlWorkerContent.js +4 -4
  361. package/dist/plugin/react-static/collectRscContent.d.ts +8 -6
  362. package/dist/plugin/react-static/collectRscContent.d.ts.map +1 -1
  363. package/dist/plugin/react-static/collectRscContent.js +4 -4
  364. package/dist/plugin/react-static/configurePreviewServer.d.ts +6 -4
  365. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  366. package/dist/plugin/react-static/configurePreviewServer.js +32 -36
  367. package/dist/plugin/react-static/createBuildLoader.d.ts +5 -5
  368. package/dist/plugin/react-static/createBuildLoader.d.ts.map +1 -1
  369. package/dist/plugin/react-static/createBuildLoader.js +122 -30
  370. package/dist/plugin/react-static/fileWriter.js +1 -1
  371. package/dist/plugin/react-static/plugin.d.ts +3 -4
  372. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  373. package/dist/plugin/react-static/plugin.js +62 -47
  374. package/dist/plugin/react-static/renderPage.d.ts +4 -2
  375. package/dist/plugin/react-static/renderPage.d.ts.map +1 -1
  376. package/dist/plugin/react-static/renderPage.js +21 -17
  377. package/dist/plugin/react-static/renderPages.d.ts +4 -2
  378. package/dist/plugin/react-static/renderPages.d.ts.map +1 -1
  379. package/dist/plugin/react-static/renderPages.js +7 -6
  380. package/dist/plugin/react-static/renderStreams.d.ts +5 -22
  381. package/dist/plugin/react-static/renderStreams.d.ts.map +1 -1
  382. package/dist/plugin/react-static/renderStreams.js +6 -6
  383. package/dist/plugin/react-static/rscToHtmlStream.d.ts.map +1 -1
  384. package/dist/plugin/react-static/rscToHtmlStream.js +1 -1
  385. package/dist/plugin/react-static/temporaryReferences.js +1 -1
  386. package/dist/plugin/react-static/types.d.ts +0 -1
  387. package/dist/plugin/react-static/types.d.ts.map +1 -1
  388. package/dist/plugin/root.js +1 -1
  389. package/dist/plugin/transformer/plugin.client.d.ts +29 -1
  390. package/dist/plugin/transformer/plugin.client.d.ts.map +1 -1
  391. package/dist/plugin/transformer/plugin.client.js +96 -1
  392. package/dist/plugin/transformer/plugin.js +1 -1
  393. package/dist/plugin/transformer/plugin.server.d.ts +5 -3
  394. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  395. package/dist/plugin/transformer/plugin.server.js +60 -69
  396. package/dist/plugin/types/css-tracking.d.ts +2 -2
  397. package/dist/plugin/types/css-tracking.d.ts.map +1 -1
  398. package/dist/plugin/types.d.ts +451 -192
  399. package/dist/plugin/types.d.ts.map +1 -1
  400. package/dist/plugin/types.js +2 -1
  401. package/dist/plugin/utils/callServer.js +1 -1
  402. package/dist/plugin/utils/createCallServer.d.ts +1 -1
  403. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  404. package/dist/plugin/utils/createCallServer.js +1 -1
  405. package/dist/plugin/utils/createReactFetcher.d.ts +2 -3
  406. package/dist/plugin/utils/createReactFetcher.d.ts.map +1 -1
  407. package/dist/plugin/utils/createReactFetcher.js +1 -1
  408. package/dist/plugin/utils/env.js +1 -1
  409. package/dist/plugin/utils/envUrls.node.d.ts.map +1 -1
  410. package/dist/plugin/utils/envUrls.node.js +3 -2
  411. package/dist/plugin/utils/index.d.ts +1 -0
  412. package/dist/plugin/utils/index.d.ts.map +1 -1
  413. package/dist/plugin/utils/index.js +12 -5
  414. package/dist/plugin/utils/routeToURL.d.ts +12 -0
  415. package/dist/plugin/utils/routeToURL.d.ts.map +1 -0
  416. package/dist/plugin/utils/routeToURL.js +26 -0
  417. package/dist/plugin/utils/urls.d.ts.map +1 -1
  418. package/dist/plugin/utils/urls.js +5 -3
  419. package/dist/plugin/vendor/index.js +7 -1
  420. package/dist/plugin/vendor/vendor.client.js +1 -1
  421. package/dist/plugin/vendor/vendor.js +1 -1
  422. package/dist/plugin/vendor/vendor.server.js +1 -1
  423. package/dist/plugin/worker/createWorker.d.ts +31 -17
  424. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  425. package/dist/plugin/worker/createWorker.js +18 -12
  426. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts +2 -2
  427. package/dist/plugin/worker/html/createHtmlWorkerRenderState.d.ts.map +1 -1
  428. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js +5 -2
  429. package/dist/plugin/worker/html/html-worker.development.js +3 -3
  430. package/dist/plugin/worker/html/html-worker.production.js +1 -1
  431. package/dist/plugin/worker/html/index.d.ts +1 -1
  432. package/dist/plugin/worker/html/index.d.ts.map +1 -1
  433. package/dist/plugin/worker/html/index.js +1 -1
  434. package/dist/plugin/worker/html/messageHandler.d.ts +1 -1
  435. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  436. package/dist/plugin/worker/html/messageHandler.js +9 -11
  437. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts +3 -0
  438. package/dist/plugin/worker/html/sendHtmlWorkerMessage.d.ts.map +1 -0
  439. package/dist/plugin/worker/html/sendHtmlWorkerMessage.js +2 -0
  440. package/dist/plugin/worker/html/types.d.ts +20 -2
  441. package/dist/plugin/worker/html/types.d.ts.map +1 -1
  442. package/dist/plugin/worker/index.d.ts +3 -0
  443. package/dist/plugin/worker/index.d.ts.map +1 -0
  444. package/dist/plugin/worker/index.js +7 -0
  445. package/dist/plugin/worker/registerLoaders.js +2 -2
  446. package/dist/plugin/worker/rsc/handleRender.d.ts +5 -3
  447. package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
  448. package/dist/plugin/worker/rsc/handleRender.js +57 -38
  449. package/dist/plugin/worker/rsc/handlers.d.ts.map +1 -1
  450. package/dist/plugin/worker/rsc/handlers.js +19 -15
  451. package/dist/plugin/worker/rsc/index.d.ts +1 -1
  452. package/dist/plugin/worker/rsc/index.d.ts.map +1 -1
  453. package/dist/plugin/worker/rsc/index.js +1 -1
  454. package/dist/plugin/worker/rsc/messageHandler.d.ts +1 -1
  455. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  456. package/dist/plugin/worker/rsc/messageHandler.js +22 -8
  457. package/dist/plugin/worker/rsc/rsc-worker.development.js +77 -11
  458. package/dist/plugin/worker/rsc/rsc-worker.production.js +37 -8
  459. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts +3 -0
  460. package/dist/plugin/worker/rsc/sendRscWorkerMessage.d.ts.map +1 -0
  461. package/dist/plugin/worker/rsc/sendRscWorkerMessage.js +11 -0
  462. package/dist/plugin/worker/rsc/state.js +1 -1
  463. package/dist/plugin/worker/rsc/types.d.ts +95 -0
  464. package/dist/plugin/worker/rsc/types.d.ts.map +1 -0
  465. package/dist/plugin/worker/rsc/types.js +1 -0
  466. package/dist/plugin/worker/rsc/userOptions.d.ts +1 -1
  467. package/dist/plugin/worker/rsc/userOptions.d.ts.map +1 -1
  468. package/dist/plugin/worker/rsc/userOptions.js +3 -4
  469. package/dist/plugin/worker/sendMessage.d.ts +3 -4
  470. package/dist/plugin/worker/sendMessage.d.ts.map +1 -1
  471. package/dist/plugin/worker/sendMessage.js +15 -5
  472. package/dist/plugin/worker/types.d.ts +109 -260
  473. package/dist/plugin/worker/types.d.ts.map +1 -1
  474. package/dist/server.js +1 -1
  475. package/dist/tsconfig.tsbuildinfo +1 -1
  476. package/package.json +59 -26
  477. package/plugin/components/{css-collector-elements.tsx → css.tsx} +3 -3
  478. package/plugin/components/html.tsx +4 -4
  479. package/plugin/components/index.ts +3 -3
  480. package/plugin/components/root.tsx +20 -0
  481. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +173 -134
  482. package/plugin/config/autoDiscover/resolveBuildPages.ts +120 -7
  483. package/plugin/config/createModuleID.ts +60 -39
  484. package/plugin/config/defaults.tsx +189 -96
  485. package/plugin/config/extMap.ts +51 -56
  486. package/plugin/config/flightBindings.ts +221 -0
  487. package/plugin/config/getCondition.ts +6 -0
  488. package/plugin/config/index.ts +17 -4
  489. package/plugin/config/interpolatePattern.ts +19 -0
  490. package/plugin/config/parsePattern.ts +81 -0
  491. package/plugin/config/resolveAllowedDirectives.ts +59 -0
  492. package/plugin/config/resolveDirectiveMatcher.ts +57 -0
  493. package/plugin/config/resolveEnv.ts +41 -37
  494. package/plugin/config/resolveOptions.ts +437 -318
  495. package/plugin/config/resolvePatternWithValues.ts +70 -0
  496. package/plugin/config/resolveRegExp.ts +89 -0
  497. package/plugin/config/resolveUrlOption.ts +92 -20
  498. package/plugin/config/resolveUserConfig.ts +427 -351
  499. package/plugin/env/createConfigEnv.ts +40 -0
  500. package/plugin/env/getArgValue.ts +56 -0
  501. package/plugin/env/getEnvKey.ts +61 -0
  502. package/plugin/env/index.ts +4 -1
  503. package/plugin/env/plugin.ts +13 -18
  504. package/plugin/env/userConfigEnv.ts +22 -0
  505. package/plugin/error/directiveError.ts +29 -0
  506. package/plugin/error/enhanceError.ts +41 -0
  507. package/plugin/error/index.ts +3 -0
  508. package/plugin/error/logError.ts +48 -0
  509. package/plugin/error/serializeError.ts +34 -0
  510. package/plugin/error/toError.ts +75 -45
  511. package/plugin/file-preserver/plugin.ts +3 -3
  512. package/plugin/getNodeEnv.ts +24 -0
  513. package/plugin/helpers/cleanObject.ts +2 -1
  514. package/plugin/helpers/collectViteModuleGraphCss.ts +138 -118
  515. package/plugin/helpers/createCssProps.tsx +29 -30
  516. package/plugin/helpers/createEventHandler.ts +1 -1
  517. package/plugin/helpers/createHandler.ts +40 -12
  518. package/plugin/helpers/createRscStream.tsx +103 -36
  519. package/plugin/helpers/formatMetrics.ts +2 -37
  520. package/plugin/helpers/getBundleManifest.ts +10 -1
  521. package/plugin/helpers/getRouteFiles.ts +154 -9
  522. package/plugin/helpers/handleServerAction.ts +12 -7
  523. package/plugin/helpers/hydrateUserOptions.ts +23 -0
  524. package/plugin/helpers/index.ts +4 -0
  525. package/plugin/helpers/inputNormalizer.ts +44 -24
  526. package/plugin/helpers/metrics.ts +4 -64
  527. package/plugin/helpers/moduleResolver.ts +74 -19
  528. package/plugin/helpers/requestInfo.ts +95 -61
  529. package/plugin/helpers/requestToRoute.ts +38 -12
  530. package/plugin/helpers/resolveComponent.ts +173 -0
  531. package/plugin/helpers/resolveComponents.ts +202 -0
  532. package/plugin/helpers/resolvePage.ts +35 -29
  533. package/plugin/helpers/resolvePageAndProps.ts +82 -61
  534. package/plugin/helpers/resolveProps.ts +100 -37
  535. package/plugin/helpers/resolveUserComponents.ts +190 -0
  536. package/plugin/helpers/serializeUserOptions.ts +190 -69
  537. package/plugin/helpers/stashReturnValue.ts +7 -4
  538. package/plugin/helpers/tryManifest.ts +1 -1
  539. package/plugin/loader/createDefaultLoader.ts +119 -119
  540. package/plugin/loader/createTransformer.ts +110 -0
  541. package/plugin/loader/css-loader.ts +206 -0
  542. package/plugin/loader/directives/addLocalExportedNames.ts +78 -0
  543. package/plugin/loader/directives/analyzeDirectives.ts +298 -0
  544. package/plugin/loader/directives/analyzeModule.ts +57 -0
  545. package/plugin/loader/directives/collectExports.ts +181 -0
  546. package/plugin/loader/directives/collectExportsFromModule.ts +25 -0
  547. package/plugin/loader/directives/findDirectiveMatches.ts +58 -0
  548. package/plugin/loader/directives/getExportedName.ts +73 -0
  549. package/plugin/loader/directives/getExports.ts +27 -0
  550. package/plugin/loader/directives/getFunctionBody.ts +32 -0
  551. package/plugin/loader/directives/getFunctionName.ts +70 -0
  552. package/plugin/loader/directives/getQualifiedName.ts +76 -0
  553. package/plugin/loader/directives/index.ts +13 -0
  554. package/plugin/loader/directives/processFunctionNode.ts +97 -0
  555. package/plugin/loader/directives/typeGuards.ts +160 -0
  556. package/plugin/loader/directives/types.ts +174 -0
  557. package/plugin/loader/directives/utils.ts +35 -0
  558. package/plugin/loader/env-loader.ts +135 -0
  559. package/plugin/loader/index.ts +8 -6
  560. package/plugin/loader/parse.ts +42 -12
  561. package/plugin/loader/react-loader.ts +256 -4
  562. package/plugin/loader/removeDirectives.ts +14 -0
  563. package/plugin/loader/removeRanges.ts +21 -0
  564. package/plugin/loader/sourceMap.ts +174 -84
  565. package/plugin/loader/transformClientModule.ts +60 -0
  566. package/plugin/loader/transformModule.ts +59 -0
  567. package/plugin/loader/transformModuleIfNeeded.ts +40 -40
  568. package/plugin/loader/transformNonServerEnvironment.ts +95 -0
  569. package/plugin/loader/transformServerModule.ts +167 -0
  570. package/plugin/loader/transformWithAcornLoose.ts +27 -0
  571. package/plugin/loader/types.ts +58 -13
  572. package/plugin/metrics/collectStreamMetrics.ts +38 -0
  573. package/plugin/metrics/createRenderMetrics.ts +17 -0
  574. package/plugin/metrics/createStreamMetrics.ts +14 -0
  575. package/plugin/metrics/formatMetrics.ts +7 -3
  576. package/plugin/metrics/index.ts +3 -1
  577. package/plugin/metrics/types.ts +24 -0
  578. package/plugin/plugin.client.ts +43 -16
  579. package/plugin/plugin.server.ts +41 -21
  580. package/plugin/process-env.ts +27 -6
  581. package/plugin/react-client/cleanupWorkerServerAction.ts +33 -0
  582. package/plugin/react-client/configureWorkerRequestHandler.ts +206 -201
  583. package/plugin/react-client/createMessageHandlers.ts +17 -3
  584. package/plugin/react-client/createWorkerStream.ts +55 -51
  585. package/plugin/react-client/handleWorkerRscStream.ts +130 -61
  586. package/plugin/react-client/handleWorkerServerAction.ts +59 -37
  587. package/plugin/react-client/index.ts +4 -1
  588. package/plugin/react-client/plugin.ts +17 -18
  589. package/plugin/react-client/restartWorker.ts +74 -70
  590. package/plugin/react-server/configureReactServer.ts +204 -142
  591. package/plugin/react-server/handleServerAction.ts +156 -160
  592. package/plugin/react-server/plugin.ts +150 -157
  593. package/plugin/react-static/collectHtmlWorkerContent.ts +109 -102
  594. package/plugin/react-static/collectRscContent.ts +55 -51
  595. package/plugin/react-static/configurePreviewServer.ts +99 -100
  596. package/plugin/react-static/createBuildLoader.ts +157 -48
  597. package/plugin/react-static/plugin.ts +368 -357
  598. package/plugin/react-static/renderPage.ts +31 -24
  599. package/plugin/react-static/renderPages.ts +21 -14
  600. package/plugin/react-static/renderStreams.ts +13 -15
  601. package/plugin/react-static/rscToHtmlStream.ts +4 -6
  602. package/plugin/react-static/types.ts +0 -3
  603. package/plugin/transformer/README.md +82 -8
  604. package/plugin/transformer/plugin.client.ts +142 -0
  605. package/plugin/transformer/plugin.server.ts +87 -112
  606. package/plugin/types/css-tracking.ts +1 -1
  607. package/plugin/types/global.d.ts +2 -2
  608. package/plugin/types/react-server-dom-esm.d.ts +12 -13
  609. package/plugin/types.ts +684 -309
  610. package/plugin/utils/createCallServer.ts +5 -5
  611. package/plugin/utils/createReactFetcher.ts +4 -6
  612. package/plugin/utils/envUrls.node.ts +15 -10
  613. package/plugin/utils/index.ts +2 -1
  614. package/plugin/utils/routeToURL.ts +34 -0
  615. package/plugin/utils/urls.ts +10 -7
  616. package/plugin/worker/createWorker.ts +67 -34
  617. package/plugin/worker/html/README.md +10 -0
  618. package/plugin/worker/html/createHtmlWorkerRenderState.tsx +7 -4
  619. package/plugin/worker/html/html-worker.development.tsx +4 -3
  620. package/plugin/worker/html/index.ts +3 -1
  621. package/plugin/worker/html/messageHandler.tsx +10 -16
  622. package/plugin/worker/html/sendHtmlWorkerMessage.ts +8 -0
  623. package/plugin/worker/html/types.ts +67 -1
  624. package/plugin/worker/index.ts +2 -0
  625. package/plugin/worker/registerLoaders.ts +3 -3
  626. package/plugin/worker/rsc/README.md +203 -1
  627. package/plugin/worker/rsc/handleRender.ts +75 -45
  628. package/plugin/worker/rsc/handlers.ts +30 -22
  629. package/plugin/worker/rsc/index.ts +2 -0
  630. package/plugin/worker/rsc/messageHandler.tsx +23 -13
  631. package/plugin/worker/rsc/rsc-worker.development.ts +104 -17
  632. package/plugin/worker/rsc/rsc-worker.production.ts +57 -10
  633. package/plugin/worker/rsc/sendRscWorkerMessage.ts +7 -0
  634. package/plugin/worker/rsc/state.ts +1 -1
  635. package/plugin/worker/rsc/types.ts +185 -0
  636. package/plugin/worker/rsc/userOptions.ts +2 -3
  637. package/plugin/worker/sendMessage.ts +23 -14
  638. package/plugin/worker/types.ts +131 -386
  639. package/scripts/check-react-version.mjs +3 -3
  640. package/scripts/fix-unused-imports.mjs +77 -0
  641. package/tsconfig.json +1 -1
  642. package/dist/_virtual/dynamic-import-helper.js.map +0 -1
  643. package/dist/client.js.map +0 -1
  644. package/dist/index.js.map +0 -1
  645. package/dist/plugin/components/css-collector-elements.d.ts.map +0 -1
  646. package/dist/plugin/components/css-collector-elements.js +0 -33
  647. package/dist/plugin/components/css-collector-elements.js.map +0 -1
  648. package/dist/plugin/components/css-collector.d.ts +0 -7
  649. package/dist/plugin/components/css-collector.d.ts.map +0 -1
  650. package/dist/plugin/components/css-collector.js +0 -18
  651. package/dist/plugin/components/css-collector.js.map +0 -1
  652. package/dist/plugin/components/html.js.map +0 -1
  653. package/dist/plugin/components.js +0 -9
  654. package/dist/plugin/components.js.map +0 -1
  655. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.js.map +0 -1
  656. package/dist/plugin/config/autoDiscover/customWorkerFiles.js.map +0 -1
  657. package/dist/plugin/config/autoDiscover/pageAndPropFiles.js.map +0 -1
  658. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +0 -1
  659. package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +0 -1
  660. package/dist/plugin/config/defaults.js.map +0 -1
  661. package/dist/plugin/config/extMap.js.map +0 -1
  662. package/dist/plugin/config/getCondition.js.map +0 -1
  663. package/dist/plugin/config/getPaths.js.map +0 -1
  664. package/dist/plugin/config/mimeTypes.js.map +0 -1
  665. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts +0 -5
  666. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +0 -1
  667. package/dist/plugin/config/resolveAutoDiscoverMatcher.js +0 -25
  668. package/dist/plugin/config/resolveAutoDiscoverMatcher.js.map +0 -1
  669. package/dist/plugin/config/resolveEnv.js.map +0 -1
  670. package/dist/plugin/config/resolveOptions.js.map +0 -1
  671. package/dist/plugin/config/resolvePages.js.map +0 -1
  672. package/dist/plugin/config/resolveUrlOption.js.map +0 -1
  673. package/dist/plugin/config/resolveUserConfig.js.map +0 -1
  674. package/dist/plugin/config.js +0 -17
  675. package/dist/plugin/config.js.map +0 -1
  676. package/dist/plugin/env.js +0 -79
  677. package/dist/plugin/env.js.map +0 -1
  678. package/dist/plugin/error/toError.js.map +0 -1
  679. package/dist/plugin/file-preserver.js +0 -96
  680. package/dist/plugin/file-preserver.js.map +0 -1
  681. package/dist/plugin/helpers/cleanObject.js.map +0 -1
  682. package/dist/plugin/helpers/collectManifestCss.js.map +0 -1
  683. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +0 -1
  684. package/dist/plugin/helpers/createCssProps.js.map +0 -1
  685. package/dist/plugin/helpers/createEventHandler.js.map +0 -1
  686. package/dist/plugin/helpers/createHandler.js.map +0 -1
  687. package/dist/plugin/helpers/createRscStream.js.map +0 -1
  688. package/dist/plugin/helpers/formatMetrics.js.map +0 -1
  689. package/dist/plugin/helpers/getBundleManifest.js.map +0 -1
  690. package/dist/plugin/helpers/getRouteFiles.js.map +0 -1
  691. package/dist/plugin/helpers/handleServerAction.js.map +0 -1
  692. package/dist/plugin/helpers/inputNormalizer.js.map +0 -1
  693. package/dist/plugin/helpers/metrics.js.map +0 -1
  694. package/dist/plugin/helpers/moduleRefs.js.map +0 -1
  695. package/dist/plugin/helpers/requestInfo.js.map +0 -1
  696. package/dist/plugin/helpers/requestToRoute.js.map +0 -1
  697. package/dist/plugin/helpers/resolvePage.js.map +0 -1
  698. package/dist/plugin/helpers/resolvePageAndProps.js.map +0 -1
  699. package/dist/plugin/helpers/resolveProps.js.map +0 -1
  700. package/dist/plugin/helpers/serializeUserOptions.js.map +0 -1
  701. package/dist/plugin/helpers/sourceMap.d.ts +0 -8
  702. package/dist/plugin/helpers/sourceMap.d.ts.map +0 -1
  703. package/dist/plugin/helpers/sourceMap.js +0 -136
  704. package/dist/plugin/helpers/stashReturnValue.js.map +0 -1
  705. package/dist/plugin/helpers/tryManifest.js.map +0 -1
  706. package/dist/plugin/helpers.js +0 -27
  707. package/dist/plugin/helpers.js.map +0 -1
  708. package/dist/plugin/loader/css-loader.development.d.ts.map +0 -1
  709. package/dist/plugin/loader/css-loader.development.js +0 -76
  710. package/dist/plugin/loader/css-loader.development.js.map +0 -1
  711. package/dist/plugin/loader/css-loader.production.d.ts +0 -31
  712. package/dist/plugin/loader/css-loader.production.d.ts.map +0 -1
  713. package/dist/plugin/loader/css-loader.production.js +0 -45
  714. package/dist/plugin/loader/css-loader.production.js.map +0 -1
  715. package/dist/plugin/loader/env-loader.development.d.ts +0 -13
  716. package/dist/plugin/loader/env-loader.development.d.ts.map +0 -1
  717. package/dist/plugin/loader/env-loader.development.js +0 -68
  718. package/dist/plugin/loader/handleExports.d.ts +0 -40
  719. package/dist/plugin/loader/handleExports.d.ts.map +0 -1
  720. package/dist/plugin/loader/handleExports.js +0 -209
  721. package/dist/plugin/loader/handleExports.js.map +0 -1
  722. package/dist/plugin/loader/parse.js.map +0 -1
  723. package/dist/plugin/loader/react-loader.client.d.ts +0 -2
  724. package/dist/plugin/loader/react-loader.client.d.ts.map +0 -1
  725. package/dist/plugin/loader/react-loader.client.js +0 -2
  726. package/dist/plugin/loader/react-loader.js.map +0 -1
  727. package/dist/plugin/loader/react-loader.server.d.ts +0 -21
  728. package/dist/plugin/loader/react-loader.server.d.ts.map +0 -1
  729. package/dist/plugin/loader/react-loader.server.js +0 -131
  730. package/dist/plugin/loader/transformModuleIfNeeded.js.map +0 -1
  731. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts +0 -48
  732. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +0 -1
  733. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +0 -428
  734. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +0 -1
  735. package/dist/plugin/metrics/formatMetrics.js.map +0 -1
  736. package/dist/plugin/metrics.js +0 -7
  737. package/dist/plugin/metrics.js.map +0 -1
  738. package/dist/plugin/plugin.client.js.map +0 -1
  739. package/dist/plugin/plugin.server.js.map +0 -1
  740. package/dist/plugin/preserver/index.d.ts +0 -2
  741. package/dist/plugin/preserver/index.d.ts.map +0 -1
  742. package/dist/plugin/preserver/index.js +0 -1
  743. package/dist/plugin/preserver/plugin.d.ts +0 -3
  744. package/dist/plugin/preserver/plugin.d.ts.map +0 -1
  745. package/dist/plugin/preserver/plugin.js +0 -130
  746. package/dist/plugin/preserver/plugin.js.map +0 -1
  747. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +0 -1
  748. package/dist/plugin/react-client/createMessageHandlers.js.map +0 -1
  749. package/dist/plugin/react-client/createWorkerStream.js.map +0 -1
  750. package/dist/plugin/react-client/handleWorkerRscStream.js.map +0 -1
  751. package/dist/plugin/react-client/handleWorkerServerAction.js.map +0 -1
  752. package/dist/plugin/react-client/plugin.js.map +0 -1
  753. package/dist/plugin/react-client/restartWorker.js.map +0 -1
  754. package/dist/plugin/react-server/configureReactServer.js.map +0 -1
  755. package/dist/plugin/react-server/handleServerAction.js.map +0 -1
  756. package/dist/plugin/react-server/plugin.js.map +0 -1
  757. package/dist/plugin/react-static/collectHtmlWorkerContent.js.map +0 -1
  758. package/dist/plugin/react-static/collectRscContent.js.map +0 -1
  759. package/dist/plugin/react-static/configurePreviewServer.js.map +0 -1
  760. package/dist/plugin/react-static/createBuildLoader.js.map +0 -1
  761. package/dist/plugin/react-static/fileWriter.js.map +0 -1
  762. package/dist/plugin/react-static/plugin.js.map +0 -1
  763. package/dist/plugin/react-static/renderPage.js.map +0 -1
  764. package/dist/plugin/react-static/renderPages.js.map +0 -1
  765. package/dist/plugin/react-static/renderStreams.js.map +0 -1
  766. package/dist/plugin/react-static/rscToHtmlStream.js.map +0 -1
  767. package/dist/plugin/react-static/streamHandler.d.ts +0 -2
  768. package/dist/plugin/react-static/streamHandler.d.ts.map +0 -1
  769. package/dist/plugin/react-static/temporaryReferences.js.map +0 -1
  770. package/dist/plugin/root.js.map +0 -1
  771. package/dist/plugin/source-map/createMappingsSerializer.d.ts +0 -2
  772. package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +0 -1
  773. package/dist/plugin/source-map/createMappingsSerializer.js +0 -129
  774. package/dist/plugin/source-map/createMappingsSerializer.js.map +0 -1
  775. package/dist/plugin/source-map/readMappings.d.ts +0 -2
  776. package/dist/plugin/source-map/readMappings.d.ts.map +0 -1
  777. package/dist/plugin/source-map/readMappings.js +0 -200
  778. package/dist/plugin/transformer/plugin.js.map +0 -1
  779. package/dist/plugin/transformer/plugin.server.js.map +0 -1
  780. package/dist/plugin/utils/callServer.js.map +0 -1
  781. package/dist/plugin/utils/createCallServer.js.map +0 -1
  782. package/dist/plugin/utils/createReactFetcher.js.map +0 -1
  783. package/dist/plugin/utils/env.js.map +0 -1
  784. package/dist/plugin/utils/envUrls.node.js.map +0 -1
  785. package/dist/plugin/utils/urls.js.map +0 -1
  786. package/dist/plugin/utils.js +0 -11
  787. package/dist/plugin/utils.js.map +0 -1
  788. package/dist/plugin/vendor/vendor.client.js.map +0 -1
  789. package/dist/plugin/vendor/vendor.js.map +0 -1
  790. package/dist/plugin/vendor/vendor.server.js.map +0 -1
  791. package/dist/plugin/vendor.js +0 -7
  792. package/dist/plugin/vendor.js.map +0 -1
  793. package/dist/plugin/worker/createWorker.js.map +0 -1
  794. package/dist/plugin/worker/html/createHtmlWorkerRenderState.js.map +0 -1
  795. package/dist/plugin/worker/html/html-worker.development.js.map +0 -1
  796. package/dist/plugin/worker/html/html-worker.production.js.map +0 -1
  797. package/dist/plugin/worker/html/index.js.map +0 -1
  798. package/dist/plugin/worker/html/messageHandler.js.map +0 -1
  799. package/dist/plugin/worker/rsc/handleRender.js.map +0 -1
  800. package/dist/plugin/worker/rsc/handlers.js.map +0 -1
  801. package/dist/plugin/worker/rsc/index.js.map +0 -1
  802. package/dist/plugin/worker/rsc/messageHandler.js.map +0 -1
  803. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +0 -1
  804. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +0 -1
  805. package/dist/plugin/worker/rsc/state.js.map +0 -1
  806. package/dist/plugin/worker/rsc/userOptions.js.map +0 -1
  807. package/dist/plugin/worker/sendMessage.js.map +0 -1
  808. package/dist/server.js.map +0 -1
  809. package/plugin/components/css-collector.tsx +0 -20
  810. package/plugin/config/resolveAutoDiscoverMatcher.ts +0 -23
  811. package/plugin/helpers/sourceMap.ts +0 -182
  812. package/plugin/loader/css-loader.development.ts +0 -135
  813. package/plugin/loader/css-loader.production.ts +0 -84
  814. package/plugin/loader/env-loader.development.ts +0 -107
  815. package/plugin/loader/handleExports.ts +0 -309
  816. package/plugin/loader/react-loader.client.ts +0 -1
  817. package/plugin/loader/react-loader.server.ts +0 -185
  818. package/plugin/loader/transformModuleWithPreservedFunctions.ts +0 -593
  819. package/plugin/preserver/index.ts +0 -1
  820. package/plugin/preserver/plugin.ts +0 -178
  821. package/plugin/react-static/streamHandler.ts +0 -0
  822. package/plugin/source-map/createMappingsSerializer.ts +0 -181
  823. package/plugin/source-map/readMappings.ts +0 -194
  824. /package/dist/plugin/{react-static/streamHandler.js → loader/directives/types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY;IAE7C,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,EACE,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,EACnC,MAAM,EAAE,YAAY,gBAOkB,MAAM,mBAgJ7C"}
1
+ {"version":3,"file":"createBuildLoader.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/createBuildLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAM3C,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE;IACxC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,WAAW,EAAE,mBAAmB,CAAC;IACjC,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B,EAAE,MAAM,EAAE,YAAY,KAAK,iBAAiB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,mBA+Q/B,CAAA"}
@@ -7,8 +7,10 @@ import { join } from 'node:path';
7
7
  import { getModuleRef } from '../helpers/moduleRefs.js';
8
8
  import { temporaryReferences } from './temporaryReferences.js';
9
9
  import { toError } from '../error/toError.js';
10
+ import { readFile, writeFile, unlink } from 'fs/promises';
11
+ import { existsSync } from 'fs';
10
12
 
11
- async function createBuildLoader({
13
+ const createBuildLoader = function _createBuildLoader({
12
14
  userOptions,
13
15
  serverManifest,
14
16
  clientManifest,
@@ -19,8 +21,12 @@ async function createBuildLoader({
19
21
  throw new Error("Server manifest is empty");
20
22
  }
21
23
  return async function buildLoader(id) {
24
+ if (userOptions.verbose) {
25
+ console.log("[buildLoader] id: ", id);
26
+ }
22
27
  const [withoutQuery, query] = id.split("?", 2);
23
- const [normalizedKey, normalizedValue] = userOptions.normalizer(withoutQuery);
28
+ const [moduleId, exportName] = withoutQuery.split("#", 2);
29
+ const [normalizedKey, normalizedValue] = userOptions.normalizer(moduleId);
24
30
  const moduleRef = getModuleRef(id);
25
31
  if (temporaryReferences?.has(moduleRef)) {
26
32
  const mod = temporaryReferences.get(moduleRef);
@@ -38,12 +44,12 @@ async function createBuildLoader({
38
44
  )?.[1];
39
45
  if (serverChunk) {
40
46
  if (serverChunk.type === "asset") {
41
- if (userOptions.autoDiscover.jsonPattern(normalizedValue)) {
47
+ if (userOptions.autoDiscover.jsonPattern.test(normalizedValue)) {
42
48
  const jsonContent = serverChunk.source;
43
49
  if (typeof jsonContent === "string") {
44
50
  return { default: JSON.parse(jsonContent) };
45
51
  }
46
- } else if (userOptions.autoDiscover.cssPattern(normalizedValue)) {
52
+ } else if (userOptions.autoDiscover.cssPattern.test(normalizedValue)) {
47
53
  const cssContent = serverChunk.source;
48
54
  if (typeof cssContent === "string") {
49
55
  return { default: cssContent };
@@ -57,12 +63,12 @@ async function createBuildLoader({
57
63
  console.warn("Could not find inline module for: " + normalizedValue);
58
64
  return null;
59
65
  }
60
- const isClientComponent = userOptions.autoDiscover.clientComponents(normalizedValue);
61
- const isServerAction = userOptions.autoDiscover.serverFunctions(normalizedValue);
62
- const isPage = userOptions.autoDiscover.pagePattern(normalizedValue);
63
- const isProps = userOptions.autoDiscover.propsPattern(normalizedValue);
66
+ const isClientComponent = userOptions.autoDiscover.clientPattern.test(normalizedValue);
64
67
  if (isClientComponent) {
65
68
  const clientEntry = clientManifest[normalizedValue];
69
+ if (userOptions.verbose) {
70
+ console.log("clientEntry", clientEntry);
71
+ }
66
72
  if (clientEntry) {
67
73
  try {
68
74
  const module = await import(join(
@@ -81,26 +87,6 @@ async function createBuildLoader({
81
87
  }
82
88
  }
83
89
  }
84
- if (isServerAction || isPage || isProps) {
85
- const serverEntry = serverManifest[normalizedValue];
86
- if (serverEntry) {
87
- try {
88
- const module = await import(join(
89
- userOptions.projectRoot,
90
- userOptions.build.outDir,
91
- userOptions.build.server,
92
- serverEntry.file
93
- ));
94
- temporaryReferences?.set(moduleRef, module);
95
- return module;
96
- } catch (error) {
97
- const err = toError(error);
98
- console.warn("Error loading server module:", err);
99
- temporaryReferences?.delete(moduleRef);
100
- throw err;
101
- }
102
- }
103
- }
104
90
  const staticEntry = staticManifest[normalizedValue];
105
91
  if (staticEntry) {
106
92
  try {
@@ -111,6 +97,9 @@ async function createBuildLoader({
111
97
  staticEntry.file
112
98
  ));
113
99
  temporaryReferences?.set(moduleRef, module);
100
+ if (exportName && !(exportName in module)) {
101
+ throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
102
+ }
114
103
  return module;
115
104
  } catch (error) {
116
105
  const err = toError(error);
@@ -119,6 +108,109 @@ async function createBuildLoader({
119
108
  throw err;
120
109
  }
121
110
  }
111
+ const serverEntry = serverManifest[normalizedValue];
112
+ if (serverEntry) {
113
+ try {
114
+ const module = await import(join(
115
+ userOptions.projectRoot,
116
+ userOptions.build.outDir,
117
+ userOptions.build.server,
118
+ serverEntry.file
119
+ ));
120
+ temporaryReferences?.set(moduleRef, module);
121
+ if (exportName && !(exportName in module)) {
122
+ throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
123
+ }
124
+ return module;
125
+ } catch (error) {
126
+ const err = toError(error);
127
+ if (userOptions.panicThreshold === "critical_errors") {
128
+ console.warn("Error loading server module:", err);
129
+ temporaryReferences?.delete(moduleRef);
130
+ } else {
131
+ console.error("Error loading server module:", err);
132
+ throw err;
133
+ }
134
+ }
135
+ }
136
+ const sourceFilePath = join(userOptions.projectRoot, normalizedValue);
137
+ if (userOptions.verbose) {
138
+ console.log("[buildLoader] Checking source file:", sourceFilePath, "exists:", existsSync(sourceFilePath));
139
+ }
140
+ if (existsSync(sourceFilePath)) {
141
+ try {
142
+ if (userOptions.verbose) {
143
+ console.log("[buildLoader] Loading source file:", sourceFilePath);
144
+ }
145
+ if (sourceFilePath.endsWith(".tsx") || sourceFilePath.endsWith(".ts") || sourceFilePath.endsWith(".mts")) {
146
+ const relativePath = normalizedValue.replace(/^src\//, "");
147
+ const staticBuiltPath = join(
148
+ userOptions.projectRoot,
149
+ userOptions.build.outDir,
150
+ userOptions.build.static,
151
+ relativePath.replace(/\.(tsx?|mts)$/, ".js")
152
+ );
153
+ const serverBuiltPath = join(
154
+ userOptions.projectRoot,
155
+ userOptions.build.outDir,
156
+ userOptions.build.server,
157
+ relativePath.replace(/\.(tsx?|mts)$/, ".js")
158
+ );
159
+ let builtModulePath = null;
160
+ if (existsSync(staticBuiltPath)) {
161
+ builtModulePath = staticBuiltPath;
162
+ } else if (existsSync(serverBuiltPath)) {
163
+ builtModulePath = serverBuiltPath;
164
+ }
165
+ if (builtModulePath) {
166
+ if (userOptions.verbose) {
167
+ console.log("[buildLoader] Found built module:", builtModulePath);
168
+ }
169
+ const module = await import(builtModulePath);
170
+ temporaryReferences?.set(moduleRef, module);
171
+ if (exportName && !(exportName in module)) {
172
+ throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
173
+ }
174
+ return module;
175
+ }
176
+ if (userOptions.verbose) {
177
+ console.log("[buildLoader] No built module found, trying to compile source file");
178
+ }
179
+ const { transformWithEsbuild } = await import('vite');
180
+ const sourceCode = await readFile(sourceFilePath, "utf-8");
181
+ const result = await transformWithEsbuild(sourceCode, sourceFilePath, {
182
+ format: "esm",
183
+ sourcemap: false
184
+ });
185
+ const tempFilePath = sourceFilePath.replace(/\.(tsx?|mts)$/, ".temp.js");
186
+ await writeFile(tempFilePath, result.code);
187
+ try {
188
+ const module = await import(tempFilePath);
189
+ temporaryReferences?.set(moduleRef, module);
190
+ if (exportName && !(exportName in module)) {
191
+ throw new Error(`Export ${exportName} not found in module ${normalizedValue}`);
192
+ }
193
+ return module;
194
+ } finally {
195
+ try {
196
+ await unlink(tempFilePath);
197
+ } catch (cleanupError) {
198
+ if (userOptions.verbose) {
199
+ console.warn("[buildLoader] Failed to cleanup temp file:", cleanupError);
200
+ }
201
+ }
202
+ }
203
+ } else {
204
+ const content = await readFile(sourceFilePath, "utf-8");
205
+ return { default: content };
206
+ }
207
+ } catch (error) {
208
+ const err = toError(error);
209
+ console.warn("Error loading source file:", err);
210
+ temporaryReferences?.delete(moduleRef);
211
+ throw err;
212
+ }
213
+ }
122
214
  throw new Error(`Module ${normalizedValue} not found during build`);
123
215
  } catch (error) {
124
216
  const emptyExports = {
@@ -129,7 +221,7 @@ async function createBuildLoader({
129
221
  return emptyExports;
130
222
  }
131
223
  };
132
- }
224
+ };
133
225
 
134
226
  export { createBuildLoader };
135
- //# sourceMappingURL=createBuildLoader.js.map
227
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQnVpbGRMb2FkZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9yZWFjdC1zdGF0aWMvY3JlYXRlQnVpbGRMb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRNb2R1bGVMb2FkZXIsXG4gIFJlc29sdmVkVXNlckNvbmZpZyxcbiAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3NlcnZlci5qc1wiO1xuaW1wb3J0IHR5cGUgeyBNYW5pZmVzdCB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyBnZXRNb2R1bGVSZWYgfSBmcm9tIFwiLi4vaGVscGVycy9tb2R1bGVSZWZzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IE91dHB1dEJ1bmRsZSB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCB7IHRlbXBvcmFyeVJlZmVyZW5jZXMgfSBmcm9tIFwiLi90ZW1wb3JhcnlSZWZlcmVuY2VzLmpzXCI7XG5pbXBvcnQgeyB0b0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9yL3RvRXJyb3IuanNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIHVubGluayB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVCdWlsZExvYWRlckZuID0gKHByb3BzOiB7XG4gIHVzZXJDb25maWc6IFJlc29sdmVkVXNlckNvbmZpZztcbiAgdXNlck9wdGlvbnM6IFJlc29sdmVkVXNlck9wdGlvbnM7XG4gIHNlcnZlck1hbmlmZXN0OiBNYW5pZmVzdDtcbiAgY2xpZW50TWFuaWZlc3Q6IE1hbmlmZXN0O1xuICBzdGF0aWNNYW5pZmVzdDogTWFuaWZlc3Q7XG59LCBidW5kbGU6IE91dHB1dEJ1bmRsZSkgPT4gQnVpbGRNb2R1bGVMb2FkZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGxvYWRlciBmdW5jdGlvbiBmb3IgaGFuZGxpbmcgbW9kdWxlIHJlc29sdXRpb24gZHVyaW5nIGJ1aWxkLlxuICpcbiAqIFRoZSBsb2FkZXIgaGFuZGxlcyB0aGUgZm9sbG93aW5nIHN0cmF0ZWd5OlxuICogIC0gRm9yIGNsaWVudCBjb21wb25lbnRzOiBVc2UgY2xpZW50IG1hbmlmZXN0IGFuZCBjbGllbnQuYnJvd3Nlci5qc1xuICogIC0gRm9yIHNlcnZlciBjb21wb25lbnRzOiBVc2Ugc2VydmVyIG1hbmlmZXN0IGFuZCBzZXJ2ZXIuanNcbiAqICAtIEZvciBzdGF0aWMgYXNzZXRzOiBVc2Ugc3RhdGljIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVCdWlsZExvYWRlcjogQ3JlYXRlQnVpbGRMb2FkZXJGbiA9IGZ1bmN0aW9uIF9jcmVhdGVCdWlsZExvYWRlcihcbiAge1xuICAgIHVzZXJPcHRpb25zLFxuICAgIHNlcnZlck1hbmlmZXN0LFxuICAgIGNsaWVudE1hbmlmZXN0LFxuICAgIHN0YXRpY01hbmlmZXN0LFxuICB9LFxuICBidW5kbGVcbikge1xuICBjb25zdCBtYW5pZmVzdEtleXMgPSBPYmplY3Qua2V5cyhzZXJ2ZXJNYW5pZmVzdCk7XG4gIGlmICghbWFuaWZlc3RLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciBtYW5pZmVzdCBpcyBlbXB0eVwiKTtcbiAgfVxuXG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiBidWlsZExvYWRlcihpZCkge1xuICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gaWQ6IFwiLCBpZCk7XG4gICAgfVxuICAgIGNvbnN0IFt3aXRob3V0UXVlcnksIHF1ZXJ5XSA9IGlkLnNwbGl0KFwiP1wiLCAyKTtcbiAgICBjb25zdCBbbW9kdWxlSWQsIGV4cG9ydE5hbWVdID0gd2l0aG91dFF1ZXJ5LnNwbGl0KFwiI1wiLCAyKTtcbiAgICBjb25zdCBbbm9ybWFsaXplZEtleSwgbm9ybWFsaXplZFZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIobW9kdWxlSWQpO1xuICAgIGNvbnN0IG1vZHVsZVJlZiA9IGdldE1vZHVsZVJlZihpZCk7XG5cbiAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSAoY2FjaGVkIG1vZHVsZSlcbiAgICBpZiAodGVtcG9yYXJ5UmVmZXJlbmNlcz8uaGFzKG1vZHVsZVJlZikpIHtcbiAgICAgIGNvbnN0IG1vZCA9IHRlbXBvcmFyeVJlZmVyZW5jZXMuZ2V0KG1vZHVsZVJlZik7XG4gICAgICBpZiAodHlwZW9mIG1vZCA9PT0gXCJvYmplY3RcIiAmJiBtb2QgIT09IG51bGwgJiYgXCJlcnJvclwiIGluIG1vZCkge1xuICAgICAgICAvLyBpZ25vcmUgaXRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtb2Q7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEZvciBpbmxpbmUgbW9kdWxlcywgaGFuZGxlIHRoZW0gZGlyZWN0bHlcbiAgICAgIGlmIChxdWVyeSA9PT0gXCJpbmxpbmVcIikge1xuICAgICAgICBjb25zdCBzdGFydHNXaXRoTWFya2VyID0gbm9ybWFsaXplZEtleS5zcGxpdChcIi1cIilbMF07XG4gICAgICAgIGNvbnN0IHNlcnZlckNodW5rID1cbiAgICAgICAgICBidW5kbGVbc2VydmVyTWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbc3RhdGljTWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbY2xpZW50TWFuaWZlc3Rbbm9ybWFsaXplZFZhbHVlXT8uZmlsZV0gPz9cbiAgICAgICAgICBidW5kbGVbd2l0aG91dFF1ZXJ5XSA/P1xuICAgICAgICAgIGJ1bmRsZVtub3JtYWxpemVkVmFsdWVdID8/XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYnVuZGxlKS5maW5kKFxuICAgICAgICAgICAgKFssIHZhbHVlXSkgPT4gdmFsdWUubmFtZSA9PT0gbm9ybWFsaXplZFZhbHVlXG4gICAgICAgICAgKT8uWzFdID8/XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoYnVuZGxlKS5maW5kKChbX2tleV0pID0+XG4gICAgICAgICAgICBfa2V5LnN0YXJ0c1dpdGgoc3RhcnRzV2l0aE1hcmtlcilcbiAgICAgICAgICApPy5bMV07XG5cbiAgICAgICAgaWYgKHNlcnZlckNodW5rKSB7XG4gICAgICAgICAgaWYgKHNlcnZlckNodW5rLnR5cGUgPT09IFwiYXNzZXRcIikge1xuICAgICAgICAgICAgLy8gRm9yIENTUyBmaWxlcywgZW5zdXJlIHdlJ3JlIGluIHRoZSBSZWFjdCBTZXJ2ZXIgZW52aXJvbm1lbnRcbiAgICAgICAgICAgIGlmICh1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuanNvblBhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25Db250ZW50ID0gc2VydmVyQ2h1bmsuc291cmNlO1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGpzb25Db250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogSlNPTi5wYXJzZShqc29uQ29udGVudCkgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNzc1BhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29uc3QgY3NzQ29udGVudCA9IHNlcnZlckNodW5rLnNvdXJjZTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjc3NDb250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogY3NzQ29udGVudCB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0OiBzZXJ2ZXJDaHVuay5zb3VyY2UgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFwiY29kZVwiIGluIHNlcnZlckNodW5rKSB7XG4gICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0OiBzZXJ2ZXJDaHVuay5jb2RlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihcIkNvdWxkIG5vdCBmaW5kIGlubGluZSBtb2R1bGUgZm9yOiBcIiArIG5vcm1hbGl6ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIGNsaWVudCBjb21wb25lbnRcbiAgICAgIGNvbnN0IGlzQ2xpZW50Q29tcG9uZW50ID1cbiAgICAgICAgdXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNsaWVudFBhdHRlcm4udGVzdChub3JtYWxpemVkVmFsdWUpO1xuXG4gICAgICAvLyBGb3IgY2xpZW50IGNvbXBvbmVudHMsIHVzZSBjbGllbnQgbWFuaWZlc3RcbiAgICAgIGlmIChpc0NsaWVudENvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBjbGllbnRFbnRyeSA9IGNsaWVudE1hbmlmZXN0W25vcm1hbGl6ZWRWYWx1ZV07XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJjbGllbnRFbnRyeVwiLCBjbGllbnRFbnRyeSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsaWVudEVudHJ5KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChcbiAgICAgICAgICAgICAgam9pbihcbiAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQuY2xpZW50LFxuICAgICAgICAgICAgICAgIGNsaWVudEVudHJ5LmZpbGVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LnNldChtb2R1bGVSZWYsIG1vZHVsZSk7XG4gICAgICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkVycm9yIGxvYWRpbmcgY2xpZW50IG1vZHVsZTpcIiwgZXJyKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGb3Igc3RhdGljIGFzc2V0cywgdXNlIHN0YXRpYyBtYW5pZmVzdFxuICAgICAgY29uc3Qgc3RhdGljRW50cnkgPSBzdGF0aWNNYW5pZmVzdFtub3JtYWxpemVkVmFsdWVdO1xuICAgICAgaWYgKHN0YXRpY0VudHJ5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KFxuICAgICAgICAgICAgam9pbihcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQuc3RhdGljLFxuICAgICAgICAgICAgICBzdGF0aWNFbnRyeS5maWxlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5zZXQobW9kdWxlUmVmLCBtb2R1bGUpO1xuICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gZXhwb3J0IG5hbWUsIG1ha2Ugc3VyZSBpdCdzIGEga2V5XG4gICAgICAgICAgaWYgKGV4cG9ydE5hbWUgJiYgIShleHBvcnROYW1lIGluIG1vZHVsZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwb3J0ICR7ZXhwb3J0TmFtZX0gbm90IGZvdW5kIGluIG1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciBsb2FkaW5nIHN0YXRpYyBtb2R1bGU6XCIsIGVycik7XG4gICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcz8uZGVsZXRlKG1vZHVsZVJlZik7XG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIHNlcnZlciBtYW5pZmVzdCBmb3IgYW55IHJlbWFpbmluZyBtb2R1bGVzIChpbmNsdWRpbmcgSHRtbC9Sb290IGNvbXBvbmVudHMpXG4gICAgICBjb25zdCBzZXJ2ZXJFbnRyeSA9IHNlcnZlck1hbmlmZXN0W25vcm1hbGl6ZWRWYWx1ZV07XG5cbiAgICAgIGlmIChzZXJ2ZXJFbnRyeSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChcbiAgICAgICAgICAgIGpvaW4oXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLnByb2plY3RSb290LFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLnNlcnZlcixcbiAgICAgICAgICAgICAgc2VydmVyRW50cnkuZmlsZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcz8uc2V0KG1vZHVsZVJlZiwgbW9kdWxlKTtcbiAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGV4cG9ydCBuYW1lLCBtYWtlIHN1cmUgaXQncyBhIGtleVxuICAgICAgICAgIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiBtb2R1bGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cG9ydCAke2V4cG9ydE5hbWV9IG5vdCBmb3VuZCBpbiBtb2R1bGUgJHtub3JtYWxpemVkVmFsdWV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtb2R1bGU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc3QgZXJyID0gdG9FcnJvcihlcnJvcik7XG4gICAgICAgICAgaWYodXNlck9wdGlvbnMucGFuaWNUaHJlc2hvbGQgPT09IFwiY3JpdGljYWxfZXJyb3JzXCIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkVycm9yIGxvYWRpbmcgc2VydmVyIG1vZHVsZTpcIiwgZXJyKTtcbiAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgbG9hZGluZyBzZXJ2ZXIgbW9kdWxlOlwiLCBlcnIpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGb3Igc291cmNlIGZpbGVzIChsaWtlIGN1c3RvbSBSb290L0h0bWwgY29tcG9uZW50cyksIHRyeSB0byBsb2FkIGRpcmVjdGx5IGZyb20gZmlsZXN5c3RlbVxuICAgICAgY29uc3Qgc291cmNlRmlsZVBhdGggPSBqb2luKHVzZXJPcHRpb25zLnByb2plY3RSb290LCBub3JtYWxpemVkVmFsdWUpO1xuICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbYnVpbGRMb2FkZXJdIENoZWNraW5nIHNvdXJjZSBmaWxlOlwiLCBzb3VyY2VGaWxlUGF0aCwgXCJleGlzdHM6XCIsIGV4aXN0c1N5bmMoc291cmNlRmlsZVBhdGgpKTtcbiAgICAgIH1cbiAgICAgIGlmIChleGlzdHNTeW5jKHNvdXJjZUZpbGVQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gTG9hZGluZyBzb3VyY2UgZmlsZTpcIiwgc291cmNlRmlsZVBhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEZvciBUeXBlU2NyaXB0L1RTWCBmaWxlcywgZmlyc3QgY2hlY2sgaWYgdGhlcmUncyBhIGJ1aWx0IHZlcnNpb24gaW4gZGlzdFxuICAgICAgICAgIGlmIChzb3VyY2VGaWxlUGF0aC5lbmRzV2l0aCgnLnRzeCcpIHx8IHNvdXJjZUZpbGVQYXRoLmVuZHNXaXRoKCcudHMnKSB8fCBzb3VyY2VGaWxlUGF0aC5lbmRzV2l0aCgnLm10cycpKSB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gZmluZCB0aGUgYnVpbHQgbW9kdWxlIGZpcnN0IC0gY2hlY2sgYm90aCBzdGF0aWMgYW5kIHNlcnZlciBkaXJlY3Rvcmllc1xuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZFZhbHVlLnJlcGxhY2UoL15zcmNcXC8vLCAnJyk7XG4gICAgICAgICAgICBjb25zdCBzdGF0aWNCdWlsdFBhdGggPSBqb2luKFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnMuYnVpbGQub3V0RGlyLFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgIHJlbGF0aXZlUGF0aC5yZXBsYWNlKC9cXC4odHN4P3xtdHMpJC8sICcuanMnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHNlcnZlckJ1aWx0UGF0aCA9IGpvaW4oXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLnByb2plY3RSb290LFxuICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgIHVzZXJPcHRpb25zLmJ1aWxkLnNlcnZlcixcbiAgICAgICAgICAgICAgcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLih0c3g/fG10cykkLywgJy5qcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBzdGF0aWMgZGlyZWN0b3J5IGZpcnN0LCB0aGVuIHNlcnZlciBkaXJlY3RvcnlcbiAgICAgICAgICAgIGxldCBidWlsdE1vZHVsZVBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGV4aXN0c1N5bmMoc3RhdGljQnVpbHRQYXRoKSkge1xuICAgICAgICAgICAgICBidWlsdE1vZHVsZVBhdGggPSBzdGF0aWNCdWlsdFBhdGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV4aXN0c1N5bmMoc2VydmVyQnVpbHRQYXRoKSkge1xuICAgICAgICAgICAgICBidWlsdE1vZHVsZVBhdGggPSBzZXJ2ZXJCdWlsdFBhdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChidWlsdE1vZHVsZVBhdGgpIHtcbiAgICAgICAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIltidWlsZExvYWRlcl0gRm91bmQgYnVpbHQgbW9kdWxlOlwiLCBidWlsdE1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydChidWlsdE1vZHVsZVBhdGgpO1xuICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5zZXQobW9kdWxlUmVmLCBtb2R1bGUpO1xuICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGV4cG9ydCBuYW1lLCBtYWtlIHN1cmUgaXQncyBhIGtleVxuICAgICAgICAgICAgICBpZiAoZXhwb3J0TmFtZSAmJiAhKGV4cG9ydE5hbWUgaW4gbW9kdWxlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwb3J0ICR7ZXhwb3J0TmFtZX0gbm90IGZvdW5kIGluIG1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiBubyBidWlsdCBtb2R1bGUgZm91bmQsIHRyeSB0byBjb21waWxlIHRoZSBzb3VyY2UgZmlsZVxuICAgICAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbYnVpbGRMb2FkZXJdIE5vIGJ1aWx0IG1vZHVsZSBmb3VuZCwgdHJ5aW5nIHRvIGNvbXBpbGUgc291cmNlIGZpbGVcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFVzZSBlc2J1aWxkIHRvIGNvbXBpbGUgdGhlIFR5cGVTY3JpcHQvVFNYIGZpbGVcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNmb3JtV2l0aEVzYnVpbGQgfSA9IGF3YWl0IGltcG9ydCgndml0ZScpO1xuICAgICAgICAgICAgY29uc3Qgc291cmNlQ29kZSA9IGF3YWl0IHJlYWRGaWxlKHNvdXJjZUZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zZm9ybVdpdGhFc2J1aWxkKHNvdXJjZUNvZGUsIHNvdXJjZUZpbGVQYXRoLCB7XG4gICAgICAgICAgICAgIGZvcm1hdDogJ2VzbScsXG4gICAgICAgICAgICAgIHNvdXJjZW1hcDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgdGVtcG9yYXJ5IGZpbGUgd2l0aCB0aGUgY29tcGlsZWQgY29kZVxuICAgICAgICAgICAgY29uc3QgdGVtcEZpbGVQYXRoID0gc291cmNlRmlsZVBhdGgucmVwbGFjZSgvXFwuKHRzeD98bXRzKSQvLCAnLnRlbXAuanMnKTtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZSh0ZW1wRmlsZVBhdGgsIHJlc3VsdC5jb2RlKTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gYXdhaXQgaW1wb3J0KHRlbXBGaWxlUGF0aCk7XG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LnNldChtb2R1bGVSZWYsIG1vZHVsZSk7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gZXhwb3J0IG5hbWUsIG1ha2Ugc3VyZSBpdCdzIGEga2V5XG4gICAgICAgICAgICAgIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiBtb2R1bGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBvcnQgJHtleHBvcnROYW1lfSBub3QgZm91bmQgaW4gbW9kdWxlICR7bm9ybWFsaXplZFZhbHVlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBtb2R1bGU7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAvLyBDbGVhbiB1cCB0ZW1wb3JhcnkgZmlsZVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHVubGluayh0ZW1wRmlsZVBhdGgpO1xuICAgICAgICAgICAgICB9IGNhdGNoIChjbGVhbnVwRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgY2xlYW51cCBlcnJvcnNcbiAgICAgICAgICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiW2J1aWxkTG9hZGVyXSBGYWlsZWQgdG8gY2xlYW51cCB0ZW1wIGZpbGU6XCIsIGNsZWFudXBFcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZvciBvdGhlciBmaWxlcywgcmVhZCBhcyB0ZXh0XG4gICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoc291cmNlRmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZGVmYXVsdDogY29udGVudCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBlcnIgPSB0b0Vycm9yKGVycm9yKTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciBsb2FkaW5nIHNvdXJjZSBmaWxlOlwiLCBlcnIpO1xuICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXM/LmRlbGV0ZShtb2R1bGVSZWYpO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSAke25vcm1hbGl6ZWRWYWx1ZX0gbm90IGZvdW5kIGR1cmluZyBidWlsZGApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlbXB0eUV4cG9ydHMgPSB7XG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSksXG4gICAgICAgIGlkOiBpZCxcbiAgICAgIH07XG4gICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzPy5kZWxldGUobW9kdWxlUmVmKTtcbiAgICAgIHJldHVybiBl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
@@ -66,4 +66,4 @@ async function fileWriter(stream, fileType, options) {
66
66
  }
67
67
 
68
68
  export { fileWriter };
69
- //# sourceMappingURL=fileWriter.js.map
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZVdyaXRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3JlYWN0LXN0YXRpYy9maWxlV3JpdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZmlsZVdyaXRlci50c1xuICpcbiAqIFBVUlBPU0U6IEhhbmRsZXMgZmlsZSB3cml0aW5nIG9wZXJhdGlvbnMgZm9yIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIChSU0MpIHJlbmRlcmluZ1xuICpcbiAqIFRoaXMgbW9kdWxlOlxuICogMS4gV3JpdGVzIEhUTUwgYW5kIFJTQyBmaWxlcyB0byB0aGUgZmlsZXN5c3RlbSB1c2luZyBzdHJlYW1zXG4gKiAyLiBDcmVhdGVzIG5lY2Vzc2FyeSBkaXJlY3Rvcmllc1xuICogMy4gSGFuZGxlcyBmaWxlIHBhdGggY29uc3RydWN0aW9uXG4gKiA0LiBQcm92aWRlcyBhIGNsZWFuIGludGVyZmFjZSBmb3IgZmlsZSBvcGVyYXRpb25zXG4gKi9cbmltcG9ydCB0eXBlIHsgRmlsZVdyaXRlck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjcmVhdGVXcml0ZVN0cmVhbSB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBta2RpciB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyB0eXBlIFJlYWRhYmxlLCBUcmFuc2Zvcm0gfSBmcm9tIFwibm9kZTpzdHJlYW1cIjtcblxuLyoqXG4gKiBXcml0ZXMgSFRNTCBhbmQgUlNDIGZpbGVzIGZvciBhIHJvdXRlIHVzaW5nIHN0cmVhbXNcbiAqXG4gKiBAcGFyYW0gc3RyZWFtIFRoZSByZWFkYWJsZSBzdHJlYW0gY29udGFpbmluZyB0aGUgY29udGVudFxuICogQHBhcmFtIGZpbGVUeXBlIFRoZSB0eXBlIG9mIGZpbGUgYmVpbmcgd3JpdHRlbiAoXCJodG1sXCIgb3IgXCJyc2NcIilcbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBmaWxlIHdyaXRlciBvcHRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlIGlzIHdyaXR0ZW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVXcml0ZXIoXG4gIHN0cmVhbTogUmVhZGFibGUsXG4gIGZpbGVUeXBlOiBcImh0bWxcIiB8IFwicnNjXCIsXG4gIG9wdGlvbnM6IEZpbGVXcml0ZXJPcHRpb25zXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBvbkV2ZW50IH0gPSBvcHRpb25zO1xuXG4gIC8vIFZhbGlkYXRlIHN0cmVhbVxuICBpZiAoIXN0cmVhbSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBzdHJlYW0gZm9yIHJvdXRlOiAke29wdGlvbnMucm91dGV9YCk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRQYXRoID0gam9pbihcbiAgICBvcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICBvcHRpb25zLmJ1aWxkLnN0YXRpYyxcbiAgICBvcHRpb25zLnJvdXRlLFxuICAgIGZpbGVUeXBlID09PSBcImh0bWxcIiA/IG9wdGlvbnMuYnVpbGQuaHRtbE91dHB1dFBhdGggOiBvcHRpb25zLmJ1aWxkLnJzY091dHB1dFBhdGhcbiAgKTtcblxuICAvLyBFbnN1cmUgZGlyZWN0b3J5IGV4aXN0c1xuICB0cnkge1xuICAgIGF3YWl0IG1rZGlyKGpvaW4ob3B0aW9ucy5idWlsZC5vdXREaXIsIG9wdGlvbnMuYnVpbGQuc3RhdGljLCBvcHRpb25zLnJvdXRlKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgY3JlYXRpbmcgZGlyZWN0b3J5OiAke2Vycm9yfWApO1xuICB9XG5cbiAgLy8gQ3JlYXRlIHdyaXRlIHN0cmVhbVxuICBjb25zdCB3cml0ZVN0cmVhbSA9IGNyZWF0ZVdyaXRlU3RyZWFtKG91dHB1dFBhdGgpO1xuXG4gIC8vIENyZWF0ZSB0cmFuc2Zvcm0gc3RyZWFtIHRvIGNhcHR1cmUgY29udGVudFxuICBjb25zdCBjb250ZW50Q2FwdHVyZSA9IG5ldyBUcmFuc2Zvcm0oe1xuICAgIHRyYW5zZm9ybShjaHVuaywgX2VuY29kaW5nLCBjYWxsYmFjaykge1xuICAgICAgLy8gUGFzcyB0aHJvdWdoIHRoZSBjaHVua1xuICAgICAgY2FsbGJhY2sobnVsbCwgY2h1bmspO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gQ29sbGVjdCBjaHVua3MgZm9yIGNvbnRlbnRcbiAgY29uc3QgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICBjb250ZW50Q2FwdHVyZS5vbignZGF0YScsIChjaHVuaykgPT4ge1xuICAgIGNodW5rcy5wdXNoKEJ1ZmZlci5mcm9tKGNodW5rKSk7XG4gIH0pO1xuXG4gIC8vIEVtaXQgZmlsZS53cml0ZSBldmVudHMgaWYgb25FdmVudCBpcyBwcm92aWRlZFxuICBpZiAob25FdmVudCkge1xuICAgIG9uRXZlbnQoe1xuICAgICAgdHlwZTogXCJmaWxlLndyaXRlXCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZpbGVUeXBlOiBmaWxlVHlwZSxcbiAgICAgICAgcm91dGU6IG9wdGlvbnMucm91dGUsXG4gICAgICAgIHN0cmVhbTogc3RyZWFtLFxuICAgICAgICBwYXRoOiBvdXRwdXRQYXRoLFxuICAgICAgICBvbkNvbXBsZXRlOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyBQaXBlIHRoZSBzdHJlYW0gdGhyb3VnaCBjb250ZW50IGNhcHR1cmUgdG8gZmlsZVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHN0cmVhbVxuICAgICAgLnBpcGUoY29udGVudENhcHR1cmUpXG4gICAgICAucGlwZSh3cml0ZVN0cmVhbSlcbiAgICAgIC5vbihcImZpbmlzaFwiLCAoKSA9PiB7XG4gICAgICAgIC8vIENvbWJpbmUgY2h1bmtzIGludG8gY29udGVudFxuICAgICAgICBjb25zdCBjb250ZW50ID0gQnVmZmVyLmNvbmNhdChjaHVua3MpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgICBcbiAgICAgICAgLy8gRW1pdCBmaWxlLndyaXRlLmRvbmUgZXZlbnQgd2l0aCBjb250ZW50XG4gICAgICAgIGlmIChvbkV2ZW50KSB7XG4gICAgICAgICAgb25FdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBcImZpbGUud3JpdGUuZG9uZVwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBmaWxlVHlwZTogZmlsZVR5cGUsXG4gICAgICAgICAgICAgIHJvdXRlOiBvcHRpb25zLnJvdXRlLFxuICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pXG4gICAgICAub24oXCJlcnJvclwiLCByZWplY3QpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBeUJBLGVBQXNCLFVBQUEsQ0FDcEIsTUFDQSxFQUFBLFFBQUEsRUFDQSxPQUNlLEVBQUE7QUFDZixFQUFNLE1BQUEsRUFBRSxTQUFZLEdBQUEsT0FBQTtBQUdwQixFQUFBLElBQUksQ0FBQyxNQUFRLEVBQUE7QUFDWCxJQUFBLE1BQU0sSUFBSSxLQUFBLENBQU0sQ0FBNkIsMEJBQUEsRUFBQSxPQUFBLENBQVEsS0FBSyxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBRzlELEVBQUEsTUFBTSxVQUFhLEdBQUEsSUFBQTtBQUFBLElBQ2pCLFFBQVEsS0FBTSxDQUFBLE1BQUE7QUFBQSxJQUNkLFFBQVEsS0FBTSxDQUFBLE1BQUE7QUFBQSxJQUNkLE9BQVEsQ0FBQSxLQUFBO0FBQUEsSUFDUixhQUFhLE1BQVMsR0FBQSxPQUFBLENBQVEsS0FBTSxDQUFBLGNBQUEsR0FBaUIsUUFBUSxLQUFNLENBQUE7QUFBQSxHQUNyRTtBQUdBLEVBQUksSUFBQTtBQUNGLElBQUEsTUFBTSxLQUFNLENBQUEsSUFBQSxDQUFLLE9BQVEsQ0FBQSxLQUFBLENBQU0sUUFBUSxPQUFRLENBQUEsS0FBQSxDQUFNLE1BQVEsRUFBQSxPQUFBLENBQVEsS0FBSyxDQUFBLEVBQUcsRUFBRSxTQUFBLEVBQVcsTUFBTSxDQUFBO0FBQUEsV0FDekYsS0FBTyxFQUFBO0FBQ2QsSUFBUSxPQUFBLENBQUEsS0FBQSxDQUFNLENBQTZCLDBCQUFBLEVBQUEsS0FBSyxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBSXBELEVBQU0sTUFBQSxXQUFBLEdBQWMsa0JBQWtCLFVBQVUsQ0FBQTtBQUdoRCxFQUFNLE1BQUEsY0FBQSxHQUFpQixJQUFJLFNBQVUsQ0FBQTtBQUFBLElBQ25DLFNBQUEsQ0FBVSxLQUFPLEVBQUEsU0FBQSxFQUFXLFFBQVUsRUFBQTtBQUVwQyxNQUFBLFFBQUEsQ0FBUyxNQUFNLEtBQUssQ0FBQTtBQUFBO0FBQ3RCLEdBQ0QsQ0FBQTtBQUdELEVBQUEsTUFBTSxTQUFtQixFQUFDO0FBQzFCLEVBQWUsY0FBQSxDQUFBLEVBQUEsQ0FBRyxNQUFRLEVBQUEsQ0FBQyxLQUFVLEtBQUE7QUFDbkMsSUFBQSxNQUFBLENBQU8sSUFBSyxDQUFBLE1BQUEsQ0FBTyxJQUFLLENBQUEsS0FBSyxDQUFDLENBQUE7QUFBQSxHQUMvQixDQUFBO0FBR0QsRUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLElBQVEsT0FBQSxDQUFBO0FBQUEsTUFDTixJQUFNLEVBQUEsWUFBQTtBQUFBLE1BQ04sSUFBTSxFQUFBO0FBQUEsUUFDSixRQUFBO0FBQUEsUUFDQSxPQUFPLE9BQVEsQ0FBQSxLQUFBO0FBQUEsUUFDZixNQUFBO0FBQUEsUUFDQSxJQUFNLEVBQUEsVUFBQTtBQUFBLFFBQ04sWUFBWSxZQUFZO0FBQUE7QUFBQztBQUMzQixLQUNELENBQUE7QUFBQTtBQUlILEVBQUEsT0FBTyxJQUFJLE9BQUEsQ0FBUSxDQUFDLE9BQUEsRUFBUyxNQUFXLEtBQUE7QUFDdEMsSUFDRyxNQUFBLENBQUEsSUFBQSxDQUFLLGNBQWMsQ0FDbkIsQ0FBQSxJQUFBLENBQUssV0FBVyxDQUNoQixDQUFBLEVBQUEsQ0FBRyxVQUFVLE1BQU07QUFFbEIsTUFBQSxNQUFNLFVBQVUsTUFBTyxDQUFBLE1BQUEsQ0FBTyxNQUFNLENBQUEsQ0FBRSxTQUFTLE9BQU8sQ0FBQTtBQUd0RCxNQUFBLElBQUksT0FBUyxFQUFBO0FBQ1gsUUFBUSxPQUFBLENBQUE7QUFBQSxVQUNOLElBQU0sRUFBQSxpQkFBQTtBQUFBLFVBQ04sSUFBTSxFQUFBO0FBQUEsWUFDSixRQUFBO0FBQUEsWUFDQSxPQUFPLE9BQVEsQ0FBQSxLQUFBO0FBQUEsWUFDZjtBQUFBO0FBQ0YsU0FDRCxDQUFBO0FBQUE7QUFFSCxNQUFRLE9BQUEsRUFBQTtBQUFBLEtBQ1QsQ0FBQSxDQUNBLEVBQUcsQ0FBQSxPQUFBLEVBQVMsTUFBTSxDQUFBO0FBQUEsR0FDdEIsQ0FBQTtBQUNIOzs7OyJ9
@@ -13,10 +13,9 @@
13
13
  * 5. Manages worker threads for parallel rendering
14
14
  * 6. Handles error reporting and metrics collection
15
15
  */
16
- import { type Plugin as VitePlugin } from "vite";
17
- import type { ReactStreamPluginMeta, PagePropOpt, InlineCssOpt } from "../types.js";
18
- import { type StreamPluginOptions } from "../types.js";
19
- export declare function reactStaticPlugin<T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>(options: StreamPluginOptions<T, InlineCSS>): VitePlugin<{
16
+ import type { ReactStreamPluginMeta, ReactStreamPluginFn } from "../types.js";
17
+ export type ReactStaticPluginFn = ReactStreamPluginFn<{
20
18
  meta: ReactStreamPluginMeta;
21
19
  }>;
20
+ export declare const reactStaticPlugin: ReactStaticPluginFn;
22
21
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,MAAM,IAAI,UAAU,EAE1B,MAAM,MAAM,CAAC;AAId,OAAO,KAAK,EAEV,qBAAqB,EAOrB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAwBvD,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAE7C,OAAO,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,GACzC,UAAU,CAAC;IACZ,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CA+WD"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAEV,qBAAqB,EAMrB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAoBrB,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;IACpD,IAAI,EAAE,qBAAqB,CAAC;CAC7B,CAAC,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,mBAyY7B,CAAC"}
@@ -4,7 +4,6 @@
4
4
  * MIT License
5
5
  */
6
6
  import { join } from 'node:path';
7
- import 'node:worker_threads';
8
7
  import { createLogger } from 'vite';
9
8
  import { resolveOptions } from '../config/resolveOptions.js';
10
9
  import { resolveUserConfig } from '../config/resolveUserConfig.js';
@@ -13,7 +12,6 @@ import { renderPages } from './renderPages.js';
13
12
  import { getBundleManifest } from '../helpers/getBundleManifest.js';
14
13
  import { createWorker } from '../worker/createWorker.js';
15
14
  import { resolveAutoDiscover } from '../config/autoDiscover/resolveAutoDiscover.js';
16
- import { getCondition } from '../config/getCondition.js';
17
15
  import { serializedOptions, serializeResolvedConfig } from '../helpers/serializeUserOptions.js';
18
16
  import { collectManifestCss } from '../helpers/collectManifestCss.js';
19
17
  import { createCssProps } from '../helpers/createCssProps.js';
@@ -21,20 +19,16 @@ import { performance } from 'node:perf_hooks';
21
19
  import { DEFAULT_CONFIG } from '../config/defaults.js';
22
20
  import { baseURL } from '../utils/envUrls.node.js';
23
21
  import { readFile } from 'node:fs/promises';
22
+ import { logError } from '../error/logError.js';
23
+ import { toError } from '../error/toError.js';
24
+ import { createDefaultModuleID } from '../config/createModuleID.js';
24
25
 
25
- if (getCondition() !== "react-server") {
26
- throw new Error(
27
- "Condition mismatch, should be react-server but got " + process.env["NODE_OPTIONS"]
28
- );
29
- }
30
- function reactStaticPlugin(options) {
26
+ const reactStaticPlugin = function _reactStaticPlugin(options) {
31
27
  let worker;
32
28
  let userConfig;
33
29
  let resolvedConfig;
34
- let userOptions;
35
30
  let autoDiscoveredFiles = null;
36
31
  let serverManifest = void 0;
37
- let buildLoader;
38
32
  const timing = {
39
33
  start: Date.now(),
40
34
  configResolved: 0,
@@ -45,7 +39,7 @@ function reactStaticPlugin(options) {
45
39
  if (resolvedOptions.type === "error") {
46
40
  throw resolvedOptions.error;
47
41
  }
48
- userOptions = resolvedOptions.userOptions;
42
+ const userOptions = resolvedOptions.userOptions;
49
43
  return {
50
44
  name: "vite:plugin-react-server/static",
51
45
  enforce: "post",
@@ -59,6 +53,9 @@ function reactStaticPlugin(options) {
59
53
  if (configEnv.command !== "build") {
60
54
  return;
61
55
  }
56
+ if (typeof userOptions.moduleID !== "function") {
57
+ userOptions.moduleID = createDefaultModuleID(userOptions, configEnv, userOptions.loader?.mode);
58
+ }
62
59
  const autoDiscoverResult = await resolveAutoDiscover({
63
60
  config,
64
61
  configEnv,
@@ -117,7 +114,7 @@ function reactStaticPlugin(options) {
117
114
  normalizer: userOptions.normalizer
118
115
  });
119
116
  const manifestPath = typeof resolvedConfig.build.manifest === "string" ? resolvedConfig.build.manifest : ".vite/manifest.json";
120
- if (!("source" in bundleManifest[manifestPath])) {
117
+ if (!bundleManifest[manifestPath] || !("source" in bundleManifest[manifestPath])) {
121
118
  throw new Error("Server manifest not found");
122
119
  }
123
120
  serverManifest = JSON.parse(
@@ -126,7 +123,7 @@ function reactStaticPlugin(options) {
126
123
  if (!serverManifest) {
127
124
  throw new Error("Failed to parse server manifest");
128
125
  }
129
- buildLoader = await createBuildLoader(
126
+ const buildLoader = createBuildLoader(
130
127
  {
131
128
  userConfig,
132
129
  userOptions,
@@ -139,12 +136,12 @@ function reactStaticPlugin(options) {
139
136
  const cssFilesByPage = /* @__PURE__ */ new Map();
140
137
  const indexHtmlCssInputs = collectManifestCss(
141
138
  autoDiscoveredFiles?.staticManifest ?? {},
142
- userOptions.clientEntry ?? "index.html"
139
+ "index.html"
143
140
  );
144
- const clientEntryCssInputs = collectManifestCss(
141
+ const clientEntryCssInputs = userOptions.clientEntry ? collectManifestCss(
145
142
  autoDiscoveredFiles?.staticManifest ?? {},
146
143
  userOptions.clientEntry
147
- );
144
+ ) : null;
148
145
  const globalCssInputs = {
149
146
  ...indexHtmlCssInputs,
150
147
  ...clientEntryCssInputs
@@ -172,8 +169,8 @@ function reactStaticPlugin(options) {
172
169
  const pageCssMap = /* @__PURE__ */ new Map();
173
170
  if (Object.keys(globalCssInputs).length > 0) {
174
171
  for (const [key, value] of Object.entries(globalCssInputs)) {
175
- let cssContent = await buildLoader(value + "?inline").then(
176
- (r) => String(r.default)
172
+ let cssContent = await buildLoader(`${value}?inline`).then(
173
+ (r) => r.default
177
174
  );
178
175
  if (cssContent === "undefined" || !cssContent) {
179
176
  cssContent = await readFile(
@@ -200,10 +197,10 @@ function reactStaticPlugin(options) {
200
197
  }
201
198
  for (const [key, value] of Object.entries(cssInputs)) {
202
199
  try {
203
- const { default: cssContent } = await buildLoader(
204
- value + "?inline"
200
+ const cssContent = await buildLoader(`${value}?inline`).then(
201
+ (r) => String(r.default)
205
202
  );
206
- if (typeof cssContent !== "string") {
203
+ if (typeof cssContent !== "string" || cssContent === "undefined") {
207
204
  continue;
208
205
  }
209
206
  if (cssContent) {
@@ -251,9 +248,7 @@ function reactStaticPlugin(options) {
251
248
  logger: this.environment.logger,
252
249
  workerData: {
253
250
  resolvedConfig: serializeResolvedConfig(resolvedConfig),
254
- userOptions: {
255
- ...serializedUserOptions
256
- }
251
+ userOptions: serializedUserOptions
257
252
  }
258
253
  });
259
254
  if (workerResult.type === "error") {
@@ -276,8 +271,8 @@ function reactStaticPlugin(options) {
276
271
  worker,
277
272
  logger: createLogger(),
278
273
  onEvent: async (event) => {
279
- if (userOptions.onEvent) {
280
- userOptions.onEvent(event);
274
+ if (onEvent) {
275
+ onEvent(event);
281
276
  }
282
277
  if (event.type === "file.write") {
283
278
  await event.data.onComplete();
@@ -297,15 +292,38 @@ function reactStaticPlugin(options) {
297
292
  globalCss,
298
293
  css: {
299
294
  ...handlerOptions.css,
300
- inlineCss: handlerOptions.css?.inlineCss ?? true
295
+ inlineCss: handlerOptions.css.inlineCss
301
296
  }
302
297
  },
303
298
  cssFilesByPage
304
299
  );
305
300
  let finalResult;
301
+ const errors = [];
306
302
  for await (const result of renderPagesGenerator) {
307
303
  if (result.type === "error") {
308
- throw result.error;
304
+ errors.push(result.error);
305
+ if (result.error.message.includes("Attempted to load a Client Module outside the hosted root")) {
306
+ const failedRoutes = Array.from(result.failedRoutes || []);
307
+ const failingPage = failedRoutes[failedRoutes.length - 1] || "unknown";
308
+ const hostedRoot = userOptions.moduleBaseURL || "/";
309
+ this.environment.logger.error(
310
+ `❌ Page: ${failingPage} | Hosted root: ${hostedRoot} | Client modules registered outside hosted root`
311
+ );
312
+ } else {
313
+ this.environment.logger.warn(
314
+ `Failed to render page, skipping: ${result.error.message}`
315
+ );
316
+ }
317
+ finalResult = {
318
+ type: "success",
319
+ completedRoutes: result.completedRoutes,
320
+ failedRoutes: void 0,
321
+ htmlSizes: result.htmlSizes,
322
+ rscSizes: result.rscSizes,
323
+ streamMetrics: result.streamMetrics,
324
+ results: result.results
325
+ };
326
+ continue;
309
327
  }
310
328
  finalResult = result;
311
329
  }
@@ -318,6 +336,11 @@ function reactStaticPlugin(options) {
318
336
  this.environment.logger.info(
319
337
  `Rendered ${finalResult.completedRoutes.size} unique routes in ${finalResult.streamMetrics.duration}ms`
320
338
  );
339
+ if (errors.length > 0) {
340
+ this.environment.logger.warn(
341
+ `${errors.length} pages failed to render and were skipped`
342
+ );
343
+ }
321
344
  if (process.env["NODE_ENV"] !== "production") {
322
345
  this.environment.logger.warn(
323
346
  `THIS IS BUILD IS NOT INTENDED FOR PRODUCTION (${process.env["NODE_ENV"]})`
@@ -325,27 +348,19 @@ function reactStaticPlugin(options) {
325
348
  }
326
349
  timing.render = Date.now() - (timing.renderStart ?? timing.start);
327
350
  } catch (error) {
328
- throw error;
329
- }
330
- try {
331
- worker.postMessage({ type: "SHUTDOWN", id: "*" });
332
- await new Promise((resolve, reject) => {
333
- const shutdownHandler = (msg) => {
334
- if (msg.type === "SHUTDOWN_COMPLETE") {
335
- worker.removeListener("message", shutdownHandler);
336
- worker.terminate().then(
337
- (code) => code === 1 ? resolve() : reject(new Error(`Worker terminated with code ${code}`))
338
- ).catch(reject);
339
- }
340
- };
341
- worker.on("message", shutdownHandler);
342
- });
343
- } catch (error) {
344
- throw error;
351
+ logError(toError(error), this.environment.logger);
352
+ } finally {
353
+ if (worker) {
354
+ try {
355
+ await worker.terminate();
356
+ } catch (error) {
357
+ logError(toError(error), this.environment.logger);
358
+ }
359
+ }
345
360
  }
346
361
  }
347
362
  };
348
- }
363
+ };
349
364
 
350
365
  export { reactStaticPlugin };
351
- //# sourceMappingURL=plugin.js.map
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vcmVhY3Qtc3RhdGljL3BsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHBsdWdpbi50c1xuICpcbiAqIFBVUlBPU0U6IE1haW4gVml0ZSBwbHVnaW4gZm9yIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIChSU0MpIHN0YXRpYyBzaXRlIGdlbmVyYXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZTpcbiAqIDEuIE9yY2hlc3RyYXRlcyB0aGUgZW50aXJlIHN0YXRpYyBzaXRlIGdlbmVyYXRpb24gcHJvY2Vzc1xuICogMi4gTWFuYWdlcyB0aGUgbGlmZWN5Y2xlIG9mIHRoZSBSU0MgcmVuZGVyaW5nIHByb2Nlc3NcbiAqIDMuIEhhbmRsZXMgZmlsZSB3cml0aW5nIGZvciBib3RoIGluaXRpYWwgcGFnZSBsb2FkcyBhbmQgY2xpZW50LXNpZGUgbmF2aWdhdGlvblxuICogICAgLSBXcml0ZXMgLmh0bWwgZmlsZXMgZm9yIGluaXRpYWwgcGFnZSBsb2FkcyAoY29tcGxldGUgSFRNTCBkb2N1bWVudClcbiAqICAgIC0gV3JpdGVzIC5yc2MgZmlsZXMgZm9yIGNsaWVudC1zaWRlIG5hdmlnYXRpb24gKFJTQyBjb250ZW50IG9ubHkpXG4gKiA0LiBQcm92aWRlcyBob29rcyBmb3IgVml0ZSB0byBpbnRlZ3JhdGUgd2l0aCB0aGUgYnVpbGQgcHJvY2Vzc1xuICogNS4gTWFuYWdlcyB3b3JrZXIgdGhyZWFkcyBmb3IgcGFyYWxsZWwgcmVuZGVyaW5nXG4gKiA2LiBIYW5kbGVzIGVycm9yIHJlcG9ydGluZyBhbmQgbWV0cmljcyBjb2xsZWN0aW9uXG4gKi9cblxuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyIH0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB7IHR5cGUgTWFuaWZlc3QsIHR5cGUgUmVzb2x2ZWRDb25maWcsIGNyZWF0ZUxvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyByZXNvbHZlT3B0aW9ucyB9IGZyb20gXCIuLi9jb25maWcvcmVzb2x2ZU9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHJlc29sdmVVc2VyQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yZXNvbHZlVXNlckNvbmZpZy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlQnVpbGRMb2FkZXIgfSBmcm9tIFwiLi9jcmVhdGVCdWlsZExvYWRlci5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBCdWlsZFRpbWluZyxcbiAgUmVhY3RTdHJlYW1QbHVnaW5NZXRhLFxuICBSZXNvbHZlZFVzZXJDb25maWcsXG4gIFBsdWdpbkV2ZW50LFxuICBSZW5kZXJQYWdlc1Jlc3VsdCxcbiAgQXV0b0Rpc2NvdmVyZWRGaWxlcyxcbiAgQ3NzQ29udGVudCxcbiAgUmVhY3RTdHJlYW1QbHVnaW5Gbixcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZW5kZXJQYWdlcyB9IGZyb20gXCIuL3JlbmRlclBhZ2VzLmpzXCI7XG5pbXBvcnQgeyBnZXRCdW5kbGVNYW5pZmVzdCB9IGZyb20gXCIuLi9oZWxwZXJzL2dldEJ1bmRsZU1hbmlmZXN0LmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVXb3JrZXIgfSBmcm9tIFwiLi4vd29ya2VyL2NyZWF0ZVdvcmtlci5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUF1dG9EaXNjb3ZlciB9IGZyb20gXCIuLi9jb25maWcvYXV0b0Rpc2NvdmVyL3Jlc29sdmVBdXRvRGlzY292ZXIuanNcIjtcbmltcG9ydCB7XG4gIHNlcmlhbGl6ZWRPcHRpb25zLFxuICBzZXJpYWxpemVSZXNvbHZlZENvbmZpZyxcbn0gZnJvbSBcIi4uL2hlbHBlcnMvc2VyaWFsaXplVXNlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IGNvbGxlY3RNYW5pZmVzdENzcyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbGxlY3RNYW5pZmVzdENzcy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ3NzUHJvcHMgfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVDc3NQcm9wcy5qc1wiO1xuaW1wb3J0IHsgcGVyZm9ybWFuY2UgfSBmcm9tIFwibm9kZTpwZXJmX2hvb2tzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRyB9IGZyb20gXCIuLi9jb25maWcvZGVmYXVsdHMuanNcIjtcbmltcG9ydCB7IGJhc2VVUkwgfSBmcm9tIFwiLi4vdXRpbHMvZW52VXJscy5ub2RlLmpzXCI7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gXCIuLi9lcnJvci9sb2dFcnJvci5qc1wiO1xuaW1wb3J0IHsgdG9FcnJvciB9IGZyb20gXCIuLi9lcnJvci90b0Vycm9yLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0TW9kdWxlSUQgfSBmcm9tIFwiLi4vY29uZmlnL2NyZWF0ZU1vZHVsZUlELmpzXCI7XG5cblxuZXhwb3J0IHR5cGUgUmVhY3RTdGF0aWNQbHVnaW5GbiA9IFJlYWN0U3RyZWFtUGx1Z2luRm48e1xuICBtZXRhOiBSZWFjdFN0cmVhbVBsdWdpbk1ldGE7XG59PjtcblxuZXhwb3J0IGNvbnN0IHJlYWN0U3RhdGljUGx1Z2luOiBSZWFjdFN0YXRpY1BsdWdpbkZuID1cbiAgZnVuY3Rpb24gX3JlYWN0U3RhdGljUGx1Z2luKG9wdGlvbnMpIHtcbiAgICBsZXQgd29ya2VyOiBXb3JrZXI7XG4gICAgbGV0IHVzZXJDb25maWc6IFJlc29sdmVkVXNlckNvbmZpZztcbiAgICBsZXQgcmVzb2x2ZWRDb25maWc6IFJlc29sdmVkQ29uZmlnO1xuICAgIGxldCBhdXRvRGlzY292ZXJlZEZpbGVzOiBBdXRvRGlzY292ZXJlZEZpbGVzIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHNlcnZlck1hbmlmZXN0OiBNYW5pZmVzdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0aW1pbmc6IEJ1aWxkVGltaW5nID0ge1xuICAgICAgc3RhcnQ6IERhdGUubm93KCksXG4gICAgICBjb25maWdSZXNvbHZlZDogMCxcbiAgICAgIGJ1aWxkU3RhcnQ6IDAsXG4gICAgICByZW5kZXJTdGFydDogMCxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzb2x2ZWRPcHRpb25zID0gcmVzb2x2ZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgaWYgKHJlc29sdmVkT3B0aW9ucy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHRocm93IHJlc29sdmVkT3B0aW9ucy5lcnJvcjtcbiAgICB9XG4gICAgY29uc3QgdXNlck9wdGlvbnMgPSByZXNvbHZlZE9wdGlvbnMudXNlck9wdGlvbnM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogXCJ2aXRlOnBsdWdpbi1yZWFjdC1zZXJ2ZXIvc3RhdGljXCIsXG4gICAgICBlbmZvcmNlOiBcInBvc3RcIixcbiAgICAgIGFwaToge1xuICAgICAgICBtZXRhOiB7IHRpbWluZyB9LFxuICAgICAgfSxcblxuICAgICAgYXN5bmMgY29uZmlnKGNvbmZpZywgY29uZmlnRW52KSB7XG4gICAgICAgIGlmIChjb25maWcucm9vdCAmJiBjb25maWcucm9vdCAhPT0gdXNlck9wdGlvbnMucHJvamVjdFJvb3QpIHtcbiAgICAgICAgICB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCA9IGNvbmZpZy5yb290O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWdFbnYuY29tbWFuZCAhPT0gXCJidWlsZFwiKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHR5cGVvZiB1c2VyT3B0aW9ucy5tb2R1bGVJRCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgdXNlck9wdGlvbnMubW9kdWxlSUQgPSBjcmVhdGVEZWZhdWx0TW9kdWxlSUQodXNlck9wdGlvbnMsIGNvbmZpZ0VudiwgdXNlck9wdGlvbnMubG9hZGVyPy5tb2RlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbml0aWFsaXplIGF1dG9EaXNjb3ZlcmVkRmlsZXMgZm9yIGJvdGggc2VydmVyIGFuZCBjbGllbnQgYnVpbGRzXG4gICAgICAgIGNvbnN0IGF1dG9EaXNjb3ZlclJlc3VsdCA9IGF3YWl0IHJlc29sdmVBdXRvRGlzY292ZXIoe1xuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBjb25maWdFbnYsXG4gICAgICAgICAgdXNlck9wdGlvbnMsXG4gICAgICAgICAgY29uZGl0aW9uOiBcInJlYWN0LXNlcnZlclwiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGF1dG9EaXNjb3ZlclJlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICB0aHJvdyBhdXRvRGlzY292ZXJSZXN1bHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcyA9IGF1dG9EaXNjb3ZlclJlc3VsdC5hdXRvRGlzY292ZXJlZEZpbGVzO1xuICAgICAgICBjb25zdCByZXNvbHZlZENvbmZpZyA9IHJlc29sdmVVc2VyQ29uZmlnKHtcbiAgICAgICAgICBjb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCIsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGNvbmZpZ0VudixcbiAgICAgICAgICB1c2VyT3B0aW9ucyxcbiAgICAgICAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlc29sdmVkQ29uZmlnLnR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIHRocm93IHJlc29sdmVkQ29uZmlnLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdXNlckNvbmZpZyA9IHJlc29sdmVkQ29uZmlnLnVzZXJDb25maWc7XG4gICAgICAgIHRpbWluZy5jb25maWdSZXNvbHZlZCA9IERhdGUubm93KCk7XG4gICAgICB9LFxuICAgICAgY29uZmlnUmVzb2x2ZWQoY29uZmlnKSB7XG4gICAgICAgIHJlc29sdmVkQ29uZmlnID0gY29uZmlnO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIGJ1aWxkU3RhcnQoKSB7XG4gICAgICAgIHRpbWluZy5idWlsZFN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHVzZXJPcHRpb25zLm9uRXZlbnQgJiYgYXV0b0Rpc2NvdmVyZWRGaWxlcykge1xuICAgICAgICAgIHVzZXJPcHRpb25zLm9uRXZlbnQoe1xuICAgICAgICAgICAgdHlwZTogXCJidWlsZC5zdGFydFwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBwYWdlczogQXJyYXkuZnJvbShhdXRvRGlzY292ZXJlZEZpbGVzLnVybE1hcC5rZXlzKCkpLFxuICAgICAgICAgICAgICBmaWxlczogYXV0b0Rpc2NvdmVyZWRGaWxlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIGFzeW5jIHJlbmRlclN0YXJ0KCkge1xuICAgICAgICB0aW1pbmcucmVuZGVyU3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgfSxcblxuICAgICAgYXN5bmMgd3JpdGVCdW5kbGUob3B0aW9ucywgYnVuZGxlKSB7XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy5vbkV2ZW50KSB7XG4gICAgICAgICAgdXNlck9wdGlvbnMub25FdmVudCh7XG4gICAgICAgICAgICB0eXBlOiBcImJ1aWxkLndyaXRlQnVuZGxlLnN0YXRpYy1zZXJ2ZXJcIixcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgcGFnZXM6IEFycmF5LmZyb20oYXV0b0Rpc2NvdmVyZWRGaWxlcz8udXJsTWFwLmtleXMoKSA/PyBbXSksXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIGJ1bmRsZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBidW5kbGVNYW5pZmVzdCA9IGdldEJ1bmRsZU1hbmlmZXN0PGZhbHNlPih7XG4gICAgICAgICAgICBidW5kbGUsXG4gICAgICAgICAgICBub3JtYWxpemVyOiB1c2VyT3B0aW9ucy5ub3JtYWxpemVyLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IG1hbmlmZXN0UGF0aCA9XG4gICAgICAgICAgICB0eXBlb2YgcmVzb2x2ZWRDb25maWcuYnVpbGQubWFuaWZlc3QgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyByZXNvbHZlZENvbmZpZy5idWlsZC5tYW5pZmVzdFxuICAgICAgICAgICAgICA6IFwiLnZpdGUvbWFuaWZlc3QuanNvblwiO1xuICAgICAgICAgIGlmICghYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXSB8fCAhKFwic291cmNlXCIgaW4gYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNlcnZlciBtYW5pZmVzdCBub3QgZm91bmRcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2VydmVyTWFuaWZlc3QgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgYnVuZGxlTWFuaWZlc3RbbWFuaWZlc3RQYXRoXS5zb3VyY2UgYXMgc3RyaW5nXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghc2VydmVyTWFuaWZlc3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBwYXJzZSBzZXJ2ZXIgbWFuaWZlc3RcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYnVpbGRMb2FkZXIgPSBjcmVhdGVCdWlsZExvYWRlcihcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdXNlckNvbmZpZyxcbiAgICAgICAgICAgICAgdXNlck9wdGlvbnM6IHVzZXJPcHRpb25zLFxuICAgICAgICAgICAgICBzZXJ2ZXJNYW5pZmVzdDogc2VydmVyTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICAgIHN0YXRpY01hbmlmZXN0OiBhdXRvRGlzY292ZXJlZEZpbGVzPy5zdGF0aWNNYW5pZmVzdCA/PyB7fSxcbiAgICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Q6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1bmRsZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgQ1NTIHByb3BzIGZvciBlYWNoIENTUyBmaWxlXG4gICAgICAgICAgY29uc3QgY3NzRmlsZXNCeVBhZ2UgPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgICAvLyBGaXJzdCBjb2xsZWN0IGdsb2JhbCBzdHlsZXMgZnJvbSBpbmRleC5odG1sXG4gICAgICAgICAgY29uc3QgaW5kZXhIdG1sQ3NzSW5wdXRzID0gY29sbGVjdE1hbmlmZXN0Q3NzKFxuICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICBcImluZGV4Lmh0bWxcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgY2xpZW50RW50cnlDc3NJbnB1dHMgPSB1c2VyT3B0aW9ucy5jbGllbnRFbnRyeVxuICAgICAgICAgICAgPyBjb2xsZWN0TWFuaWZlc3RDc3MoXG4gICAgICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3QgPz8ge30sXG4gICAgICAgICAgICAgICAgdXNlck9wdGlvbnMuY2xpZW50RW50cnlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIGNvbnN0IGdsb2JhbENzc0lucHV0cyA9IHtcbiAgICAgICAgICAgIC4uLmluZGV4SHRtbENzc0lucHV0cyxcbiAgICAgICAgICAgIC4uLmNsaWVudEVudHJ5Q3NzSW5wdXRzLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBnbG9iYWxDc3MgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgLy8gQ29sbGVjdCBDU1MgZmlsZXMgZm9yIGVhY2ggcGFnZSBhbmQgaXRzIHByb3BzXG4gICAgICAgICAgZm9yIChjb25zdCBbdXJsLCB7IHBhZ2UsIHByb3BzIH1dIG9mIGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnVybE1hcCA/P1xuICAgICAgICAgICAgW10pIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkU2VydmVyTWFuaWZlc3QgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHNlcnZlck1hbmlmZXN0KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUuY3NzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjc3M6XG4gICAgICAgICAgICAgICAgICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlcz8uc3RhdGljTWFuaWZlc3Rba2V5XT8uY3NzID8/XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUuY3NzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGNzc0lucHV0cyA9IGNvbGxlY3RNYW5pZmVzdENzcyhcbiAgICAgICAgICAgICAgdHJhbnNmb3JtZWRTZXJ2ZXJNYW5pZmVzdCxcbiAgICAgICAgICAgICAgcHJvcHMgPyBbcGFnZSwgcHJvcHNdIDogcGFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSBhIG1hcCBmb3IgdGhpcyBwYWdlJ3MgQ1NTIGZpbGVzXG4gICAgICAgICAgICBjb25zdCBwYWdlQ3NzTWFwOiBNYXA8c3RyaW5nLCBDc3NDb250ZW50PiA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIC8vIEFkZCBnbG9iYWwgc3R5bGVzIGlmIHRoZXkgZXhpc3RcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhnbG9iYWxDc3NJbnB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZ2xvYmFsQ3NzSW5wdXRzKSkge1xuICAgICAgICAgICAgICAgIGxldCBjc3NDb250ZW50ID0gYXdhaXQgYnVpbGRMb2FkZXIoYCR7dmFsdWV9P2lubGluZWApLnRoZW4oXG4gICAgICAgICAgICAgICAgICAocikgPT4gci5kZWZhdWx0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgY3NzQ29udGVudCA9XG4gICAgICAgICAgICAgICAgICAgIChhd2FpdCByZWFkRmlsZShcbiAgICAgICAgICAgICAgICAgICAgICBqb2luKFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5vdXREaXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIFwidXRmLThcIlxuICAgICAgICAgICAgICAgICAgICApKSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgZ2xvYmFsQ3NzLnNldChcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVDc3NQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBjc3NDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFkZCBwYWdlLXNwZWNpZmljIHN0eWxlc1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY3NzSW5wdXRzKSkge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzc0NvbnRlbnQgPSBhd2FpdCBidWlsZExvYWRlcihgJHt2YWx1ZX0/aW5saW5lYCkudGhlbihcbiAgICAgICAgICAgICAgICAgIChyKSA9PiBTdHJpbmcoci5kZWZhdWx0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgdHlwZW9mIGNzc0NvbnRlbnQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgICAgICAgIGNzc0NvbnRlbnQgPT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3NzQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBDU1MgZmlsZSBwYXRoIGlzIHByb3Blcmx5IHJlc29sdmVkXG4gICAgICAgICAgICAgICAgICBwYWdlQ3NzTWFwLnNldChcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVDc3NQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBjc3NDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHByb2Nlc3MgQ1NTIGZpbGUgJHt2YWx1ZX06YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjc3NGaWxlc0J5UGFnZS5zZXQodXJsLCBwYWdlQ3NzTWFwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzdGF0aWNNYW5pZmVzdCA9IGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnN0YXRpY01hbmlmZXN0ID8/IHt9O1xuICAgICAgICAgIGNvbnN0IGluZGV4SHRtbCA9IHN0YXRpY01hbmlmZXN0Py5bXCJpbmRleC5odG1sXCJdPy5maWxlO1xuICAgICAgICAgIGNvbnN0IHBpcGVhYmxlU3RyZWFtT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIC4uLnVzZXJPcHRpb25zLnBpcGVhYmxlU3RyZWFtT3B0aW9ucyxcbiAgICAgICAgICAgIGJvb3RzdHJhcE1vZHVsZXM6IFtcbiAgICAgICAgICAgICAgLi4uKGluZGV4SHRtbCA/IFtiYXNlVVJMKGluZGV4SHRtbCldIDogW10pLFxuICAgICAgICAgICAgICAuLi4odXNlck9wdGlvbnMucGlwZWFibGVTdHJlYW1PcHRpb25zPy5ib290c3RyYXBNb2R1bGVzID8/IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICB1c2VyT3B0aW9ucy5waXBlYWJsZVN0cmVhbU9wdGlvbnMgPSBwaXBlYWJsZVN0cmVhbU9wdGlvbnM7XG4gICAgICAgICAgY29uc3Qgc2VyaWFsaXplZFVzZXJPcHRpb25zID0gc2VyaWFsaXplZE9wdGlvbnMoXG4gICAgICAgICAgICB1c2VyT3B0aW9ucyxcbiAgICAgICAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXMhXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvLyBDcmVhdGUgd29ya2VyXG4gICAgICAgICAgaWYgKCF3b3JrZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpdGVFbnZQcmVmaXggPVxuICAgICAgICAgICAgICB0eXBlb2YgcmVzb2x2ZWRDb25maWcuZW52UHJlZml4ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgPyByZXNvbHZlZENvbmZpZy5lbnZQcmVmaXhcbiAgICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkocmVzb2x2ZWRDb25maWcuZW52UHJlZml4KVxuICAgICAgICAgICAgICAgID8gcmVzb2x2ZWRDb25maWcuZW52UHJlZml4WzBdXG4gICAgICAgICAgICAgICAgOiBERUZBVUxUX0NPTkZJRy5FTlZfUFJFRklYO1xuICAgICAgICAgICAgY29uc3Qgcm91dGVDb3VudCA9IGF1dG9EaXNjb3ZlcmVkRmlsZXM/LnVybE1hcC5zaXplID8/IDA7XG4gICAgICAgICAgICBjb25zdCBtYXhMaXN0ZW5lcnMgPSByb3V0ZUNvdW50ICsgMTtcbiAgICAgICAgICAgIGNvbnN0IHdvcmtlclJlc3VsdCA9IGF3YWl0IGNyZWF0ZVdvcmtlcih7XG4gICAgICAgICAgICAgIHByb2plY3RSb290OiB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgd29ya2VyUGF0aDogdXNlck9wdGlvbnMuaHRtbFdvcmtlclBhdGgsXG4gICAgICAgICAgICAgIGN1cnJlbnRDb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCIsXG4gICAgICAgICAgICAgIHJldmVyc2VDb25kaXRpb246IFwicmVhY3QtY2xpZW50XCIsXG4gICAgICAgICAgICAgIG1heExpc3RlbmVyczogbWF4TGlzdGVuZXJzLFxuICAgICAgICAgICAgICBlbnZQcmVmaXg6IHZpdGVFbnZQcmVmaXgsXG4gICAgICAgICAgICAgIGxvZ2dlcjogdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIsXG4gICAgICAgICAgICAgIHdvcmtlckRhdGE6IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZENvbmZpZzogc2VyaWFsaXplUmVzb2x2ZWRDb25maWcocmVzb2x2ZWRDb25maWcpLFxuICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiBzZXJpYWxpemVkVXNlck9wdGlvbnMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh3b3JrZXJSZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgIHRocm93IHdvcmtlclJlc3VsdC5lcnJvcjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod29ya2VyUmVzdWx0LnR5cGUgPT09IFwic2tpcFwiKSB7XG4gICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLmluZm8oXG4gICAgICAgICAgICAgICAgXCJXb3JrZXIgbm90IGNyZWF0ZWQsIHNraXBwaW5nIHN0YXRpYyBidWlsZFwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdvcmtlciA9IHdvcmtlclJlc3VsdC53b3JrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFJlbmRlciBwYWdlcyAtIGNvbXBvbmVudCByZXNvbHV0aW9uIG5vdyBoYXBwZW5zIHBlci1yb3V0ZSBpbiByZW5kZXJQYWdlXG4gICAgICAgICAgY29uc3QgeyBvbkV2ZW50LCAuLi5oYW5kbGVyT3B0aW9ucyB9ID0gdXNlck9wdGlvbnM7XG4gICAgICAgICAgY29uc3QgcmVuZGVyUGFnZXNHZW5lcmF0b3IgPSByZW5kZXJQYWdlcyhcbiAgICAgICAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXMhLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgbG9hZGVyOiBidWlsZExvYWRlcixcbiAgICAgICAgICAgICAgd29ya2VyOiB3b3JrZXIsXG4gICAgICAgICAgICAgIGxvZ2dlcjogY3JlYXRlTG9nZ2VyKCksXG4gICAgICAgICAgICAgIG9uRXZlbnQ6IGFzeW5jIChldmVudDogUGx1Z2luRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAob25FdmVudCkge1xuICAgICAgICAgICAgICAgICAgb25FdmVudChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEFkZCBmaWxlIHdyaXRlIGNvbXBsZXRpb24gZXZlbnRcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJmaWxlLndyaXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgIGF3YWl0IGV2ZW50LmRhdGEub25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGlwZWFibGVTdHJlYW1PcHRpb25zOiBwaXBlYWJsZVN0cmVhbU9wdGlvbnMsXG4gICAgICAgICAgICAgIG1hbmlmZXN0OiBzZXJ2ZXJNYW5pZmVzdCA/PyB7fSxcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBodG1sT3V0cHV0UGF0aDogdXNlck9wdGlvbnMuYnVpbGQuaHRtbE91dHB1dFBhdGgsXG4gICAgICAgICAgICAgICAgcnNjT3V0cHV0UGF0aDogdXNlck9wdGlvbnMuYnVpbGQucnNjT3V0cHV0UGF0aCxcbiAgICAgICAgICAgICAgICBvdXREaXI6IHVzZXJPcHRpb25zLmJ1aWxkLm91dERpcixcbiAgICAgICAgICAgICAgICBwYWdlczogdXNlck9wdGlvbnMuYnVpbGQucGFnZXMsXG4gICAgICAgICAgICAgICAgc2VydmVyOiB1c2VyT3B0aW9ucy5idWlsZC5zZXJ2ZXIsXG4gICAgICAgICAgICAgICAgc3RhdGljOiB1c2VyT3B0aW9ucy5idWlsZC5zdGF0aWMsXG4gICAgICAgICAgICAgICAgY2xpZW50OiB1c2VyT3B0aW9ucy5idWlsZC5jbGllbnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGdsb2JhbENzczogZ2xvYmFsQ3NzLFxuICAgICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucy5jc3MsXG4gICAgICAgICAgICAgICAgaW5saW5lQ3NzOiBoYW5kbGVyT3B0aW9ucy5jc3MuaW5saW5lQ3NzLFxuICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3NzRmlsZXNCeVBhZ2VcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gUHJvY2VzcyByZW5kZXIgcmVzdWx0c1xuICAgICAgICAgIGxldCBmaW5hbFJlc3VsdDogUmVuZGVyUGFnZXNSZXN1bHQgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgY29uc3QgZXJyb3JzOiBFcnJvcltdID0gW107XG4gICAgICAgICAgZm9yIGF3YWl0IChjb25zdCByZXN1bHQgb2YgcmVuZGVyUGFnZXNHZW5lcmF0b3IpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKHJlc3VsdC5lcnJvcik7XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBQcm92aWRlIGRldmVsb3Blci1mcmllbmRseSBlcnJvciBtZXNzYWdlcyBmb3IgY29tbW9uIGlzc3Vlc1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJBdHRlbXB0ZWQgdG8gbG9hZCBhIENsaWVudCBNb2R1bGUgb3V0c2lkZSB0aGUgaG9zdGVkIHJvb3RcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRSb3V0ZXMgPSBBcnJheS5mcm9tKHJlc3VsdC5mYWlsZWRSb3V0ZXMgfHwgW10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxpbmdQYWdlID0gZmFpbGVkUm91dGVzW2ZhaWxlZFJvdXRlcy5sZW5ndGggLSAxXSB8fCAndW5rbm93bic7XG4gICAgICAgICAgICAgICAgY29uc3QgaG9zdGVkUm9vdCA9IHVzZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwgfHwgJy8nO1xuICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgYOKdjCBQYWdlOiAke2ZhaWxpbmdQYWdlfSB8IEhvc3RlZCByb290OiAke2hvc3RlZFJvb3R9IHwgQ2xpZW50IG1vZHVsZXMgcmVnaXN0ZXJlZCBvdXRzaWRlIGhvc3RlZCByb290YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIud2FybihcbiAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVuZGVyIHBhZ2UsIHNraXBwaW5nOiAke3Jlc3VsdC5lcnJvci5tZXNzYWdlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAvLyBDb250aW51ZSBwcm9jZXNzaW5nIG90aGVyIHBhZ2VzIGluc3RlYWQgb2YgdGhyb3dpbmdcbiAgICAgICAgICAgICAgZmluYWxSZXN1bHQgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgICAgICAgICAgICAgY29tcGxldGVkUm91dGVzOiByZXN1bHQuY29tcGxldGVkUm91dGVzLFxuICAgICAgICAgICAgICAgIGZhaWxlZFJvdXRlczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGh0bWxTaXplczogcmVzdWx0Lmh0bWxTaXplcyxcbiAgICAgICAgICAgICAgICByc2NTaXplczogcmVzdWx0LnJzY1NpemVzLFxuICAgICAgICAgICAgICAgIHN0cmVhbU1ldHJpY3M6IHJlc3VsdC5zdHJlYW1NZXRyaWNzLFxuICAgICAgICAgICAgICAgIHJlc3VsdHM6IHJlc3VsdC5yZXN1bHRzLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZmluYWxSZXN1bHQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJlbmRlciByZXN1bHQgcHJvZHVjZWRcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbmFsUmVzdWx0LnN0cmVhbU1ldHJpY3MuZHVyYXRpb24gPSBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgcGVyZm9ybWFuY2Uubm93KCkgLSBmaW5hbFJlc3VsdC5zdHJlYW1NZXRyaWNzLnN0YXJ0VGltZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50LmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFJlbmRlcmVkICR7ZmluYWxSZXN1bHQuY29tcGxldGVkUm91dGVzLnNpemV9IHVuaXF1ZSByb3V0ZXMgaW4gJHtmaW5hbFJlc3VsdC5zdHJlYW1NZXRyaWNzLmR1cmF0aW9ufW1zYFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmVudmlyb25tZW50LmxvZ2dlci53YXJuKFxuICAgICAgICAgICAgICBgJHtlcnJvcnMubGVuZ3RofSBwYWdlcyBmYWlsZWQgdG8gcmVuZGVyIGFuZCB3ZXJlIHNraXBwZWRgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnZbXCJOT0RFX0VOVlwiXSAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQubG9nZ2VyLndhcm4oXG4gICAgICAgICAgICAgIGBUSElTIElTIEJVSUxEIElTIE5PVCBJTlRFTkRFRCBGT1IgUFJPRFVDVElPTiAoJHtwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdfSlgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwZGF0ZSB0aW1pbmdcbiAgICAgICAgICB0aW1pbmcucmVuZGVyID0gRGF0ZS5ub3coKSAtICh0aW1pbmcucmVuZGVyU3RhcnQgPz8gdGltaW5nLnN0YXJ0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dFcnJvcih0b0Vycm9yKGVycm9yKSwgdGhpcy5lbnZpcm9ubWVudC5sb2dnZXIpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIC8vIENsZWFudXBcbiAgICAgICAgICBpZiAod29ya2VyKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAvLyBGb3JjZSB0ZXJtaW5hdGUgdGhlIHdvcmtlciB3aXRob3V0IHdhaXRpbmcgZm9yIGdyYWNlZnVsIHNodXRkb3duXG4gICAgICAgICAgICAgIGF3YWl0IHdvcmtlci50ZXJtaW5hdGUoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGxvZ0Vycm9yKHRvRXJyb3IoZXJyb3IpLCB0aGlzLmVudmlyb25tZW50LmxvZ2dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gYXMgY29uc3Q7XG4gIH07XG4iXSwibmFtZXMiOlsicmVzb2x2ZWRDb25maWciLCJvcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdURhLE1BQUEsaUJB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
@@ -1,3 +1,5 @@
1
- import type { CreateHandlerOptions, RenderPageResult, PagePropOpt } from "../types.js";
2
- export declare function renderPage<T extends PagePropOpt = PagePropOpt>(handlerOptions: CreateHandlerOptions<T>): AsyncGenerator<RenderPageResult, void, unknown>;
1
+ import type { RenderPageResult, ReactStreamHandlerFn } from "../types.js";
2
+ export type RenderPageReturn = AsyncGenerator<RenderPageResult, void, unknown>;
3
+ export type RenderPageFn = ReactStreamHandlerFn<RenderPageReturn>;
4
+ export declare const renderPage: RenderPageFn;
3
5
  //# sourceMappingURL=renderPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACZ,MAAM,aAAa,CAAC;AAKrB,wBAAuB,UAAU,CAC/B,CAAC,SAAS,WAAW,GAAG,WAAW,EAEnC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC,GACtC,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CA4IjD"}
1
+ {"version":3,"file":"renderPage.d.ts","sourceRoot":"","sources":["../../../plugin/react-static/renderPage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAMrB,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;AAEjE,eAAO,MAAM,UAAU,EAAE,YAmJxB,CAAA"}