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
@@ -0,0 +1,221 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { findDirectiveMatches } from './findDirectiveMatches.js';
7
+ import { isFunctionNode } from './typeGuards.js';
8
+ import { getFunctionBody } from './getFunctionBody.js';
9
+ import { getFunctionName } from './getFunctionName.js';
10
+ import { getExportedName } from './getExportedName.js';
11
+ import { processFunctionNode } from './processFunctionNode.js';
12
+ import { getDirectiveValue, isDirectiveAtStart, matchOverlapsDirective } from './utils.js';
13
+
14
+ function analyzeDirectives(ast, source, optionsOrMatches) {
15
+ const hasOptions = optionsOrMatches != null && typeof optionsOrMatches === "object";
16
+ const directiveMatches = hasOptions && "matches" in optionsOrMatches ? optionsOrMatches : findDirectiveMatches(source);
17
+ const directiveInfo = {
18
+ fileLevel: null,
19
+ functionLevel: [],
20
+ warnings: []
21
+ };
22
+ let foundNonDirective = false;
23
+ let firstDirective = null;
24
+ let verbose = hasOptions && "verbose" in optionsOrMatches && optionsOrMatches.verbose;
25
+ for (const node of ast.body) {
26
+ if (verbose) {
27
+ console.log("[analyzeDirectives] Processing node:", {
28
+ type: node.type,
29
+ start: node.start,
30
+ end: node.end,
31
+ directive: "directive" in node ? node.directive : void 0,
32
+ beforeNode: node.start > 0 ? JSON.stringify(source.slice(0, node.start)) : "none",
33
+ foundNonDirective
34
+ });
35
+ }
36
+ if (node.type === "ExpressionStatement") {
37
+ let directive = null;
38
+ if ("directive" in node && typeof node.directive === "string") {
39
+ directive = node.directive;
40
+ } else if (node.expression.type === "Literal" && typeof node.expression.value === "string" && (node.expression.value === "use server" || node.expression.value === "use client")) {
41
+ directive = node.expression.value;
42
+ }
43
+ if (directive) {
44
+ const getDirectiveType = optionsOrMatches != null && "loader" in optionsOrMatches ? optionsOrMatches.loader?.getDirectiveType : void 0;
45
+ const type = getDirectiveType?.(directive) ?? (directive === "use server" ? "server" : "client");
46
+ if (!firstDirective) {
47
+ firstDirective = { type, range: [node.start, node.end] };
48
+ if (verbose) {
49
+ console.log("[analyzeDirectives] Found first directive:", directive, "at range:", [node.start, node.end]);
50
+ }
51
+ } else {
52
+ directiveInfo.warnings.push({
53
+ message: "Cannot have both 'use client' and 'use server' directives in the same file",
54
+ range: [0, 0],
55
+ type: "server"
56
+ });
57
+ }
58
+ } else {
59
+ if (!firstDirective) {
60
+ foundNonDirective = true;
61
+ if (optionsOrMatches != null && "verbose" in optionsOrMatches && optionsOrMatches?.verbose) {
62
+ console.log("[analyzeDirectives] Found non-directive expression before first directive, setting foundNonDirective=true");
63
+ }
64
+ }
65
+ }
66
+ } else if (node.type !== "ImportDeclaration" && node.type !== "ExportNamedDeclaration" && node.type !== "ExportDefaultDeclaration") {
67
+ if (!firstDirective) {
68
+ foundNonDirective = true;
69
+ if (verbose) {
70
+ console.log("[analyzeDirectives] Found non-directive node before first directive:", node.type, "setting foundNonDirective=true");
71
+ }
72
+ }
73
+ }
74
+ if (!firstDirective && node.start > 0) {
75
+ const beforeNode = source.slice(0, node.start).trim();
76
+ if (beforeNode.length > 0) {
77
+ foundNonDirective = true;
78
+ if (verbose) {
79
+ console.log("[analyzeDirectives] Found content before first directive:", JSON.stringify(beforeNode), "setting foundNonDirective=true");
80
+ }
81
+ }
82
+ }
83
+ }
84
+ if (firstDirective) {
85
+ directiveInfo.fileLevel = firstDirective;
86
+ if (!foundNonDirective && firstDirective.range[0] > 0) {
87
+ const beforeDirective = source.slice(0, firstDirective.range[0]).trim();
88
+ if (beforeDirective.length > 0) {
89
+ foundNonDirective = true;
90
+ if (verbose) {
91
+ console.log("[analyzeDirectives] Found content before directive:", JSON.stringify(beforeDirective), "setting foundNonDirective=true for directive");
92
+ }
93
+ }
94
+ }
95
+ if (foundNonDirective) {
96
+ directiveInfo.warnings.push({
97
+ message: "File-level directives must be at the top of the file, before any other code",
98
+ range: [firstDirective.range[0], firstDirective.range[1]],
99
+ type: firstDirective.type
100
+ });
101
+ }
102
+ }
103
+ const functionLevelMatches = directiveMatches.matches.filter((match) => {
104
+ if (directiveInfo.fileLevel && match.range[0] === directiveInfo.fileLevel.range[0] && match.range[1] === directiveInfo.fileLevel.range[1]) {
105
+ return false;
106
+ }
107
+ return true;
108
+ });
109
+ const processedFunctions = /* @__PURE__ */ new Set();
110
+ const functionNodes = [];
111
+ function traverseWithContext(node, context) {
112
+ if (isFunctionNode(node)) {
113
+ const body = getFunctionBody(node);
114
+ if (body) {
115
+ for (const match of functionLevelMatches) {
116
+ const directiveValue = getDirectiveValue(match.type);
117
+ if (isDirectiveAtStart(node, directiveValue)) {
118
+ const directiveNode = body.body[0];
119
+ const directiveStart = directiveNode.start;
120
+ const directiveEnd = directiveNode.end;
121
+ const matchOverlaps = matchOverlapsDirective(match.range, directiveStart, directiveEnd);
122
+ if (matchOverlaps) {
123
+ const functionName = getFunctionName(node) || "anonymous";
124
+ if (context.inFunction) {
125
+ const nameDesc = functionName === "anonymous" ? "" : ` '${functionName}'`;
126
+ directiveInfo.warnings.push({
127
+ message: `Function${nameDesc} with '${directiveValue}' directive cannot be nested inside another function. Directives are only allowed in top-level functions.`,
128
+ range: match.range,
129
+ type: match.type
130
+ });
131
+ return;
132
+ }
133
+ if (context.inClass) {
134
+ const nameDesc = functionName === "anonymous" ? "" : ` '${functionName}'`;
135
+ directiveInfo.warnings.push({
136
+ message: `Class method${nameDesc} with '${directiveValue}' directive is not supported. Directives are only allowed in top-level functions.`,
137
+ range: match.range,
138
+ type: match.type
139
+ });
140
+ return;
141
+ }
142
+ if (match.type === "server") {
143
+ functionNodes.push({ node, match, context: context.inFunction ? "nested" : context.inClass ? "class" : "top-level" });
144
+ } else {
145
+ directiveInfo.warnings.push({
146
+ message: "Function-level 'use client' isn't allowed",
147
+ range: match.range,
148
+ type: "client"
149
+ });
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ }
155
+ }
156
+ traverseChildren(node, { inFunction: true, inClass: context.inClass });
157
+ } else if (node.type === "ClassDeclaration" || node.type === "ClassExpression") {
158
+ traverseChildren(node, { inFunction: context.inFunction, inClass: true });
159
+ } else if (node.type === "MethodDefinition") {
160
+ traverseChildren(node, { inFunction: context.inFunction, inClass: true });
161
+ } else {
162
+ traverseChildren(node, context);
163
+ }
164
+ }
165
+ function traverseChildren(node, context) {
166
+ const nodeWithChildren = node;
167
+ for (const key in nodeWithChildren) {
168
+ if (key === "parent" || key === "start" || key === "end" || key === "loc" || key === "range") {
169
+ continue;
170
+ }
171
+ const value = nodeWithChildren[key];
172
+ if (value && typeof value === "object") {
173
+ if (Array.isArray(value)) {
174
+ for (const child of value) {
175
+ if (child && typeof child === "object" && child.type) {
176
+ traverseWithContext(child, context);
177
+ }
178
+ }
179
+ } else if (value.type) {
180
+ traverseWithContext(value, context);
181
+ }
182
+ }
183
+ }
184
+ }
185
+ traverseWithContext(ast, { inFunction: false, inClass: false });
186
+ for (const { node, match } of functionNodes) {
187
+ const name = getFunctionName(node) || "anonymous";
188
+ const exportName = getExportedName(node);
189
+ const functionKey = `${name}-${exportName || ""}-${match.range[0]}`;
190
+ if (processedFunctions.has(functionKey)) continue;
191
+ processedFunctions.add(functionKey);
192
+ processFunctionNode(node, name, exportName, match, directiveInfo);
193
+ }
194
+ if (directiveInfo.fileLevel && directiveInfo.functionLevel.length > 0) {
195
+ for (const func of directiveInfo.functionLevel) {
196
+ if (directiveInfo.fileLevel.type !== func.type) {
197
+ directiveInfo.warnings.push({
198
+ message: `Cannot have both 'use ${directiveInfo.fileLevel.type}' and 'use ${func.type}' directives in the same file`,
199
+ range: func.range,
200
+ type: "server"
201
+ });
202
+ } else if (func.type !== "server") {
203
+ directiveInfo.warnings.push({
204
+ message: `Function-level directives should be 'use server', but got 'use ${func.type}'`,
205
+ range: func.range,
206
+ type: "client"
207
+ });
208
+ } else {
209
+ directiveInfo.warnings.push({
210
+ message: `'use server' is already defined at the top of the file, this directive should be removed.`,
211
+ range: func.range,
212
+ type: "server"
213
+ });
214
+ }
215
+ }
216
+ }
217
+ return directiveInfo;
218
+ }
219
+
220
+ export { analyzeDirectives };
221
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZURpcmVjdGl2ZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9hbmFseXplRGlyZWN0aXZlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kRGlyZWN0aXZlTWF0Y2hlcyB9IGZyb20gXCIuL2ZpbmREaXJlY3RpdmVNYXRjaGVzLmpzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVHdWFyZHMuanNcIjtcbmltcG9ydCB7IGdldEZ1bmN0aW9uQm9keSB9IGZyb20gXCIuL2dldEZ1bmN0aW9uQm9keS5qc1wiO1xuaW1wb3J0IHsgZ2V0RnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4vZ2V0RnVuY3Rpb25OYW1lLmpzXCI7XG5pbXBvcnQgeyBnZXRFeHBvcnRlZE5hbWUgfSBmcm9tIFwiLi9nZXRFeHBvcnRlZE5hbWUuanNcIjtcbmltcG9ydCB7IHByb2Nlc3NGdW5jdGlvbk5vZGUgfSBmcm9tIFwiLi9wcm9jZXNzRnVuY3Rpb25Ob2RlLmpzXCI7XG5pbXBvcnQgeyBpc0RpcmVjdGl2ZUF0U3RhcnQsIGdldERpcmVjdGl2ZVZhbHVlLCBtYXRjaE92ZXJsYXBzRGlyZWN0aXZlIH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aXZlSW5mbywgRGlyZWN0aXZlTWF0Y2gsIERpcmVjdGl2ZU1hdGNoZXMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBOb2RlLCBQcm9ncmFtIH0gZnJvbSBcImFjb3JuXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGl2ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcblxuLyoqXG4gKiBBbmFseXplcyBkaXJlY3RpdmVzIGluIHRoZSBnaXZlbiBzb3VyY2UgYW5kIEFTVCwgcmV0dXJuaW5nIGRpcmVjdGl2ZUluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG1hdGNoZXM/OiBEaXJlY3RpdmVNYXRjaGVzLFxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEaXJlY3RpdmVPcHRpb25zLFxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLCBcbiAgc291cmNlOiBzdHJpbmcsXG4gIG9wdGlvbnNPck1hdGNoZXM/OiBEaXJlY3RpdmVNYXRjaGVzIHwgRGlyZWN0aXZlT3B0aW9ucyxcbik6IERpcmVjdGl2ZUluZm8ge1xuICBjb25zdCBoYXNPcHRpb25zICA9IG9wdGlvbnNPck1hdGNoZXMgIT0gbnVsbCAmJiB0eXBlb2Ygb3B0aW9uc09yTWF0Y2hlcyA9PT0gJ29iamVjdCc7XG4gIGNvbnN0IGRpcmVjdGl2ZU1hdGNoZXMgPSBoYXNPcHRpb25zICYmICdtYXRjaGVzJyBpbiBvcHRpb25zT3JNYXRjaGVzXG4gICAgPyBvcHRpb25zT3JNYXRjaGVzXG4gICAgOiBmaW5kRGlyZWN0aXZlTWF0Y2hlcyhzb3VyY2UpO1xuXG4gIGNvbnN0IGRpcmVjdGl2ZUluZm86IERpcmVjdGl2ZUluZm8gPSB7XG4gICAgZmlsZUxldmVsOiBudWxsLFxuICAgIGZ1bmN0aW9uTGV2ZWw6IFtdLFxuICAgIHdhcm5pbmdzOiBbXVxuICB9O1xuXG4gIC8vIEZpbmQgZmlsZS1sZXZlbCBkaXJlY3RpdmVzIGJ5IGNoZWNraW5nIEFTVFxuICBsZXQgZm91bmROb25EaXJlY3RpdmUgPSBmYWxzZTtcbiAgbGV0IGZpcnN0RGlyZWN0aXZlOiBEaXJlY3RpdmVNYXRjaCB8IG51bGwgPSBudWxsO1xuICBsZXQgdmVyYm9zZSA9IGhhc09wdGlvbnMgJiYgJ3ZlcmJvc2UnIGluIG9wdGlvbnNPck1hdGNoZXMgJiYgb3B0aW9uc09yTWF0Y2hlcy52ZXJib3NlO1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgYXN0LmJvZHkpIHtcbiAgICAvLyBEZWJ1ZyBsb2dnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIFByb2Nlc3Npbmcgbm9kZTonLCB7XG4gICAgICAgIHR5cGU6IG5vZGUudHlwZSxcbiAgICAgICAgc3RhcnQ6IG5vZGUuc3RhcnQsXG4gICAgICAgIGVuZDogbm9kZS5lbmQsXG4gICAgICAgIGRpcmVjdGl2ZTogJ2RpcmVjdGl2ZScgaW4gbm9kZSA/IG5vZGUuZGlyZWN0aXZlIDogdW5kZWZpbmVkLFxuICAgICAgICBiZWZvcmVOb2RlOiBub2RlLnN0YXJ0ISA+IDAgPyBKU09OLnN0cmluZ2lmeShzb3VyY2Uuc2xpY2UoMCwgbm9kZS5zdGFydCEpKSA6ICdub25lJyxcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE9ubHkgY2hlY2sgZm9yIGRpcmVjdGl2ZXMgaW4gZXhwcmVzc2lvbiBzdGF0ZW1lbnRzXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpIHtcbiAgICAgIGxldCBkaXJlY3RpdmU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgaWYgKFwiZGlyZWN0aXZlXCIgaW4gbm9kZSAmJiB0eXBlb2Ygbm9kZS5kaXJlY3RpdmUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZGlyZWN0aXZlID0gbm9kZS5kaXJlY3RpdmU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBub2RlLmV4cHJlc3Npb24udHlwZSA9PT0gXCJMaXRlcmFsXCIgJiZcbiAgICAgICAgdHlwZW9mIG5vZGUuZXhwcmVzc2lvbi52YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAobm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInVzZSBzZXJ2ZXJcIiB8fCBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09IFwidXNlIGNsaWVudFwiKVxuICAgICAgKSB7XG4gICAgICAgIGRpcmVjdGl2ZSA9IG5vZGUuZXhwcmVzc2lvbi52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGl2ZSkge1xuICAgICAgICBjb25zdCBnZXREaXJlY3RpdmVUeXBlID0gb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmICdsb2FkZXInIGluIG9wdGlvbnNPck1hdGNoZXMgPyBvcHRpb25zT3JNYXRjaGVzLmxvYWRlcj8uZ2V0RGlyZWN0aXZlVHlwZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdHlwZSA9IGdldERpcmVjdGl2ZVR5cGU/LihkaXJlY3RpdmUpID8/IFxuICAgICAgICAgIChkaXJlY3RpdmUgPT09IFwidXNlIHNlcnZlclwiID8gXCJzZXJ2ZXJcIiA6IFwiY2xpZW50XCIpO1xuICAgICAgICBpZiAoIWZpcnN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgZmlyc3REaXJlY3RpdmUgPSB7IHR5cGUsIHJhbmdlOiBbbm9kZS5zdGFydCEsIG5vZGUuZW5kIV0gfTtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1thbmFseXplRGlyZWN0aXZlc10gRm91bmQgZmlyc3QgZGlyZWN0aXZlOicsIGRpcmVjdGl2ZSwgJ2F0IHJhbmdlOicsIFtub2RlLnN0YXJ0ISwgbm9kZS5lbmQhXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBcIkNhbm5vdCBoYXZlIGJvdGggJ3VzZSBjbGllbnQnIGFuZCAndXNlIHNlcnZlcicgZGlyZWN0aXZlcyBpbiB0aGUgc2FtZSBmaWxlXCIsXG4gICAgICAgICAgICByYW5nZTogWzAsIDBdLFxuICAgICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGV4cHJlc3Npb24gc3RhdGVtZW50IGlzIG5vdCBhIGRpcmVjdGl2ZSwgc28gbWFyayBhcyBub24tZGlyZWN0aXZlXG4gICAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICAgICAgaWYgKCFmaXJzdERpcmVjdGl2ZSkge1xuICAgICAgICAgIGZvdW5kTm9uRGlyZWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICBpZiAob3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmICd2ZXJib3NlJyBpbiBvcHRpb25zT3JNYXRjaGVzICYmIG9wdGlvbnNPck1hdGNoZXM/LnZlcmJvc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIG5vbi1kaXJlY3RpdmUgZXhwcmVzc2lvbiBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlLCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSAhPT0gXCJJbXBvcnREZWNsYXJhdGlvblwiICYmIG5vZGUudHlwZSAhPT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgJiYgbm9kZS50eXBlICE9PSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiKSB7XG4gICAgICAvLyBPbmx5IG1hcmsgYWN0dWFsIGNvZGUgKG5vdCBpbXBvcnRzL2V4cG9ydHMpIGFzIG5vbi1kaXJlY3RpdmVcbiAgICAgIC8vIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICAgIGlmICghZmlyc3REaXJlY3RpdmUpIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIG5vbi1kaXJlY3RpdmUgbm9kZSBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOicsIG5vZGUudHlwZSwgJ3NldHRpbmcgZm91bmROb25EaXJlY3RpdmU9dHJ1ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBub2RlIGlzIGFmdGVyIGFueSBjb21tZW50cyBvciBub24td2hpdGVzcGFjZSBjb250ZW50XG4gICAgLy8gT25seSBtYXR0ZXJzIGlmIHdlIGhhdmVuJ3QgZm91bmQgdGhlIGZpcnN0IGRpcmVjdGl2ZSB5ZXRcbiAgICBpZiAoIWZpcnN0RGlyZWN0aXZlICYmIG5vZGUuc3RhcnQhID4gMCkge1xuICAgICAgY29uc3QgYmVmb3JlTm9kZSA9IHNvdXJjZS5zbGljZSgwLCBub2RlLnN0YXJ0ISkudHJpbSgpO1xuICAgICAgaWYgKGJlZm9yZU5vZGUubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3VuZE5vbkRpcmVjdGl2ZSA9IHRydWU7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1thbmFseXplRGlyZWN0aXZlc10gRm91bmQgY29udGVudCBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOicsIEpTT04uc3RyaW5naWZ5KGJlZm9yZU5vZGUpLCAnc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZXQgdGhlIGZpcnN0IGRpcmVjdGl2ZSBhcyBmaWxlLWxldmVsIGlmIGZvdW5kXG4gIGlmIChmaXJzdERpcmVjdGl2ZSkge1xuICAgIGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsID0gZmlyc3REaXJlY3RpdmU7XG4gICAgXG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGNvbnRlbnQgKGluY2x1ZGluZyBjb21tZW50cykgYmVmb3JlIHRoZSBkaXJlY3RpdmVcbiAgICBpZiAoIWZvdW5kTm9uRGlyZWN0aXZlICYmIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzBdID4gMCkge1xuICAgICAgY29uc3QgYmVmb3JlRGlyZWN0aXZlID0gc291cmNlLnNsaWNlKDAsIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzBdKS50cmltKCk7XG4gICAgICBpZiAoYmVmb3JlRGlyZWN0aXZlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIGNvbnRlbnQgYmVmb3JlIGRpcmVjdGl2ZTonLCBKU09OLnN0cmluZ2lmeShiZWZvcmVEaXJlY3RpdmUpLCAnc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlIGZvciBkaXJlY3RpdmUnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoZm91bmROb25EaXJlY3RpdmUpIHtcbiAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgIG1lc3NhZ2U6IFwiRmlsZS1sZXZlbCBkaXJlY3RpdmVzIG11c3QgYmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgYmVmb3JlIGFueSBvdGhlciBjb2RlXCIsXG4gICAgICAgIHJhbmdlOiBbZmlyc3REaXJlY3RpdmUucmFuZ2VbMF0sIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzFdXSxcbiAgICAgICAgdHlwZTogZmlyc3REaXJlY3RpdmUudHlwZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJvY2VzcyBmdW5jdGlvbi1sZXZlbCBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTGV2ZWxNYXRjaGVzID0gZGlyZWN0aXZlTWF0Y2hlcy5tYXRjaGVzLmZpbHRlcigobWF0Y2g6IERpcmVjdGl2ZU1hdGNoKSA9PiB7XG4gICAgLy8gU2tpcCBpZiB0aGlzIG1hdGNoIGlzIGFscmVhZHkgdXNlZCBhcyBhIGZpbGUtbGV2ZWwgZGlyZWN0aXZlXG4gICAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmIFxuICAgICAgICBtYXRjaC5yYW5nZVswXSA9PT0gZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwucmFuZ2VbMF0gJiYgXG4gICAgICAgIG1hdGNoLnJhbmdlWzFdID09PSBkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC5yYW5nZVsxXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgY29uc3QgcHJvY2Vzc2VkRnVuY3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gRmlyc3QgcGFzczogY29sbGVjdCBhbGwgZnVuY3Rpb24gbm9kZXMgd2l0aCB0aGVpciBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTm9kZXM6IEFycmF5PHtub2RlOiBOb2RlLCBtYXRjaDogRGlyZWN0aXZlTWF0Y2gsIGNvbnRleHQ6IHN0cmluZ30+ID0gW107XG4gIFxuICAvLyBUcmFjayBjb250ZXh0IGR1cmluZyB0cmF2ZXJzYWxcbiAgZnVuY3Rpb24gdHJhdmVyc2VXaXRoQ29udGV4dChub2RlOiBOb2RlLCBjb250ZXh0OiB7IGluRnVuY3Rpb246IGJvb2xlYW4sIGluQ2xhc3M6IGJvb2xlYW4gfSkge1xuICAgIGlmIChpc0Z1bmN0aW9uTm9kZShub2RlKSkge1xuICAgICAgY29uc3QgYm9keSA9IGdldEZ1bmN0aW9uQm9keShub2RlKTtcbiAgICAgIGlmIChib2R5KSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGRpcmVjdGl2ZSBpcyBhdCB0aGUgc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIGJvZHlcbiAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBmdW5jdGlvbkxldmVsTWF0Y2hlcykge1xuICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVZhbHVlID0gZ2V0RGlyZWN0aXZlVmFsdWUobWF0Y2gudHlwZSk7XG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGlzRGlyZWN0aXZlQXRTdGFydChub2RlLCBkaXJlY3RpdmVWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtYXRjaCByYW5nZSBjb3JyZXNwb25kcyB0byB0aGlzIHNwZWNpZmljIGRpcmVjdGl2ZSBwb3NpdGlvblxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aXZlTm9kZSA9IGJvZHkuYm9keVswXTtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVN0YXJ0ID0gZGlyZWN0aXZlTm9kZS5zdGFydCE7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVFbmQgPSBkaXJlY3RpdmVOb2RlLmVuZCE7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIE1hdGNoIGJhc2VkIG9uIHBvc2l0aW9uIC0gdGhlIG1hdGNoIHNob3VsZCBvdmVybGFwIHdpdGggdGhlIGRpcmVjdGl2ZSBub2RlXG4gICAgICAgICAgICBjb25zdCBtYXRjaE92ZXJsYXBzID0gbWF0Y2hPdmVybGFwc0RpcmVjdGl2ZShtYXRjaC5yYW5nZSwgZGlyZWN0aXZlU3RhcnQsIGRpcmVjdGl2ZUVuZCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChtYXRjaE92ZXJsYXBzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgY29udGV4dHMgYmFzZWQgb24gdHJhdmVyc2FsIGNvbnRleHRcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHQuaW5GdW5jdGlvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVEZXNjID0gZnVuY3Rpb25OYW1lID09PSBcImFub255bW91c1wiID8gXCJcIiA6IGAgJyR7ZnVuY3Rpb25OYW1lfSdgO1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgRnVuY3Rpb24ke25hbWVEZXNjfSB3aXRoICcke2RpcmVjdGl2ZVZhbHVlfScgZGlyZWN0aXZlIGNhbm5vdCBiZSBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgZnVuY3Rpb24uIERpcmVjdGl2ZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiB0b3AtbGV2ZWwgZnVuY3Rpb25zLmAsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaC50eXBlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIHRoaXMgZnVuY3Rpb24gZW50aXJlbHlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgaWYgKGNvbnRleHQuaW5DbGFzcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWVEZXNjID0gZnVuY3Rpb25OYW1lID09PSBcImFub255bW91c1wiID8gXCJcIiA6IGAgJyR7ZnVuY3Rpb25OYW1lfSdgO1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBgQ2xhc3MgbWV0aG9kJHtuYW1lRGVzY30gd2l0aCAnJHtkaXJlY3RpdmVWYWx1ZX0nIGRpcmVjdGl2ZSBpcyBub3Qgc3VwcG9ydGVkLiBEaXJlY3RpdmVzIGFyZSBvbmx5IGFsbG93ZWQgaW4gdG9wLWxldmVsIGZ1bmN0aW9ucy5gLFxuICAgICAgICAgICAgICAgICAgcmFuZ2U6IG1hdGNoLnJhbmdlLFxuICAgICAgICAgICAgICAgICAgdHlwZTogbWF0Y2gudHlwZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gU2tpcCB0aGlzIGZ1bmN0aW9uIGVudGlyZWx5XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPbmx5IGFsbG93IHNlcnZlciBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uLWxldmVsIGNvbnRleHRzXG4gICAgICAgICAgICAgIGlmIChtYXRjaC50eXBlID09PSBcInNlcnZlclwiKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb25Ob2Rlcy5wdXNoKHsgbm9kZSwgbWF0Y2gsIGNvbnRleHQ6IGNvbnRleHQuaW5GdW5jdGlvbiA/IFwibmVzdGVkXCIgOiBjb250ZXh0LmluQ2xhc3MgPyBcImNsYXNzXCIgOiBcInRvcC1sZXZlbFwiIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlIHdhcm5pbmcgZm9yIGNsaWVudCBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkZ1bmN0aW9uLWxldmVsICd1c2UgY2xpZW50JyBpc24ndCBhbGxvd2VkXCIsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImNsaWVudFwiXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENvbnRpbnVlIHRyYXZlcnNhbCB3aXRoIHVwZGF0ZWQgY29udGV4dCAobm93IGluc2lkZSBhIGZ1bmN0aW9uKVxuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCB7IGluRnVuY3Rpb246IHRydWUsIGluQ2xhc3M6IGNvbnRleHQuaW5DbGFzcyB9KTtcbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIgfHwgbm9kZS50eXBlID09PSBcIkNsYXNzRXhwcmVzc2lvblwiKSB7XG4gICAgICAvLyBDb250aW51ZSB0cmF2ZXJzYWwgd2l0aCB1cGRhdGVkIGNvbnRleHQgKG5vdyBpbnNpZGUgYSBjbGFzcylcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgeyBpbkZ1bmN0aW9uOiBjb250ZXh0LmluRnVuY3Rpb24sIGluQ2xhc3M6IHRydWUgfSk7XG4gICAgfSBlbHNlIGlmIChub2RlLnR5cGUgPT09IFwiTWV0aG9kRGVmaW5pdGlvblwiKSB7XG4gICAgICAvLyBNZXRob2QgZGVmaW5pdGlvbnMgYXJlIGluc2lkZSBjbGFzc2VzXG4gICAgICB0cmF2ZXJzZUNoaWxkcmVuKG5vZGUsIHsgaW5GdW5jdGlvbjogY29udGV4dC5pbkZ1bmN0aW9uLCBpbkNsYXNzOiB0cnVlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250aW51ZSB3aXRoIHNhbWUgY29udGV4dFxuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCBjb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgXG4gIGZ1bmN0aW9uIHRyYXZlcnNlQ2hpbGRyZW4obm9kZTogTm9kZSwgY29udGV4dDogeyBpbkZ1bmN0aW9uOiBib29sZWFuLCBpbkNsYXNzOiBib29sZWFuIH0pIHtcbiAgICBjb25zdCBub2RlV2l0aENoaWxkcmVuID0gbm9kZSBhcyBhbnk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbm9kZVdpdGhDaGlsZHJlbikge1xuICAgICAgaWYgKGtleSA9PT0gJ3BhcmVudCcgfHwga2V5ID09PSAnc3RhcnQnIHx8IGtleSA9PT0gJ2VuZCcgfHwga2V5ID09PSAnbG9jJyB8fCBrZXkgPT09ICdyYW5nZScpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZVdpdGhDaGlsZHJlbltrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQudHlwZSkge1xuICAgICAgICAgICAgICB0cmF2ZXJzZVdpdGhDb250ZXh0KGNoaWxkLCBjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUudHlwZSkge1xuICAgICAgICAgIHRyYXZlcnNlV2l0aENvbnRleHQodmFsdWUsIGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBTdGFydCB0cmF2ZXJzYWwgYXQgdG9wIGxldmVsIChub3QgaW4gZnVuY3Rpb24gb3IgY2xhc3MpXG4gIHRyYXZlcnNlV2l0aENvbnRleHQoYXN0LCB7IGluRnVuY3Rpb246IGZhbHNlLCBpbkNsYXNzOiBmYWxzZSB9KTtcblxuICAvLyBTZWNvbmQgcGFzczogcHJvY2VzcyBmdW5jdGlvbnMgaW4gb3JkZXJcbiAgZm9yIChjb25zdCB7IG5vZGUsIG1hdGNoIH0gb2YgZnVuY3Rpb25Ob2Rlcykge1xuICAgIGNvbnN0IG5hbWUgPSBnZXRGdW5jdGlvbk5hbWUobm9kZSkgfHwgXCJhbm9ueW1vdXNcIjtcbiAgICBjb25zdCBleHBvcnROYW1lID0gZ2V0RXhwb3J0ZWROYW1lKG5vZGUpO1xuICAgIGNvbnN0IGZ1bmN0aW9uS2V5ID0gYCR7bmFtZX0tJHtleHBvcnROYW1lIHx8ICcnfS0ke21hdGNoLnJhbmdlWzBdfWA7XG5cbiAgICAvLyBTa2lwIGlmIHdlJ3ZlIGFscmVhZHkgcHJvY2Vzc2VkIHRoaXMgZnVuY3Rpb25cbiAgICBpZiAocHJvY2Vzc2VkRnVuY3Rpb25zLmhhcyhmdW5jdGlvbktleSkpIGNvbnRpbnVlO1xuICAgIHByb2Nlc3NlZEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25LZXkpO1xuXG4gICAgcHJvY2Vzc0Z1bmN0aW9uTm9kZShub2RlLCBuYW1lLCBleHBvcnROYW1lLCBtYXRjaCwgZGlyZWN0aXZlSW5mbyk7XG4gIH1cblxuICAvLyBBZGQgd2FybmluZ3MgZm9yIG1peGVkIHNlcnZlci9jbGllbnQgZGlyZWN0aXZlc1xuICBpZiAoZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwgJiYgZGlyZWN0aXZlSW5mby5mdW5jdGlvbkxldmVsLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IGZ1bmMgb2YgZGlyZWN0aXZlSW5mby5mdW5jdGlvbkxldmVsKSB7XG4gICAgICBpZiAoZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwudHlwZSAhPT0gZnVuYy50eXBlKSB7XG4gICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYENhbm5vdCBoYXZlIGJvdGggJ3VzZSAke2RpcmVjdGl2ZUluZm8uZmlsZUxldmVsLnR5cGV9JyBhbmQgJ3VzZSAke2Z1bmMudHlwZX0nIGRpcmVjdGl2ZXMgaW4gdGhlIHNhbWUgZmlsZWAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZnVuYy50eXBlICE9PSBcInNlcnZlclwiKSB7XG4gICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogYEZ1bmN0aW9uLWxldmVsIGRpcmVjdGl2ZXMgc2hvdWxkIGJlICd1c2Ugc2VydmVyJywgYnV0IGdvdCAndXNlICR7ZnVuYy50eXBlfSdgLFxuICAgICAgICAgIHJhbmdlOiBmdW5jLnJhbmdlLFxuICAgICAgICAgIHR5cGU6IFwiY2xpZW50XCJcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGAndXNlIHNlcnZlcicgaXMgYWxyZWFkeSBkZWZpbmVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSByZW1vdmVkLmAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGlyZWN0aXZlSW5mbztcbn0gIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUF3Qk8sU0FBUyxpQkFBQSxDQUNkLEdBQ0EsRUFBQSxNQUFBLEVBQ0EsZ0JBQ2UsRUFBQTtBQUNmLEVBQUEsTUFBTSxVQUFjLEdBQUEsZ0JBQUEsSUFBb0IsSUFBUSxJQUFBLE9BQU8sZ0JBQXFCLEtBQUEsUUFBQTtBQUM1RSxFQUFBLE1BQU0sbUJBQW1CLFVBQWMsSUFBQSxTQUFBLElBQWEsZ0JBQ2hELEdBQUEsZ0JBQUEsR0FDQSxxQkFBcUIsTUFBTSxDQUFBO0FBRS9CLEVBQUEsTUFBTSxhQUErQixHQUFBO0FBQUEsSUFDbkMsU0FBVyxFQUFBLElBQUE7QUFBQSxJQUNYLGVBQWUsRUFBQztBQUFBLElBQ2hCLFVBQVU7QUFBQyxHQUNiO0FBR0EsRUFBQSxJQUFJLGlCQUFvQixHQUFBLEtBQUE7QUFDeEIsRUFBQSxJQUFJLGNBQXdDLEdBQUEsSUFBQTtBQUM1QyxFQUFBLElBQUksT0FBVSxHQUFBLFVBQUEsSUFBYyxTQUFhLElBQUEsZ0JBQUEsSUFBb0IsZ0JBQWlCLENBQUEsT0FBQTtBQUM5RSxFQUFXLEtBQUEsTUFBQSxJQUFBLElBQVEsSUFBSSxJQUFNLEVBQUE7QUFFM0IsSUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLE1BQUEsT0FBQSxDQUFRLElBQUksc0NBQXdDLEVBQUE7QUFBQSxRQUNsRCxNQUFNLElBQUssQ0FBQSxJQUFBO0FBQUEsUUFDWCxPQUFPLElBQUssQ0FBQSxLQUFBO0FBQUEsUUFDWixLQUFLLElBQUssQ0FBQSxHQUFBO0FBQUEsUUFDVixTQUFXLEVBQUEsV0FBQSxJQUFlLElBQU8sR0FBQSxJQUFBLENBQUssU0FBWSxHQUFBLE1BQUE7QUFB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
@@ -0,0 +1,7 @@
1
+ import type { ParseResult } from "./types.js";
2
+ import type { DirectiveOptions } from "../../types.js";
3
+ /**
4
+ * Analyzes a module for directives and returns the parse result with directive info.
5
+ */
6
+ export declare function analyzeModule(source: string, options?: DirectiveOptions): Promise<ParseResult>;
7
+ //# sourceMappingURL=analyzeModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzeModule.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/analyzeModule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,WAAW,CAAC,CA4CtB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { parse } from '../parse.js';
7
+ import { analyzeDirectives } from './analyzeDirectives.js';
8
+ import { getExports } from './getExports.js';
9
+
10
+ async function analyzeModule(source, options) {
11
+ let result = typeof options?.loader.parse === "function" ? options.loader.parse(source) : parse(source);
12
+ if (result instanceof Promise) {
13
+ result = await result;
14
+ }
15
+ if (typeof result === "object" && !("ast" in result)) {
16
+ result = {
17
+ ast: result
18
+ };
19
+ }
20
+ const exports = typeof result === "object" && "exports" in result && result.exports ? result.exports : await getExports(result.ast);
21
+ if (options?.verbose) {
22
+ if (exports && exports.exports.size > 0) {
23
+ console.log(
24
+ "[analyzeModule] exports",
25
+ Array.from(exports.exports.values())
26
+ );
27
+ }
28
+ }
29
+ const directiveInfo = analyzeDirectives(result.ast, source, options);
30
+ if (options?.verbose) {
31
+ if (directiveInfo.warnings.length > 0) {
32
+ console.log("[analyzeModule] warnings", directiveInfo.warnings);
33
+ }
34
+ }
35
+ let { code = source, map, ast, exports: _, ...rest } = result;
36
+ return {
37
+ type: "success",
38
+ ...rest,
39
+ code,
40
+ map,
41
+ ast,
42
+ exports,
43
+ directiveInfo
44
+ };
45
+ }
46
+
47
+ export { analyzeModule };
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZU1vZHVsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2luL2xvYWRlci9kaXJlY3RpdmVzL2FuYWx5emVNb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiLi4vcGFyc2UuanNcIjtcbmltcG9ydCB7IGFuYWx5emVEaXJlY3RpdmVzIH0gZnJvbSBcIi4vYW5hbHl6ZURpcmVjdGl2ZXMuanNcIjtcbmltcG9ydCB7IGdldEV4cG9ydHMgfSBmcm9tIFwiLi9nZXRFeHBvcnRzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFBhcnNlZEV4cG9ydHMsIFBhcnNlUmVzdWx0IH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aXZlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuXG4vKipcbiAqIEFuYWx5emVzIGEgbW9kdWxlIGZvciBkaXJlY3RpdmVzIGFuZCByZXR1cm5zIHRoZSBwYXJzZSByZXN1bHQgd2l0aCBkaXJlY3RpdmUgaW5mby5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFuYWx5emVNb2R1bGUoXG4gIHNvdXJjZTogc3RyaW5nLFxuICBvcHRpb25zPzogRGlyZWN0aXZlT3B0aW9uc1xuKTogUHJvbWlzZTxQYXJzZVJlc3VsdD4ge1xuICBsZXQgcmVzdWx0ID1cbiAgICB0eXBlb2Ygb3B0aW9ucz8ubG9hZGVyLnBhcnNlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gb3B0aW9ucy5sb2FkZXIucGFyc2Uoc291cmNlKVxuICAgICAgOiBwYXJzZShzb3VyY2UpO1xuICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgIHJlc3VsdCA9IGF3YWl0IHJlc3VsdDtcbiAgfVxuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIiAmJiAhKFwiYXN0XCIgaW4gcmVzdWx0KSkge1xuICAgIHJlc3VsdCA9IHtcbiAgICAgIGFzdDogcmVzdWx0LFxuICAgIH07XG4gIH1cbiAgLy8gQ29sbGVjdCBleHBvcnRzIGZyb20gdGhlIEFTVCBmaXJzdFxuICBjb25zdCBleHBvcnRzOiBQYXJzZWRFeHBvcnRzID1cbiAgICB0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiICYmIFwiZXhwb3J0c1wiIGluIHJlc3VsdCAmJiByZXN1bHQuZXhwb3J0c1xuICAgICAgPyByZXN1bHQuZXhwb3J0c1xuICAgICAgOiBhd2FpdCBnZXRFeHBvcnRzKHJlc3VsdC5hc3QpO1xuXG4gIGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG4gICAgaWYgKGV4cG9ydHMgJiYgZXhwb3J0cy5leHBvcnRzLnNpemUgPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgXCJbYW5hbHl6ZU1vZHVsZV0gZXhwb3J0c1wiLFxuICAgICAgICBBcnJheS5mcm9tKGV4cG9ydHMuZXhwb3J0cy52YWx1ZXMoKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGlyZWN0aXZlSW5mbyA9IGFuYWx5emVEaXJlY3RpdmVzKHJlc3VsdC5hc3QsIHNvdXJjZSwgb3B0aW9ucyk7XG4gIGlmIChvcHRpb25zPy52ZXJib3NlKSB7XG4gICAgaWYgKGRpcmVjdGl2ZUluZm8ud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coXCJbYW5hbHl6ZU1vZHVsZV0gd2FybmluZ3NcIiwgZGlyZWN0aXZlSW5mby53YXJuaW5ncyk7XG4gICAgfVxuICB9XG4gIGxldCB7IGNvZGUgPSBzb3VyY2UsIG1hcCwgYXN0LCBleHBvcnRzOiBfLCAuLi5yZXN0IH0gPSByZXN1bHQ7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgLi4ucmVzdCxcbiAgICBjb2RlOiBjb2RlLFxuICAgIG1hcDogbWFwLFxuICAgIGFzdDogYXN0LFxuICAgIGV4cG9ydHMsXG4gICAgZGlyZWN0aXZlSW5mbyxcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxlQUFzQixhQUFBLENBQ3BCLFFBQ0EsT0FDc0IsRUFBQTtBQUN0QixFQUFBLElBQUksTUFDRixHQUFBLE9BQU8sT0FBUyxFQUFBLE1BQUEsQ0FBTyxLQUFVLEtBQUEsVUFBQSxHQUM3QixPQUFRLENBQUEsTUFBQSxDQUFPLEtBQU0sQ0FBQSxNQUFNLENBQzNCLEdBQUEsS0FBQSxDQUFNLE1BQU0sQ0FBQTtBQUNsQixFQUFBLElBQUksa0JBQWtCLE9BQVMsRUFBQTtBQUM3QixJQUFBLE1BQUEsR0FBUyxNQUFNLE1BQUE7QUFBQTtBQUVqQixFQUFBLElBQUksT0FBTyxNQUFBLEtBQVcsUUFBWSxJQUFBLEVBQUUsU0FBUyxNQUFTLENBQUEsRUFBQTtBQUNwRCxJQUFTLE1BQUEsR0FBQTtBQUFBLE1BQ1AsR0FBSyxFQUFBO0FBQUEsS0FDUDtBQUFBO0FBR0YsRUFBQSxNQUFNLE9BQ0osR0FBQSxPQUFPLE1BQVcsS0FBQSxRQUFBLElBQVksU0FBYSxJQUFBLE1BQUEsSUFBVSxNQUFPLENBQUEsT0FBQSxHQUN4RCxNQUFPLENBQUEsT0FBQSxHQUNQLE1BQU0sVUFBQSxDQUFXLE9BQU8sR0FBRyxDQUFBO0FBRWpDLEVBQUEsSUFBSSxTQUFTLE9BQVMsRUFBQTtBQUNwQixJQUFBLElBQUksT0FBVyxJQUFBLE9BQUEsQ0FBUSxPQUFRLENBQUEsSUFBQSxHQUFPLENBQUcsRUFBQTtBQUN2QyxNQUFRLE9BQUEsQ0FBQSxHQUFBO0FBQUEsUUFDTix5QkFBQTtBQUFBLFFBQ0EsS0FBTSxDQUFBLElBQUEsQ0FBSyxPQUFRLENBQUEsT0FBQSxDQUFRLFFBQVE7QUFBQSxPQUNyQztBQUFBO0FBQ0Y7QUFHRixFQUFBLE1BQU0sYUFBZ0IsR0FBQSxpQkFBQSxDQUFrQixNQUFPLENBQUEsR0FBQSxFQUFLLFFBQVEsT0FBTyxDQUFBO0FBQ25FLEVBQUEsSUFBSSxTQUFTLE9BQVMsRUFBQTtBQUNwQixJQUFJLElBQUEsYUFBQSxDQUFjLFFBQVMsQ0FBQSxNQUFBLEdBQVMsQ0FBRyxFQUFBO0FBQ3JDLE1BQVEsT0FBQSxDQUFBLEdBQUEsQ0FBSSwwQkFBNEIsRUFBQSxhQUFBLENBQWMsUUFBUSxDQUFBO0FBQUE7QUFDaEU7QUFFRixFQUFJLElBQUEsRUFBRSxPQUFPLE1BQVEsRUFBQSxHQUFBLEVBQUssS0FBSyxPQUFTLEVBQUEsQ0FBQSxFQUFHLEdBQUcsSUFBQSxFQUFTLEdBQUEsTUFBQTtBQUN2RCxFQUFPLE9BQUE7QUFBQSxJQUNMLElBQU0sRUFBQSxTQUFBO0FBQUEsSUFDTixHQUFHLElBQUE7QUFBQSxJQUNILElBQUE7QUFBQSxJQUNBLEdBQUE7QUFBQSxJQUNBLEdBQUE7QUFBQSxJQUNBLE9BQUE7QUFBQSxJQUNBO0FBQUEsR0FDRjtBQUNGOzs7OyJ9
@@ -0,0 +1,13 @@
1
+ import type { Program } from "acorn";
2
+ import type { ExportInfo } from "./types.js";
3
+ /**
4
+ * Collects all exports from a module, including:
5
+ * - Named exports
6
+ * - Default exports
7
+ * - Re-exports
8
+ * - Object method exports
9
+ * - Class method exports
10
+ * - Export * declarations
11
+ */
12
+ export declare function collectExports(program: Program): Promise<ExportInfo[]>;
13
+ //# sourceMappingURL=collectExports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectExports.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/collectExports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,OAAO,EACR,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0H7C;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAuC5E"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { isArrowFunctionExpression, isFunctionExpression } from './typeGuards.js';
7
+ import { addLocalExportedNames } from './addLocalExportedNames.js';
8
+
9
+ function createExportInfo(localName, exportName, type, range, originalModuleId) {
10
+ return {
11
+ localName,
12
+ exportName,
13
+ type,
14
+ range,
15
+ originalModuleId
16
+ };
17
+ }
18
+ function handleTypedExport(id, exportName, type, range) {
19
+ return createExportInfo(
20
+ id?.name || "anonymous",
21
+ exportName,
22
+ type,
23
+ range
24
+ );
25
+ }
26
+ function handleDefaultExport(declaration, range) {
27
+ if (declaration.type === "Identifier") {
28
+ return createExportInfo(declaration.name, "default", null, range);
29
+ } else if (declaration.type === "FunctionDeclaration") {
30
+ return handleTypedExport(declaration.id, "default", "function", range);
31
+ } else if (declaration.type === "ClassDeclaration") {
32
+ return handleTypedExport(declaration.id, "default", "class", range);
33
+ } else if (declaration.type === "ArrowFunctionExpression") {
34
+ return handleTypedExport(null, "default", "function", range);
35
+ }
36
+ return null;
37
+ }
38
+ function handleNamedExport(declaration, range) {
39
+ const exports = [];
40
+ if (declaration.type === "VariableDeclaration") {
41
+ for (const decl of declaration.declarations) {
42
+ if (decl.init) {
43
+ if (isArrowFunctionExpression(decl.init) || isFunctionExpression(decl.init)) {
44
+ if (decl.id.type === "Identifier") {
45
+ exports.push(handleTypedExport(decl.id, decl.id.name, "function", range));
46
+ }
47
+ } else {
48
+ addLocalExportedNames(exports, decl.id, range);
49
+ }
50
+ } else {
51
+ addLocalExportedNames(exports, decl.id, range);
52
+ }
53
+ }
54
+ } else if (declaration.type === "FunctionDeclaration" && declaration.id) {
55
+ exports.push(
56
+ handleTypedExport(declaration.id, declaration.id.name, "function", range)
57
+ );
58
+ } else if (declaration.type === "ClassDeclaration" && declaration.id) {
59
+ exports.push(handleTypedExport(declaration.id, declaration.id.name, "class", range));
60
+ }
61
+ return exports;
62
+ }
63
+ async function handleReExports(specifiers, range, sourceModuleId) {
64
+ const exports = [];
65
+ for (const specifier of specifiers) {
66
+ if (specifier.local.type === "Identifier" && specifier.exported.type === "Identifier") {
67
+ const functionName = sourceModuleId ? specifier.exported.name : specifier.local.name;
68
+ exports.push(
69
+ createExportInfo(
70
+ functionName,
71
+ // Function reference name
72
+ specifier.exported.name,
73
+ // Export name
74
+ "function",
75
+ range
76
+ )
77
+ );
78
+ }
79
+ }
80
+ return exports;
81
+ }
82
+ async function collectExports(program) {
83
+ const exports = [];
84
+ for (const node of program.body) {
85
+ switch (node.type) {
86
+ case "ExportDefaultDeclaration": {
87
+ const exportInfo = handleDefaultExport(node.declaration, [
88
+ node.start,
89
+ node.end
90
+ ]);
91
+ if (exportInfo) {
92
+ exports.push(exportInfo);
93
+ }
94
+ break;
95
+ }
96
+ case "ExportAllDeclaration":
97
+ break;
98
+ case "ExportNamedDeclaration":
99
+ if (node.declaration) {
100
+ exports.push(
101
+ ...handleNamedExport(node.declaration, [node.start, node.end])
102
+ );
103
+ }
104
+ if (node.specifiers) {
105
+ const sourceModuleId = node.source && typeof node.source.value === "string" ? node.source.value : void 0;
106
+ const reExports = await handleReExports(node.specifiers, [node.start, node.end], sourceModuleId);
107
+ exports.push(...reExports);
108
+ }
109
+ break;
110
+ }
111
+ }
112
+ return exports;
113
+ }
114
+
115
+ export { collectExports };
116
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdEV4cG9ydHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9jb2xsZWN0RXhwb3J0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEFub255bW91c0NsYXNzRGVjbGFyYXRpb24sXG4gIEFub255bW91c0Z1bmN0aW9uRGVjbGFyYXRpb24sXG4gIENsYXNzRGVjbGFyYXRpb24sXG4gIERlY2xhcmF0aW9uLFxuICBFeHBvcnRTcGVjaWZpZXIsXG4gIEV4cHJlc3Npb24sXG4gIEZ1bmN0aW9uRGVjbGFyYXRpb24sXG4gIFByb2dyYW0sXG59IGZyb20gXCJhY29yblwiO1xuaW1wb3J0IHR5cGUgeyBFeHBvcnRJbmZvIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7XG4gIGlzQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24sXG4gIGlzRnVuY3Rpb25FeHByZXNzaW9uLFxufSBmcm9tIFwiLi90eXBlR3VhcmRzLmpzXCI7XG5pbXBvcnQgeyBhZGRMb2NhbEV4cG9ydGVkTmFtZXMgfSBmcm9tIFwiLi9hZGRMb2NhbEV4cG9ydGVkTmFtZXMuanNcIjtcblxuZnVuY3Rpb24gY3JlYXRlRXhwb3J0SW5mbyhcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4gIGV4cG9ydE5hbWU6IHN0cmluZyxcbiAgdHlwZTogXCJmdW5jdGlvblwiIHwgXCJjbGFzc1wiIHwgXCJ2YXJpYWJsZVwiIHwgbnVsbCxcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXG4gIG9yaWdpbmFsTW9kdWxlSWQ/OiBzdHJpbmdcbik6IEV4cG9ydEluZm8ge1xuICByZXR1cm4ge1xuICAgIGxvY2FsTmFtZSxcbiAgICBleHBvcnROYW1lLFxuICAgIHR5cGUsXG4gICAgcmFuZ2UsXG4gICAgb3JpZ2luYWxNb2R1bGVJZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlVHlwZWRFeHBvcnQoXG4gIGlkOiB7IG5hbWU6IHN0cmluZyB9IHwgbnVsbCxcbiAgZXhwb3J0TmFtZTogc3RyaW5nLFxuICB0eXBlOiBcImZ1bmN0aW9uXCIgfCBcImNsYXNzXCIsXG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdXG4pOiBFeHBvcnRJbmZvIHtcbiAgcmV0dXJuIGNyZWF0ZUV4cG9ydEluZm8oXG4gICAgaWQ/Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIixcbiAgICBleHBvcnROYW1lLFxuICAgIHR5cGUsXG4gICAgcmFuZ2VcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlRGVmYXVsdEV4cG9ydChcbiAgZGVjbGFyYXRpb246XG4gICAgfCBBbm9ueW1vdXNGdW5jdGlvbkRlY2xhcmF0aW9uXG4gICAgfCBGdW5jdGlvbkRlY2xhcmF0aW9uXG4gICAgfCBBbm9ueW1vdXNDbGFzc0RlY2xhcmF0aW9uXG4gICAgfCBDbGFzc0RlY2xhcmF0aW9uXG4gICAgfCBFeHByZXNzaW9uLFxuICByYW5nZTogW251bWJlciwgbnVtYmVyXVxuKTogRXhwb3J0SW5mbyB8IG51bGwge1xuICBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICByZXR1cm4gY3JlYXRlRXhwb3J0SW5mbyhkZWNsYXJhdGlvbi5uYW1lLCBcImRlZmF1bHRcIiwgbnVsbCwgcmFuZ2UpO1xuICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLnR5cGUgPT09IFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiKSB7XG4gICAgcmV0dXJuIGhhbmRsZVR5cGVkRXhwb3J0KGRlY2xhcmF0aW9uLmlkLCBcImRlZmF1bHRcIiwgXCJmdW5jdGlvblwiLCByYW5nZSk7XG4gIH0gZWxzZSBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIpIHtcbiAgICByZXR1cm4gaGFuZGxlVHlwZWRFeHBvcnQoZGVjbGFyYXRpb24uaWQsIFwiZGVmYXVsdFwiLCBcImNsYXNzXCIsIHJhbmdlKTtcbiAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpIHtcbiAgICByZXR1cm4gaGFuZGxlVHlwZWRFeHBvcnQobnVsbCwgXCJkZWZhdWx0XCIsIFwiZnVuY3Rpb25cIiwgcmFuZ2UpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVOYW1lZEV4cG9ydChcbiAgZGVjbGFyYXRpb246IERlY2xhcmF0aW9uIHwgRXhwcmVzc2lvbixcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl1cbik6IEV4cG9ydEluZm9bXSB7XG4gIGNvbnN0IGV4cG9ydHM6IEV4cG9ydEluZm9bXSA9IFtdO1xuXG4gIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIikge1xuICAgIGZvciAoY29uc3QgZGVjbCBvZiBkZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgIGlmIChkZWNsLmluaXQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24oZGVjbC5pbml0KSB8fFxuICAgICAgICAgIGlzRnVuY3Rpb25FeHByZXNzaW9uKGRlY2wuaW5pdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGRlY2wuaWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIpIHtcbiAgICAgICAgICAgIGV4cG9ydHMucHVzaChoYW5kbGVUeXBlZEV4cG9ydChkZWNsLmlkLCBkZWNsLmlkLm5hbWUsIFwiZnVuY3Rpb25cIiwgcmFuZ2UpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkTG9jYWxFeHBvcnRlZE5hbWVzKGV4cG9ydHMsIGRlY2wuaWQsIHJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkTG9jYWxFeHBvcnRlZE5hbWVzKGV4cG9ydHMsIGRlY2wuaWQsIHJhbmdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIgJiYgZGVjbGFyYXRpb24uaWQpIHtcbiAgICBleHBvcnRzLnB1c2goXG4gICAgICBoYW5kbGVUeXBlZEV4cG9ydChkZWNsYXJhdGlvbi5pZCwgZGVjbGFyYXRpb24uaWQubmFtZSwgXCJmdW5jdGlvblwiLCByYW5nZSlcbiAgICApO1xuICB9IGVsc2UgaWYgKGRlY2xhcmF0aW9uLnR5cGUgPT09IFwiQ2xhc3NEZWNsYXJhdGlvblwiICYmIGRlY2xhcmF0aW9uLmlkKSB7XG4gICAgZXhwb3J0cy5wdXNoKGhhbmRsZVR5cGVkRXhwb3J0KGRlY2xhcmF0aW9uLmlkLCBkZWNsYXJhdGlvbi5pZC5uYW1lLCBcImNsYXNzXCIsIHJhbmdlKSk7XG4gIH1cblxuICByZXR1cm4gZXhwb3J0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVFeHBvcnRzKFxuICBzcGVjaWZpZXJzOiBFeHBvcnRTcGVjaWZpZXJbXSxcbiAgcmFuZ2U6IFtudW1iZXIsIG51bWJlcl0sXG4gIHNvdXJjZU1vZHVsZUlkPzogc3RyaW5nXG4pOiBQcm9taXNlPEV4cG9ydEluZm9bXT4ge1xuICBjb25zdCBleHBvcnRzOiBFeHBvcnRJbmZvW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzcGVjaWZpZXJzKSB7XG4gICAgaWYgKFxuICAgICAgc3BlY2lmaWVyLmxvY2FsLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCJcbiAgICApIHtcbiAgICAgIC8vIEZvciByZS1leHBvcnRzIGZyb20gYW5vdGhlciBtb2R1bGUsIHVzZSBleHBvcnRlZCBuYW1lIGZvciBmdW5jdGlvbiByZWZlcmVuY2VcbiAgICAgIC8vIEZvciBsb2NhbCBleHBvcnRzIHdpdGggYWxpYXNlcywgdXNlIGxvY2FsIG5hbWUgZm9yIGZ1bmN0aW9uIHJlZmVyZW5jZVxuICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gc291cmNlTW9kdWxlSWQgPyBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA6IHNwZWNpZmllci5sb2NhbC5uYW1lO1xuICAgICAgXG4gICAgICBleHBvcnRzLnB1c2goXG4gICAgICAgIGNyZWF0ZUV4cG9ydEluZm8oXG4gICAgICAgICAgZnVuY3Rpb25OYW1lLCAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gcmVmZXJlbmNlIG5hbWVcbiAgICAgICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSwgICAvLyBFeHBvcnQgbmFtZVxuICAgICAgICAgIFwiZnVuY3Rpb25cIixcbiAgICAgICAgICByYW5nZSxcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhwb3J0cztcbn1cblxuLyoqXG4gKiBDb2xsZWN0cyBhbGwgZXhwb3J0cyBmcm9tIGEgbW9kdWxlLCBpbmNsdWRpbmc6XG4gKiAtIE5hbWVkIGV4cG9ydHNcbiAqIC0gRGVmYXVsdCBleHBvcnRzXG4gKiAtIFJlLWV4cG9ydHNcbiAqIC0gT2JqZWN0IG1ldGhvZCBleHBvcnRzXG4gKiAtIENsYXNzIG1ldGhvZCBleHBvcnRzXG4gKiAtIEV4cG9ydCAqIGRlY2xhcmF0aW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdEV4cG9ydHMocHJvZ3JhbTogUHJvZ3JhbSk6IFByb21pc2U8RXhwb3J0SW5mb1tdPiB7XG4gIGNvbnN0IGV4cG9ydHM6IEV4cG9ydEluZm9bXSA9IFtdO1xuXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBwcm9ncmFtLmJvZHkpIHtcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgY2FzZSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiOiB7XG4gICAgICAgIGNvbnN0IGV4cG9ydEluZm8gPSBoYW5kbGVEZWZhdWx0RXhwb3J0KG5vZGUuZGVjbGFyYXRpb24sIFtcbiAgICAgICAgICBub2RlLnN0YXJ0LFxuICAgICAgICAgIG5vZGUuZW5kLFxuICAgICAgICBdKTtcbiAgICAgICAgaWYgKGV4cG9ydEluZm8pIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goZXhwb3J0SW5mbyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiOlxuICAgICAgICAvLyBJZiBleHBvcnQgKiBpcyB1c2VkLCB0aGUgb3RoZXIgZmlsZSBuZWVkcyB0byBleHBsaWNpdGx5IG9wdCBpbnRvIFwidXNlIHNlcnZlclwiIHRvby5cbiAgICAgICAgLy8gVGhpcyBtYXRjaGVzIFJlYWN0J3MgbG9hZGVyIGJlaGF2aW9yIC0gd2UgaWdub3JlIGV4cG9ydCAqIGRlY2xhcmF0aW9uc1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIjpcbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBleHBvcnRzLnB1c2goXG4gICAgICAgICAgICAuLi5oYW5kbGVOYW1lZEV4cG9ydChub2RlLmRlY2xhcmF0aW9uLCBbbm9kZS5zdGFydCwgbm9kZS5lbmRdKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuc3BlY2lmaWVycykge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU1vZHVsZUlkID0gbm9kZS5zb3VyY2UgJiYgdHlwZW9mIG5vZGUuc291cmNlLnZhbHVlID09PSBcInN0cmluZ1wiIFxuICAgICAgICAgICAgPyBub2RlLnNvdXJjZS52YWx1ZSBcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnN0IHJlRXhwb3J0cyA9IGF3YWl0IGhhbmRsZVJlRXhwb3J0cyhub2RlLnNwZWNpZmllcnMsIFtub2RlLnN0YXJ0LCBub2RlLmVuZF0sIHNvdXJjZU1vZHVsZUlkKTtcbiAgICAgICAgICBleHBvcnRzLnB1c2goLi4ucmVFeHBvcnRzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4g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
@@ -0,0 +1,6 @@
1
+ import type { ExportInfo } from "./types.js";
2
+ /**
3
+ * Recursively collects exports from a module that uses export *
4
+ */
5
+ export declare function collectExportsFromModule(moduleId: string): Promise<ExportInfo[]>;
6
+ //# sourceMappingURL=collectExportsFromModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectExportsFromModule.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/collectExportsFromModule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBpF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { parse } from '../parse.js';
7
+ import { getExports } from './getExports.js';
8
+ import { loadClientSource } from '../../helpers/moduleResolver.js';
9
+
10
+ async function collectExportsFromModule(moduleId) {
11
+ const source = await loadClientSource(moduleId);
12
+ if (typeof source !== "string") {
13
+ throw new Error("Expected source to be a string");
14
+ }
15
+ const { ast } = await parse(source);
16
+ const exports = await getExports(ast);
17
+ return Array.from(exports.exports.values()).map((exp) => ({
18
+ ...exp,
19
+ originalModuleId: exp.originalModuleId || moduleId
20
+ }));
21
+ }
22
+
23
+ export { collectExportsFromModule };
24
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wbHVnaW4vbG9hZGVyL2RpcmVjdGl2ZXMvY29sbGVjdEV4cG9ydHNGcm9tTW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSBcIi4uL3BhcnNlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEV4cG9ydEluZm8gfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZ2V0RXhwb3J0cyB9IGZyb20gXCIuL2dldEV4cG9ydHMuanNcIjtcbmltcG9ydCB7IGxvYWRDbGllbnRTb3VyY2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9tb2R1bGVSZXNvbHZlci5qc1wiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvbGxlY3RzIGV4cG9ydHMgZnJvbSBhIG1vZHVsZSB0aGF0IHVzZXMgZXhwb3J0ICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RFeHBvcnRzRnJvbU1vZHVsZShtb2R1bGVJZDogc3RyaW5nKTogUHJvbWlzZTxFeHBvcnRJbmZvW10+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCBsb2FkQ2xpZW50U291cmNlKG1vZHVsZUlkKTtcbiAgXG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHNvdXJjZSB0byBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgXG4gICAgLy8gVXNlIG91ciBleGlzdGluZyBwYXJzZSBmdW5jdGlvblxuICAgIGNvbnN0IHsgYXN0IH0gPSBhd2FpdCBwYXJzZShzb3VyY2UpO1xuICAgIGNvbnN0IGV4cG9ydHMgPSBhd2FpdCBnZXRFeHBvcnRzKGFzdCk7XG4gICAgXG4gICAgLy8gU2V0IG9yaWdpbmFsTW9kdWxlSWQgZm9yIGxvY2FsIGV4cG9ydHMsIHByZXNlcnZlIGl0IGZvciByZS1leHBvcnRzXG4gICAgcmV0dXJuIEFycmF5LmZyb20oZXhwb3J0cy5leHBvcnRzLnZhbHVlcygpKS5tYXAoZXhwID0+ICh7XG4gICAgICAuLi5leHAsXG4gICAgICBvcmlnaW5hbE1vZHVsZUlkOiBleHAub3JpZ2luYWxNb2R1bGVJZCB8fCBtb2R1bGVJZFxuICAgIH0pKTtcbiAgfSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQSxlQUFzQix5QkFBeUIsUUFBeUMsRUFBQTtBQUNwRixFQUFNLE1BQUEsTUFBQSxHQUFTLE1BQU0sZ0JBQUEsQ0FBaUIsUUFBUSxDQUFBO0FBRTlDLEVBQUksSUFBQSxPQUFPLFdBQVcsUUFBVSxFQUFBO0FBQzlCLElBQU0sTUFBQSxJQUFJLE1BQU0sZ0NBQWdDLENBQUE7QUFBQTtBQUlsRCxFQUFBLE1BQU0sRUFBRSxHQUFBLEVBQVEsR0FBQSxNQUFNLE1BQU0sTUFBTSxDQUFBO0FBQ2xDLEVBQU0sTUFBQSxPQUFBLEdBQVUsTUFBTSxVQUFBLENBQVcsR0FBRyxDQUFBO0FBR3BDLEVBQU8sT0FBQSxLQUFBLENBQU0sS0FBSyxPQUFRLENBQUEsT0FBQSxDQUFRLFFBQVEsQ0FBQSxDQUFFLElBQUksQ0FBUSxHQUFBLE1BQUE7QUFBQSxJQUN0RCxHQUFHLEdBQUE7QUFBQSxJQUNILGdCQUFBLEVBQWtCLElBQUksZ0JBQW9CLElBQUE7QUFBQSxHQUMxQyxDQUFBLENBQUE7QUFDSjs7OzsifQ==
@@ -0,0 +1,3 @@
1
+ import type { DirectiveMatches } from "./types.js";
2
+ export declare function findDirectiveMatches(source: string): DirectiveMatches;
3
+ //# sourceMappingURL=findDirectiveMatches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findDirectiveMatches.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/findDirectiveMatches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAErF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAuBlB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ function findDirectiveMatches(source) {
7
+ const matches = [];
8
+ const warnings = [];
9
+ const serverMatches = findServerDirectives(source);
10
+ const clientMatches = findClientDirectives(source);
11
+ const allMatches = [...serverMatches, ...clientMatches].sort((a, b) => a.range[0] - b.range[0]);
12
+ if (allMatches.length === 0) {
13
+ return { matches, warnings };
14
+ }
15
+ for (const match of allMatches) {
16
+ matches.push(match);
17
+ }
18
+ return { matches, warnings };
19
+ }
20
+ function findServerDirectives(source) {
21
+ const matches = [];
22
+ const regex = /"use server"|'use server'/g;
23
+ let match;
24
+ while ((match = regex.exec(source)) !== null) {
25
+ matches.push({
26
+ type: "server",
27
+ range: [match.index, match.index + match[0].length]
28
+ });
29
+ }
30
+ return matches;
31
+ }
32
+ function findClientDirectives(source) {
33
+ const matches = [];
34
+ const regex = /"use client"|'use client'/g;
35
+ let match;
36
+ while ((match = regex.exec(source)) !== null) {
37
+ matches.push({
38
+ type: "client",
39
+ range: [match.index, match.index + match[0].length]
40
+ });
41
+ }
42
+ return matches;
43
+ }
44
+
45
+ export { findDirectiveMatches };
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZERpcmVjdGl2ZU1hdGNoZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9maW5kRGlyZWN0aXZlTWF0Y2hlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpcmVjdGl2ZU1hdGNoLCBEaXJlY3RpdmVNYXRjaGVzLCBEaXJlY3RpdmVXYXJuaW5nIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmREaXJlY3RpdmVNYXRjaGVzKFxuICBzb3VyY2U6IHN0cmluZyxcbik6IERpcmVjdGl2ZU1hdGNoZXMge1xuICBjb25zdCBtYXRjaGVzOiBEaXJlY3RpdmVNYXRjaFtdID0gW107XG4gIGNvbnN0IHdhcm5pbmdzOiBEaXJlY3RpdmVXYXJuaW5nW10gPSBbXTtcblxuICAvLyBGaW5kIGFsbCBkaXJlY3RpdmUgbWF0Y2hlcyBpbiBvcmRlclxuICBjb25zdCBzZXJ2ZXJNYXRjaGVzID0gZmluZFNlcnZlckRpcmVjdGl2ZXMoc291cmNlKTtcbiAgY29uc3QgY2xpZW50TWF0Y2hlcyA9IGZpbmRDbGllbnREaXJlY3RpdmVzKHNvdXJjZSk7XG5cbiAgLy8gU29ydCBhbGwgbWF0Y2hlcyBieSB0aGVpciBwb3NpdGlvbiBpbiB0aGUgc291cmNlXG4gIGNvbnN0IGFsbE1hdGNoZXMgPSBbLi4uc2VydmVyTWF0Y2hlcywgLi4uY2xpZW50TWF0Y2hlc10uc29ydCgoYSwgYikgPT4gYS5yYW5nZVswXSAtIGIucmFuZ2VbMF0pO1xuXG4gIC8vIElmIG5vIGRpcmVjdGl2ZXMgZm91bmQsIHJldHVybiBlYXJseVxuICBpZiAoYWxsTWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4geyBtYXRjaGVzLCB3YXJuaW5ncyB9O1xuICB9XG5cbiAgLy8gQWRkIGFsbCBtYXRjaGVzIGFzIGZ1bmN0aW9uLWxldmVsIGZvciBub3dcbiAgLy8gYW5hbHl6ZURpcmVjdGl2ZXMgd2lsbCBkZXRlcm1pbmUgaWYgdGhleSdyZSBmaWxlLWxldmVsXG4gIGZvciAoY29uc3QgbWF0Y2ggb2YgYWxsTWF0Y2hlcykge1xuICAgIG1hdGNoZXMucHVzaChtYXRjaCk7XG4gIH1cblxuICByZXR1cm4geyBtYXRjaGVzLCB3YXJuaW5ncyB9O1xufVxuXG5mdW5jdGlvbiBmaW5kU2VydmVyRGlyZWN0aXZlcyhzb3VyY2U6IHN0cmluZyk6IERpcmVjdGl2ZU1hdGNoW10ge1xuICBjb25zdCBtYXRjaGVzOiBEaXJlY3RpdmVNYXRjaFtdID0gW107XG4gIGNvbnN0IHJlZ2V4ID0gL1widXNlIHNlcnZlclwifCd1c2Ugc2VydmVyJy9nO1xuICBsZXQgbWF0Y2g7XG5cbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoc291cmNlKSkgIT09IG51bGwpIHtcbiAgICBtYXRjaGVzLnB1c2goe1xuICAgICAgdHlwZTogXCJzZXJ2ZXJcIixcbiAgICAgIHJhbmdlOiBbbWF0Y2guaW5kZXgsIG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoXVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIGZpbmRDbGllbnREaXJlY3RpdmVzKHNvdXJjZTogc3RyaW5nKTogRGlyZWN0aXZlTWF0Y2hbXSB7XG4gIGNvbnN0IG1hdGNoZXM6IERpcmVjdGl2ZU1hdGNoW10gPSBbXTtcbiAgY29uc3QgcmVnZXggPSAvXCJ1c2UgY2xpZW50XCJ8J3VzZSBjbGllbnQnL2c7XG4gIGxldCBtYXRjaDtcblxuICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhzb3VyY2UpKSAhPT0gbnVsbCkge1xuICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICB0eXBlOiBcImNsaWVudFwiLFxuICAgICAgcmFuZ2U6IFttYXRjaC5pbmRleCwgbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhdXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlcztcbn0gIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBUyxxQkFDZCxNQUNrQixFQUFBO0FBQ2xCLEVBQUEsTUFBTSxVQUE0QixFQUFDO0FBQ25DLEVBQUEsTUFBTSxXQUErQixFQUFDO0FBR3RDLEVBQU0sTUFBQSxhQUFBLEdBQWdCLHFCQUFxQixNQUFNLENBQUE7QUFDakQsRUFBTSxNQUFBLGFBQUEsR0FBZ0IscUJBQXFCLE1BQU0sQ0FBQTtBQUdqRCxFQUFBLE1BQU0sYUFBYSxDQUFDLEdBQUcsZUFBZSxHQUFHLGFBQWEsRUFBRSxJQUFLLENBQUEsQ0FBQyxDQUFHLEVBQUEsQ0FBQSxLQUFNLEVBQUUsS0FBTSxDQUFBLENBQUMsSUFBSSxDQUFFLENBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQyxDQUFBO0FBRzlGLEVBQUksSUFBQSxVQUFBLENBQVcsV0FBVyxDQUFHLEVBQUE7QUFDM0IsSUFBTyxPQUFBLEVBQUUsU0FBUyxRQUFTLEVBQUE7QUFBQTtBQUs3QixFQUFBLEtBQUEsTUFBVyxTQUFTLFVBQVksRUFBQTtBQUM5QixJQUFBLE9BQUEsQ0FBUSxLQUFLLEtBQUssQ0FBQTtBQUFBO0FBR3BCLEVBQU8sT0FBQSxFQUFFLFNBQVMsUUFBUyxFQUFBO0FBQzdCO0FBRUEsU0FBUyxxQkFBcUIsTUFBa0MsRUFBQTtBQUM5RCxFQUFBLE1BQU0sVUFBNEIsRUFBQztBQUNuQyxFQUFBLE1BQU0sS0FBUSxHQUFBLDRCQUFBO0FBQ2QsRUFBSSxJQUFBLEtBQUE7QUFFSixFQUFBLE9BQUEsQ0FBUSxLQUFRLEdBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxNQUFNLE9BQU8sSUFBTSxFQUFBO0FBQzVDLElBQUEsT0FBQSxDQUFRLElBQUssQ0FBQTtBQUFBLE1BQ1gsSUFBTSxFQUFBLFFBQUE7QUFBQSxNQUNOLEtBQUEsRUFBTyxDQUFDLEtBQU0sQ0FBQSxLQUFBLEVBQU8sTUFBTSxLQUFRLEdBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQSxDQUFFLE1BQU07QUFBQSxLQUNuRCxDQUFBO0FBQUE7QUFHSCxFQUFPLE9BQUEsT0FBQTtBQUNUO0FBRUEsU0FBUyxxQkFBcUIsTUFBa0MsRUFBQTtBQUM5RCxFQUFBLE1BQU0sVUFBNEIsRUFBQztBQUNuQyxFQUFBLE1BQU0sS0FBUSxHQUFBLDRCQUFBO0FBQ2QsRUFBSSxJQUFBLEtBQUE7QUFFSixFQUFBLE9BQUEsQ0FBUSxLQUFRLEdBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxNQUFNLE9BQU8sSUFBTSxFQUFBO0FBQzVDLElBQUEsT0FBQSxDQUFRLElBQUssQ0FBQTtBQUFBLE1BQ1gsSUFBTSxFQUFBLFFBQUE7QUFBQSxNQUNOLEtBQUEsRUFBTyxDQUFDLEtBQU0sQ0FBQSxLQUFBLEVBQU8sTUFBTSxLQUFRLEdBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQSxDQUFFLE1BQU07QUFBQSxLQUNuRCxDQUFBO0FBQUE7QUFHSCxFQUFPLE9BQUEsT0FBQTtBQUNUOzs7OyJ9
@@ -0,0 +1,3 @@
1
+ import type { Node } from "acorn";
2
+ export declare function getExportedName(node: Node): string | undefined;
3
+ //# sourceMappingURL=getExportedName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExportedName.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/getExportedName.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAkI,MAAM,OAAO,CAAC;AAElK,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAsE9D"}