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
@@ -13,6 +13,9 @@ async function resolveBuildPages({
13
13
  pages,
14
14
  userOptions
15
15
  }) {
16
+ if (userOptions.verbose) {
17
+ console.log(`[resolveBuildPages] resolveBuildPages called with pages:`, pages, `Root:`, userOptions.Root, `Html:`, userOptions.Html);
18
+ }
16
19
  const pagesChanged = !stashedPages || stashedPages.length !== pages.length || !stashedPages.every((page, i) => page === pages[i]);
17
20
  if (stashedBuildPages && !pagesChanged) {
18
21
  return stashedBuildPages;
@@ -20,6 +23,8 @@ async function resolveBuildPages({
20
23
  const errors = [];
21
24
  const pageMap = /* @__PURE__ */ new Map();
22
25
  const propsMap = /* @__PURE__ */ new Map();
26
+ const rootMap = /* @__PURE__ */ new Map();
27
+ const htmlMap = /* @__PURE__ */ new Map();
23
28
  const urlMap = /* @__PURE__ */ new Map();
24
29
  const routeMap = /* @__PURE__ */ new Map();
25
30
  for (const page of pages) {
@@ -29,8 +34,56 @@ async function resolveBuildPages({
29
34
  continue;
30
35
  }
31
36
  const [pageKey, pageValue] = userOptions.normalizer(pageResult.Page);
37
+ let rootValue;
38
+ if (userOptions.Root) {
39
+ if (userOptions.verbose) {
40
+ console.log(`[resolveBuildPages] resolveBuildPages - resolving Root for page: ${page}, Root option: ${userOptions.Root}`);
41
+ }
42
+ const rootResult = await resolveUrlOption(userOptions, "Root", page);
43
+ if (rootResult.type === "error") {
44
+ if (userOptions.verbose) {
45
+ console.log(`[resolveBuildPages] resolveBuildPages - Root resolution failed:`, rootResult.error);
46
+ }
47
+ errors.push(rootResult.error);
48
+ } else {
49
+ const [rootKey, resolvedRootValue] = userOptions.normalizer(rootResult.Root);
50
+ if (userOptions.verbose) {
51
+ console.log(`[resolveBuildPages] resolveBuildPages - Root resolved: ${rootResult.Root} -> ${resolvedRootValue}`);
52
+ }
53
+ rootValue = resolvedRootValue;
54
+ rootMap.set(rootKey, resolvedRootValue);
55
+ }
56
+ } else {
57
+ if (userOptions.verbose) {
58
+ console.log(`[resolveBuildPages] resolveBuildPages - No Root option defined`);
59
+ }
60
+ }
61
+ let htmlValue;
62
+ if (userOptions.Html) {
63
+ if (userOptions.verbose) {
64
+ console.log(`[resolveBuildPages] resolveBuildPages - resolving Html for page: ${page}, Html option: ${userOptions.Html}`);
65
+ }
66
+ const htmlResult = await resolveUrlOption(userOptions, "Html", page);
67
+ if (htmlResult.type === "error") {
68
+ if (userOptions.verbose) {
69
+ console.log(`[resolveBuildPages] resolveBuildPages - Html resolution failed:`, htmlResult.error);
70
+ }
71
+ errors.push(htmlResult.error);
72
+ } else {
73
+ const [htmlKey, resolvedHtmlValue] = userOptions.normalizer(htmlResult.Html);
74
+ if (userOptions.verbose) {
75
+ console.log(`[resolveBuildPages] resolveBuildPages - Html resolved: ${htmlResult.Html} -> ${resolvedHtmlValue}`);
76
+ }
77
+ htmlValue = resolvedHtmlValue;
78
+ htmlMap.set(htmlKey, resolvedHtmlValue);
79
+ }
80
+ } else {
81
+ if (userOptions.verbose) {
82
+ console.log(`[resolveBuildPages] resolveBuildPages - No Html option defined`);
83
+ }
84
+ }
32
85
  if (!userOptions.props) {
33
- urlMap.set(page, { props: void 0, page: pageValue });
86
+ urlMap.set(page, { props: void 0, page: pageValue, root: rootValue, html: htmlValue });
34
87
  pageMap.set(pageKey, pageValue);
35
88
  const routes = routeMap.get(pageValue) || [];
36
89
  routes.push(page);
@@ -58,7 +111,7 @@ async function resolveBuildPages({
58
111
  );
59
112
  }
60
113
  }
61
- urlMap.set(page, { props: propsValue, page: pageValue });
114
+ urlMap.set(page, { props: propsValue, page: pageValue, root: rootValue, html: htmlValue });
62
115
  propsMap.set(propsKey, propsValue);
63
116
  const pageRoutes = routeMap.get(pageValue) || [];
64
117
  pageRoutes.push(page);
@@ -67,17 +120,43 @@ async function resolveBuildPages({
67
120
  propsRoutes.push(page);
68
121
  routeMap.set(propsValue, propsRoutes);
69
122
  } else {
70
- urlMap.set(page, { props: void 0, page: pageValue });
123
+ urlMap.set(page, { props: void 0, page: pageValue, root: rootValue, html: htmlValue });
71
124
  const routes = routeMap.get(pageValue) || [];
72
125
  routes.push(page);
73
126
  routeMap.set(pageValue, routes);
74
127
  }
75
128
  pageMap.set(pageKey, pageValue);
76
129
  }
77
- stashedBuildPages = { pageMap, propsMap, urlMap, routeMap, errors };
130
+ if (pages.length === 0 && (userOptions.Root || userOptions.Html)) {
131
+ if (userOptions.verbose) {
132
+ console.log(`[resolveBuildPages] resolveBuildPages - No pages but custom components defined, resolving for default route`);
133
+ }
134
+ const defaultPage = "/";
135
+ if (userOptions.Root) {
136
+ const rootResult = await resolveUrlOption(userOptions, "Root", defaultPage);
137
+ if (rootResult.type === "success") {
138
+ const [rootKey, resolvedRootValue] = userOptions.normalizer(rootResult.Root);
139
+ if (userOptions.verbose) {
140
+ console.log(`[resolveBuildPages] resolveBuildPages - Default Root resolved: ${rootResult.Root} -> ${resolvedRootValue}`);
141
+ }
142
+ rootMap.set(rootKey, resolvedRootValue);
143
+ }
144
+ }
145
+ if (userOptions.Html) {
146
+ const htmlResult = await resolveUrlOption(userOptions, "Html", defaultPage);
147
+ if (htmlResult.type === "success") {
148
+ const [htmlKey, resolvedHtmlValue] = userOptions.normalizer(htmlResult.Html);
149
+ if (userOptions.verbose) {
150
+ console.log(`[resolveBuildPages] resolveBuildPages - Default Html resolved: ${htmlResult.Html} -> ${resolvedHtmlValue}`);
151
+ }
152
+ htmlMap.set(htmlKey, resolvedHtmlValue);
153
+ }
154
+ }
155
+ }
156
+ stashedBuildPages = { pageMap, propsMap, rootMap, htmlMap, urlMap, routeMap, errors };
78
157
  stashedPages = [...pages];
79
158
  return stashedBuildPages;
80
159
  }
81
160
 
82
161
  export { resolveBuildPages };
83
- //# sourceMappingURL=resolveBuildPages.js.map
162
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUJ1aWxkUGFnZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9jb25maWcvYXV0b0Rpc2NvdmVyL3Jlc29sdmVCdWlsZFBhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjY2VzcyB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQYWdlTmFtZSwgUHJvcHNOYW1lLCBSZXNvbHZlZEJ1aWxkUGFnZXMsIFJlc29sdmVkVXNlck9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IHJlc29sdmVVcmxPcHRpb24gfSBmcm9tIFwiLi4vcmVzb2x2ZVVybE9wdGlvbi5qc1wiO1xuXG5sZXQgc3Rhc2hlZEJ1aWxkUGFnZXM6IFJlc29sdmVkQnVpbGRQYWdlcyB8IG51bGwgPSBudWxsO1xubGV0IHN0YXNoZWRQYWdlczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiBSZXNvbHZlcyBidWlsZCBwYWdlcyBieSBjYWxsaW5nIHJlc29sdmVVcmxPcHRpb24gZm9yIGVhY2ggcGFnZSBpbiBidWlsZC5wYWdlcy5cbiAqIFxuICogIyMgQlVJTEQtVElNRSBTVEFUSUMgRElTQ09WRVJZXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcgYnVpbGQvc3RhcnR1cCB0bzpcbiAqIDEuIFRha2UgdGhlIGV4cGxpY2l0IGBidWlsZC5wYWdlc2AgYXJyYXkgKGUuZy4sIFtcIi9cIiwgXCIvYWJvdXRcIiwgXCIvcHJvZHVjdHNcIl0pXG4gKiAyLiBDYWxsIGByZXNvbHZlVXJsT3B0aW9uYCBmb3IgZWFjaCBwYWdlIHRvIGdldCBmaWxlIHBhdGhzXG4gKiAzLiBCdWlsZCBzdGF0aWMgbWFwcyAodXJsTWFwLCBwYWdlTWFwLCBwcm9wc01hcCwgcm91dGVNYXApIGZvciBmYXN0IHJ1bnRpbWUgbG9va3VwXG4gKiA0LiBWYWxpZGF0ZSB0aGF0IHJlc29sdmVkIGZpbGUgcGF0aHMgYWN0dWFsbHkgZXhpc3Qgb24gZmlsZXN5c3RlbVxuICogXG4gKiAjIyBDYWNoZSBTdHJhdGVneTpcbiAqIFJlc3VsdHMgYXJlIGNhY2hlZCAoc3Rhc2hlZEJ1aWxkUGFnZXMpIHRvIGF2b2lkIHJlLXJlc29sdmluZyBvbiBldmVyeSBidWlsZC5cbiAqIENhY2hlIGlzIGludmFsaWRhdGVkIG9ubHkgd2hlbiB0aGUgcGFnZXMgYXJyYXkgY2hhbmdlcy5cbiAqIFxuICogIyMgVXNhZ2UgRmxvdzpcbiAqIC0gQ2FsbGVkIGJ5IGJ1aWxkIHByb2Nlc3MgYW5kIHBsdWdpbiBpbml0aWFsaXphdGlvblxuICogLSBGZWVkcyBpbnRvIGF1dG8tZGlzY292ZXJ5IHN5c3RlbSB0byBwb3B1bGF0ZSB1cmxNYXAgY2FjaGVcbiAqIC0gRW5hYmxlcyBmYXN0IHJ1bnRpbWUgbG9va3VwIGluIGdldFJvdXRlRmlsZXMudHMgd2l0aG91dCBkeW5hbWljIHJlc29sdXRpb25cbiAqIFxuICogIyMgTGltaXRhdGlvbjpcbiAqIE9ubHkgd29ya3Mgd2hlbiBidWlsZC5wYWdlcyBpcyBleHBsaWNpdGx5IHByb3ZpZGVkLiBXaXRob3V0IGl0LCB0aGUgc3lzdGVtXG4gKiBmYWxscyBiYWNrIHRvIGZpbGVzeXN0ZW0gc2Nhbm5pbmcgKyBkeW5hbWljIHJlc29sdXRpb24gaW4gZ2V0Um91dGVGaWxlcy50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVCdWlsZFBhZ2VzKHtcbiAgcGFnZXMsXG4gIHVzZXJPcHRpb25zLFxufToge1xuICBwYWdlczogc3RyaW5nW107XG4gIHVzZXJPcHRpb25zOiBQaWNrPFJlc29sdmVkVXNlck9wdGlvbnMsIFBhZ2VOYW1lIHwgUHJvcHNOYW1lIHwgXCJSb290XCIgfCBcIkh0bWxcIiB8IFwiYnVpbGRcIiB8IFwibW9kdWxlQmFzZVwiIHwgXCJwcm9qZWN0Um9vdFwiIHwgXCJub3JtYWxpemVyXCIgfCBcIm1vZHVsZUJhc2VQYXRoXCIgfCBcInBhZ2VFeHBvcnROYW1lXCIgfCBcInByb3BzRXhwb3J0TmFtZVwiIHwgXCJyb290RXhwb3J0TmFtZVwiIHwgXCJodG1sRXhwb3J0TmFtZVwiIHwgXCJ2ZXJib3NlXCI+O1xufSk6IFByb21pc2U8UmVzb2x2ZWRCdWlsZFBhZ2VzPiB7XG4gIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgY29uc29sZS5sb2coYFtyZXNvbHZlQnVpbGRQYWdlc10gcmVzb2x2ZUJ1aWxkUGFnZXMgY2FsbGVkIHdpdGggcGFnZXM6YCwgcGFnZXMsIGBSb290OmAsIHVzZXJPcHRpb25zLlJvb3QsIGBIdG1sOmAsIHVzZXJPcHRpb25zLkh0bWwpO1xuICB9XG4gIC8vIENoZWNrIGlmIHBhZ2VzIGFycmF5IGhhcyBjaGFuZ2VkXG4gIGNvbnN0IHBhZ2VzQ2hhbmdlZCA9XG4gICAgIXN0YXNoZWRQYWdlcyB8fFxuICAgIHN0YXNoZWRQYWdlcy5sZW5ndGggIT09IHBhZ2VzLmxlbmd0aCB8fFxuICAgICFzdGFzaGVkUGFnZXMuZXZlcnkoKHBhZ2UsIGkpID0+IHBhZ2UgPT09IHBhZ2VzW2ldKTtcblxuICBpZiAoc3Rhc2hlZEJ1aWxkUGFnZXMgJiYgIXBhZ2VzQ2hhbmdlZCkge1xuICAgIHJldHVybiBzdGFzaGVkQnVpbGRQYWdlczsgLy8gUmV0dXJuIGRpcmVjdGx5IHdpdGhvdXQgUHJvbWlzZS5yZXNvbHZlXG4gIH1cbiAgY29uc3QgZXJyb3JzOiBFcnJvcltdID0gW107XG4gIGNvbnN0IHBhZ2VNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjb25zdCBwcm9wc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNvbnN0IHJvb3RNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjb25zdCBodG1sTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgY29uc3QgdXJsTWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgcHJvcHM6IHN0cmluZyB8IHVuZGVmaW5lZDsgcGFnZTogc3RyaW5nOyByb290Pzogc3RyaW5nOyBodG1sPzogc3RyaW5nIH0+KCk7XG4gIGNvbnN0IHJvdXRlTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuXG4gIGZvciAoY29uc3QgcGFnZSBvZiBwYWdlcykge1xuICAgIGNvbnN0IHBhZ2VSZXN1bHQgPSBhd2FpdCByZXNvbHZlVXJsT3B0aW9uKHVzZXJPcHRpb25zLCBcIlBhZ2VcIiwgcGFnZSk7XG4gICAgaWYocGFnZVJlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIGVycm9ycy5wdXNoKHBhZ2VSZXN1bHQuZXJyb3IpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtwYWdlS2V5LCBwYWdlVmFsdWVdID0gdXNlck9wdGlvbnMubm9ybWFsaXplcihwYWdlUmVzdWx0LlBhZ2UpO1xuICAgIFxuICAgIC8vIFJlc29sdmUgUm9vdCBjb21wb25lbnQgcGF0aCBpZiBkZWZpbmVkXG4gICAgbGV0IHJvb3RWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICh1c2VyT3B0aW9ucy5Sb290KSB7XG4gICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW3Jlc29sdmVCdWlsZFBhZ2VzXSByZXNvbHZlQnVpbGRQYWdlcyAtIHJlc29sdmluZyBSb290IGZvciBwYWdlOiAke3BhZ2V9LCBSb290IG9wdGlvbjogJHt1c2VyT3B0aW9ucy5Sb290fWApO1xuICAgICAgfVxuICAgICAgY29uc3Qgcm9vdFJlc3VsdCA9IGF3YWl0IHJlc29sdmVVcmxPcHRpb24odXNlck9wdGlvbnMsIFwiUm9vdFwiLCBwYWdlKTtcbiAgICAgIGlmIChyb290UmVzdWx0LnR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gUm9vdCByZXNvbHV0aW9uIGZhaWxlZDpgLCByb290UmVzdWx0LmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBlcnJvcnMucHVzaChyb290UmVzdWx0LmVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IFtyb290S2V5LCByZXNvbHZlZFJvb3RWYWx1ZV0gPSB1c2VyT3B0aW9ucy5ub3JtYWxpemVyKHJvb3RSZXN1bHQuUm9vdCk7XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtyZXNvbHZlQnVpbGRQYWdlc10gcmVzb2x2ZUJ1aWxkUGFnZXMgLSBSb290IHJlc29sdmVkOiAke3Jvb3RSZXN1bHQuUm9vdH0gLT4gJHtyZXNvbHZlZFJvb3RWYWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByb290VmFsdWUgPSByZXNvbHZlZFJvb3RWYWx1ZTtcbiAgICAgICAgcm9vdE1hcC5zZXQocm9vdEtleSwgcmVzb2x2ZWRSb290VmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW3Jlc29sdmVCdWlsZFBhZ2VzXSByZXNvbHZlQnVpbGRQYWdlcyAtIE5vIFJvb3Qgb3B0aW9uIGRlZmluZWRgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUmVzb2x2ZSBIdG1sIGNvbXBvbmVudCBwYXRoIGlmIGRlZmluZWRcbiAgICBsZXQgaHRtbFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHVzZXJPcHRpb25zLkh0bWwpIHtcbiAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gcmVzb2x2aW5nIEh0bWwgZm9yIHBhZ2U6ICR7cGFnZX0sIEh0bWwgb3B0aW9uOiAke3VzZXJPcHRpb25zLkh0bWx9YCk7XG4gICAgICB9XG4gICAgICBjb25zdCBodG1sUmVzdWx0ID0gYXdhaXQgcmVzb2x2ZVVybE9wdGlvbih1c2VyT3B0aW9ucywgXCJIdG1sXCIsIHBhZ2UpO1xuICAgICAgaWYgKGh0bWxSZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtyZXNvbHZlQnVpbGRQYWdlc10gcmVzb2x2ZUJ1aWxkUGFnZXMgLSBIdG1sIHJlc29sdXRpb24gZmFpbGVkOmAsIGh0bWxSZXN1bHQuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGVycm9ycy5wdXNoKGh0bWxSZXN1bHQuZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgW2h0bWxLZXksIHJlc29sdmVkSHRtbFZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoaHRtbFJlc3VsdC5IdG1sKTtcbiAgICAgICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW3Jlc29sdmVCdWlsZFBhZ2VzXSByZXNvbHZlQnVpbGRQYWdlcyAtIEh0bWwgcmVzb2x2ZWQ6ICR7aHRtbFJlc3VsdC5IdG1sfSAtPiAke3Jlc29sdmVkSHRtbFZhbHVlfWApO1xuICAgICAgICB9XG4gICAgICAgIGh0bWxWYWx1ZSA9IHJlc29sdmVkSHRtbFZhbHVlO1xuICAgICAgICBodG1sTWFwLnNldChodG1sS2V5LCByZXNvbHZlZEh0bWxWYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh1c2VyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gTm8gSHRtbCBvcHRpb24gZGVmaW5lZGApO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZighdXNlck9wdGlvbnMucHJvcHMpIHtcbiAgICAgIHVybE1hcC5zZXQocGFnZSwgeyBwcm9wczogdW5kZWZpbmVkLCBwYWdlOiBwYWdlVmFsdWUsIHJvb3Q6IHJvb3RWYWx1ZSwgaHRtbDogaHRtbFZhbHVlIH0pO1xuICAgICAgcGFnZU1hcC5zZXQocGFnZUtleSwgcGFnZVZhbHVlKTtcbiAgICAgIC8vIEFkZCB0byByb3V0ZU1hcFxuICAgICAgY29uc3Qgcm91dGVzID0gcm91dGVNYXAuZ2V0KHBhZ2VWYWx1ZSkgfHwgW107XG4gICAgICByb3V0ZXMucHVzaChwYWdlKTtcbiAgICAgIHJvdXRlTWFwLnNldChwYWdlVmFsdWUsIHJvdXRlcyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGFjY2Vzcyhqb2luKHVzZXJPcHRpb25zLnByb2plY3RSb290LCBwYWdlVmFsdWUpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGVycm9ycy5wdXNoKG5ldyBFcnJvcihgUGFnZSBmaWxlIG5vdCBmb3VuZDogJHtwYWdlVmFsdWV9YCkpO1xuICAgIH1cbiAgICBjb25zdCBwcm9wc1Jlc3VsdCA9IGF3YWl0IHJlc29sdmVVcmxPcHRpb24odXNlck9wdGlvbnMsIFwicHJvcHNcIiwgcGFnZSk7XG4gICAgaWYocHJvcHNSZXN1bHQudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICBlcnJvcnMucHVzaChwcm9wc1Jlc3VsdC5lcnJvcik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBJZiBwcm9wc1BhdGggaXMgZGVmaW5lZCwgY2hlY2sgaWYgaXQgZXhpc3RzXG4gICAgaWYgKHByb3BzUmVzdWx0LnByb3BzKSB7XG4gICAgICBjb25zdCBbcHJvcHNLZXksIHByb3BzVmFsdWVdID0gdXNlck9wdGlvbnMubm9ybWFsaXplcihwcm9wc1Jlc3VsdC5wcm9wcyk7XG4gICAgICBpZiAocHJvcHNWYWx1ZSAhPT0gcGFnZVZhbHVlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgYWNjZXNzKGpvaW4odXNlck9wdGlvbnMucHJvamVjdFJvb3QsIHByb3BzVmFsdWUpKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgICBuZXcgRXJyb3IoYFByb3BzIGZpbGUgbm90IGZvdW5kOiAke3Byb3BzVmFsdWV9YClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB1cmxNYXAuc2V0KHBhZ2UsIHsgcHJvcHM6IHByb3BzVmFsdWUsIHBhZ2U6IHBhZ2VWYWx1ZSwgcm9vdDogcm9vdFZhbHVlLCBodG1sOiBodG1sVmFsdWUgfSk7XG4gICAgICBwcm9wc01hcC5zZXQocHJvcHNLZXksIHByb3BzVmFsdWUpO1xuICAgICAgXG4gICAgICAvLyBBZGQgdG8gcm91dGVNYXAgZm9yIGJvdGggcGFnZSBhbmQgcHJvcHMgZmlsZXNcbiAgICAgIGNvbnN0IHBhZ2VSb3V0ZXMgPSByb3V0ZU1hcC5nZXQocGFnZVZhbHVlKSB8fCBbXTtcbiAgICAgIHBhZ2VSb3V0ZXMucHVzaChwYWdlKTtcbiAgICAgIHJvdXRlTWFwLnNldChwYWdlVmFsdWUsIHBhZ2VSb3V0ZXMpO1xuICAgICAgXG4gICAgICBjb25zdCBwcm9wc1JvdXRlcyA9IHJvdXRlTWFwLmdldChwcm9wc1ZhbHVlKSB8fCBbXTtcbiAgICAgIHByb3BzUm91dGVzLnB1c2gocGFnZSk7XG4gICAgICByb3V0ZU1hcC5zZXQocHJvcHNWYWx1ZSwgcHJvcHNSb3V0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyBwcm9wcyBwYXRoLCB1c2UgdGhlIHBhZ2UgcGF0aCBmb3IgYm90aFxuICAgICAgdXJsTWFwLnNldChwYWdlLCB7IHByb3BzOiB1bmRlZmluZWQsIHBhZ2U6IHBhZ2VWYWx1ZSwgcm9vdDogcm9vdFZhbHVlLCBodG1sOiBodG1sVmFsdWUgfSk7XG4gICAgICBcbiAgICAgIC8vIEFkZCB0byByb3V0ZU1hcCBmb3IgcGFnZSBmaWxlIG9ubHlcbiAgICAgIGNvbnN0IHJvdXRlcyA9IHJvdXRlTWFwLmdldChwYWdlVmFsdWUpIHx8IFtdO1xuICAgICAgcm91dGVzLnB1c2gocGFnZSk7XG4gICAgICByb3V0ZU1hcC5zZXQocGFnZVZhbHVlLCByb3V0ZXMpO1xuICAgIH1cblxuICAgIHBhZ2VNYXAuc2V0KHBhZ2VLZXksIHBhZ2VWYWx1ZSk7XG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgbm8gcGFnZXMgYnV0IGN1c3RvbSBjb21wb25lbnRzIGFyZSBkZWZpbmVkLCByZXNvbHZlIHRoZW0gZm9yIGEgZGVmYXVsdCByb3V0ZVxuICBpZiAocGFnZXMubGVuZ3RoID09PSAwICYmICh1c2VyT3B0aW9ucy5Sb290IHx8IHVzZXJPcHRpb25zLkh0bWwpKSB7XG4gICAgaWYgKHVzZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gTm8gcGFnZXMgYnV0IGN1c3RvbSBjb21wb25lbnRzIGRlZmluZWQsIHJlc29sdmluZyBmb3IgZGVmYXVsdCByb3V0ZWApO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFnZSA9IFwiL1wiO1xuICAgIFxuICAgIC8vIFJlc29sdmUgUm9vdCBjb21wb25lbnQgZm9yIGRlZmF1bHQgcm91dGVcbiAgICBpZiAodXNlck9wdGlvbnMuUm9vdCkge1xuICAgICAgY29uc3Qgcm9vdFJlc3VsdCA9IGF3YWl0IHJlc29sdmVVcmxPcHRpb24odXNlck9wdGlvbnMsIFwiUm9vdFwiLCBkZWZhdWx0UGFnZSk7XG4gICAgICBpZiAocm9vdFJlc3VsdC50eXBlID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICBjb25zdCBbcm9vdEtleSwgcmVzb2x2ZWRSb290VmFsdWVdID0gdXNlck9wdGlvbnMubm9ybWFsaXplcihyb290UmVzdWx0LlJvb3QpO1xuICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gRGVmYXVsdCBSb290IHJlc29sdmVkOiAke3Jvb3RSZXN1bHQuUm9vdH0gLT4gJHtyZXNvbHZlZFJvb3RWYWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByb290TWFwLnNldChyb290S2V5LCByZXNvbHZlZFJvb3RWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIFJlc29sdmUgSHRtbCBjb21wb25lbnQgZm9yIGRlZmF1bHQgcm91dGVcbiAgICBpZiAodXNlck9wdGlvbnMuSHRtbCkge1xuICAgICAgY29uc3QgaHRtbFJlc3VsdCA9IGF3YWl0IHJlc29sdmVVcmxPcHRpb24odXNlck9wdGlvbnMsIFwiSHRtbFwiLCBkZWZhdWx0UGFnZSk7XG4gICAgICBpZiAoaHRtbFJlc3VsdC50eXBlID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICBjb25zdCBbaHRtbEtleSwgcmVzb2x2ZWRIdG1sVmFsdWVdID0gdXNlck9wdGlvbnMubm9ybWFsaXplcihodG1sUmVzdWx0Lkh0bWwpO1xuICAgICAgICBpZiAodXNlck9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBbcmVzb2x2ZUJ1aWxkUGFnZXNdIHJlc29sdmVCdWlsZFBhZ2VzIC0gRGVmYXVsdCBIdG1sIHJlc29sdmVkOiAke2h0bWxSZXN1bHQuSHRtbH0gLT4gJHtyZXNvbHZlZEh0bWxWYWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBodG1sTWFwLnNldChodG1sS2V5LCByZXNvbHZlZEh0bWxWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3Rhc2hlZEJ1aWxkUGFnZXMgPSB7IHBhZ2VNYXAsIHByb3BzTWFwLCByb290TWFwLCBodG1sTWFwLCB1cmxNYXAsIHJvdXRlTWFwLCBlcnJvcnMgfTtcbiAgc3Rhc2hlZFBhZ2VzID0gWy4uLnBhZ2VzXTtcbiAgcmV0dXJuIHN0YXNoZWRC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
@@ -1,8 +1,5 @@
1
1
  import type { ResolvedUserOptions } from "../types.js";
2
- export declare const createDefaultModuleID: (options: {
3
- moduleBase: ResolvedUserOptions["moduleBase"];
4
- moduleBasePath: ResolvedUserOptions["moduleBasePath"];
5
- autoDiscover: Pick<ResolvedUserOptions["autoDiscover"], "moduleExtension" | "jsExtension" | "cssExtension" | "jsonExtension" | "htmlExtension" | "rscExtension">;
6
- build: Pick<ResolvedUserOptions["build"], "preserveModulesRoot">;
7
- }) => (id: string) => string;
2
+ import type { ConfigEnv } from "vite";
3
+ export type ModuleIDKey = "modulePattern" | "cssPattern" | "jsonPattern" | "htmlPattern" | "rscPattern" | "nodeOnly" | "cssModulePattern" | "vendorPattern" | "virtualPattern" | "dotFiles";
4
+ export declare const createDefaultModuleID: (options: Pick<ResolvedUserOptions, "moduleBase" | "moduleBasePath" | "autoDiscover" | "build" | "moduleBaseURL">, configEnv?: ConfigEnv, mode?: "development" | "test" | "production") => (id: string) => string;
8
5
  //# sourceMappingURL=createModuleID.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createModuleID.d.ts","sourceRoot":"","sources":["../../../plugin/config/createModuleID.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,qBAAqB,GAAI,SAAS;IAC7C,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,cAAc,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,YAAY,EAAE,IAAI,CAChB,mBAAmB,CAAC,cAAc,CAAC,EACjC,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,eAAe,GACf,eAAe,GACf,cAAc,CACjB,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;CAClE,MAYS,IAAI,MAAM,WAqBnB,CAAC"}
1
+ {"version":3,"file":"createModuleID.d.ts","sourceRoot":"","sources":["../../../plugin/config/createModuleID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGtC,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,aAAa,GACb,YAAY,GACZ,UAAU,GACV,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,UAAU,CAAC;AAEf,eAAO,MAAM,qBAAqB,GAChC,SAAS,IAAI,CACX,mBAAmB,EACnB,YAAY,GAAG,gBAAgB,GAAG,cAAc,GAAG,OAAO,GAAG,eAAe,CAC7E,EACD,YAAY,SAAS,EACrB,4CAAmB,MAQX,IAAI,MAAM,WAsCnB,CAAC"}
@@ -1,33 +1,43 @@
1
- import { join } from "node:path";
2
- import { extMap } from "./extMap.js";
3
- export const createDefaultModuleID = (options) => {
4
- const { moduleBase, moduleBasePath, autoDiscover } = options;
5
- const isProd = process.env["NODE_ENV"] === "production" ||
6
- process.env["VITE_PROD"] === "true" ||
7
- process.env["VITE_PROD"] === "1";
8
- const prodModuleBase = isProd && options.build?.preserveModulesRoot === true
9
- ? options.moduleBase
10
- : undefined;
11
- const mapExtension = extMap(autoDiscover);
12
- return (id) => {
13
- if (prodModuleBase && id.startsWith(moduleBase)) {
14
- id = id.slice(moduleBase.length);
15
- }
16
- if (!id.startsWith(moduleBasePath)) {
17
- id = join(moduleBasePath, id);
18
- }
19
- // in the case the moduleBase comes after the base path, remove it
20
- if (prodModuleBase && id.startsWith("/" + moduleBase)) {
21
- id = id.slice(moduleBase.length + 1);
22
- }
23
- // these paths will generally start with a /, simply ensure they always do
24
- if (!id.startsWith("/")) {
25
- id = "/" + id;
26
- }
27
- if (isProd) {
28
- // generally it will work if we just use the .js extension for modules
29
- return mapExtension(id);
30
- }
31
- return id;
32
- };
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { replaceExtension } from './extMap.js';
7
+ import { getNodeEnv } from '../getNodeEnv.js';
8
+ import { DEFAULT_CONFIG } from './defaults.js';
9
+ import { sep } from 'node:path';
10
+
11
+ const createDefaultModuleID = (options, configEnv, mode = getNodeEnv()) => {
12
+ const { moduleBase, moduleBasePath, build, moduleBaseURL } = options;
13
+ const assetsDir = build.assetsDir || DEFAULT_CONFIG.BUILD.assetsDir;
14
+ const isBuild = configEnv?.command === "build";
15
+ const isProd = mode === "production" || isBuild;
16
+ const removeModuleBase = isProd || isBuild || options.build.preserveModulesRoot;
17
+ return (id) => {
18
+ if (id.startsWith(assetsDir + sep + moduleBase + sep)) {
19
+ id = assetsDir + sep + id.slice((assetsDir + sep + moduleBase + sep).length);
20
+ }
21
+ if (moduleBaseURL && moduleBaseURL !== "/" && id.startsWith(moduleBaseURL)) {
22
+ id = id.slice(moduleBaseURL.length);
23
+ }
24
+ if (moduleBasePath && moduleBasePath !== "/" && id.startsWith(moduleBasePath + moduleBase)) {
25
+ id = moduleBasePath + id.slice((moduleBasePath + moduleBase).length);
26
+ }
27
+ if (removeModuleBase && id.startsWith(moduleBase + sep)) {
28
+ id = id.slice(moduleBase.length + sep.length);
29
+ }
30
+ if (!id.startsWith(moduleBasePath)) {
31
+ id = moduleBasePath + id;
32
+ }
33
+ if (isBuild) {
34
+ id = replaceExtension(id, {
35
+ build: { extensionMap: build.extensionMap }
36
+ });
37
+ }
38
+ return id;
39
+ };
33
40
  };
41
+
42
+ export { createDefaultModuleID };
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTW9kdWxlSUQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9jb25maWcvY3JlYXRlTW9kdWxlSUQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNvbHZlZFVzZXJPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXBsYWNlRXh0ZW5zaW9uIH0gZnJvbSBcIi4vZXh0TWFwLmpzXCI7XG5pbXBvcnQgeyBnZXROb2RlRW52IH0gZnJvbSBcIi4uL2dldE5vZGVFbnYuanNcIjtcbmltcG9ydCB7IERFRkFVTFRfQ09ORklHIH0gZnJvbSBcIi4vZGVmYXVsdHMuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlnRW52IH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IHNlcCB9IGZyb20gXCJub2RlOnBhdGhcIjtcblxuZXhwb3J0IHR5cGUgTW9kdWxlSURLZXkgPVxuICB8IFwibW9kdWxlUGF0dGVyblwiXG4gIHwgXCJjc3NQYXR0ZXJuXCJcbiAgfCBcImpzb25QYXR0ZXJuXCJcbiAgfCBcImh0bWxQYXR0ZXJuXCJcbiAgfCBcInJzY1BhdHRlcm5cIlxuICB8IFwibm9kZU9ubHlcIlxuICB8IFwiY3NzTW9kdWxlUGF0dGVyblwiXG4gIHwgXCJ2ZW5kb3JQYXR0ZXJuXCJcbiAgfCBcInZpcnR1YWxQYXR0ZXJuXCJcbiAgfCBcImRvdEZpbGVzXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0TW9kdWxlSUQgPSAoXG4gIG9wdGlvbnM6IFBpY2s8XG4gICAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbiAgICBcIm1vZHVsZUJhc2VcIiB8IFwibW9kdWxlQmFzZVBhdGhcIiB8IFwiYXV0b0Rpc2NvdmVyXCIgfCBcImJ1aWxkXCIgfCBcIm1vZHVsZUJhc2VVUkxcIlxuICA+LFxuICBjb25maWdFbnY/OiBDb25maWdFbnYsXG4gIG1vZGUgPSBnZXROb2RlRW52KClcbikgPT4ge1xuICBjb25zdCB7IG1vZHVsZUJhc2UsIG1vZHVsZUJhc2VQYXRoLCBidWlsZCwgbW9kdWxlQmFzZVVSTCB9ID0gb3B0aW9ucztcbiAgY29uc3QgYXNzZXRzRGlyID0gYnVpbGQuYXNzZXRzRGlyIHx8IERFRkFVTFRfQ09ORklHLkJVSUxELmFzc2V0c0RpcjtcbiAgY29uc3QgaXNCdWlsZCA9IGNvbmZpZ0Vudj8uY29tbWFuZCA9PT0gXCJidWlsZFwiO1xuICBjb25zdCBpc1Byb2QgPSBtb2RlID09PSBcInByb2R1Y3Rpb25cIiB8fCBpc0J1aWxkO1xuICBjb25zdCByZW1vdmVNb2R1bGVCYXNlID1cbiAgICBpc1Byb2QgfHwgaXNCdWlsZCB8fCBvcHRpb25zLmJ1aWxkLnByZXNlcnZlTW9kdWxlc1Jvb3Q7XG4gIHJldHVybiAoaWQ6IHN0cmluZykgPT4ge1xuICAgIFxuICAgIC8vIFN0ZXAgMTogSGFuZGxlIGFzc2V0cyBkaXJlY3RvcnkgcGF0aHMgLSByZW1vdmUgc3JjIGZyb20gd2l0aGluIGFzc2V0cyBwYXRoXG4gICAgLy8gVHJhbnNmb3JtOiBhc3NldHMvc3JjL3BhZ2UvZmlsZS5jc3MgLT4gYXNzZXRzL3BhZ2UvZmlsZS5jc3NcbiAgICBpZiAoaWQuc3RhcnRzV2l0aChhc3NldHNEaXIgKyBzZXAgKyBtb2R1bGVCYXNlICsgc2VwKSkge1xuICAgICAgaWQgPSBhc3NldHNEaXIgKyBzZXAgKyBpZC5zbGljZSgoYXNzZXRzRGlyICsgc2VwICsgbW9kdWxlQmFzZSArIHNlcCkubGVuZ3RoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gU3RlcCAyOiBSZW1vdmUgbW9kdWxlQmFzZVVSTCBpZiBwcmVzZW50IChmb3IgaW5jb21pbmcgSURzIHRoYXQgYWxyZWFkeSBoYXZlIGJhc2UgVVJMKVxuICAgIGlmIChtb2R1bGVCYXNlVVJMICYmIG1vZHVsZUJhc2VVUkwgIT09IFwiL1wiICYmIGlkLnN0YXJ0c1dpdGgobW9kdWxlQmFzZVVSTCkpIHtcbiAgICAgIGlkID0gaWQuc2xpY2UobW9kdWxlQmFzZVVSTC5sZW5ndGgpO1xuICAgIH1cbiAgICBcbiAgICAvLyBTdGVwIDM6IFJlbW92ZSBzcmMgYWZ0ZXIgdGhlIG1vZHVsZUJhc2VQYXRoIGlmIHByZXNlbnRcbiAgICBpZiAobW9kdWxlQmFzZVBhdGggJiYgbW9kdWxlQmFzZVBhdGggIT09IFwiL1wiICYmIGlkLnN0YXJ0c1dpdGgobW9kdWxlQmFzZVBhdGggKyBtb2R1bGVCYXNlKSkge1xuICAgICAgLy8gc2xpY2UgaW5iZXR3ZWVuIHRoZSBtb2R1bGVCYXNlUGF0aCBhbmQgbW9kdWxlQmFzZVxuICAgICAgaWQgPSBtb2R1bGVCYXNlUGF0aCArIGlkLnNsaWNlKChtb2R1bGVCYXNlUGF0aCArIG1vZHVsZUJhc2UpLmxlbmd0aCk7XG4gICAgfVxuICAgIFxuICAgIC8vIFN0ZXAgNDogUmVtb3ZlIG1vZHVsZUJhc2UgKHR5cGljYWxseSBcInNyYy9cIikgZnJvbSB0aGUgYmVnaW5uaW5nXG4gICAgaWYgKHJlbW92ZU1vZHVsZUJhc2UgJiYgaWQuc3RhcnRzV2l0aChtb2R1bGVCYXNlICsgc2VwKSkge1xuICAgICAgaWQgPSBpZC5zbGljZShtb2R1bGVCYXNlLmxlbmd0aCArIHNlcC5sZW5ndGgpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgNTogRW5zdXJlIHBhdGhzIHN0YXJ0IHdpdGggYSBtb2R1bGVCYXNlUGF0aFxuICAgIGlmICghaWQuc3RhcnRzV2l0aChtb2R1bGVCYXNlUGF0aCkpIHtcbiAgICAgIGlkID0gbW9kdWxlQmFzZVBhdGggKyBpZDtcbiAgICB9XG4gICAgXG4gICAgLy8gU3RlcCA2OiBBcHBseSBleHRlbnNpb24gbWFwcGluZyBmb3IgYnVpbGRcbiAgICBpZiAoaXNCdWlsZCkge1xuICAgICAgaWQgPSByZXBsYWNlRXh0ZW5zaW9uKGlkLCB7XG4gICAgICAgIGJ1aWxkOiB7IGV4dGVuc2lvbk1hcDogYnVpbGQuZXh0ZW5zaW9uTWFwIH0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGlkO1xuICB9O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBbUJPLE1BQU0sd0JBQXdCLENBQ25DLE9BQUEsRUFJQSxTQUNBLEVBQUEsSUFBQSxHQUFPLFlBQ0osS0FBQTtBQUNILEVBQUEsTUFBTSxFQUFFLFVBQUEsRUFBWSxjQUFnQixFQUFBLEtBQUEsRUFBTyxlQUFrQixHQUFBLE9BQUE7QUFDN0QsRUFBQSxNQUFNLFNBQVksR0FBQSxLQUFBLENBQU0sU0FBYSxJQUFBLGNBQUEsQ0FBZSxLQUFNLENBQUEsU0FBQTtBQUMxRCxFQUFNLE1BQUEsT0FBQSxHQUFVLFdBQVcsT0FBWSxLQUFBLE9BQUE7QUFDdkMsRUFBTSxNQUFBLE1BQUEsR0FBUyxTQUFTLFlBQWdCLElBQUEsT0FBQTtBQUN4QyxFQUFBLE1BQU0sZ0JBQ0osR0FBQSxNQUFBLElBQVUsT0FBVyxJQUFBLE9BQUEsQ0FBUSxLQUFNLENBQUEsbUJBQUE7QUFDckMsRUFBQSxPQUFPLENBQUMsRUFBZSxLQUFBO0FBSXJCLElBQUEsSUFBSSxHQUFHLFVBQVcsQ0FBQSxTQUFBLEdBQVksR0FBTSxHQUFBLFVBQUEsR0FBYSxHQUFHLENBQUcsRUFBQTtBQUNyRCxNQUFLLEVBQUEsR0FBQSxTQUFBLEdBQVksTUFBTSxFQUFHLENBQUEsS0FBQSxDQUFBLENBQU8sWUFBWSxHQUFNLEdBQUEsVUFBQSxHQUFhLEtBQUssTUFBTSxDQUFBO0FBQUE7QUFJN0UsSUFBQSxJQUFJLGlCQUFpQixhQUFrQixLQUFBLEdBQUEsSUFBTyxFQUFHLENBQUEsVUFBQSxDQUFXLGFBQWEsQ0FBRyxFQUFBO0FBQzFFLE1BQUssRUFBQSxHQUFBLEVBQUEsQ0FBRyxLQUFNLENBQUEsYUFBQSxDQUFjLE1BQU0sQ0FBQTtBQUFBO0FBSXBDLElBQUEsSUFBSSxrQkFBa0IsY0FBbUIsS0FBQSxHQUFBLElBQU8sR0FBRyxVQUFXLENBQUEsY0FBQSxHQUFpQixVQUFVLENBQUcsRUFBQTtBQUUxRixNQUFBLEVBQUEsR0FBSyxjQUFpQixHQUFBLEVBQUEsQ0FBRyxLQUFPLENBQUEsQ0FBQSxjQUFBLEdBQWlCLFlBQVksTUFBTSxDQUFBO0FBQUE7QUFJckUsSUFBQSxJQUFJLGdCQUFvQixJQUFBLEVBQUEsQ0FBRyxVQUFXLENBQUEsVUFBQSxHQUFhLEdBQUcsQ0FBRyxFQUFBO0FBQ3ZELE1BQUEsRUFBQSxHQUFLLEVBQUcsQ0FBQSxLQUFBLENBQU0sVUFBVyxDQUFBLE1BQUEsR0FBUyxJQUFJLE1BQU0sQ0FBQTtBQUFBO0FBSTlDLElBQUEsSUFBSSxDQUFDLEVBQUEsQ0FBRyxVQUFXLENBQUEsY0FBYyxDQUFHLEVBQUE7QUFDbEMsTUFBQSxFQUFBLEdBQUssY0FBaUIsR0FBQSxFQUFBO0FBQUE7QUFJeEIsSUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLE1BQUEsRUFBQSxHQUFLLGlCQUFpQixFQUFJLEVBQUE7QUFBQSxRQUN4QixLQUFPLEVBQUEsRUFBRSxZQUFjLEVBQUEsS0FBQSxDQUFNLFlBQWE7QUFBQSxPQUMzQyxDQUFBO0FBQUE7QUFHSCxJQUFPLE9BQUEsRUFBQTtBQUFBLEdBQ1Q7QUFDRjs7OzsifQ==