vite-plugin-react-server 1.1.13 → 1.1.15

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 (171) hide show
  1. package/dist/package.json +3 -1
  2. package/dist/plugin/config/defaults.d.ts +2 -2
  3. package/dist/plugin/config/defaults.d.ts.map +1 -1
  4. package/dist/plugin/config/defaults.js +2 -2
  5. package/dist/plugin/config/defaults.js.map +1 -1
  6. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  7. package/dist/plugin/config/resolveOptions.js +101 -75
  8. package/dist/plugin/config/resolveOptions.js.map +1 -1
  9. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  10. package/dist/plugin/config/resolveUserConfig.js +27 -5
  11. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  12. package/dist/plugin/error/toError.d.ts.map +1 -1
  13. package/dist/plugin/error/toError.js +0 -1
  14. package/dist/plugin/error/toError.js.map +1 -1
  15. package/dist/plugin/helpers/collectManifestCss.d.ts +1 -2
  16. package/dist/plugin/helpers/collectManifestCss.d.ts.map +1 -1
  17. package/dist/plugin/helpers/collectManifestCss.js +3 -5
  18. package/dist/plugin/helpers/collectManifestCss.js.map +1 -1
  19. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +1 -1
  20. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  21. package/dist/plugin/helpers/collectViteModuleGraphCss.js +6 -2
  22. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +1 -1
  23. package/dist/plugin/helpers/createCssProps.d.ts +1 -1
  24. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  25. package/dist/plugin/helpers/createCssProps.js +11 -32
  26. package/dist/plugin/helpers/createCssProps.js.map +1 -1
  27. package/dist/plugin/helpers/createRscStream.d.ts.map +1 -1
  28. package/dist/plugin/helpers/createRscStream.js +1 -0
  29. package/dist/plugin/helpers/createRscStream.js.map +1 -1
  30. package/dist/plugin/helpers/inputNormalizer.d.ts +1 -8
  31. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  32. package/dist/plugin/helpers/inputNormalizer.js +2 -5
  33. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  34. package/dist/plugin/loader/createDefaultLoader.d.ts.map +1 -1
  35. package/dist/plugin/loader/createDefaultLoader.js +68 -4
  36. package/dist/plugin/loader/css-loader.development.d.ts +2 -15
  37. package/dist/plugin/loader/css-loader.development.d.ts.map +1 -1
  38. package/dist/plugin/loader/css-loader.development.js +16 -15
  39. package/dist/plugin/loader/css-loader.development.js.map +1 -1
  40. package/dist/plugin/loader/css-loader.production.d.ts +1 -1
  41. package/dist/plugin/loader/css-loader.production.d.ts.map +1 -1
  42. package/dist/plugin/loader/css-loader.production.js +1 -1
  43. package/dist/plugin/loader/css-loader.production.js.map +1 -1
  44. package/dist/plugin/loader/env-loader.development.d.ts +1 -0
  45. package/dist/plugin/loader/env-loader.development.d.ts.map +1 -1
  46. package/dist/plugin/loader/env-loader.development.js +17 -9
  47. package/dist/plugin/loader/handleExports.d.ts +1 -0
  48. package/dist/plugin/loader/handleExports.d.ts.map +1 -1
  49. package/dist/plugin/loader/handleExports.js +27 -8
  50. package/dist/plugin/loader/handleExports.js.map +1 -1
  51. package/dist/plugin/loader/react-loader.server.d.ts +2 -2
  52. package/dist/plugin/loader/react-loader.server.d.ts.map +1 -1
  53. package/dist/plugin/loader/react-loader.server.js +88 -26
  54. package/dist/plugin/loader/sourceMap.d.ts.map +1 -1
  55. package/dist/plugin/loader/sourceMap.js +1 -1
  56. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
  57. package/dist/plugin/loader/transformModuleIfNeeded.js +1 -1
  58. package/dist/plugin/loader/transformModuleIfNeeded.js.map +1 -1
  59. package/dist/plugin/loader/transformModuleWithPreservedFunctions.d.ts.map +1 -1
  60. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js +86 -13
  61. package/dist/plugin/loader/transformModuleWithPreservedFunctions.js.map +1 -1
  62. package/dist/plugin/plugin.client.d.ts.map +1 -1
  63. package/dist/plugin/plugin.client.js +0 -1
  64. package/dist/plugin/plugin.client.js.map +1 -1
  65. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -1
  66. package/dist/plugin/react-client/configureWorkerRequestHandler.js +81 -5
  67. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +1 -1
  68. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  69. package/dist/plugin/react-client/createMessageHandlers.js +3 -0
  70. package/dist/plugin/react-client/createMessageHandlers.js.map +1 -1
  71. package/dist/plugin/react-client/createWorkerStream.d.ts +2 -2
  72. package/dist/plugin/react-client/createWorkerStream.d.ts.map +1 -1
  73. package/dist/plugin/react-client/createWorkerStream.js +13 -2
  74. package/dist/plugin/react-client/createWorkerStream.js.map +1 -1
  75. package/dist/plugin/react-client/handleWorkerRscStream.d.ts.map +1 -1
  76. package/dist/plugin/react-client/handleWorkerRscStream.js +10 -3
  77. package/dist/plugin/react-client/handleWorkerRscStream.js.map +1 -1
  78. package/dist/plugin/react-client/restartWorker.d.ts.map +1 -1
  79. package/dist/plugin/react-client/restartWorker.js +2 -1
  80. package/dist/plugin/react-client/restartWorker.js.map +1 -1
  81. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -1
  82. package/dist/plugin/react-server/configureReactServer.js +1 -2
  83. package/dist/plugin/react-server/configureReactServer.js.map +1 -1
  84. package/dist/plugin/react-server/handleServerAction.d.ts.map +1 -1
  85. package/dist/plugin/react-server/handleServerAction.js +0 -16
  86. package/dist/plugin/react-server/handleServerAction.js.map +1 -1
  87. package/dist/plugin/react-static/createBuildLoader.d.ts.map +1 -0
  88. package/dist/plugin/react-static/createBuildLoader.js.map +1 -0
  89. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  90. package/dist/plugin/react-static/plugin.js +9 -12
  91. package/dist/plugin/react-static/plugin.js.map +1 -1
  92. package/dist/plugin/react-static/temporaryReferences.d.ts.map +1 -0
  93. package/dist/plugin/react-static/temporaryReferences.js.map +1 -0
  94. package/dist/plugin/transformer/plugin.server.js +2 -2
  95. package/dist/plugin/transformer/plugin.server.js.map +1 -1
  96. package/dist/plugin/types.d.ts +20 -3
  97. package/dist/plugin/types.d.ts.map +1 -1
  98. package/dist/plugin/worker/rsc/handleRender.d.ts.map +1 -1
  99. package/dist/plugin/worker/rsc/handleRender.js +1 -0
  100. package/dist/plugin/worker/rsc/handleRender.js.map +1 -1
  101. package/dist/plugin/worker/rsc/handlers.d.ts +3 -0
  102. package/dist/plugin/worker/rsc/handlers.d.ts.map +1 -0
  103. package/dist/plugin/worker/rsc/handlers.js +225 -0
  104. package/dist/plugin/worker/rsc/handlers.js.map +1 -0
  105. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -1
  106. package/dist/plugin/worker/rsc/messageHandler.js +4 -110
  107. package/dist/plugin/worker/rsc/messageHandler.js.map +1 -1
  108. package/dist/plugin/worker/rsc/rsc-worker.development.js +14 -16
  109. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -1
  110. package/dist/plugin/worker/rsc/state.d.ts +1 -2
  111. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  112. package/dist/plugin/worker/rsc/state.js +1 -2
  113. package/dist/plugin/worker/rsc/state.js.map +1 -1
  114. package/dist/plugin/worker/rsc/userOptions.d.ts +2 -0
  115. package/dist/plugin/worker/rsc/userOptions.d.ts.map +1 -0
  116. package/dist/plugin/worker/rsc/userOptions.js +17 -0
  117. package/dist/plugin/worker/rsc/userOptions.js.map +1 -0
  118. package/dist/plugin/worker/types.d.ts +2 -1
  119. package/dist/plugin/worker/types.d.ts.map +1 -1
  120. package/dist/tsconfig.tsbuildinfo +1 -1
  121. package/package.json +5 -1
  122. package/plugin/config/defaults.tsx +5 -2
  123. package/plugin/config/resolveOptions.ts +106 -91
  124. package/plugin/config/resolveUserConfig.ts +29 -5
  125. package/plugin/error/toError.ts +0 -2
  126. package/plugin/helpers/collectManifestCss.ts +2 -6
  127. package/plugin/helpers/collectViteModuleGraphCss.ts +6 -0
  128. package/plugin/helpers/createCssProps.tsx +17 -46
  129. package/plugin/helpers/createRscStream.tsx +1 -0
  130. package/plugin/helpers/inputNormalizer.ts +4 -13
  131. package/plugin/loader/createDefaultLoader.ts +80 -4
  132. package/plugin/loader/css-loader.development.ts +17 -34
  133. package/plugin/loader/css-loader.production.ts +2 -4
  134. package/plugin/loader/env-loader.development.ts +38 -15
  135. package/plugin/loader/handleExports.ts +36 -13
  136. package/plugin/loader/react-loader.server.ts +110 -32
  137. package/plugin/loader/sourceMap.ts +1 -1
  138. package/plugin/loader/transformModuleIfNeeded.ts +2 -2
  139. package/plugin/loader/transformModuleWithPreservedFunctions.ts +128 -21
  140. package/plugin/plugin.client.ts +0 -2
  141. package/plugin/react-client/configureWorkerRequestHandler.ts +104 -4
  142. package/plugin/react-client/createMessageHandlers.ts +3 -0
  143. package/plugin/react-client/createWorkerStream.ts +15 -1
  144. package/plugin/react-client/handleWorkerRscStream.ts +12 -3
  145. package/plugin/react-client/restartWorker.ts +1 -0
  146. package/plugin/react-server/configureReactServer.ts +1 -2
  147. package/plugin/react-server/handleServerAction.ts +1 -19
  148. package/plugin/react-static/plugin.ts +9 -12
  149. package/plugin/transformer/plugin.server.ts +2 -2
  150. package/plugin/types.ts +31 -2
  151. package/plugin/worker/rsc/handleRender.ts +1 -0
  152. package/plugin/worker/rsc/handlers.ts +246 -0
  153. package/plugin/worker/rsc/messageHandler.tsx +3 -118
  154. package/plugin/worker/rsc/rsc-worker.development.ts +18 -20
  155. package/plugin/worker/rsc/state.ts +2 -6
  156. package/plugin/worker/rsc/userOptions.ts +8 -0
  157. package/plugin/worker/types.ts +2 -0
  158. package/dist/plugin/loader/createBuildLoader.d.ts.map +0 -1
  159. package/dist/plugin/loader/createBuildLoader.js.map +0 -1
  160. package/dist/plugin/loader/plugin.d.ts +0 -22
  161. package/dist/plugin/loader/plugin.d.ts.map +0 -1
  162. package/dist/plugin/loader/plugin.js +0 -27
  163. package/dist/plugin/loader/temporaryReferences.d.ts.map +0 -1
  164. package/dist/plugin/loader/temporaryReferences.js.map +0 -1
  165. package/plugin/loader/plugin.ts +0 -33
  166. /package/dist/plugin/{loader → react-static}/createBuildLoader.d.ts +0 -0
  167. /package/dist/plugin/{loader → react-static}/createBuildLoader.js +0 -0
  168. /package/dist/plugin/{loader → react-static}/temporaryReferences.d.ts +0 -0
  169. /package/dist/plugin/{loader → react-static}/temporaryReferences.js +0 -0
  170. /package/plugin/{loader → react-static}/createBuildLoader.ts +0 -0
  171. /package/plugin/{loader → react-static}/temporaryReferences.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type {\n ResolvedUserConfig,\n ResolvedUserOptions,\n AutoDiscoveredFiles,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\nimport { join } from \"node:path\";\nimport type { OutputOptions, PreRenderedAsset, PreRenderedChunk } from \"rollup\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\n\nlet stashedUserConfig: Record<string, ResolvedUserConfig | null> = {};\n\nexport type ResolveUserConfigProps<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n> = {\n condition: \"react-client\" | \"react-server\";\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n autoDiscoveredFiles: Pick<AutoDiscoveredFiles, \"inputs\" | \"staticManifest\">;\n};\n\nexport type ResolveUserConfigReturn =\n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n condition,\n config,\n configEnv,\n userOptions,\n autoDiscoveredFiles,\n}: ResolveUserConfigProps<T, InlineCSS>): ResolveUserConfigReturn {\n const ssr =\n typeof config.build?.ssr === \"boolean\"\n ? config.build?.ssr\n : Boolean(configEnv.isSsrBuild) ||\n condition === \"react-server\" ||\n (typeof process.env[\"VITE_SSR\"] === \"string\"\n ? process.env[\"VITE_SSR\"] === \"true\" ||\n process.env[\"VITE_SSR\"] === \"1\"\n : Boolean(process.env[\"VITE_SSR\"]));\n const envDir =\n condition === \"react-client\" && ssr\n ? userOptions.build.client\n : condition === \"react-client\"\n ? userOptions.build.static\n : userOptions.build.server;\n const envId = `${envDir}${ssr ? \"-ssr\" : \"\"}`;\n\n if (stashedUserConfig[envId]) {\n return {\n type: \"success\",\n userConfig: stashedUserConfig[envId],\n };\n }\n\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n\n const handleSsrName = <T extends PreRenderedChunk | PreRenderedAsset>(\n info: T,\n input: string | null,\n fallback: (info: T, ssr: boolean) => string,\n ssr: boolean\n ) => {\n if (\"source\" in info && info.source === \"\") {\n return \"\";\n }\n if (!ssr || !input) {\n return fallback(info, false);\n }\n const [, value] = userOptions.normalizer(input);\n const entry = autoDiscoveredFiles.staticManifest[value];\n if (\n entry?.name &&\n info.type === \"asset\" &&\n userOptions.autoDiscover.cssPattern(value)\n ) {\n const withoutExt = entry.name?.split(\".\")[0];\n const found = entry.css?.find((css) =>\n css.startsWith(withoutExt as string)\n );\n if (found) {\n return found;\n } else {\n return entry.file;\n }\n } else if (entry) {\n return entry.file;\n }\n return fallback(info, true);\n };\n const userDefinedOutput = config.build?.rollupOptions?.output;\n const hasOtherOutput =\n Array.isArray(userDefinedOutput) && userDefinedOutput.length > 1;\n const hasValidOutput = userDefinedOutput && !hasOtherOutput;\n const hasObjectOutput =\n userDefinedOutput &&\n !hasOtherOutput &&\n typeof userDefinedOutput === \"object\" &&\n userDefinedOutput !== null;\n\n const userDefinedAssetFileNames = hasObjectOutput\n ? \"assetFileNames\" in userDefinedOutput\n ? userDefinedOutput.assetFileNames\n : undefined\n : // find the other asset file names\n hasOtherOutput\n ? (userDefinedOutput.find((o) => o.assetFileNames) as OutputOptions)\n .assetFileNames\n : undefined;\n\n const userDefinedChunkFileNames = hasValidOutput\n ? \"chunkFileNames\" in userDefinedOutput\n ? userDefinedOutput.chunkFileNames\n : undefined\n : undefined;\n const userDefinedEntryFileNames = hasValidOutput\n ? \"entryFileNames\" in userDefinedOutput\n ? userDefinedOutput.entryFileNames\n : undefined\n : undefined;\n\n let stashedReturns: Record<string, string> = {};\n const pluginOutput = {\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n entryFileNames:\n userDefinedEntryFileNames ??\n ((info) => {\n const input = info.facadeModuleId;\n return handleSsrName(info, input, userOptions.build.entryFile, ssr);\n }),\n assetFileNames: process.env[\"VITEST\"]\n ? undefined\n : userDefinedAssetFileNames ??\n ((i) => {\n const input = i.originalFileNames[0];\n if (!stashedReturns[input]) {\n const r = handleSsrName(i, input, userOptions.build.assetFile, ssr);\n stashedReturns[input] = r;\n }\n return stashedReturns[input];\n }),\n chunkFileNames:\n userDefinedChunkFileNames ??\n ((i) => {\n const input = i.facadeModuleId;\n return handleSsrName(i, input, userOptions.build.chunkFile, ssr);\n }),\n format: \"esm\",\n exports: \"named\",\n } satisfies OutputOptions;\n\n let newOutput = Array.isArray(config.build?.rollupOptions?.output)\n ? [...config.build?.rollupOptions?.output, pluginOutput]\n : typeof config.build?.rollupOptions?.output === \"object\" &&\n config.build?.rollupOptions?.output !== null\n ? [config.build?.rollupOptions?.output, pluginOutput]\n : pluginOutput;\n const vitePrefix = config.envPrefix ?? DEFAULT_CONFIG.ENV_PREFIX;\n const mode = config.mode ?? process.env[\"VITE_MODE\"];\n const minify = config.build?.minify;\n\n const srrConfig = {\n ...config.ssr,\n target: config.ssr?.target ?? \"node\",\n optimizeDeps: {\n ...config.ssr?.optimizeDeps,\n include: config.ssr?.optimizeDeps?.include ?? [\n \"react\",\n \"react-dom\",\n \"react-server-dom-esm/client\",\n ],\n },\n resolve: {\n ...config.ssr?.resolve,\n externalConditions: config.ssr?.resolve?.externalConditions ?? [\n \"react-server\",\n ],\n },\n };\n let publicOrigin =\n userOptions.publicOrigin ?? process.env.VITE_PUBLIC_ORIGIN ?? \"\";\n let PROD = mode === \"production\";\n let DEV = mode === \"development\";\n if (configEnv.command === \"serve\" && !configEnv.isPreview) {\n publicOrigin = `http${config.server?.https ? \"s\" : \"\"}://${\n typeof config.server?.host === \"string\"\n ? config.server?.host\n : \"localhost\"\n }:${typeof config.server?.port === \"number\" ? config.server?.port : 5173}`;\n }\n const ssrDefine = ssr\n ? {\n [`process.env.${vitePrefix}SSR`]: `${ssr}`,\n [`process.env.${vitePrefix}DEV`]: `${DEV}`,\n [`process.env.${vitePrefix}PROD`]: `${PROD}`,\n [`process.env.${vitePrefix}MODE`]: `\"${mode}\"`,\n [`process.env.${vitePrefix}BASE_URL`]: `\"${userOptions.moduleBaseURL}\"`,\n [`process.env.${vitePrefix}PUBLIC_ORIGIN`]: `\"${publicOrigin}\"`,\n }\n : {};\n const define = {\n ...config.define,\n [`import.meta.env.PUBLIC_ORIGIN`]: `\"${publicOrigin}\"`,\n ...ssrDefine,\n };\n // these will never be cleaned up, because, we are resolving the user config\n // and it's assumed the thread closes after this and we don't want\n // it to change after the config has been resolved\n if (process.env.VITE_BASE_URL !== userOptions.moduleBaseURL) {\n process.env.VITE_BASE_URL = userOptions.moduleBaseURL;\n }\n if (process.env.VITE_PUBLIC_ORIGIN !== publicOrigin) {\n process.env.VITE_PUBLIC_ORIGIN = publicOrigin;\n }\n\n if (condition === \"react-client\") {\n // client plugin build options (client plugin still outputs server files)\n const clientConfig = {\n ...config,\n root: root,\n mode: mode,\n base: userOptions.moduleBaseURL,\n envPrefix: vitePrefix,\n resolve: {\n ...config.resolve,\n external: config.resolve?.external ?? [\n \"react\",\n \"react-dom\",\n \"react-server-dom-esm/client\",\n ],\n },\n define: define,\n ssr: srrConfig,\n // client build options\n build: {\n ...config.build,\n modulePreload: config.build?.modulePreload ?? false,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: config.build?.outDir ?? join(userOptions.build.outDir, envDir),\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n copyPublicDir:\n typeof config.build?.copyPublicDir === \"boolean\"\n ? config.build?.copyPublicDir\n : !ssr,\n // modern browsers\n target: config.build?.target ?? [\"esnext\"],\n minify: minify,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: {\n ...autoDiscoveredFiles.inputs,\n },\n output: newOutput,\n preserveEntrySignatures:\n config.build?.rollupOptions?.preserveEntrySignatures ??\n \"exports-only\",\n },\n ssr: ssr,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: config.build?.ssrEmitAssets ?? true,\n cssCodeSplit:\n typeof config.build?.cssCodeSplit === \"boolean\"\n ? config.build?.cssCodeSplit\n : true,\n },\n } satisfies ResolvedUserConfig;\n stashedUserConfig[envId] = clientConfig;\n return {\n type: \"success\",\n userConfig: clientConfig,\n };\n } else {\n const serverConfig = {\n ...config,\n root: root,\n mode: mode,\n base: userOptions.moduleBaseURL,\n envPrefix: vitePrefix,\n resolve: {\n ...config.resolve,\n externalConditions: config.resolve?.externalConditions ?? [\n \"react-server\",\n ],\n },\n define: define,\n ssr: srrConfig,\n // server build options\n build: {\n ...config.build,\n modulePreload: config.build?.modulePreload ?? false,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: config.build?.outDir ?? join(userOptions.build.outDir, envDir),\n target: config.build?.target ?? \"node18\",\n minify: minify,\n ssr: ssr,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets:\n typeof config.build?.ssrEmitAssets === \"boolean\"\n ? config.build?.ssrEmitAssets\n : true,\n copyPublicDir:\n typeof config.build?.copyPublicDir === \"boolean\"\n ? config.build?.copyPublicDir\n : !ssr,\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n // Ensure CSS files are output to static directory\n cssCodeSplit:\n typeof config.build?.cssCodeSplit === \"boolean\"\n ? config.build?.cssCodeSplit\n : true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: autoDiscoveredFiles.inputs,\n preserveEntrySignatures:\n config.build?.rollupOptions?.preserveEntrySignatures ?? \"strict\",\n output: newOutput,\n },\n },\n } satisfies ResolvedUserConfig;\n stashedUserConfig[envId] = serverConfig;\n return {\n type: \"success\",\n userConfig: serverConfig,\n };\n }\n}\n"],"names":["ssr"],"mappings":";;;;;;;;AAYA,IAAI,oBAA+D,EAAC;AAiB7D,SAAS,iBAGd,CAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAkE,EAAA;AAChE,EAAA,MAAM,GACJ,GAAA,OAAO,MAAO,CAAA,KAAA,EAAO,QAAQ,SACzB,GAAA,MAAA,CAAO,KAAO,EAAA,GAAA,GACd,QAAQ,SAAU,CAAA,UAAU,CAC5B,IAAA,SAAA,KAAc,mBACb,OAAO,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,QAChC,GAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,MAC5B,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,GAC5B,GAAA,OAAA,CAAQ,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAC,CAAA,CAAA;AACzC,EAAA,MAAM,MACJ,GAAA,SAAA,KAAc,cAAkB,IAAA,GAAA,GAC5B,WAAY,CAAA,KAAA,CAAM,MAClB,GAAA,SAAA,KAAc,cACd,GAAA,WAAA,CAAY,KAAM,CAAA,MAAA,GAClB,YAAY,KAAM,CAAA,MAAA;AACxB,EAAA,MAAM,QAAQ,CAAG,EAAA,MAAM,CAAG,EAAA,GAAA,GAAM,SAAS,EAAE,CAAA,CAAA;AAEvC,EAAA,IAAA,iBAAA,CAAkB,KAAK,CAAG,EAAA;AACrB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAA,EAAY,kBAAkB,KAAK;AAAA,KACrC;AAAA;AAIF,EAAA,MAAM,OAAO,MAAO,CAAA,IAAA,IAAQ,WAAY,CAAA,WAAA,IAAe,QAAQ,GAAI,EAAA;AAEnE,EAAA,MAAM,aAAgB,GAAA,CACpB,IACA,EAAA,KAAA,EACA,UACAA,IACG,KAAA;AACH,IAAA,IAAI,QAAY,IAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,KAAW,EAAI,EAAA;AACnC,MAAA,OAAA,EAAA;AAAA;AAEL,IAAA,IAAA,CAACA,IAAO,IAAA,CAAC,KAAO,EAAA;AACX,MAAA,OAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA;AAE7B,IAAA,MAAM,GAAG,KAAK,CAAI,GAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AACxC,IAAA,MAAA,KAAA,GAAQ,mBAAoB,CAAA,cAAA,CAAe,KAAK,CAAA;AAEpD,IAAA,IAAA,KAAA,EAAO,QACP,IAAK,CAAA,IAAA,KAAS,WACd,WAAY,CAAA,YAAA,CAAa,UAAW,CAAA,KAAK,CACzC,EAAA;AACA,MAAA,MAAM,aAAa,KAAM,CAAA,IAAA,EAAM,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AACrC,MAAA,MAAA,KAAA,GAAQ,MAAM,GAAK,EAAA,IAAA;AAAA,QAAK,CAAC,GAAA,KAC7B,GAAI,CAAA,UAAA,CAAW,UAAoB;AAAA,OACrC;AACA,MAAA,IAAI,KAAO,EAAA;AACF,QAAA,OAAA,KAAA;AAAA,OACF,MAAA;AACL,QAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AACf,eACS,KAAO,EAAA;AAChB,MAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AAER,IAAA,OAAA,QAAA,CAAS,MAAM,IAAI,CAAA;AAAA,GAC5B;AACM,EAAA,MAAA,iBAAA,GAAoB,MAAO,CAAA,KAAA,EAAO,aAAe,EAAA,MAAA;AACvD,EAAA,MAAM,iBACJ,KAAM,CAAA,OAAA,CAAQ,iBAAiB,CAAA,IAAK,kBAAkB,MAAS,GAAA,CAAA;AAC3D,EAAA,MAAA,cAAA,GAAiB,qBAAqB,CAAC,cAAA;AAC7C,EAAA,MAAM,kBACJ,iBACA,IAAA,CAAC,kBACD,OAAO,iBAAA,KAAsB,YAC7B,iBAAsB,KAAA,IAAA;AAExB,EAAA,MAAM,yBAA4B,GAAA,eAAA,GAC9B,gBAAoB,IAAA,iBAAA,GAClB,kBAAkB,cAClB,GAAA,SAAA;AAAA;AAAA,IAEJ,cAAA,GACG,kBAAkB,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,cAAc,EAC5C,cACH,GAAA;AAAA,GAAA;AAEJ,EAAA,MAAM,4BAA4B,cAC9B,GAAA,gBAAA,IAAoB,iBAClB,GAAA,iBAAA,CAAkB,iBAClB,SACF,GAAA,SAAA;AACJ,EAAA,MAAM,4BAA4B,cAC9B,GAAA,gBAAA,IAAoB,iBAClB,GAAA,iBAAA,CAAkB,iBAClB,SACF,GAAA,SAAA;AAEJ,EAAA,IAAI,iBAAyC,EAAC;AAC9C,EAAA,MAAM,YAAe,GAAA;AAAA,IACnB,mBAAqB,EAAA,WAAA,CAAY,KAAM,CAAA,mBAAA,GACnC,YAAY,UACZ,GAAA,SAAA;AAAA,IACJ,cAAA,EACE,yBACC,KAAA,CAAC,IAAS,KAAA;AACT,MAAA,MAAM,QAAQ,IAAK,CAAA,cAAA;AACnB,MAAA,OAAO,cAAc,IAAM,EAAA,KAAA,EAAO,WAAY,CAAA,KAAA,CAAM,WAAW,GAAG,CAAA;AAAA,KACpE,CAAA;AAAA,IACF,cAAA,EAAgB,QAAQ,GAAI,CAAA,QAAQ,IAChC,SACA,GAAA,yBAAA,KACC,CAAC,CAAM,KAAA;AACA,MAAA,MAAA,KAAA,GAAQ,CAAE,CAAA,iBAAA,CAAkB,CAAC,CAAA;AAC/B,MAAA,IAAA,CAAC,cAAe,CAAA,KAAK,CAAG,EAAA;AAC1B,QAAA,MAAM,IAAI,aAAc,CAAA,CAAA,EAAG,OAAO,WAAY,CAAA,KAAA,CAAM,WAAW,GAAG,CAAA;AAClE,QAAA,cAAA,CAAe,KAAK,CAAI,GAAA,CAAA;AAAA;AAE1B,MAAA,OAAO,eAAe,KAAK,CAAA;AAAA,KAC7B,CAAA;AAAA,IACJ,cAAA,EACE,yBACC,KAAA,CAAC,CAAM,KAAA;AACN,MAAA,MAAM,QAAQ,CAAE,CAAA,cAAA;AAChB,MAAA,OAAO,cAAc,CAAG,EAAA,KAAA,EAAO,WAAY,CAAA,KAAA,CAAM,WAAW,GAAG,CAAA;AAAA,KACjE,CAAA;AAAA,IACF,MAAQ,EAAA,KAAA;AAAA,IACR,OAAS,EAAA;AAAA,GACX;AAEA,EAAA,IAAI,SAAY,GAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,CAAO,OAAO,aAAe,EAAA,MAAM,CAC7D,GAAA,CAAC,GAAG,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,QAAQ,YAAY,CAAA,GACrD,OAAO,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,MAAW,KAAA,QAAA,IAC/C,OAAO,KAAO,EAAA,aAAA,EAAe,MAAW,KAAA,IAAA,GACxC,CAAC,MAAO,CAAA,KAAA,EAAO,aAAe,EAAA,MAAA,EAAQ,YAAY,CAClD,GAAA,YAAA;AACE,EAAA,MAAA,UAAA,GAAa,MAAO,CAAA,SAAA,IAAa,cAAe,CAAA,UAAA;AACtD,EAAA,MAAM,IAAO,GAAA,MAAA,CAAO,IAAQ,IAAA,OAAA,CAAQ,IAAI,WAAW,CAAA;AAC7C,EAAA,MAAA,MAAA,GAAS,OAAO,KAAO,EAAA,MAAA;AAE7B,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,GAAG,MAAO,CAAA,GAAA;AAAA,IACV,MAAA,EAAQ,MAAO,CAAA,GAAA,EAAK,MAAU,IAAA,MAAA;AAAA,IAC9B,YAAc,EAAA;AAAA,MACZ,GAAG,OAAO,GAAK,EAAA,YAAA;AAAA,MACf,OAAS,EAAA,MAAA,CAAO,GAAK,EAAA,YAAA,EAAc,OAAW,IAAA;AAAA,QAC5C,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,GAAG,OAAO,GAAK,EAAA,OAAA;AAAA,MACf,kBAAoB,EAAA,MAAA,CAAO,GAAK,EAAA,OAAA,EAAS,kBAAsB,IAAA;AAAA,QAC7D;AAAA;AACF;AACF,GACF;AACA,EAAA,IAAI,YACF,GAAA,WAAA,CAAY,YAAgB,IAAA,OAAA,CAAQ,IAAI,kBAAsB,IAAA,EAAA;AAChE,EAAA,IAAI,OAAO,IAAS,KAAA,YAAA;AACpB,EAAA,IAAI,MAAM,IAAS,KAAA,aAAA;AACnB,EAAA,IAAI,SAAU,CAAA,OAAA,KAAY,OAAW,IAAA,CAAC,UAAU,SAAW,EAAA;AAC1C,IAAA,YAAA,GAAA,CAAA,IAAA,EAAO,MAAO,CAAA,MAAA,EAAQ,KAAQ,GAAA,GAAA,GAAM,EAAE,CACnD,GAAA,EAAA,OAAO,MAAO,CAAA,MAAA,EAAQ,IAAS,KAAA,QAAA,GAC3B,OAAO,MAAQ,EAAA,IAAA,GACf,WACN,CAAA,CAAA,EAAI,OAAO,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,QAAW,GAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,GAAO,IAAI,CAAA,CAAA;AAAA;AAE1E,EAAA,MAAM,YAAY,GACd,GAAA;AAAA,IACE,CAAC,CAAe,YAAA,EAAA,UAAU,CAAK,GAAA,CAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAAA,IACxC,CAAC,CAAe,YAAA,EAAA,UAAU,CAAK,GAAA,CAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAAA,IACxC,CAAC,CAAe,YAAA,EAAA,UAAU,CAAM,IAAA,CAAA,GAAG,GAAG,IAAI,CAAA,CAAA;AAAA,IAC1C,CAAC,CAAe,YAAA,EAAA,UAAU,CAAM,IAAA,CAAA,GAAG,IAAI,IAAI,CAAA,CAAA,CAAA;AAAA,IAC3C,CAAC,CAAe,YAAA,EAAA,UAAU,UAAU,GAAG,CAAA,CAAA,EAAI,YAAY,aAAa,CAAA,CAAA,CAAA;AAAA,IACpE,CAAC,CAAe,YAAA,EAAA,UAAU,CAAe,aAAA,CAAA,GAAG,IAAI,YAAY,CAAA,CAAA;AAAA,MAE9D,EAAC;AACL,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,GAAG,MAAO,CAAA,MAAA;AAAA,IACV,CAAC,CAAA,6BAAA,CAA+B,GAAG,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,CAAA;AAAA,IACnD,GAAG;AAAA,GACL;AAIA,EAAA,IAAI,OAAQ,CAAA,GAAA,CAAI,aAAkB,KAAA,WAAA,CAAY,aAAe,EAAA;AACnD,IAAA,OAAA,CAAA,GAAA,CAAI,gBAAgB,WAAY,CAAA,aAAA;AAAA;AAEtC,EAAA,IAAA,OAAA,CAAQ,GAAI,CAAA,kBAAA,KAAuB,YAAc,EAAA;AACnD,IAAA,OAAA,CAAQ,IAAI,kBAAqB,GAAA,YAAA;AAAA;AAGnC,EAAA,IAAI,cAAc,cAAgB,EAAA;AAEhC,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,WAAY,CAAA,aAAA;AAAA,MAClB,SAAW,EAAA,UAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,GAAG,MAAO,CAAA,OAAA;AAAA,QACV,QAAA,EAAU,MAAO,CAAA,OAAA,EAAS,QAAY,IAAA;AAAA,UACpC,OAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,MAAA;AAAA,MACA,GAAK,EAAA,SAAA;AAAA;AAAA,MAEL,KAAO,EAAA;AAAA,QACL,GAAG,MAAO,CAAA,KAAA;AAAA,QACV,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,KAAA;AAAA,QAC9C,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,IAAA;AAAA,QAC1C,MAAA,EAAQ,OAAO,KAAO,EAAA,MAAA,IAAU,KAAK,WAAY,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA,QACrE,SAAW,EAAA,MAAA,CAAO,KAAO,EAAA,SAAA,IAAa,YAAY,KAAM,CAAA,SAAA;AAAA,QACxD,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,KAAO,EAAA,aAAA,GACd,CAAC,GAAA;AAAA;AAAA,QAEP,MAAQ,EAAA,MAAA,CAAO,KAAO,EAAA,MAAA,IAAU,CAAC,QAAQ,CAAA;AAAA,QACzC,MAAA;AAAA,QACA,aAAe,EAAA;AAAA,UACb,GAAG,OAAO,KAAO,EAAA,aAAA;AAAA,UACjB,KAAO,EAAA;AAAA,YACL,GAAG,mBAAoB,CAAA;AAAA,WACzB;AAAA,UACA,MAAQ,EAAA,SAAA;AAAA,UACR,uBACE,EAAA,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,uBAC7B,IAAA;AAAA,SACJ;AAAA,QACA,GAAA;AAAA,QACA,QAAA,EAAU,MAAO,CAAA,KAAA,EAAO,QAAY,IAAA,CAAA,mBAAA,CAAA;AAAA,QACpC,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,CAAA,uBAAA,CAAA;AAAA,QAC1C,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,IAAA;AAAA,QAC9C,YAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,iBAAiB,SAClC,GAAA,MAAA,CAAO,OAAO,YACd,GAAA;AAAA;AACR,KACF;AACA,IAAA,iBAAA,CAAkB,KAAK,CAAI,GAAA,YAAA;AACpB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAY,EAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,WAAY,CAAA,aAAA;AAAA,MAClB,SAAW,EAAA,UAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,GAAG,MAAO,CAAA,OAAA;AAAA,QACV,kBAAA,EAAoB,MAAO,CAAA,OAAA,EAAS,kBAAsB,IAAA;AAAA,UACxD;AAAA;AACF,OACF;AAAA,MACA,MAAA;AAAA,MACA,GAAK,EAAA,SAAA;AAAA;AAAA,MAEL,KAAO,EAAA;AAAA,QACL,GAAG,MAAO,CAAA,KAAA;AAAA,QACV,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,KAAA;AAAA,QAC9C,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,IAAA;AAAA,QAC1C,MAAA,EAAQ,OAAO,KAAO,EAAA,MAAA,IAAU,KAAK,WAAY,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA,QACrE,MAAA,EAAQ,MAAO,CAAA,KAAA,EAAO,MAAU,IAAA,QAAA;AAAA,QAChC,MAAA;AAAA,QACA,GAAA;AAAA,QACA,QAAA,EAAU,MAAO,CAAA,KAAA,EAAO,QAAY,IAAA,CAAA,mBAAA,CAAA;AAAA,QACpC,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,CAAA,uBAAA,CAAA;AAAA,QAC1C,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,OAAO,aACd,GAAA,IAAA;AAAA,QACN,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,KAAO,EAAA,aAAA,GACd,CAAC,GAAA;AAAA,QACP,SAAW,EAAA,MAAA,CAAO,KAAO,EAAA,SAAA,IAAa,YAAY,KAAM,CAAA,SAAA;AAAA;AAAA,QAExD,YAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,iBAAiB,SAClC,GAAA,MAAA,CAAO,OAAO,YACd,GAAA,IAAA;AAAA,QACN,aAAe,EAAA;AAAA,UACb,GAAG,OAAO,KAAO,EAAA,aAAA;AAAA,UACjB,OAAO,mBAAoB,CAAA,MAAA;AAAA,UAC3B,uBACE,EAAA,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,uBAA2B,IAAA,QAAA;AAAA,UAC1D,MAAQ,EAAA;AAAA;AACV;AACF,KACF;AACA,IAAA,iBAAA,CAAkB,KAAK,CAAI,GAAA,YAAA;AACpB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAY,EAAA;AAAA,KACd;AAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type {\n ResolvedUserConfig,\n ResolvedUserOptions,\n AutoDiscoveredFiles,\n PagePropOpt,\n InlineCssOpt,\n} from \"../types.js\";\nimport { join } from \"node:path\";\nimport type { OutputOptions, PreRenderedAsset, PreRenderedChunk } from \"rollup\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\n\nlet stashedUserConfig: Record<string, ResolvedUserConfig | null> = {};\n\nexport type ResolveUserConfigProps<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n> = {\n condition: \"react-client\" | \"react-server\";\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n autoDiscoveredFiles: Pick<AutoDiscoveredFiles, \"inputs\" | \"staticManifest\">;\n};\n\nexport type ResolveUserConfigReturn =\n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n condition,\n config,\n configEnv,\n userOptions,\n autoDiscoveredFiles,\n}: ResolveUserConfigProps<T, InlineCSS>): ResolveUserConfigReturn {\n const ssr =\n typeof config.build?.ssr === \"boolean\"\n ? config.build?.ssr\n : Boolean(configEnv.isSsrBuild) ||\n condition === \"react-server\" ||\n (typeof process.env[\"VITE_SSR\"] === \"string\"\n ? process.env[\"VITE_SSR\"] === \"true\" ||\n process.env[\"VITE_SSR\"] === \"1\"\n : Boolean(process.env[\"VITE_SSR\"]));\n const envDir =\n condition === \"react-client\" && ssr\n ? userOptions.build.client\n : condition === \"react-client\"\n ? userOptions.build.static\n : userOptions.build.server;\n const envId = `${envDir}${ssr ? \"-ssr\" : \"\"}`;\n\n if (stashedUserConfig[envId]) {\n return {\n type: \"success\",\n userConfig: stashedUserConfig[envId],\n };\n }\n\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n\n const handleSsrName = <T extends PreRenderedChunk | PreRenderedAsset>(\n info: T,\n input: string | null,\n fallback: (info: T, ssr: boolean) => string,\n ssr: boolean\n ) => {\n if (\"source\" in info && info.source === \"\") {\n return \"\";\n }\n if (!ssr || !input) {\n return fallback(info, false);\n }\n const [, value] = userOptions.normalizer(input);\n const entry = autoDiscoveredFiles.staticManifest[value];\n if (\n entry?.name &&\n info.type === \"asset\" &&\n userOptions.autoDiscover.cssPattern(value)\n ) {\n const withoutExt = entry.name?.split(\".\")[0];\n const found = entry.css?.find((css) =>\n css.startsWith(withoutExt as string)\n );\n if (found) {\n return found;\n } else {\n return entry.file;\n }\n } else if (entry) {\n return entry.file;\n }\n return fallback(info, true);\n };\n const userDefinedOutput = config.build?.rollupOptions?.output;\n const hasOtherOutput =\n Array.isArray(userDefinedOutput) && userDefinedOutput.length > 1;\n const hasValidOutput = userDefinedOutput && !hasOtherOutput;\n const hasObjectOutput =\n userDefinedOutput &&\n !hasOtherOutput &&\n typeof userDefinedOutput === \"object\" &&\n userDefinedOutput !== null;\n\n const userDefinedAssetFileNames = hasObjectOutput\n ? \"assetFileNames\" in userDefinedOutput\n ? userDefinedOutput.assetFileNames\n : undefined\n : // find the other asset file names\n hasOtherOutput\n ? (userDefinedOutput.find((o) => o.assetFileNames) as OutputOptions)\n .assetFileNames\n : undefined;\n\n const userDefinedChunkFileNames = hasValidOutput\n ? \"chunkFileNames\" in userDefinedOutput\n ? userDefinedOutput.chunkFileNames\n : undefined\n : undefined;\n const userDefinedEntryFileNames = hasValidOutput\n ? \"entryFileNames\" in userDefinedOutput\n ? userDefinedOutput.entryFileNames\n : undefined\n : undefined;\n\n let stashedReturns: Record<string, string> = {};\n const pluginOutput = {\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n entryFileNames:\n userDefinedEntryFileNames ??\n ((info) => {\n const input = info.facadeModuleId ?? (info.name + userOptions.autoDiscover.moduleExtension);\n if (!stashedReturns[input]) {\n const r = handleSsrName(\n info,\n input,\n userOptions.build.entryFile,\n ssr\n );\n if (userOptions.verbose) {\n console.log(\"entryFileNames\", input, r);\n }\n stashedReturns[input] = r;\n }\n return stashedReturns[input];\n }),\n assetFileNames: process.env[\"VITEST\"]\n ? undefined\n : userDefinedAssetFileNames ??\n ((i) => {\n const input = i.originalFileNames[0];\n if (!stashedReturns[input]) {\n const r = handleSsrName(i, input, userOptions.build.assetFile, ssr);\n\n if (userOptions.verbose) {\n console.log(\"assetFileNames\", input, stashedReturns[input]);\n }\n stashedReturns[input] = r;\n }\n return stashedReturns[input];\n }),\n chunkFileNames:\n userDefinedChunkFileNames ??\n ((info) => {\n const input = info.facadeModuleId ?? (info.name + userOptions.autoDiscover.moduleExtension);\n if (!stashedReturns[input]) {\n const r = handleSsrName(info, input, userOptions.build.chunkFile, ssr);\n\n if (userOptions.verbose) {\n console.log(\"chunkFileNames\", input, stashedReturns[input]);\n }\n stashedReturns[input] = r;\n }\n return stashedReturns[input];\n }),\n format: \"esm\",\n exports: \"named\",\n } satisfies OutputOptions;\n\n let newOutput = Array.isArray(config.build?.rollupOptions?.output)\n ? [...config.build?.rollupOptions?.output, pluginOutput]\n : typeof config.build?.rollupOptions?.output === \"object\" &&\n config.build?.rollupOptions?.output !== null\n ? [config.build?.rollupOptions?.output, pluginOutput]\n : pluginOutput;\n const vitePrefix = config.envPrefix ?? DEFAULT_CONFIG.ENV_PREFIX;\n const mode = config.mode ?? process.env[\"VITE_MODE\"];\n const minify = config.build?.minify;\n\n const srrConfig = {\n ...config.ssr,\n target: config.ssr?.target ?? \"node\",\n optimizeDeps: {\n ...config.ssr?.optimizeDeps,\n include: config.ssr?.optimizeDeps?.include ?? [\n \"react\",\n \"react-dom\",\n \"react-server-dom-esm/client\",\n ],\n },\n resolve: {\n ...config.ssr?.resolve,\n externalConditions: config.ssr?.resolve?.externalConditions ?? [\n \"react-server\",\n ],\n },\n };\n let publicOrigin =\n userOptions.publicOrigin ?? process.env.VITE_PUBLIC_ORIGIN ?? \"\";\n let PROD = mode === \"production\";\n let DEV = mode === \"development\";\n if (configEnv.command === \"serve\" && !configEnv.isPreview) {\n publicOrigin = `http${config.server?.https ? \"s\" : \"\"}://${\n typeof config.server?.host === \"string\"\n ? config.server?.host\n : \"localhost\"\n }:${typeof config.server?.port === \"number\" ? config.server?.port : 5173}`;\n }\n const ssrDefine = ssr\n ? {\n [`process.env.${vitePrefix}SSR`]: `${ssr}`,\n [`process.env.${vitePrefix}DEV`]: `${DEV}`,\n [`process.env.${vitePrefix}PROD`]: `${PROD}`,\n [`process.env.${vitePrefix}MODE`]: `\"${mode}\"`,\n [`process.env.${vitePrefix}BASE_URL`]: `\"${userOptions.moduleBaseURL}\"`,\n [`process.env.${vitePrefix}PUBLIC_ORIGIN`]: `\"${publicOrigin}\"`,\n }\n : {};\n const define = {\n ...config.define,\n [`import.meta.env.PUBLIC_ORIGIN`]: `\"${publicOrigin}\"`,\n ...ssrDefine,\n };\n // these will never be cleaned up, because, we are resolving the user config\n // and it's assumed the thread closes after this and we don't want\n // it to change after the config has been resolved\n if (process.env.VITE_BASE_URL !== userOptions.moduleBaseURL) {\n process.env.VITE_BASE_URL = userOptions.moduleBaseURL;\n }\n if (process.env.VITE_PUBLIC_ORIGIN !== publicOrigin) {\n process.env.VITE_PUBLIC_ORIGIN = publicOrigin;\n }\n\n if (condition === \"react-client\") {\n // client plugin build options (client plugin still outputs server files)\n const clientConfig = {\n ...config,\n root: root,\n mode: mode,\n base: userOptions.moduleBaseURL,\n envPrefix: vitePrefix,\n resolve: {\n ...config.resolve,\n external: config.resolve?.external ?? [\n \"react\",\n \"react-dom\",\n \"react-server-dom-esm/client\",\n ],\n },\n define: define,\n ssr: srrConfig,\n // client build options\n build: {\n ...config.build,\n modulePreload: config.build?.modulePreload ?? false,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: config.build?.outDir ?? join(userOptions.build.outDir, envDir),\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n copyPublicDir:\n typeof config.build?.copyPublicDir === \"boolean\"\n ? config.build?.copyPublicDir\n : !ssr,\n // modern browsers\n target: config.build?.target ?? [\"esnext\"],\n minify: minify,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: {\n ...autoDiscoveredFiles.inputs,\n },\n output: newOutput,\n preserveEntrySignatures:\n config.build?.rollupOptions?.preserveEntrySignatures ??\n \"exports-only\",\n },\n ssr: ssr,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: config.build?.ssrEmitAssets ?? true,\n cssCodeSplit:\n typeof config.build?.cssCodeSplit === \"boolean\"\n ? config.build?.cssCodeSplit\n : true,\n },\n } satisfies ResolvedUserConfig;\n stashedUserConfig[envId] = clientConfig;\n return {\n type: \"success\",\n userConfig: clientConfig,\n };\n } else {\n const serverConfig = {\n ...config,\n root: root,\n mode: mode,\n base: userOptions.moduleBaseURL,\n envPrefix: vitePrefix,\n resolve: {\n ...config.resolve,\n externalConditions: config.resolve?.externalConditions ?? [\n \"react-server\",\n ],\n },\n define: define,\n ssr: srrConfig,\n // server build options\n build: {\n ...config.build,\n modulePreload: config.build?.modulePreload ?? false,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: config.build?.outDir ?? join(userOptions.build.outDir, envDir),\n target: config.build?.target ?? \"node18\",\n minify: minify,\n ssr: ssr,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets:\n typeof config.build?.ssrEmitAssets === \"boolean\"\n ? config.build?.ssrEmitAssets\n : true,\n copyPublicDir:\n typeof config.build?.copyPublicDir === \"boolean\"\n ? config.build?.copyPublicDir\n : !ssr,\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n // Ensure CSS files are output to static directory\n cssCodeSplit:\n typeof config.build?.cssCodeSplit === \"boolean\"\n ? config.build?.cssCodeSplit\n : true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: autoDiscoveredFiles.inputs,\n preserveEntrySignatures:\n config.build?.rollupOptions?.preserveEntrySignatures ?? \"strict\",\n output: newOutput,\n },\n },\n } satisfies ResolvedUserConfig;\n stashedUserConfig[envId] = serverConfig;\n return {\n type: \"success\",\n userConfig: serverConfig,\n };\n }\n}\n"],"names":["ssr"],"mappings":";;;;;;;;AAYA,IAAI,oBAA+D,EAAC;AAiB7D,SAAS,iBAGd,CAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAkE,EAAA;AAChE,EAAA,MAAM,GACJ,GAAA,OAAO,MAAO,CAAA,KAAA,EAAO,QAAQ,SACzB,GAAA,MAAA,CAAO,KAAO,EAAA,GAAA,GACd,QAAQ,SAAU,CAAA,UAAU,CAC5B,IAAA,SAAA,KAAc,mBACb,OAAO,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,QAChC,GAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,MAC5B,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,GAC5B,GAAA,OAAA,CAAQ,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAC,CAAA,CAAA;AACzC,EAAA,MAAM,MACJ,GAAA,SAAA,KAAc,cAAkB,IAAA,GAAA,GAC5B,WAAY,CAAA,KAAA,CAAM,MAClB,GAAA,SAAA,KAAc,cACd,GAAA,WAAA,CAAY,KAAM,CAAA,MAAA,GAClB,YAAY,KAAM,CAAA,MAAA;AACxB,EAAA,MAAM,QAAQ,CAAG,EAAA,MAAM,CAAG,EAAA,GAAA,GAAM,SAAS,EAAE,CAAA,CAAA;AAEvC,EAAA,IAAA,iBAAA,CAAkB,KAAK,CAAG,EAAA;AACrB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAA,EAAY,kBAAkB,KAAK;AAAA,KACrC;AAAA;AAIF,EAAA,MAAM,OAAO,MAAO,CAAA,IAAA,IAAQ,WAAY,CAAA,WAAA,IAAe,QAAQ,GAAI,EAAA;AAEnE,EAAA,MAAM,aAAgB,GAAA,CACpB,IACA,EAAA,KAAA,EACA,UACAA,IACG,KAAA;AACH,IAAA,IAAI,QAAY,IAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,KAAW,EAAI,EAAA;AACnC,MAAA,OAAA,EAAA;AAAA;AAEL,IAAA,IAAA,CAACA,IAAO,IAAA,CAAC,KAAO,EAAA;AACX,MAAA,OAAA,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA;AAE7B,IAAA,MAAM,GAAG,KAAK,CAAI,GAAA,WAAA,CAAY,WAAW,KAAK,CAAA;AACxC,IAAA,MAAA,KAAA,GAAQ,mBAAoB,CAAA,cAAA,CAAe,KAAK,CAAA;AAEpD,IAAA,IAAA,KAAA,EAAO,QACP,IAAK,CAAA,IAAA,KAAS,WACd,WAAY,CAAA,YAAA,CAAa,UAAW,CAAA,KAAK,CACzC,EAAA;AACA,MAAA,MAAM,aAAa,KAAM,CAAA,IAAA,EAAM,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AACrC,MAAA,MAAA,KAAA,GAAQ,MAAM,GAAK,EAAA,IAAA;AAAA,QAAK,CAAC,GAAA,KAC7B,GAAI,CAAA,UAAA,CAAW,UAAoB;AAAA,OACrC;AACA,MAAA,IAAI,KAAO,EAAA;AACF,QAAA,OAAA,KAAA;AAAA,OACF,MAAA;AACL,QAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AACf,eACS,KAAO,EAAA;AAChB,MAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AAER,IAAA,OAAA,QAAA,CAAS,MAAM,IAAI,CAAA;AAAA,GAC5B;AACM,EAAA,MAAA,iBAAA,GAAoB,MAAO,CAAA,KAAA,EAAO,aAAe,EAAA,MAAA;AACvD,EAAA,MAAM,iBACJ,KAAM,CAAA,OAAA,CAAQ,iBAAiB,CAAA,IAAK,kBAAkB,MAAS,GAAA,CAAA;AAC3D,EAAA,MAAA,cAAA,GAAiB,qBAAqB,CAAC,cAAA;AAC7C,EAAA,MAAM,kBACJ,iBACA,IAAA,CAAC,kBACD,OAAO,iBAAA,KAAsB,YAC7B,iBAAsB,KAAA,IAAA;AAExB,EAAA,MAAM,yBAA4B,GAAA,eAAA,GAC9B,gBAAoB,IAAA,iBAAA,GAClB,kBAAkB,cAClB,GAAA,SAAA;AAAA;AAAA,IAEJ,cAAA,GACG,kBAAkB,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,cAAc,EAC5C,cACH,GAAA;AAAA,GAAA;AAEJ,EAAA,MAAM,4BAA4B,cAC9B,GAAA,gBAAA,IAAoB,iBAClB,GAAA,iBAAA,CAAkB,iBAClB,SACF,GAAA,SAAA;AACJ,EAAA,MAAM,4BAA4B,cAC9B,GAAA,gBAAA,IAAoB,iBAClB,GAAA,iBAAA,CAAkB,iBAClB,SACF,GAAA,SAAA;AAEJ,EAAA,IAAI,iBAAyC,EAAC;AAC9C,EAAA,MAAM,YAAe,GAAA;AAAA,IACnB,mBAAqB,EAAA,WAAA,CAAY,KAAM,CAAA,mBAAA,GACnC,YAAY,UACZ,GAAA,SAAA;AAAA,IACJ,cAAA,EACE,yBACC,KAAA,CAAC,IAAS,KAAA;AACT,MAAA,MAAM,QAAQ,IAAK,CAAA,cAAA,IAAmB,IAAK,CAAA,IAAA,GAAO,YAAY,YAAa,CAAA,eAAA;AACvE,MAAA,IAAA,CAAC,cAAe,CAAA,KAAK,CAAG,EAAA;AAC1B,QAAA,MAAM,CAAI,GAAA,aAAA;AAAA,UACR,IAAA;AAAA,UACA,KAAA;AAAA,UACA,YAAY,KAAM,CAAA,SAAA;AAAA,UAClB;AAAA,SACF;AACA,QAAA,IAAI,YAAY,OAAS,EAAA;AACf,UAAA,OAAA,CAAA,GAAA,CAAI,gBAAkB,EAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAExC,QAAA,cAAA,CAAe,KAAK,CAAI,GAAA,CAAA;AAAA;AAE1B,MAAA,OAAO,eAAe,KAAK,CAAA;AAAA,KAC7B,CAAA;AAAA,IACF,cAAA,EAAgB,QAAQ,GAAI,CAAA,QAAQ,IAChC,SACA,GAAA,yBAAA,KACC,CAAC,CAAM,KAAA;AACA,MAAA,MAAA,KAAA,GAAQ,CAAE,CAAA,iBAAA,CAAkB,CAAC,CAAA;AAC/B,MAAA,IAAA,CAAC,cAAe,CAAA,KAAK,CAAG,EAAA;AAC1B,QAAA,MAAM,IAAI,aAAc,CAAA,CAAA,EAAG,OAAO,WAAY,CAAA,KAAA,CAAM,WAAW,GAAG,CAAA;AAElE,QAAA,IAAI,YAAY,OAAS,EAAA;AACvB,UAAA,OAAA,CAAQ,GAAI,CAAA,gBAAA,EAAkB,KAAO,EAAA,cAAA,CAAe,KAAK,CAAC,CAAA;AAAA;AAE5D,QAAA,cAAA,CAAe,KAAK,CAAI,GAAA,CAAA;AAAA;AAE1B,MAAA,OAAO,eAAe,KAAK,CAAA;AAAA,KAC7B,CAAA;AAAA,IACJ,cAAA,EACE,yBACC,KAAA,CAAC,IAAS,KAAA;AACT,MAAA,MAAM,QAAQ,IAAK,CAAA,cAAA,IAAmB,IAAK,CAAA,IAAA,GAAO,YAAY,YAAa,CAAA,eAAA;AACvE,MAAA,IAAA,CAAC,cAAe,CAAA,KAAK,CAAG,EAAA;AAC1B,QAAA,MAAM,IAAI,aAAc,CAAA,IAAA,EAAM,OAAO,WAAY,CAAA,KAAA,CAAM,WAAW,GAAG,CAAA;AAErE,QAAA,IAAI,YAAY,OAAS,EAAA;AACvB,UAAA,OAAA,CAAQ,GAAI,CAAA,gBAAA,EAAkB,KAAO,EAAA,cAAA,CAAe,KAAK,CAAC,CAAA;AAAA;AAE5D,QAAA,cAAA,CAAe,KAAK,CAAI,GAAA,CAAA;AAAA;AAE1B,MAAA,OAAO,eAAe,KAAK,CAAA;AAAA,KAC7B,CAAA;AAAA,IACF,MAAQ,EAAA,KAAA;AAAA,IACR,OAAS,EAAA;AAAA,GACX;AAEA,EAAA,IAAI,SAAY,GAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,CAAO,OAAO,aAAe,EAAA,MAAM,CAC7D,GAAA,CAAC,GAAG,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,QAAQ,YAAY,CAAA,GACrD,OAAO,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,MAAW,KAAA,QAAA,IAC/C,OAAO,KAAO,EAAA,aAAA,EAAe,MAAW,KAAA,IAAA,GACxC,CAAC,MAAO,CAAA,KAAA,EAAO,aAAe,EAAA,MAAA,EAAQ,YAAY,CAClD,GAAA,YAAA;AACE,EAAA,MAAA,UAAA,GAAa,MAAO,CAAA,SAAA,IAAa,cAAe,CAAA,UAAA;AACtD,EAAA,MAAM,IAAO,GAAA,MAAA,CAAO,IAAQ,IAAA,OAAA,CAAQ,IAAI,WAAW,CAAA;AAC7C,EAAA,MAAA,MAAA,GAAS,OAAO,KAAO,EAAA,MAAA;AAE7B,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,GAAG,MAAO,CAAA,GAAA;AAAA,IACV,MAAA,EAAQ,MAAO,CAAA,GAAA,EAAK,MAAU,IAAA,MAAA;AAAA,IAC9B,YAAc,EAAA;AAAA,MACZ,GAAG,OAAO,GAAK,EAAA,YAAA;AAAA,MACf,OAAS,EAAA,MAAA,CAAO,GAAK,EAAA,YAAA,EAAc,OAAW,IAAA;AAAA,QAC5C,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,GAAG,OAAO,GAAK,EAAA,OAAA;AAAA,MACf,kBAAoB,EAAA,MAAA,CAAO,GAAK,EAAA,OAAA,EAAS,kBAAsB,IAAA;AAAA,QAC7D;AAAA;AACF;AACF,GACF;AACA,EAAA,IAAI,YACF,GAAA,WAAA,CAAY,YAAgB,IAAA,OAAA,CAAQ,IAAI,kBAAsB,IAAA,EAAA;AAChE,EAAA,IAAI,OAAO,IAAS,KAAA,YAAA;AACpB,EAAA,IAAI,MAAM,IAAS,KAAA,aAAA;AACnB,EAAA,IAAI,SAAU,CAAA,OAAA,KAAY,OAAW,IAAA,CAAC,UAAU,SAAW,EAAA;AAC1C,IAAA,YAAA,GAAA,CAAA,IAAA,EAAO,MAAO,CAAA,MAAA,EAAQ,KAAQ,GAAA,GAAA,GAAM,EAAE,CACnD,GAAA,EAAA,OAAO,MAAO,CAAA,MAAA,EAAQ,IAAS,KAAA,QAAA,GAC3B,OAAO,MAAQ,EAAA,IAAA,GACf,WACN,CAAA,CAAA,EAAI,OAAO,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,QAAW,GAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,GAAO,IAAI,CAAA,CAAA;AAAA;AAE1E,EAAA,MAAM,YAAY,GACd,GAAA;AAAA,IACE,CAAC,CAAe,YAAA,EAAA,UAAU,CAAK,GAAA,CAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAAA,IACxC,CAAC,CAAe,YAAA,EAAA,UAAU,CAAK,GAAA,CAAA,GAAG,GAAG,GAAG,CAAA,CAAA;AAAA,IACxC,CAAC,CAAe,YAAA,EAAA,UAAU,CAAM,IAAA,CAAA,GAAG,GAAG,IAAI,CAAA,CAAA;AAAA,IAC1C,CAAC,CAAe,YAAA,EAAA,UAAU,CAAM,IAAA,CAAA,GAAG,IAAI,IAAI,CAAA,CAAA,CAAA;AAAA,IAC3C,CAAC,CAAe,YAAA,EAAA,UAAU,UAAU,GAAG,CAAA,CAAA,EAAI,YAAY,aAAa,CAAA,CAAA,CAAA;AAAA,IACpE,CAAC,CAAe,YAAA,EAAA,UAAU,CAAe,aAAA,CAAA,GAAG,IAAI,YAAY,CAAA,CAAA;AAAA,MAE9D,EAAC;AACL,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,GAAG,MAAO,CAAA,MAAA;AAAA,IACV,CAAC,CAAA,6BAAA,CAA+B,GAAG,CAAA,CAAA,EAAI,YAAY,CAAA,CAAA,CAAA;AAAA,IACnD,GAAG;AAAA,GACL;AAIA,EAAA,IAAI,OAAQ,CAAA,GAAA,CAAI,aAAkB,KAAA,WAAA,CAAY,aAAe,EAAA;AACnD,IAAA,OAAA,CAAA,GAAA,CAAI,gBAAgB,WAAY,CAAA,aAAA;AAAA;AAEtC,EAAA,IAAA,OAAA,CAAQ,GAAI,CAAA,kBAAA,KAAuB,YAAc,EAAA;AACnD,IAAA,OAAA,CAAQ,IAAI,kBAAqB,GAAA,YAAA;AAAA;AAGnC,EAAA,IAAI,cAAc,cAAgB,EAAA;AAEhC,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,WAAY,CAAA,aAAA;AAAA,MAClB,SAAW,EAAA,UAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,GAAG,MAAO,CAAA,OAAA;AAAA,QACV,QAAA,EAAU,MAAO,CAAA,OAAA,EAAS,QAAY,IAAA;AAAA,UACpC,OAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,MAAA;AAAA,MACA,GAAK,EAAA,SAAA;AAAA;AAAA,MAEL,KAAO,EAAA;AAAA,QACL,GAAG,MAAO,CAAA,KAAA;AAAA,QACV,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,KAAA;AAAA,QAC9C,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,IAAA;AAAA,QAC1C,MAAA,EAAQ,OAAO,KAAO,EAAA,MAAA,IAAU,KAAK,WAAY,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA,QACrE,SAAW,EAAA,MAAA,CAAO,KAAO,EAAA,SAAA,IAAa,YAAY,KAAM,CAAA,SAAA;AAAA,QACxD,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,KAAO,EAAA,aAAA,GACd,CAAC,GAAA;AAAA;AAAA,QAEP,MAAQ,EAAA,MAAA,CAAO,KAAO,EAAA,MAAA,IAAU,CAAC,QAAQ,CAAA;AAAA,QACzC,MAAA;AAAA,QACA,aAAe,EAAA;AAAA,UACb,GAAG,OAAO,KAAO,EAAA,aAAA;AAAA,UACjB,KAAO,EAAA;AAAA,YACL,GAAG,mBAAoB,CAAA;AAAA,WACzB;AAAA,UACA,MAAQ,EAAA,SAAA;AAAA,UACR,uBACE,EAAA,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,uBAC7B,IAAA;AAAA,SACJ;AAAA,QACA,GAAA;AAAA,QACA,QAAA,EAAU,MAAO,CAAA,KAAA,EAAO,QAAY,IAAA,CAAA,mBAAA,CAAA;AAAA,QACpC,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,CAAA,uBAAA,CAAA;AAAA,QAC1C,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,IAAA;AAAA,QAC9C,YAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,iBAAiB,SAClC,GAAA,MAAA,CAAO,OAAO,YACd,GAAA;AAAA;AACR,KACF;AACA,IAAA,iBAAA,CAAkB,KAAK,CAAI,GAAA,YAAA;AACpB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAY,EAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAM,WAAY,CAAA,aAAA;AAAA,MAClB,SAAW,EAAA,UAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,GAAG,MAAO,CAAA,OAAA;AAAA,QACV,kBAAA,EAAoB,MAAO,CAAA,OAAA,EAAS,kBAAsB,IAAA;AAAA,UACxD;AAAA;AACF,OACF;AAAA,MACA,MAAA;AAAA,MACA,GAAK,EAAA,SAAA;AAAA;AAAA,MAEL,KAAO,EAAA;AAAA,QACL,GAAG,MAAO,CAAA,KAAA;AAAA,QACV,aAAA,EAAe,MAAO,CAAA,KAAA,EAAO,aAAiB,IAAA,KAAA;AAAA,QAC9C,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,IAAA;AAAA,QAC1C,MAAA,EAAQ,OAAO,KAAO,EAAA,MAAA,IAAU,KAAK,WAAY,CAAA,KAAA,CAAM,QAAQ,MAAM,CAAA;AAAA,QACrE,MAAA,EAAQ,MAAO,CAAA,KAAA,EAAO,MAAU,IAAA,QAAA;AAAA,QAChC,MAAA;AAAA,QACA,GAAA;AAAA,QACA,QAAA,EAAU,MAAO,CAAA,KAAA,EAAO,QAAY,IAAA,CAAA,mBAAA,CAAA;AAAA,QACpC,WAAA,EAAa,MAAO,CAAA,KAAA,EAAO,WAAe,IAAA,CAAA,uBAAA,CAAA;AAAA,QAC1C,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,OAAO,aACd,GAAA,IAAA;AAAA,QACN,aAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,kBAAkB,SACnC,GAAA,MAAA,CAAO,KAAO,EAAA,aAAA,GACd,CAAC,GAAA;AAAA,QACP,SAAW,EAAA,MAAA,CAAO,KAAO,EAAA,SAAA,IAAa,YAAY,KAAM,CAAA,SAAA;AAAA;AAAA,QAExD,YAAA,EACE,OAAO,MAAO,CAAA,KAAA,EAAO,iBAAiB,SAClC,GAAA,MAAA,CAAO,OAAO,YACd,GAAA,IAAA;AAAA,QACN,aAAe,EAAA;AAAA,UACb,GAAG,OAAO,KAAO,EAAA,aAAA;AAAA,UACjB,OAAO,mBAAoB,CAAA,MAAA;AAAA,UAC3B,uBACE,EAAA,MAAA,CAAO,KAAO,EAAA,aAAA,EAAe,uBAA2B,IAAA,QAAA;AAAA,UAC1D,MAAQ,EAAA;AAAA;AACV;AACF,KACF;AACA,IAAA,iBAAA,CAAkB,KAAK,CAAI,GAAA,YAAA;AACpB,IAAA,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,UAAY,EAAA;AAAA,KACd;AAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"toError.d.ts","sourceRoot":"","sources":["../../../plugin/error/toError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAwBA;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAM,GAAG,OAAiB,QAmB1E"}
1
+ {"version":3,"file":"toError.d.ts","sourceRoot":"","sources":["../../../plugin/error/toError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAwBA;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAM,GAAG,OAAiB,QAiB1E"}
@@ -27,7 +27,6 @@ function toError(error) {
27
27
  function logError(error, logger = console) {
28
28
  const err = toError(error);
29
29
  if (process.env["NODE_ENV"] !== "production") {
30
- console.trace(err);
31
30
  if (err.stack && err.stack.includes(err.message)) {
32
31
  logger.error(err.stack);
33
32
  } else if (err.stack) {
@@ -1 +1 @@
1
- {"version":3,"file":"toError.js","sources":["../../../plugin/error/toError.ts"],"sourcesContent":["import type { Logger } from \"vite\";\n\nexport function toError(error: unknown): {\n name: string;\n message: string;\n stack?: string;\n cause?: unknown;\n} {\n if(typeof error === \"string\") {\n return {\n name: \"Error\",\n message: error,\n stack: undefined,\n cause: undefined,\n };\n }\n return error instanceof Error\n ? error\n : typeof error === \"object\" && error !== null\n ? {\n name: \"name\" in error ? String(error.name) : \"Unknown Error\",\n message: \"message\" in error ? typeof error.message === \"string\" ? error.message : JSON.stringify(error.message) : \"Unknown Error\",\n stack: \"stack\" in error ? String(error.stack) : undefined,\n cause: \"cause\" in error ? toError(error.cause) : error,\n }\n : {\n name: \"Unknown Error\",\n message: typeof error === \"string\" ? error : \"Unknown Error\",\n stack: undefined,\n cause: error,\n };\n}\n\nexport function logError(error: unknown, logger: Logger | Console = console) {\n const err = toError(error);\n if (process.env[\"NODE_ENV\"] !== \"production\") {\n console.trace(err)\n \n if (err.stack && err.stack.includes(err.message)) {\n logger.error(err.stack);\n } else if (err.stack) {\n logger.error(err.message + \"\\n\" + err.stack, {\n error: err,\n });\n } else {\n logger.error(err.message, {\n error: err,\n });\n }\n } else {\n logger.error(err.message);\n }\n}\n"],"names":[],"mappings":";;;;;AAEO,SAAS,QAAQ,KAKtB,EAAA;AACA,EAAG,IAAA,OAAO,UAAU,QAAU,EAAA;AAC5B,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,KAAA;AAAA,MACT,KAAO,EAAA,SAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA;AAEF,EAAA,OAAO,iBAAiB,KACpB,GAAA,KAAA,GACA,OAAO,KAAU,KAAA,QAAA,IAAY,UAAU,IACvC,GAAA;AAAA,IACE,MAAM,MAAU,IAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,IAAI,CAAI,GAAA,eAAA;AAAA,IAC7C,OAAS,EAAA,SAAA,IAAa,KAAQ,GAAA,OAAO,KAAM,CAAA,OAAA,KAAY,QAAW,GAAA,KAAA,CAAM,OAAU,GAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,OAAO,CAAI,GAAA,eAAA;AAAA,IAClH,OAAO,OAAW,IAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA,SAAA;AAAA,IAChD,OAAO,OAAW,IAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA;AAAA,GAEnD,GAAA;AAAA,IACE,IAAM,EAAA,eAAA;AAAA,IACN,OAAS,EAAA,OAAO,KAAU,KAAA,QAAA,GAAW,KAAQ,GAAA,eAAA;AAAA,IAC7C,KAAO,EAAA,SAAA;AAAA,IACP,KAAO,EAAA;AAAA,GACT;AACN;AAEO,SAAS,QAAA,CAAS,KAAgB,EAAA,MAAA,GAA2B,OAAS,EAAA;AAC3E,EAAM,MAAA,GAAA,GAAM,QAAQ,KAAK,CAAA;AACzB,EAAA,IAAI,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,KAAM,YAAc,EAAA;AAC5C,IAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AAEjB,IAAA,IAAI,IAAI,KAAS,IAAA,GAAA,CAAI,MAAM,QAAS,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAChD,MAAO,MAAA,CAAA,KAAA,CAAM,IAAI,KAAK,CAAA;AAAA,KACxB,MAAA,IAAW,IAAI,KAAO,EAAA;AACpB,MAAA,MAAA,CAAO,KAAM,CAAA,GAAA,CAAI,OAAU,GAAA,IAAA,GAAO,IAAI,KAAO,EAAA;AAAA,QAC3C,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,KACI,MAAA;AACL,MAAO,MAAA,CAAA,KAAA,CAAM,IAAI,OAAS,EAAA;AAAA,QACxB,KAAO,EAAA;AAAA,OACR,CAAA;AAAA;AACH,GACK,MAAA;AACL,IAAO,MAAA,CAAA,KAAA,CAAM,IAAI,OAAO,CAAA;AAAA;AAE5B;;;;"}
1
+ {"version":3,"file":"toError.js","sources":["../../../plugin/error/toError.ts"],"sourcesContent":["import type { Logger } from \"vite\";\n\nexport function toError(error: unknown): {\n name: string;\n message: string;\n stack?: string;\n cause?: unknown;\n} {\n if(typeof error === \"string\") {\n return {\n name: \"Error\",\n message: error,\n stack: undefined,\n cause: undefined,\n };\n }\n return error instanceof Error\n ? error\n : typeof error === \"object\" && error !== null\n ? {\n name: \"name\" in error ? String(error.name) : \"Unknown Error\",\n message: \"message\" in error ? typeof error.message === \"string\" ? error.message : JSON.stringify(error.message) : \"Unknown Error\",\n stack: \"stack\" in error ? String(error.stack) : undefined,\n cause: \"cause\" in error ? toError(error.cause) : error,\n }\n : {\n name: \"Unknown Error\",\n message: typeof error === \"string\" ? error : \"Unknown Error\",\n stack: undefined,\n cause: error,\n };\n}\n\nexport function logError(error: unknown, logger: Logger | Console = console) {\n const err = toError(error);\n if (process.env[\"NODE_ENV\"] !== \"production\") {\n if (err.stack && err.stack.includes(err.message)) {\n logger.error(err.stack);\n } else if (err.stack) {\n logger.error(err.message + \"\\n\" + err.stack, {\n error: err,\n });\n } else {\n logger.error(err.message, {\n error: err,\n });\n }\n } else {\n logger.error(err.message);\n }\n}\n"],"names":[],"mappings":";;;;;AAEO,SAAS,QAAQ,KAKtB,EAAA;AACA,EAAG,IAAA,OAAO,UAAU,QAAU,EAAA;AAC5B,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA,KAAA;AAAA,MACT,KAAO,EAAA,SAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA;AAEF,EAAA,OAAO,iBAAiB,KACpB,GAAA,KAAA,GACA,OAAO,KAAU,KAAA,QAAA,IAAY,UAAU,IACvC,GAAA;AAAA,IACE,MAAM,MAAU,IAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,IAAI,CAAI,GAAA,eAAA;AAAA,IAC7C,OAAS,EAAA,SAAA,IAAa,KAAQ,GAAA,OAAO,KAAM,CAAA,OAAA,KAAY,QAAW,GAAA,KAAA,CAAM,OAAU,GAAA,IAAA,CAAK,SAAU,CAAA,KAAA,CAAM,OAAO,CAAI,GAAA,eAAA;AAAA,IAClH,OAAO,OAAW,IAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA,SAAA;AAAA,IAChD,OAAO,OAAW,IAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA;AAAA,GAEnD,GAAA;AAAA,IACE,IAAM,EAAA,eAAA;AAAA,IACN,OAAS,EAAA,OAAO,KAAU,KAAA,QAAA,GAAW,KAAQ,GAAA,eAAA;AAAA,IAC7C,KAAO,EAAA,SAAA;AAAA,IACP,KAAO,EAAA;AAAA,GACT;AACN;AAEO,SAAS,QAAA,CAAS,KAAgB,EAAA,MAAA,GAA2B,OAAS,EAAA;AAC3E,EAAM,MAAA,GAAA,GAAM,QAAQ,KAAK,CAAA;AACzB,EAAA,IAAI,OAAQ,CAAA,GAAA,CAAI,UAAU,CAAA,KAAM,YAAc,EAAA;AAC5C,IAAA,IAAI,IAAI,KAAS,IAAA,GAAA,CAAI,MAAM,QAAS,CAAA,GAAA,CAAI,OAAO,CAAG,EAAA;AAChD,MAAO,MAAA,CAAA,KAAA,CAAM,IAAI,KAAK,CAAA;AAAA,KACxB,MAAA,IAAW,IAAI,KAAO,EAAA;AACpB,MAAA,MAAA,CAAO,KAAM,CAAA,GAAA,CAAI,OAAU,GAAA,IAAA,GAAO,IAAI,KAAO,EAAA;AAAA,QAC3C,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,KACI,MAAA;AACL,MAAO,MAAA,CAAA,KAAA,CAAM,IAAI,OAAS,EAAA;AAAA,QACxB,KAAO,EAAA;AAAA,OACR,CAAA;AAAA;AACH,GACK,MAAA;AACL,IAAO,MAAA,CAAA,KAAA,CAAM,IAAI,OAAO,CAAA;AAAA;AAE5B;;;;"}
@@ -1,7 +1,6 @@
1
1
  import type { Manifest } from "vite";
2
- import type { ResolvedUserOptions } from "../types.js";
3
2
  /**
4
3
  * Collects CSS file paths from a manifest by walking through imports starting from a given file
5
4
  */
6
- export declare function collectManifestCss(manifest: Manifest, startFile: string | string[], userOptions: Pick<ResolvedUserOptions, "normalizer">): Record<string, string>;
5
+ export declare function collectManifestCss(manifest: Manifest, startFile: string | string[]): Record<string, string>;
7
6
  //# sourceMappingURL=collectManifestCss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectManifestCss.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/collectManifestCss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,GACnD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkDxB"}
1
+ {"version":3,"file":"collectManifestCss.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/collectManifestCss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgDxB"}
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- function collectManifestCss(manifest, startFile, userOptions) {
6
+ function collectManifestCss(manifest, startFile) {
7
7
  const cssInputs = {};
8
8
  const visited = /* @__PURE__ */ new Set();
9
9
  const toVisit = Array.isArray(startFile) ? startFile : [startFile];
@@ -17,8 +17,7 @@ function collectManifestCss(manifest, startFile, userOptions) {
17
17
  }
18
18
  if (fileInfo.css) {
19
19
  for (const cssFile of fileInfo.css) {
20
- const [keyNormalized, valueNormalized] = userOptions.normalizer(cssFile);
21
- cssInputs[keyNormalized] = valueNormalized;
20
+ cssInputs[cssFile] = cssFile + ".css";
22
21
  }
23
22
  }
24
23
  if (fileInfo.imports) {
@@ -30,8 +29,7 @@ function collectManifestCss(manifest, startFile, userOptions) {
30
29
  const importedFile = manifest[importPath];
31
30
  if (importedFile?.css) {
32
31
  for (const cssFile of importedFile.css) {
33
- const [keyNormalized, valueNormalized] = userOptions.normalizer(cssFile);
34
- cssInputs[keyNormalized] = valueNormalized;
32
+ cssInputs[cssFile] = cssFile + ".css";
35
33
  }
36
34
  }
37
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collectManifestCss.js","sources":["../../../plugin/helpers/collectManifestCss.ts"],"sourcesContent":["import type { Manifest } from \"vite\";\nimport type { ResolvedUserOptions } from \"../types.js\";\n\n/**\n * Collects CSS file paths from a manifest by walking through imports starting from a given file\n */\nexport function collectManifestCss(\n manifest: Manifest,\n startFile: string | string[],\n userOptions: Pick<ResolvedUserOptions, \"normalizer\">\n): Record<string, string> {\n const cssInputs: Record<string, string> = {};\n const visited = new Set<string>();\n \n // Convert startFile to array and ensure we have valid file paths\n const toVisit = Array.isArray(startFile) ? startFile : [startFile];\n\n \n while (toVisit.length > 0) {\n const currentFile = toVisit.pop()!;\n if (visited.has(currentFile)) continue;\n visited.add(currentFile);\n \n const fileInfo = manifest[currentFile];\n if (!fileInfo) {\n continue;\n }\n\n // Add CSS files from the css property\n if (fileInfo.css) {\n for (const cssFile of fileInfo.css) {\n const [keyNormalized, valueNormalized] = userOptions.normalizer(cssFile);\n cssInputs[keyNormalized] = valueNormalized;\n }\n }\n\n // Add imports to visit\n if (fileInfo.imports) {\n for (const importPath of fileInfo.imports) {\n // Skip if we've already visited this import\n if (visited.has(importPath)) {\n continue;\n }\n \n // Add the import to visit\n toVisit.push(importPath);\n \n // Check if the imported file has CSS\n const importedFile = manifest[importPath];\n if (importedFile?.css) {\n for (const cssFile of importedFile.css) {\n const [keyNormalized, valueNormalized] = userOptions.normalizer(cssFile);\n cssInputs[keyNormalized] = valueNormalized;\n }\n }\n }\n }\n }\n\n return cssInputs;\n} "],"names":[],"mappings":";;;;;AAMO,SAAS,kBAAA,CACd,QACA,EAAA,SAAA,EACA,WACwB,EAAA;AACxB,EAAA,MAAM,YAAoC,EAAC;AAC3C,EAAM,MAAA,OAAA,uBAAc,GAAY,EAAA;AAGhC,EAAA,MAAM,UAAU,KAAM,CAAA,OAAA,CAAQ,SAAS,CAAI,GAAA,SAAA,GAAY,CAAC,SAAS,CAAA;AAGjE,EAAO,OAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACzB,IAAM,MAAA,WAAA,GAAc,QAAQ,GAAI,EAAA;AAChC,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,WAAW,CAAG,EAAA;AAC9B,IAAA,OAAA,CAAQ,IAAI,WAAW,CAAA;AAEvB,IAAM,MAAA,QAAA,GAAW,SAAS,WAAW,CAAA;AACrC,IAAA,IAAI,CAAC,QAAU,EAAA;AACb,MAAA;AAAA;AAIF,IAAA,IAAI,SAAS,GAAK,EAAA;AAChB,MAAW,KAAA,MAAA,OAAA,IAAW,SAAS,GAAK,EAAA;AAClC,QAAA,MAAM,CAAC,aAAe,EAAA,eAAe,CAAI,GAAA,WAAA,CAAY,WAAW,OAAO,CAAA;AACvE,QAAA,SAAA,CAAU,aAAa,CAAI,GAAA,eAAA;AAAA;AAC7B;AAIF,IAAA,IAAI,SAAS,OAAS,EAAA;AACpB,MAAW,KAAA,MAAA,UAAA,IAAc,SAAS,OAAS,EAAA;AAEzC,QAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,CAAG,EAAA;AAC3B,UAAA;AAAA;AAIF,QAAA,OAAA,CAAQ,KAAK,UAAU,CAAA;AAGvB,QAAM,MAAA,YAAA,GAAe,SAAS,UAAU,CAAA;AACxC,QAAA,IAAI,cAAc,GAAK,EAAA;AACrB,UAAW,KAAA,MAAA,OAAA,IAAW,aAAa,GAAK,EAAA;AACtC,YAAA,MAAM,CAAC,aAAe,EAAA,eAAe,CAAI,GAAA,WAAA,CAAY,WAAW,OAAO,CAAA;AACvE,YAAA,SAAA,CAAU,aAAa,CAAI,GAAA,eAAA;AAAA;AAC7B;AACF;AACF;AACF;AAGF,EAAO,OAAA,SAAA;AACT;;;;"}
1
+ {"version":3,"file":"collectManifestCss.js","sources":["../../../plugin/helpers/collectManifestCss.ts"],"sourcesContent":["import type { Manifest } from \"vite\";\n\n/**\n * Collects CSS file paths from a manifest by walking through imports starting from a given file\n */\nexport function collectManifestCss(\n manifest: Manifest,\n startFile: string | string[],\n): Record<string, string> {\n const cssInputs: Record<string, string> = {};\n const visited = new Set<string>();\n \n // Convert startFile to array and ensure we have valid file paths\n const toVisit = Array.isArray(startFile) ? startFile : [startFile];\n\n \n while (toVisit.length > 0) {\n const currentFile = toVisit.pop()!;\n if (visited.has(currentFile)) continue;\n visited.add(currentFile);\n \n const fileInfo = manifest[currentFile];\n if (!fileInfo) {\n continue;\n }\n\n // Add CSS files from the css property\n if (fileInfo.css) {\n for (const cssFile of fileInfo.css) {\n cssInputs[cssFile] = cssFile + '.css';\n }\n }\n\n // Add imports to visit\n if (fileInfo.imports) {\n for (const importPath of fileInfo.imports) {\n // Skip if we've already visited this import\n if (visited.has(importPath)) {\n continue;\n }\n \n // Add the import to visit\n toVisit.push(importPath);\n \n // Check if the imported file has CSS\n const importedFile = manifest[importPath];\n if (importedFile?.css) {\n for (const cssFile of importedFile.css) {\n cssInputs[cssFile] = cssFile + '.css';\n }\n }\n }\n }\n }\n\n return cssInputs;\n} "],"names":[],"mappings":";;;;;AAKO,SAAS,kBAAA,CACd,UACA,SACwB,EAAA;AACxB,EAAA,MAAM,YAAoC,EAAC;AAC3C,EAAM,MAAA,OAAA,uBAAc,GAAY,EAAA;AAGhC,EAAA,MAAM,UAAU,KAAM,CAAA,OAAA,CAAQ,SAAS,CAAI,GAAA,SAAA,GAAY,CAAC,SAAS,CAAA;AAGjE,EAAO,OAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACzB,IAAM,MAAA,WAAA,GAAc,QAAQ,GAAI,EAAA;AAChC,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,WAAW,CAAG,EAAA;AAC9B,IAAA,OAAA,CAAQ,IAAI,WAAW,CAAA;AAEvB,IAAM,MAAA,QAAA,GAAW,SAAS,WAAW,CAAA;AACrC,IAAA,IAAI,CAAC,QAAU,EAAA;AACb,MAAA;AAAA;AAIF,IAAA,IAAI,SAAS,GAAK,EAAA;AAChB,MAAW,KAAA,MAAA,OAAA,IAAW,SAAS,GAAK,EAAA;AAClC,QAAU,SAAA,CAAA,OAAO,IAAI,OAAU,GAAA,MAAA;AAAA;AACjC;AAIF,IAAA,IAAI,SAAS,OAAS,EAAA;AACpB,MAAW,KAAA,MAAA,UAAA,IAAc,SAAS,OAAS,EAAA;AAEzC,QAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAU,CAAG,EAAA;AAC3B,UAAA;AAAA;AAIF,QAAA,OAAA,CAAQ,KAAK,UAAU,CAAA;AAGvB,QAAM,MAAA,YAAA,GAAe,SAAS,UAAU,CAAA;AACxC,QAAA,IAAI,cAAc,GAAK,EAAA;AACrB,UAAW,KAAA,MAAA,OAAA,IAAW,aAAa,GAAK,EAAA;AACtC,YAAU,SAAA,CAAA,OAAO,IAAI,OAAU,GAAA,MAAA;AAAA;AACjC;AACF;AACF;AACF;AAGF,EAAO,OAAA,SAAA;AACT;;;;"}
@@ -26,7 +26,7 @@ export declare function collectViteModuleGraphCss<T extends PagePropOpt = PagePr
26
26
  moduleGraph: ModuleGraph | EnvironmentModuleGraph;
27
27
  onCss?: (cssContent: CssContent, parentUrl: string) => void;
28
28
  parentUrl?: string;
29
- handlerOptions: Pick<CreateHandlerOptions<T, InlineCSS>, "pagePath" | "moduleBaseURL" | "moduleBasePath" | "moduleRootPath" | "projectRoot" | "css" | "loader">;
29
+ handlerOptions: Pick<CreateHandlerOptions<T, InlineCSS>, "pagePath" | "moduleBaseURL" | "moduleBasePath" | "moduleRootPath" | "projectRoot" | "css" | "loader" | "normalizer" | "moduleID">;
30
30
  }): Promise<CollectViteModuleGraphCssResult>;
31
31
  export {};
32
32
  //# sourceMappingURL=collectViteModuleGraphCss.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectViteModuleGraphCss.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/collectViteModuleGraphCss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAG,YAAY,EAAG,WAAW,EAAE,MAAM,aAAa,CAAC;AAGjG,KAAK,+BAA+B,GAChC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEN,wBAAsB,yBAAyB,CAC7C,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,WAAW,EACX,KAAK,EACL,SAAS,EACT,cAAc,GACf,EAAE;IACD,WAAW,EAAE,WAAW,GAAG,sBAAsB,CAAC;IAClD,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,IAAI,CAClB,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,EAChC,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,QAAQ,CACX,CAAC;CACH,GAAG,OAAO,CAAC,+BAA+B,CAAC,CA4G3C"}
1
+ {"version":3,"file":"collectViteModuleGraphCss.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/collectViteModuleGraphCss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAG,YAAY,EAAG,WAAW,EAAE,MAAM,aAAa,CAAC;AAGjG,KAAK,+BAA+B,GAChC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEN,wBAAsB,yBAAyB,CAC7C,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,WAAW,EACX,KAAK,EACL,SAAS,EACT,cAAc,GACf,EAAE;IACD,WAAW,EAAE,WAAW,GAAG,sBAAsB,CAAC;IAClD,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,IAAI,CAClB,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,EAChC,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,UAAU,CACb,CAAC;CACH,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAgH3C"}
@@ -18,7 +18,9 @@ async function collectViteModuleGraphCss({
18
18
  moduleRootPath,
19
19
  projectRoot,
20
20
  css,
21
- loader
21
+ loader,
22
+ normalizer,
23
+ moduleID
22
24
  } = handlerOptions;
23
25
  if (!pagePath) return { type: "skip" };
24
26
  const cssFiles = /* @__PURE__ */ new Map();
@@ -56,7 +58,9 @@ async function collectViteModuleGraphCss({
56
58
  moduleBasePath,
57
59
  moduleRootPath,
58
60
  projectRoot,
59
- css
61
+ css,
62
+ normalizer,
63
+ moduleID
60
64
  }
61
65
  });
62
66
  cssFiles.set(mod?.url, cssContent);
@@ -1 +1 @@
1
- {"version":3,"file":"collectViteModuleGraphCss.js","sources":["../../../plugin/helpers/collectViteModuleGraphCss.ts"],"sourcesContent":["import type { EnvironmentModuleGraph, ModuleGraph } from \"vite\";\nimport type { CreateHandlerOptions, CssContent, InlineCssOpt, PagePropOpt } from \"../types.js\";\nimport { createCssProps } from \"./createCssProps.js\";\n\ntype CollectViteModuleGraphCssResult =\n | {\n type: \"success\";\n cssFiles: Map<string, CssContent>;\n error?: never;\n metrics: {\n cssFiles: number;\n processing: number;\n };\n }\n | {\n type: \"error\";\n error: Error;\n cssFiles?: never;\n metrics: {\n cssFiles: number;\n processing: number;\n };\n }\n | {\n type: \"skip\";\n cssFiles?: never;\n error?: never;\n metrics?: never;\n };\n\nexport async function collectViteModuleGraphCss<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n moduleGraph,\n onCss,\n parentUrl,\n handlerOptions,\n}: {\n moduleGraph: ModuleGraph | EnvironmentModuleGraph;\n onCss?: (cssContent: CssContent, parentUrl: string) => void;\n parentUrl?: string;\n handlerOptions: Pick<\n CreateHandlerOptions<T, InlineCSS>,\n | \"pagePath\"\n | \"moduleBaseURL\"\n | \"moduleBasePath\"\n | \"moduleRootPath\"\n | \"projectRoot\"\n | \"css\"\n | \"loader\"\n >;\n}): Promise<CollectViteModuleGraphCssResult> {\n const {\n pagePath,\n moduleBaseURL,\n moduleBasePath,\n moduleRootPath,\n projectRoot,\n css,\n loader,\n } = handlerOptions;\n if (!pagePath) return { type: \"skip\" };\n\n const cssFiles = new Map<string, CssContent>();\n const pageModule = await moduleGraph.getModuleByUrl(pagePath, true);\n if (!pageModule) {\n return { type: \"skip\" };\n }\n\n const seen = new Set<string>();\n const processing = new Set<string>();\n\n const walkModule = async (mod: any) => {\n if (!mod?.id) {\n // Module has no id\n return;\n }\n\n if (seen.has(mod.id)) {\n // Already processed module\n return;\n }\n\n if (processing.has(mod.id)) {\n // Circular dependency detected for module\n return;\n }\n\n processing.add(mod.id);\n // Processing module\n if (mod.id.endsWith(\".css\")) {\n const string = await loader(mod.id + \"?inline\").then(\n (m) => m?.[\"default\"] ?? \"\"\n );\n if (typeof string !== \"string\") {\n throw new Error(`CSS module ${mod.id}?inline did not return a string`);\n } else if (string === \"\") {\n throw new Error(`CSS module ${mod.id}?inline returned an empty string`);\n }\n const cssContent = createCssProps({\n id: mod?.url,\n code: string,\n userOptions: {\n moduleBaseURL: moduleBaseURL,\n moduleBasePath: moduleBasePath,\n moduleRootPath: moduleRootPath,\n projectRoot: projectRoot,\n css: css,\n },\n });\n cssFiles.set(mod?.url, cssContent);\n onCss?.(cssContent, parentUrl ?? pagePath);\n }\n\n if (mod.importedModules) {\n // Processing imports for module\n const importedModules = Array.from(mod.importedModules);\n // Found imported modules\n for (const importedMod of importedModules) {\n if (typeof importedMod === \"object\" && importedMod != null) {\n if (\n \"id\" in importedMod &&\n importedMod.id &&\n typeof importedMod.id === \"string\"\n ) {\n await walkModule(importedMod);\n } else {\n throw new Error(`Imported module has no id`);\n }\n } else {\n throw new Error(`Imported module is not an object`);\n }\n }\n }\n\n processing.delete(mod.id);\n seen.add(mod.id);\n };\n\n try {\n await walkModule(pageModule);\n } catch (error) {\n return {\n type: \"error\",\n error: error as Error,\n metrics: {\n cssFiles: cssFiles.size,\n processing: processing.size,\n },\n };\n }\n return {\n type: \"success\",\n cssFiles,\n metrics: {\n cssFiles: cssFiles.size,\n processing: processing.size,\n },\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectViteModuleGraphCss.js","sources":["../../../plugin/helpers/collectViteModuleGraphCss.ts"],"sourcesContent":["import type { EnvironmentModuleGraph, ModuleGraph } from \"vite\";\nimport type { CreateHandlerOptions, CssContent, InlineCssOpt, PagePropOpt } from \"../types.js\";\nimport { createCssProps } from \"./createCssProps.js\";\n\ntype CollectViteModuleGraphCssResult =\n | {\n type: \"success\";\n cssFiles: Map<string, CssContent>;\n error?: never;\n metrics: {\n cssFiles: number;\n processing: number;\n };\n }\n | {\n type: \"error\";\n error: Error;\n cssFiles?: never;\n metrics: {\n cssFiles: number;\n processing: number;\n };\n }\n | {\n type: \"skip\";\n cssFiles?: never;\n error?: never;\n metrics?: never;\n };\n\nexport async function collectViteModuleGraphCss<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n moduleGraph,\n onCss,\n parentUrl,\n handlerOptions,\n}: {\n moduleGraph: ModuleGraph | EnvironmentModuleGraph;\n onCss?: (cssContent: CssContent, parentUrl: string) => void;\n parentUrl?: string;\n handlerOptions: Pick<\n CreateHandlerOptions<T, InlineCSS>,\n | \"pagePath\"\n | \"moduleBaseURL\"\n | \"moduleBasePath\"\n | \"moduleRootPath\"\n | \"projectRoot\"\n | \"css\"\n | \"loader\"\n | \"normalizer\"\n | \"moduleID\"\n >;\n}): Promise<CollectViteModuleGraphCssResult> {\n const {\n pagePath,\n moduleBaseURL,\n moduleBasePath,\n moduleRootPath,\n projectRoot,\n css,\n loader,\n normalizer,\n moduleID,\n } = handlerOptions;\n if (!pagePath) return { type: \"skip\" };\n\n const cssFiles = new Map<string, CssContent>();\n const pageModule = await moduleGraph.getModuleByUrl(pagePath, true);\n if (!pageModule) {\n return { type: \"skip\" };\n }\n\n const seen = new Set<string>();\n const processing = new Set<string>();\n\n const walkModule = async (mod: any) => {\n if (!mod?.id) {\n // Module has no id\n return;\n }\n\n if (seen.has(mod.id)) {\n // Already processed module\n return;\n }\n\n if (processing.has(mod.id)) {\n // Circular dependency detected for module\n return;\n }\n\n processing.add(mod.id);\n // Processing module\n if (mod.id.endsWith(\".css\")) {\n const string = await loader(mod.id + \"?inline\").then(\n (m) => m?.[\"default\"] ?? \"\"\n );\n if (typeof string !== \"string\") {\n throw new Error(`CSS module ${mod.id}?inline did not return a string`);\n } else if (string === \"\") {\n throw new Error(`CSS module ${mod.id}?inline returned an empty string`);\n }\n const cssContent = createCssProps({\n id: mod?.url,\n code: string,\n userOptions: {\n moduleBaseURL: moduleBaseURL,\n moduleBasePath: moduleBasePath,\n moduleRootPath: moduleRootPath,\n projectRoot: projectRoot,\n css: css,\n normalizer: normalizer,\n moduleID: moduleID,\n },\n });\n cssFiles.set(mod?.url, cssContent);\n onCss?.(cssContent, parentUrl ?? pagePath);\n }\n\n if (mod.importedModules) {\n // Processing imports for module\n const importedModules = Array.from(mod.importedModules);\n // Found imported modules\n for (const importedMod of importedModules) {\n if (typeof importedMod === \"object\" && importedMod != null) {\n if (\n \"id\" in importedMod &&\n importedMod.id &&\n typeof importedMod.id === \"string\"\n ) {\n await walkModule(importedMod);\n } else {\n throw new Error(`Imported module has no id`);\n }\n } else {\n throw new Error(`Imported module is not an object`);\n }\n }\n }\n\n processing.delete(mod.id);\n seen.add(mod.id);\n };\n\n try {\n await walkModule(pageModule);\n } catch (error) {\n return {\n type: \"error\",\n error: error as Error,\n metrics: {\n cssFiles: cssFiles.size,\n processing: processing.size,\n },\n };\n }\n return {\n type: \"success\",\n cssFiles,\n metrics: {\n cssFiles: cssFiles.size,\n processing: processing.size,\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -22,6 +22,6 @@ import type { InlineCssOpt, PagePropOpt } from "../../server.js";
22
22
  export declare const createCssProps: <T extends PagePropOpt = PagePropOpt, InlineCSS extends InlineCssOpt = InlineCssOpt>({ id, code, userOptions, }: {
23
23
  id: string;
24
24
  code: string;
25
- userOptions: Pick<ResolvedUserOptions<T, InlineCSS>, "css" | "moduleBaseURL" | "moduleBasePath" | "moduleRootPath" | "projectRoot">;
25
+ userOptions: Pick<ResolvedUserOptions<T, InlineCSS>, "css" | "moduleBaseURL" | "moduleBasePath" | "moduleRootPath" | "projectRoot" | "normalizer" | "moduleID">;
26
26
  }) => CssContent<InlineCSS>;
27
27
  //# sourceMappingURL=createCssProps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCssProps.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createCssProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIjE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,WAAW,gBACrB,SAAS,SAAS,YAAY,6CAK7B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,IAAI,CACf,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,EAC/B,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,CAChB,CAAC;CACH,KAAG,UAAU,CAAC,SAAS,CA8EvB,CAAC"}
1
+ {"version":3,"file":"createCssProps.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createCssProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIjE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc,GACzB,CAAC,SAAS,WAAW,gBACrB,SAAS,SAAS,YAAY,6CAK7B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,IAAI,CACf,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,EAC/B,KAAK,GACL,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,UAAU,CACb,CAAC;CACH,KAAG,UAAU,CAAC,SAAS,CA+CvB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { relative, join } from 'node:path';
6
+ import { join } from 'node:path';
7
7
  import { deserializeRegExp } from './serializeUserOptions.js';
8
8
 
9
9
  const createCssProps = ({
@@ -11,14 +11,13 @@ const createCssProps = ({
11
11
  code,
12
12
  userOptions
13
13
  }) => {
14
- const { css, moduleBaseURL, moduleBasePath, moduleRootPath, projectRoot } = userOptions;
14
+ const { css, moduleRootPath } = userOptions;
15
15
  let inline = typeof code === "string" && code.length > css.inlineThreshold;
16
- const normalizedId = id.startsWith(projectRoot) ? relative(projectRoot, id) : id;
16
+ const [, value] = userOptions.normalizer(id);
17
+ const moduleID = userOptions.moduleID(value);
17
18
  if (css.inlinePatterns?.length) {
18
- const inlinePatterns = css.inlinePatterns?.map(
19
- (pattern) => typeof pattern === "string" ? deserializeRegExp(pattern) : pattern
20
- );
21
- if (inlinePatterns.some((pattern) => pattern.test?.(normalizedId))) {
19
+ const inlinePatterns = css.inlinePatterns;
20
+ if (inlinePatterns.some((pattern) => pattern.test?.(id))) {
22
21
  inline = true;
23
22
  }
24
23
  }
@@ -26,46 +25,26 @@ const createCssProps = ({
26
25
  const linkPatterns = css.linkPatterns?.map(
27
26
  (pattern) => typeof pattern === "string" ? deserializeRegExp(pattern) : pattern
28
27
  );
29
- if (linkPatterns.some((pattern) => pattern.test?.(normalizedId))) {
28
+ if (linkPatterns.some((pattern) => pattern.test?.(id))) {
30
29
  inline = false;
31
30
  }
32
31
  }
33
32
  if (inline) {
34
33
  return {
35
34
  type: "text/css",
36
- id: normalizedId,
35
+ id: moduleID,
37
36
  as: "style",
38
37
  children: code.trim(),
39
38
  ...process.env["NODE_ENV"] !== "production" ? {
40
- "data-vite-dev-id": join(projectRoot, moduleRootPath, normalizedId)
39
+ "data-vite-dev-id": join(moduleRootPath, moduleID)
41
40
  } : {}
42
41
  };
43
42
  }
44
- const joined = normalizedId.startsWith(moduleBasePath) ? normalizedId : join(moduleBasePath, normalizedId);
45
- const moduleBaseHasTrailingSlash = moduleBaseURL.endsWith("/");
46
- const joinedHasLeadingSlash = joined.startsWith("/");
47
- const safeParseURL = (() => {
48
- if (joined.startsWith(
49
- moduleBaseHasTrailingSlash ? moduleBaseURL.slice(0, -1) : moduleBaseURL
50
- )) {
51
- return joined;
52
- }
53
- try {
54
- if (moduleBaseURL.includes("//")) {
55
- return new URL(
56
- joinedHasLeadingSlash ? joined.slice(1) : joined,
57
- moduleBaseURL
58
- ).href;
59
- }
60
- } catch (error) {
61
- }
62
- return moduleBaseURL + (!moduleBaseHasTrailingSlash && !joinedHasLeadingSlash ? "/" : "") + (moduleBaseHasTrailingSlash ? joined.slice(1) : joined);
63
- })();
64
43
  return {
65
- id: normalizedId,
44
+ id: moduleID,
66
45
  as: "link",
67
46
  rel: "stylesheet",
68
- href: safeParseURL,
47
+ href: typeof process.env.VITE_PUBLIC_ORIGIN === "string" && process.env.VITE_PUBLIC_ORIGIN !== "" ? new URL(moduleID, process.env.VITE_PUBLIC_ORIGIN).href : moduleID,
69
48
  precedence: "high"
70
49
  };
71
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createCssProps.js","sources":["../../../plugin/helpers/createCssProps.tsx"],"sourcesContent":["import type { ResolvedUserOptions, CssContent } from \"../types.js\";\nimport type { InlineCssOpt, PagePropOpt } from \"../../server.js\";\nimport { join, relative } from \"node:path\";\nimport { deserializeRegExp } from \"./serializeUserOptions.js\";\n\n/**\n * Creates a CssContent object for a given path and css options\n *\n * Requirements:\n * - path is a string\n * - css is an object with the following properties:\n * - inlineCss: boolean\n * - purgeCss: boolean\n * - inlineThreshold: number\n * - inlinePatterns: RegExp[]\n * - linkPatterns: RegExp[]\n * based on the bundle, we retrieve the css content and check if it should be inlined or linked\n * inlined tags get the as:style and the children are the css content\n * linked tags get the as:link and the href is the path\n *\n * @param path - The path to the css file\n * @param css - The css options\n * @returns A CssContent object\n */\nexport const createCssProps = <\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n id,\n code,\n userOptions,\n}: {\n id: string;\n code: string;\n userOptions: Pick<\n ResolvedUserOptions<T, InlineCSS>,\n | \"css\"\n | \"moduleBaseURL\"\n | \"moduleBasePath\"\n | \"moduleRootPath\"\n | \"projectRoot\"\n >;\n}): CssContent<InlineCSS> => {\n const { css, moduleBaseURL, moduleBasePath, moduleRootPath, projectRoot } =\n userOptions;\n // If we don't have a bundle entry, create a linked CSS file\n let inline = typeof code === \"string\" && code.length > css.inlineThreshold;\n // Normalize the ID to be relative to src/\n const normalizedId = id.startsWith(projectRoot)\n ? relative(projectRoot, id)\n : id;\n\n if (css.inlinePatterns?.length) {\n // Deserialize RegExp patterns if they exist\n const inlinePatterns = css.inlinePatterns?.map((pattern) =>\n typeof pattern === \"string\" ? deserializeRegExp(pattern) : pattern\n );\n if (inlinePatterns.some((pattern) => pattern.test?.(normalizedId))) {\n inline = true;\n }\n }\n if (css.linkPatterns?.length) {\n const linkPatterns = css.linkPatterns?.map((pattern) =>\n typeof pattern === \"string\" ? deserializeRegExp(pattern) : pattern\n );\n if (linkPatterns.some((pattern) => pattern.test?.(normalizedId))) {\n inline = false;\n }\n }\n if (inline) {\n return {\n type: \"text/css\",\n id: normalizedId,\n as: \"style\",\n children: code.trim(),\n ...(process.env[\"NODE_ENV\"] !== \"production\"\n ? {\n \"data-vite-dev-id\": join(projectRoot, moduleRootPath, normalizedId),\n }\n : {}),\n } as CssContent<InlineCSS>;\n }\n const joined = normalizedId.startsWith(moduleBasePath)\n ? normalizedId\n : join(moduleBasePath, normalizedId);\n const moduleBaseHasTrailingSlash = moduleBaseURL.endsWith(\"/\");\n const joinedHasLeadingSlash = joined.startsWith(\"/\");\n const safeParseURL = (() => {\n if (\n joined.startsWith(\n moduleBaseHasTrailingSlash ? moduleBaseURL.slice(0, -1) : moduleBaseURL\n )\n ) {\n return joined;\n }\n try {\n if (moduleBaseURL.includes(\"//\")) {\n // relative to moduleBaseURL\n return new URL(\n joinedHasLeadingSlash ? joined.slice(1) : joined,\n moduleBaseURL\n ).href;\n }\n } catch (error) {}\n // if the url is not valid, we return the moduleBaseURL + the normalizedId\n // dont make it a argument of join or it will mangle something like http:// into http:/\n return (\n moduleBaseURL +\n (!moduleBaseHasTrailingSlash && !joinedHasLeadingSlash ? \"/\" : \"\") +\n (moduleBaseHasTrailingSlash ? joined.slice(1) : joined)\n );\n })();\n // Default case\n return {\n id: normalizedId,\n as: \"link\",\n rel: \"stylesheet\",\n href: safeParseURL,\n precedence: \"high\",\n } as CssContent<InlineCSS>;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createCssProps.js","sources":["../../../plugin/helpers/createCssProps.tsx"],"sourcesContent":["import type { ResolvedUserOptions, CssContent } from \"../types.js\";\nimport type { InlineCssOpt, PagePropOpt } from \"../../server.js\";\nimport { join } from \"node:path\";\nimport { deserializeRegExp } from \"./serializeUserOptions.js\";\n\n/**\n * Creates a CssContent object for a given path and css options\n *\n * Requirements:\n * - path is a string\n * - css is an object with the following properties:\n * - inlineCss: boolean\n * - purgeCss: boolean\n * - inlineThreshold: number\n * - inlinePatterns: RegExp[]\n * - linkPatterns: RegExp[]\n * based on the bundle, we retrieve the css content and check if it should be inlined or linked\n * inlined tags get the as:style and the children are the css content\n * linked tags get the as:link and the href is the path\n *\n * @param path - The path to the css file\n * @param css - The css options\n * @returns A CssContent object\n */\nexport const createCssProps = <\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n id,\n code,\n userOptions,\n}: {\n id: string;\n code: string;\n userOptions: Pick<\n ResolvedUserOptions<T, InlineCSS>,\n | \"css\"\n | \"moduleBaseURL\"\n | \"moduleBasePath\"\n | \"moduleRootPath\"\n | \"projectRoot\"\n | \"normalizer\"\n | \"moduleID\"\n >;\n}): CssContent<InlineCSS> => {\n const { css, moduleRootPath } = userOptions;\n // If we don't have a bundle entry, create a linked CSS file\n let inline = typeof code === \"string\" && code.length > css.inlineThreshold;\n // Normalize the ID to be relative to src/\n const [, value] = userOptions.normalizer(id);\n const moduleID = userOptions.moduleID(value);\n if (css.inlinePatterns?.length) {\n // Deserialize RegExp patterns if they exist\n const inlinePatterns = css.inlinePatterns;\n if (inlinePatterns.some((pattern) => pattern.test?.(id))) {\n inline = true;\n }\n }\n if (css.linkPatterns?.length) {\n const linkPatterns = css.linkPatterns?.map((pattern) =>\n typeof pattern === \"string\" ? deserializeRegExp(pattern) : pattern\n );\n if (linkPatterns.some((pattern) => pattern.test?.(id))) {\n inline = false;\n }\n }\n if (inline) {\n return {\n type: \"text/css\",\n id: moduleID,\n as: \"style\",\n children: code.trim(),\n ...(process.env[\"NODE_ENV\"] !== \"production\"\n ? {\n \"data-vite-dev-id\": join(moduleRootPath, moduleID),\n }\n : {}),\n } as CssContent<InlineCSS>;\n }\n // Default case\n return {\n id: moduleID,\n as: \"link\",\n rel: \"stylesheet\",\n href:\n typeof process.env.VITE_PUBLIC_ORIGIN === \"string\" &&\n process.env.VITE_PUBLIC_ORIGIN !== \"\"\n ? new URL(moduleID, process.env.VITE_PUBLIC_ORIGIN).href\n : moduleID,\n precedence: \"high\",\n } as CssContent<InlineCSS>;\n};\n"],"names":[],"mappings":";;;;;;;;AAwBO,MAAM,iBAAiB,CAG5B;AAAA,EACA,EAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAa6B,KAAA;AAC3B,EAAM,MAAA,EAAE,GAAK,EAAA,cAAA,EAAmB,GAAA,WAAA;AAEhC,EAAA,IAAI,SAAS,OAAO,IAAA,KAAS,QAAY,IAAA,IAAA,CAAK,SAAS,GAAI,CAAA,eAAA;AAE3D,EAAA,MAAM,GAAG,KAAK,CAAI,GAAA,WAAA,CAAY,WAAW,EAAE,CAAA;AAC3C,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,QAAA,CAAS,KAAK,CAAA;AAC3C,EAAI,IAAA,GAAA,CAAI,gBAAgB,MAAQ,EAAA;AAE9B,IAAA,MAAM,iBAAiB,GAAI,CAAA,cAAA;AAC3B,IAAI,IAAA,cAAA,CAAe,KAAK,CAAC,OAAA,KAAY,QAAQ,IAAO,GAAA,EAAE,CAAC,CAAG,EAAA;AACxD,MAAS,MAAA,GAAA,IAAA;AAAA;AACX;AAEF,EAAI,IAAA,GAAA,CAAI,cAAc,MAAQ,EAAA;AAC5B,IAAM,MAAA,YAAA,GAAe,IAAI,YAAc,EAAA,GAAA;AAAA,MAAI,CAAC,OAC1C,KAAA,OAAO,YAAY,QAAW,GAAA,iBAAA,CAAkB,OAAO,CAAI,GAAA;AAAA,KAC7D;AACA,IAAI,IAAA,YAAA,CAAa,KAAK,CAAC,OAAA,KAAY,QAAQ,IAAO,GAAA,EAAE,CAAC,CAAG,EAAA;AACtD,MAAS,MAAA,GAAA,KAAA;AAAA;AACX;AAEF,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,UAAA;AAAA,MACN,EAAI,EAAA,QAAA;AAAA,MACJ,EAAI,EAAA,OAAA;AAAA,MACJ,QAAA,EAAU,KAAK,IAAK,EAAA;AAAA,MACpB,GAAI,OAAA,CAAQ,GAAI,CAAA,UAAU,MAAM,YAC5B,GAAA;AAAA,QACE,kBAAA,EAAoB,IAAK,CAAA,cAAA,EAAgB,QAAQ;AAAA,UAEnD;AAAC,KACP;AAAA;AAGF,EAAO,OAAA;AAAA,IACL,EAAI,EAAA,QAAA;AAAA,IACJ,EAAI,EAAA,MAAA;AAAA,IACJ,GAAK,EAAA,YAAA;AAAA,IACL,MACE,OAAO,OAAA,CAAQ,GAAI,CAAA,kBAAA,KAAuB,YAC1C,OAAQ,CAAA,GAAA,CAAI,kBAAuB,KAAA,EAAA,GAC/B,IAAI,GAAI,CAAA,QAAA,EAAU,QAAQ,GAAI,CAAA,kBAAkB,EAAE,IAClD,GAAA,QAAA;AAAA,IACN,UAAY,EAAA;AAAA,GACd;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createRscStream.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createRscStream.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACnE,IAAqB,EACrB,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,QAAoB,EACpB,SAAqB,EACrB,KAAK,EACL,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,GACZ,EAAE,IAAI,CACL,oBAAoB,CAAC,CAAC,CAAC,EACrB,MAAM,GACN,eAAe,GACf,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,OAAO,GACP,uBAAuB,GACvB,cAAc,GACd,WAAW,GACX,UAAU,GACV,aAAa,CAChB,GAAG;IACF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5D,GACG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAiH1D"}
1
+ {"version":3,"file":"createRscStream.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createRscStream.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACnE,IAAqB,EACrB,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,QAAoB,EACpB,SAAqB,EACrB,KAAK,EACL,qBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,GACZ,EAAE,IAAI,CACL,oBAAoB,CAAC,CAAC,CAAC,EACrB,MAAM,GACN,eAAe,GACf,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,UAAU,GACV,OAAO,GACP,uBAAuB,GACvB,cAAc,GACd,WAAW,GACX,UAAU,GACV,aAAa,CAChB,GAAG;IACF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CAC5D,GACG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAkH1D"}
@@ -77,6 +77,7 @@ function createRscStream({
77
77
  moduleBasePath,
78
78
  {
79
79
  ...pipeableStreamOptions,
80
+ moduleBaseURL,
80
81
  onError(error, errorInfo) {
81
82
  const err = error instanceof Error ? error : new Error(String(error));
82
83
  streamError = err;
@@ -1 +1 @@
1
- {"version":3,"file":"createRscStream.js","sources":["../../../plugin/helpers/createRscStream.tsx"],"sourcesContent":["import { React, ReactDOMServer } from \"../vendor/vendor.server.js\";\nimport type {\n CreateHandlerOptions,\n StreamMetrics,\n PagePropOpt,\n} from \"../types.js\";\nimport { performance } from \"node:perf_hooks\";\n\nexport function createRscStream<T extends PagePropOpt = PagePropOpt>({\n Html = React.Fragment,\n PageComponent,\n pageProps,\n moduleBase,\n moduleRootPath,\n moduleBasePath,\n moduleBaseURL,\n cssFiles = new Map(),\n globalCss = new Map(),\n route,\n pipeableStreamOptions,\n CssCollector,\n manifest,\n onEvent,\n projectRoot,\n}: Pick<\n CreateHandlerOptions<T>,\n | \"Html\"\n | \"PageComponent\"\n | \"pageProps\"\n | \"moduleBase\"\n | \"moduleRootPath\"\n | \"moduleBasePath\"\n | \"moduleBaseURL\"\n | \"cssFiles\"\n | \"route\"\n | \"pipeableStreamOptions\"\n | \"CssCollector\"\n | \"globalCss\"\n | \"manifest\"\n | \"projectRoot\"\n> & {\n onEvent?: (event: \"error\" | \"postpone\", data: any) => void;\n}):\n | { type: \"success\"; stream: any; metrics: StreamMetrics }\n | { type: \"error\"; error: Error; metrics: StreamMetrics } {\n let errorCount = 0;\n let streamError: Error | null = null;\n const startTime = performance.now();\n try {\n const htmlIsFragment = Html === React.Fragment;\n const url = route.startsWith(moduleBaseURL) ? route : moduleBaseURL + route;\n\n if (!PageComponent) {\n return {\n type: \"error\",\n error: new Error(\"PageComponent is required\"),\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: 0,\n duration: 0,\n startTime: 0,\n },\n };\n }\n\n const elements = htmlIsFragment ? (\n <CssCollector\n key={route}\n as={React.Fragment}\n cssFiles={cssFiles}\n pageProps={pageProps}\n Page={PageComponent}\n />\n ) : (\n <Html\n moduleBase={moduleBase}\n moduleBaseURL={moduleBaseURL}\n moduleBasePath={moduleBasePath}\n moduleRootPath={moduleRootPath}\n projectRoot={projectRoot}\n url={url}\n route={route}\n pageProps={pageProps}\n cssFiles={cssFiles}\n globalCss={globalCss}\n CssCollector={CssCollector}\n manifest={manifest}\n Page={PageComponent}\n as={\"div\"}\n />\n );\n const stream = ReactDOMServer.renderToPipeableStream(\n elements,\n moduleBasePath,\n {\n ...pipeableStreamOptions,\n onError(error: Error, errorInfo: any) {\n const err = error instanceof Error ? error : new Error(String(error));\n streamError = err;\n onEvent?.(\"error\", { route, error: err, errorInfo });\n errorCount++;\n },\n onPostpone(reason: string) {\n onEvent?.(\"postpone\", { route, reason });\n },\n }\n );\n // If we have a stream error, return it immediately\n if (streamError) {\n return {\n type: \"error\",\n error: streamError,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n }\n\n return {\n type: \"success\",\n stream,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n onEvent?.(\"error\", { route, error: err });\n return {\n type: \"error\",\n error: err,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: errorCount + 1,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createRscStream.js","sources":["../../../plugin/helpers/createRscStream.tsx"],"sourcesContent":["import { React, ReactDOMServer } from \"../vendor/vendor.server.js\";\nimport type {\n CreateHandlerOptions,\n StreamMetrics,\n PagePropOpt,\n} from \"../types.js\";\nimport { performance } from \"node:perf_hooks\";\n\nexport function createRscStream<T extends PagePropOpt = PagePropOpt>({\n Html = React.Fragment,\n PageComponent,\n pageProps,\n moduleBase,\n moduleRootPath,\n moduleBasePath,\n moduleBaseURL,\n cssFiles = new Map(),\n globalCss = new Map(),\n route,\n pipeableStreamOptions,\n CssCollector,\n manifest,\n onEvent,\n projectRoot,\n}: Pick<\n CreateHandlerOptions<T>,\n | \"Html\"\n | \"PageComponent\"\n | \"pageProps\"\n | \"moduleBase\"\n | \"moduleRootPath\"\n | \"moduleBasePath\"\n | \"moduleBaseURL\"\n | \"cssFiles\"\n | \"route\"\n | \"pipeableStreamOptions\"\n | \"CssCollector\"\n | \"globalCss\"\n | \"manifest\"\n | \"projectRoot\"\n> & {\n onEvent?: (event: \"error\" | \"postpone\", data: any) => void;\n}):\n | { type: \"success\"; stream: any; metrics: StreamMetrics }\n | { type: \"error\"; error: Error; metrics: StreamMetrics } {\n let errorCount = 0;\n let streamError: Error | null = null;\n const startTime = performance.now();\n try {\n const htmlIsFragment = Html === React.Fragment;\n const url = route.startsWith(moduleBaseURL) ? route : moduleBaseURL + route;\n\n if (!PageComponent) {\n return {\n type: \"error\",\n error: new Error(\"PageComponent is required\"),\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: 0,\n duration: 0,\n startTime: 0,\n },\n };\n }\n\n const elements = htmlIsFragment ? (\n <CssCollector\n key={route}\n as={React.Fragment}\n cssFiles={cssFiles}\n pageProps={pageProps}\n Page={PageComponent}\n />\n ) : (\n <Html\n moduleBase={moduleBase}\n moduleBaseURL={moduleBaseURL}\n moduleBasePath={moduleBasePath}\n moduleRootPath={moduleRootPath}\n projectRoot={projectRoot}\n url={url}\n route={route}\n pageProps={pageProps}\n cssFiles={cssFiles}\n globalCss={globalCss}\n CssCollector={CssCollector}\n manifest={manifest}\n Page={PageComponent}\n as={\"div\"}\n />\n );\n const stream = ReactDOMServer.renderToPipeableStream(\n elements,\n moduleBasePath,\n {\n ...pipeableStreamOptions,\n moduleBaseURL: moduleBaseURL,\n onError(error: Error, errorInfo: any) {\n const err = error instanceof Error ? error : new Error(String(error));\n streamError = err;\n onEvent?.(\"error\", { route, error: err, errorInfo });\n errorCount++;\n },\n onPostpone(reason: string) {\n onEvent?.(\"postpone\", { route, reason });\n },\n }\n );\n // If we have a stream error, return it immediately\n if (streamError) {\n return {\n type: \"error\",\n error: streamError,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n }\n\n return {\n type: \"success\",\n stream,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n onEvent?.(\"error\", { route, error: err });\n return {\n type: \"error\",\n error: err,\n metrics: {\n chunks: 0,\n bytes: 0,\n backpressureCount: 0,\n drainCount: 0,\n errorCount: errorCount + 1,\n duration: Date.now() - startTime,\n startTime: startTime,\n },\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAQO,SAAS,eAAqD,CAAA;AAAA,EACnE,OAAO,KAAM,CAAA,QAAA;AAAA,EACb,aAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA,uBAAe,GAAI,EAAA;AAAA,EACnB,SAAA,uBAAgB,GAAI,EAAA;AAAA,EACpB,KAAA;AAAA,EACA,qBAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAoB4D,EAAA;AAC1D,EAAA,IAAI,UAAa,GAAA,CAAA;AACjB,EAAA,IAAI,WAA4B,GAAA,IAAA;AAChC,EAAM,MAAA,SAAA,GAAY,YAAY,GAAI,EAAA;AAClC,EAAI,IAAA;AACF,IAAM,MAAA,cAAA,GAAiB,SAAS,KAAM,CAAA,QAAA;AACtC,IAAA,MAAM,MAAM,KAAM,CAAA,UAAA,CAAW,aAAa,CAAA,GAAI,QAAQ,aAAgB,GAAA,KAAA;AAEtE,IAAA,IAAI,CAAC,aAAe,EAAA;AAClB,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,KAAA,EAAO,IAAI,KAAA,CAAM,2BAA2B,CAAA;AAAA,QAC5C,OAAS,EAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,iBAAmB,EAAA,CAAA;AAAA,UACnB,UAAY,EAAA,CAAA;AAAA,UACZ,UAAY,EAAA,CAAA;AAAA,UACZ,QAAU,EAAA,CAAA;AAAA,UACV,SAAW,EAAA;AAAA;AACb,OACF;AAAA;AAGF,IAAA,MAAM,WAAW,cACf,mBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,KAAA;AAAA,QACL,IAAI,KAAM,CAAA,QAAA;AAAA,QACV,QAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAM,EAAA;AAAA;AAAA,KAGR,mBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,UAAA;AAAA,QACA,aAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA,GAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAM,EAAA,aAAA;AAAA,QACN,EAAI,EAAA;AAAA;AAAA,KACN;AAEF,IAAA,MAAM,SAAS,cAAe,CAAA,sBAAA;AAAA,MAC5B,QAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,QACE,GAAG,qBAAA;AAAA,QACH,aAAA;AAAA,QACA,OAAA,CAAQ,OAAc,SAAgB,EAAA;AACpC,UAAM,MAAA,GAAA,GAAM,iBAAiB,KAAQ,GAAA,KAAA,GAAQ,IAAI,KAAM,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACpE,UAAc,WAAA,GAAA,GAAA;AACd,UAAA,OAAA,GAAU,SAAS,EAAE,KAAA,EAAO,KAAO,EAAA,GAAA,EAAK,WAAW,CAAA;AACnD,UAAA,UAAA,EAAA;AAAA,SACF;AAAA,QACA,WAAW,MAAgB,EAAA;AACzB,UAAA,OAAA,GAAU,UAAY,EAAA,EAAE,KAAO,EAAA,MAAA,EAAQ,CAAA;AAAA;AACzC;AACF,KACF;AAEA,IAAA,IAAI,WAAa,EAAA;AACf,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,KAAO,EAAA,WAAA;AAAA,QACP,OAAS,EAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,iBAAmB,EAAA,CAAA;AAAA,UACnB,UAAY,EAAA,CAAA;AAAA,UACZ,UAAA;AAAA,UACA,QAAA,EAAU,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA;AAAA,UACvB;AAAA;AACF,OACF;AAAA;AAGF,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,MAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,KAAO,EAAA,CAAA;AAAA,QACP,iBAAmB,EAAA,CAAA;AAAA,QACnB,UAAY,EAAA,CAAA;AAAA,QACZ,UAAA;AAAA,QACA,QAAA,EAAU,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA;AAAA,QACvB;AAAA;AACF,KACF;AAAA,WACO,KAAO,EAAA;AACd,IAAM,MAAA,GAAA,GAAM,iBAAiB,KAAQ,GAAA,KAAA,GAAQ,IAAI,KAAM,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACpE,IAAA,OAAA,GAAU,OAAS,EAAA,EAAE,KAAO,EAAA,KAAA,EAAO,KAAK,CAAA;AACxC,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA,GAAA;AAAA,MACP,OAAS,EAAA;AAAA,QACP,MAAQ,EAAA,CAAA;AAAA,QACR,KAAO,EAAA,CAAA;AAAA,QACP,iBAAmB,EAAA,CAAA;AAAA,QACnB,UAAY,EAAA,CAAA;AAAA,QACZ,YAAY,UAAa,GAAA,CAAA;AAAA,QACzB,QAAA,EAAU,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA;AAAA,QACvB;AAAA;AACF,KACF;AAAA;AAEJ;;;;"}
@@ -1,10 +1,4 @@
1
- import type { InputNormalizer } from "../types.js";
2
- type CreateInputNormalizerProps = {
3
- root: string;
4
- preserveModulesRoot?: string | undefined;
5
- removeExtension?: boolean | RegExp | string | ((path: string) => boolean);
6
- moduleBasePath?: string | undefined;
7
- };
1
+ import type { CreateInputNormalizerProps, InputNormalizer } from "../types.js";
8
2
  /**
9
3
  * @description Create a function that normalizes the input
10
4
  * @param root - The root of the project
@@ -13,5 +7,4 @@ type CreateInputNormalizerProps = {
13
7
  * @returns A function that normalizes the input
14
8
  */
15
9
  export declare function createInputNormalizer({ root, moduleBasePath, preserveModulesRoot, removeExtension, }: CreateInputNormalizerProps): InputNormalizer;
16
- export {};
17
10
  //# sourceMappingURL=inputNormalizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputNormalizer.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/inputNormalizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AAMpE,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAC1E,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AA+JF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,cAAc,EACd,mBAA+B,EAC/B,eAA8D,GAC/D,EAAE,0BAA0B,GAAG,eAAe,CAuE9C"}
1
+ {"version":3,"file":"inputNormalizer.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/inputNormalizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AAqKhG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,cAAgD,EAChD,mBAA+B,EAC/B,eAA8D,GAC/D,EAAE,0BAA0B,GAAG,eAAe,CAmE9C"}
@@ -117,7 +117,7 @@ const createPathNormalizer = ({
117
117
  };
118
118
  function createInputNormalizer({
119
119
  root,
120
- moduleBasePath,
120
+ moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH,
121
121
  preserveModulesRoot = undefined,
122
122
  removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension
123
123
  }) {
@@ -164,12 +164,9 @@ function createInputNormalizer({
164
164
  }
165
165
  stashedNormalizer = (input) => {
166
166
  const [key, path2] = normalizeInput(input);
167
- const normalizedPath = path2.startsWith("/") ? path2.slice(1) : path2;
167
+ const normalizedPath = path2.startsWith(moduleBasePath) ? path2.slice(moduleBasePath.length) : path2;
168
168
  const virtualPrefix = key.match(/^\0+/) ?? "";
169
169
  const finalPath = virtualPrefix ? virtualPrefix.length && normalizedPath.startsWith(virtualPrefix[0]) ? normalizedPath : virtualPrefix.length ? virtualPrefix[0] + normalizedPath : normalizedPath : normalizedPath;
170
- if (virtualPrefix) {
171
- return ["", ""];
172
- }
173
170
  return [key, finalPath];
174
171
  };
175
172
  return stashedNormalizer;
@@ -1 +1 @@
1
- {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { normalizePath } from \"vite\";\nimport type { InputNormalizer, NormalizerInput } from \"../types.js\";\nimport path, { join, sep } from \"path\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nlet stashedNormalizer: InputNormalizer | null = null;\n\ntype CreateInputNormalizerProps = {\n root: string;\n preserveModulesRoot?: string | undefined;\n removeExtension?: boolean | RegExp | string | ((path: string) => boolean);\n moduleBasePath?: string | undefined;\n};\n\nconst resolveExtensionOptions = (\n removeExtension: CreateInputNormalizerProps[\"removeExtension\"]\n) => {\n if (typeof removeExtension === \"boolean\") {\n if (removeExtension) {\n return (path: string) => {\n const extensionIndex = path.lastIndexOf(\".\");\n return extensionIndex !== -1 ? path.slice(0, extensionIndex) : path;\n };\n }\n return (path: string) => path;\n }\n if (typeof removeExtension === \"string\") {\n return (path: string) => path.replace(removeExtension, \"\");\n }\n if (removeExtension instanceof RegExp) {\n return (path: string) =>\n removeExtension.test(path) ? path.replace(removeExtension, \"\") : path;\n }\n if (typeof removeExtension === \"function\") {\n return (path: string) => {\n const extIndex = path.lastIndexOf(\".\");\n if (extIndex !== -1) {\n const extension = path.slice(extIndex);\n if (removeExtension(extension)) {\n return path.slice(0, extIndex);\n }\n }\n return path;\n };\n }\n return (path: string) => path;\n};\n\nconst resolveRootOption = (\n root: CreateInputNormalizerProps[\"root\"],\n preserveModulesRoot: CreateInputNormalizerProps[\"preserveModulesRoot\"]\n) => {\n if (typeof preserveModulesRoot === \"string\" && typeof root === \"string\") {\n const normalizedPreserveModulesRoot = normalizePath(preserveModulesRoot);\n if (root !== \"\" && normalizedPreserveModulesRoot.startsWith(root)) {\n return normalizedPreserveModulesRoot.slice(root.length + 1);\n }\n return \"\";\n } else if (\n typeof preserveModulesRoot === \"string\" &&\n typeof root !== \"string\"\n ) {\n return normalizePath(preserveModulesRoot);\n }\n return \"\";\n};\nconst createKeyNormalizer =\n ({\n root: normalizedRoot,\n preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n handleExtension: (path: string) => string;\n moduleBasePath: string | undefined;\n }) =>\n (key: string) => {\n if (key.includes(\"?\")) {\n key = key.split(\"?\")[0];\n }\n\n // Handle virtual modules first\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n const actualKey = virtualPrefix ? key.slice(virtualPrefix[0].length) : key;\n\n let moduleId = normalizePath(actualKey);\n\n // Normalize root path to handle both absolute and relative paths\n const normalizedRootPath = normalizePath(normalizedRoot);\n if (moduleId.startsWith(normalizedRootPath)) {\n moduleId = moduleId.slice(normalizedRootPath.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n moduleId = moduleId.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? moduleId.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : moduleId;\n }\n\n moduleId = handleExtension(moduleId);\n while (moduleId.startsWith(\"/\") || moduleId.startsWith(\".\")) {\n moduleId = moduleId.slice(1);\n }\n while (moduleId.endsWith(\"/\")) {\n moduleId = moduleId.slice(0, -1);\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n moduleId = moduleId.startsWith(preserveModulesRoot)\n ? moduleId.slice(preserveModulesRoot.length + path.sep.length)\n : moduleId;\n }\n\n // Add virtual prefix back\n return virtualPrefix + moduleId;\n };\n\nconst createPathNormalizer =\n ({\n root,\n preserveModulesRoot,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n moduleBasePath: string | undefined;\n }) =>\n (path: string) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n if (path.includes(\"?\")) {\n path = path.split(\"?\")[0];\n }\n let normalPath = normalizePath(path);\n if (normalPath.startsWith(root)) {\n normalPath = normalPath.slice(root.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n normalPath = normalPath.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? normalPath.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : normalPath;\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n normalPath = normalPath.startsWith(preserveModulesRoot)\n ? normalPath.slice(preserveModulesRoot.length)\n : normalPath;\n }\n while (normalPath.endsWith(\"/\")) {\n normalPath = normalPath.slice(0, -1);\n }\n return normalPath;\n };\n/**\n * @description Create a function that normalizes the input\n * @param root - The root of the project\n * @param preserveModulesRoot - The root of the preserve modules\n * @param removeExtension - Whether to remove the extension of the file\n * @returns A function that normalizes the input\n */\nexport function createInputNormalizer({\n root,\n moduleBasePath,\n preserveModulesRoot = undefined,\n removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension,\n}: CreateInputNormalizerProps): InputNormalizer {\n if (stashedNormalizer) {\n return stashedNormalizer;\n }\n const relativeRoot = resolveRootOption(root, preserveModulesRoot);\n const handleExtension = resolveExtensionOptions(removeExtension);\n const normalizeEntryKey = createKeyNormalizer({\n root: root,\n preserveModulesRoot: preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n });\n const normalizeEntryPath = createPathNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\n moduleBasePath,\n });\n function normalizeInput(id: NormalizerInput): [string, string] {\n // Normalize both paths to use POSIX separators\n if (Array.isArray(id)) {\n const [key, path] = id;\n if (typeof key === \"string\" && Array.isArray(path) && path.length === 2) {\n const isNumber = !isNaN(Number(key));\n if (isNumber) {\n // ignore it\n return normalizeInput([path[0], path[1]]);\n }\n return normalizeInput([join(key, path[0]), path[1]]);\n }\n if (typeof key !== \"string\" || typeof path !== \"string\") {\n throw new Error(`Invalid input: ${JSON.stringify(id)}`);\n }\n return [normalizeEntryKey(key), normalizeEntryPath(path)];\n } else if (typeof id === \"string\") {\n // Return both the normalized ID and original normalized path\n return [normalizeEntryKey(id), normalizeEntryPath(id)];\n } else if (\n typeof id === \"object\" &&\n id !== null &&\n \"$$typeof\" in id &&\n \"$$id\" in id &&\n typeof id.$$id === \"string\"\n ) {\n const normalized: [string, string] = [\n normalizeEntryKey(id.$$id),\n normalizeEntryPath(id.$$id),\n ];\n return normalized;\n }\n throw new Error(`Invalid input type: ${typeof id}`);\n }\n\n stashedNormalizer = (input: NormalizerInput): [string, string] => {\n const [key, path] = normalizeInput(input);\n // Apply the same normalization to both key and path\n const normalizedPath = path.startsWith(\"/\") ? path.slice(1) : path;\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n // If key has virtual prefix, ensure path has it too\n const finalPath = virtualPrefix\n ? virtualPrefix.length && normalizedPath.startsWith(virtualPrefix[0])\n ? normalizedPath\n : virtualPrefix.length\n ? virtualPrefix[0] + normalizedPath\n : normalizedPath\n : normalizedPath;\n if(virtualPrefix){\n return ['', ''];\n }\n return [key, finalPath];\n };\n return stashedNormalizer;\n}\n"],"names":["path"],"mappings":"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"}
1
+ {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { normalizePath } from \"vite\";\nimport type { CreateInputNormalizerProps, InputNormalizer, NormalizerInput } from \"../types.js\";\nimport path, { join, sep } from \"path\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nlet stashedNormalizer: InputNormalizer | null = null;\n\n\nconst resolveExtensionOptions = (\n removeExtension: CreateInputNormalizerProps[\"removeExtension\"]\n) => {\n if (typeof removeExtension === \"boolean\") {\n if (removeExtension) {\n return (path: string) => {\n const extensionIndex = path.lastIndexOf(\".\");\n return extensionIndex !== -1 ? path.slice(0, extensionIndex) : path;\n };\n }\n return (path: string) => path;\n }\n if (typeof removeExtension === \"string\") {\n return (path: string) => path.replace(removeExtension, \"\");\n }\n if (removeExtension instanceof RegExp) {\n return (path: string) =>\n removeExtension.test(path) ? path.replace(removeExtension, \"\") : path;\n }\n if (typeof removeExtension === \"function\") {\n return (path: string) => {\n const extIndex = path.lastIndexOf(\".\");\n if (extIndex !== -1) {\n const extension = path.slice(extIndex);\n if (removeExtension(extension)) {\n return path.slice(0, extIndex);\n }\n }\n return path;\n };\n }\n return (path: string) => path;\n};\n\nconst resolveRootOption = (\n root: CreateInputNormalizerProps[\"root\"],\n preserveModulesRoot: CreateInputNormalizerProps[\"preserveModulesRoot\"]\n) => {\n if (typeof preserveModulesRoot === \"string\" && typeof root === \"string\") {\n const normalizedPreserveModulesRoot = normalizePath(preserveModulesRoot);\n if (root !== \"\" && normalizedPreserveModulesRoot.startsWith(root)) {\n return normalizedPreserveModulesRoot.slice(root.length + 1);\n }\n return \"\";\n } else if (\n typeof preserveModulesRoot === \"string\" &&\n typeof root !== \"string\"\n ) {\n return normalizePath(preserveModulesRoot);\n }\n return \"\";\n};\n\nconst createKeyNormalizer =\n ({\n root: normalizedRoot,\n preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n handleExtension: (path: string) => string;\n moduleBasePath: string | undefined;\n }) =>\n (key: string) => {\n if (key.includes(\"?\")) {\n key = key.split(\"?\")[0];\n }\n\n // Handle virtual modules first\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n const actualKey = virtualPrefix ? key.slice(virtualPrefix[0].length) : key;\n\n let moduleId = normalizePath(actualKey);\n\n // Normalize root path to handle both absolute and relative paths\n const normalizedRootPath = normalizePath(normalizedRoot);\n if (moduleId.startsWith(normalizedRootPath)) {\n moduleId = moduleId.slice(normalizedRootPath.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n moduleId = moduleId.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? moduleId.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : moduleId;\n }\n\n moduleId = handleExtension(moduleId);\n while (moduleId.startsWith(\"/\") || moduleId.startsWith(\".\")) {\n moduleId = moduleId.slice(1);\n }\n while (moduleId.endsWith(\"/\")) {\n moduleId = moduleId.slice(0, -1);\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n moduleId = moduleId.startsWith(preserveModulesRoot)\n ? moduleId.slice(preserveModulesRoot.length + path.sep.length)\n : moduleId;\n }\n\n // Add virtual prefix back\n return virtualPrefix + moduleId;\n };\n\nconst createPathNormalizer =\n ({\n root,\n preserveModulesRoot,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n moduleBasePath: string | undefined;\n }) =>\n (path: string) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n if (path.includes(\"?\")) {\n path = path.split(\"?\")[0];\n }\n let normalPath = normalizePath(path);\n if (normalPath.startsWith(root)) {\n normalPath = normalPath.slice(root.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n normalPath = normalPath.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? normalPath.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : normalPath;\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n normalPath = normalPath.startsWith(preserveModulesRoot)\n ? normalPath.slice(preserveModulesRoot.length)\n : normalPath;\n }\n while (normalPath.endsWith(\"/\")) {\n normalPath = normalPath.slice(0, -1);\n }\n return normalPath;\n };\n/**\n * @description Create a function that normalizes the input\n * @param root - The root of the project\n * @param preserveModulesRoot - The root of the preserve modules\n * @param removeExtension - Whether to remove the extension of the file\n * @returns A function that normalizes the input\n */\nexport function createInputNormalizer({\n root,\n moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH,\n preserveModulesRoot = undefined,\n removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension,\n}: CreateInputNormalizerProps): InputNormalizer {\n if (stashedNormalizer) {\n return stashedNormalizer;\n }\n const relativeRoot = resolveRootOption(root, preserveModulesRoot);\n const handleExtension = resolveExtensionOptions(removeExtension);\n const normalizeEntryKey = createKeyNormalizer({\n root: root,\n preserveModulesRoot: preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n });\n const normalizeEntryPath = createPathNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\n moduleBasePath,\n });\n function normalizeInput(id: NormalizerInput): [string, string] {\n // Normalize both paths to use POSIX separators\n if (Array.isArray(id)) {\n const [key, path] = id;\n if (typeof key === \"string\" && Array.isArray(path) && path.length === 2) {\n const isNumber = !isNaN(Number(key));\n if (isNumber) {\n // ignore it\n return normalizeInput([path[0], path[1]]);\n }\n return normalizeInput([join(key, path[0]), path[1]]);\n }\n if (typeof key !== \"string\" || typeof path !== \"string\") {\n throw new Error(`Invalid input: ${JSON.stringify(id)}`);\n }\n return [normalizeEntryKey(key), normalizeEntryPath(path)];\n } else if (typeof id === \"string\") {\n // Return both the normalized ID and original normalized path\n return [normalizeEntryKey(id), normalizeEntryPath(id)];\n } else if (\n typeof id === \"object\" &&\n id !== null &&\n \"$$typeof\" in id &&\n \"$$id\" in id &&\n typeof id.$$id === \"string\"\n ) {\n const normalized: [string, string] = [\n normalizeEntryKey(id.$$id),\n normalizeEntryPath(id.$$id),\n ];\n return normalized;\n }\n throw new Error(`Invalid input type: ${typeof id}`);\n }\n\n stashedNormalizer = (input: NormalizerInput): [string, string] => {\n const [key, path] = normalizeInput(input);\n const normalizedPath = path.startsWith(moduleBasePath) ? path.slice(moduleBasePath.length) : path;\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n // If key has virtual prefix, ensure path has it too\n const finalPath = virtualPrefix\n ? virtualPrefix.length && normalizedPath.startsWith(virtualPrefix[0])\n ? normalizedPath\n : virtualPrefix.length\n ? virtualPrefix[0] + normalizedPath\n : normalizedPath\n : normalizedPath;\n return [key, finalPath];\n };\n return stashedNormalizer;\n}\n"],"names":["path"],"mappings":";;;;;;;;;AAKA,IAAI,iBAA4C,GAAA,IAAA;AAGhD,MAAM,uBAAA,GAA0B,CAC9B,eACG,KAAA;AACH,EAAI,IAAA,OAAO,oBAAoB,SAAW,EAAA;AACxC,IAAA,IAAI,eAAiB,EAAA;AACnB,MAAA,OAAO,CAACA,KAAiB,KAAA;AACvB,QAAM,MAAA,cAAA,GAAiBA,KAAK,CAAA,WAAA,CAAY,GAAG,CAAA;AAC3C,QAAA,OAAO,mBAAmB,EAAKA,GAAAA,KAAAA,CAAK,KAAM,CAAA,CAAA,EAAG,cAAc,CAAIA,GAAAA,KAAAA;AAAA,OACjE;AAAA;AAEF,IAAA,OAAO,CAACA,KAAiBA,KAAAA,KAAAA;AAAA;AAE3B,EAAI,IAAA,OAAO,oBAAoB,QAAU,EAAA;AACvC,IAAA,OAAO,CAACA,KAAAA,KAAiBA,KAAK,CAAA,OAAA,CAAQ,iBAAiB,EAAE,CAAA;AAAA;AAE3D,EAAA,IAAI,2BAA2B,MAAQ,EAAA;AACrC,IAAO,OAAA,CAACA,KACN,KAAA,eAAA,CAAgB,IAAKA,CAAAA,KAAI,IAAIA,KAAK,CAAA,OAAA,CAAQ,eAAiB,EAAA,EAAE,CAAIA,GAAAA,KAAAA;AAAA;AAErE,EAAI,IAAA,OAAO,oBAAoB,UAAY,EAAA;AACzC,IAAA,OAAO,CAACA,KAAiB,KAAA;AACvB,MAAM,MAAA,QAAA,GAAWA,KAAK,CAAA,WAAA,CAAY,GAAG,CAAA;AACrC,MAAA,IAAI,aAAa,EAAI,EAAA;AACnB,QAAM,MAAA,SAAA,GAAYA,KAAK,CAAA,KAAA,CAAM,QAAQ,CAAA;AACrC,QAAI,IAAA,eAAA,CAAgB,SAAS,CAAG,EAAA;AAC9B,UAAOA,OAAAA,KAAAA,CAAK,KAAM,CAAA,CAAA,EAAG,QAAQ,CAAA;AAAA;AAC/B;AAEF,MAAOA,OAAAA,KAAAA;AAAA,KACT;AAAA;AAEF,EAAA,OAAO,CAACA,KAAiBA,KAAAA,KAAAA;AAC3B,CAAA;AAEA,MAAM,iBAAA,GAAoB,CACxB,IAAA,EACA,mBACG,KAAA;AACH,EAAA,IAAI,OAAO,mBAAA,KAAwB,QAAY,IAAA,OAAO,SAAS,QAAU,EAAA;AACvE,IAAM,MAAA,6BAAA,GAAgC,cAAc,mBAAmB,CAAA;AACvE,IAAA,IAAI,IAAS,KAAA,EAAA,IAAM,6BAA8B,CAAA,UAAA,CAAW,IAAI,CAAG,EAAA;AACjE,MAAA,OAAO,6BAA8B,CAAA,KAAA,CAAM,IAAK,CAAA,MAAA,GAAS,CAAC,CAAA;AAAA;AAE5D,IAAO,OAAA,EAAA;AAAA,aAEP,OAAO,mBAAA,KAAwB,QAC/B,IAAA,OAAO,SAAS,QAChB,EAAA;AACA,IAAA,OAAO,cAAc,mBAAmB,CAAA;AAAA;AAE1C,EAAO,OAAA,EAAA;AACT,CAAA;AAEA,MAAM,sBACJ,CAAC;AAAA,EACC,IAAM,EAAA,cAAA;AAAA,EACN,mBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAMA,CAAC,GAAgB,KAAA;AACf,EAAI,IAAA,GAAA,CAAI,QAAS,CAAA,GAAG,CAAG,EAAA;AACrB,IAAA,GAAA,GAAM,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA;AAAA;AAIxB,EAAA,MAAM,aAAgB,GAAA,GAAA,CAAI,KAAM,CAAA,MAAM,CAAK,IAAA,EAAA;AAC3C,EAAM,MAAA,SAAA,GAAY,gBAAgB,GAAI,CAAA,KAAA,CAAM,cAAc,CAAC,CAAA,CAAE,MAAM,CAAI,GAAA,GAAA;AAEvE,EAAI,IAAA,QAAA,GAAW,cAAc,SAAS,CAAA;AAGtC,EAAM,MAAA,kBAAA,GAAqB,cAAc,cAAc,CAAA;AACvD,EAAI,IAAA,QAAA,CAAS,UAAW,CAAA,kBAAkB,CAAG,EAAA;AAC3C,IAAW,QAAA,GAAA,QAAA,CAAS,KAAM,CAAA,kBAAA,CAAmB,MAAM,CAAA;AAAA;AAErD,EAAA,IACE,OAAO,cAAmB,KAAA,QAAA,IAC1B,cAAmB,KAAA,EAAA,IACnB,mBAAmB,GACnB,EAAA;AACA,IAAA,QAAA,GAAW,QAAS,CAAA,UAAA;AAAA,MAClB,cAAe,CAAA,QAAA,CAAS,GAAG,CAAA,GAAI,iBAAiB,cAAiB,GAAA;AAAA,QAE/D,QAAS,CAAA,KAAA;AAAA,MACP,eAAe,MACZ,IAAA,cAAA,CAAe,SAAS,GAAG,CAAA,GAAI,IAAI,GAAI,CAAA,MAAA;AAAA,KAE5C,GAAA,QAAA;AAAA;AAGN,EAAA,QAAA,GAAW,gBAAgB,QAAQ,CAAA;AACnC,EAAA,OAAO,SAAS,UAAW,CAAA,GAAG,KAAK,QAAS,CAAA,UAAA,CAAW,GAAG,CAAG,EAAA;AAC3D,IAAW,QAAA,GAAA,QAAA,CAAS,MAAM,CAAC,CAAA;AAAA;AAE7B,EAAO,OAAA,QAAA,CAAS,QAAS,CAAA,GAAG,CAAG,EAAA;AAC7B,IAAW,QAAA,GAAA,QAAA,CAAS,KAAM,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA;AAEjC,EAAA,IAAI,OAAO,mBAAA,KAAwB,QAAY,IAAA,mBAAA,KAAwB,EAAI,EAAA;AACzE,IAAW,QAAA,GAAA,QAAA,CAAS,UAAW,CAAA,mBAAmB,CAC9C,GAAA,QAAA,CAAS,KAAM,CAAA,mBAAA,CAAoB,MAAS,GAAA,IAAA,CAAK,GAAI,CAAA,MAAM,CAC3D,GAAA,QAAA;AAAA;AAIN,EAAA,OAAO,aAAgB,GAAA,QAAA;AACzB,CAAA;AAEF,MAAM,uBACJ,CAAC;AAAA,EACC,IAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA,KAKA,CAACA,KAAiB,KAAA;AAChB,EAAI,IAAA,OAAOA,UAAS,QAAU,EAAA;AAC5B,IAAA,MAAM,IAAI,KAAM,CAAA,CAAA,cAAA,EAAiB,KAAK,SAAUA,CAAAA,KAAI,CAAC,CAAE,CAAA,CAAA;AAAA;AAEzD,EAAIA,IAAAA,KAAAA,CAAK,QAAS,CAAA,GAAG,CAAG,EAAA;AACtB,IAAAA,KAAOA,GAAAA,KAAAA,CAAK,KAAM,CAAA,GAAG,EAAE,CAAC,CAAA;AAAA;AAE1B,EAAI,IAAA,UAAA,GAAa,cAAcA,KAAI,CAAA;AACnC,EAAI,IAAA,UAAA,CAAW,UAAW,CAAA,IAAI,CAAG,EAAA;AAC/B,IAAa,UAAA,GAAA,UAAA,CAAW,KAAM,CAAA,IAAA,CAAK,MAAM,CAAA;AAAA;AAE3C,EAAA,IACE,OAAO,cAAmB,KAAA,QAAA,IAC1B,cAAmB,KAAA,EAAA,IACnB,mBAAmB,GACnB,EAAA;AACA,IAAA,UAAA,GAAa,UAAW,CAAA,UAAA;AAAA,MACtB,cAAe,CAAA,QAAA,CAAS,GAAG,CAAA,GAAI,iBAAiB,cAAiB,GAAA;AAAA,QAE/D,UAAW,CAAA,KAAA;AAAA,MACT,eAAe,MACZ,IAAA,cAAA,CAAe,SAAS,GAAG,CAAA,GAAI,IAAI,GAAI,CAAA,MAAA;AAAA,KAE5C,GAAA,UAAA;AAAA;AAEN,EAAA,IAAI,OAAO,mBAAA,KAAwB,QAAY,IAAA,mBAAA,KAAwB,EAAI,EAAA;AACzE,IAAa,UAAA,GAAA,UAAA,CAAW,WAAW,mBAAmB,CAAA,GAClD,WAAW,KAAM,CAAA,mBAAA,CAAoB,MAAM,CAC3C,GAAA,UAAA;AAAA;AAEN,EAAO,OAAA,UAAA,CAAW,QAAS,CAAA,GAAG,CAAG,EAAA;AAC/B,IAAa,UAAA,GAAA,UAAA,CAAW,KAAM,CAAA,CAAA,EAAG,EAAE,CAAA;AAAA;AAErC,EAAO,OAAA,UAAA;AACT,CAAA;AAQK,SAAS,qBAAsB,CAAA;AAAA,EACpC,IAAA;AAAA,EACA,iBAAiB,cAAe,CAAA,gBAAA;AAAA,EAChC,mBAAsB,GAAA,SAAA;AAAA,EACtB,eAAA,GAAkB,eAAe,aAAc,CAAA;AACjD,CAAgD,EAAA;AAC9C,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAO,OAAA,iBAAA;AAAA;AAET,EAAM,MAAA,YAAA,GAAe,iBAAkB,CAAA,IAAA,EAAM,mBAAmB,CAAA;AAChE,EAAM,MAAA,eAAA,GAAkB,wBAAwB,eAAe,CAAA;AAC/D,EAAA,MAAM,oBAAoB,mBAAoB,CAAA;AAAA,IAC5C,IAAA;AAAA,IACA,mBAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,MAAM,qBAAqB,oBAAqB,CAAA;AAAA,IAC9C,IAAA;AAAA,IACA,mBAAqB,EAAA,YAAA;AAAA,IACrB;AAAA,GACD,CAAA;AACD,EAAA,SAAS,eAAe,EAAuC,EAAA;AAE7D,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,EAAE,CAAG,EAAA;AACrB,MAAM,MAAA,CAAC,GAAKA,EAAAA,KAAI,CAAI,GAAA,EAAA;AACpB,MAAI,IAAA,OAAO,QAAQ,QAAY,IAAA,KAAA,CAAM,QAAQA,KAAI,CAAA,IAAKA,KAAK,CAAA,MAAA,KAAW,CAAG,EAAA;AACvE,QAAA,MAAM,QAAW,GAAA,CAAC,KAAM,CAAA,MAAA,CAAO,GAAG,CAAC,CAAA;AACnC,QAAA,IAAI,QAAU,EAAA;AAEZ,UAAO,OAAA,cAAA,CAAe,CAACA,KAAK,CAAA,CAAC,GAAGA,KAAK,CAAA,CAAC,CAAC,CAAC,CAAA;AAAA;AAE1C,QAAO,OAAA,cAAA,CAAe,CAAC,IAAA,CAAK,GAAKA,EAAAA,KAAAA,CAAK,CAAC,CAAC,CAAGA,EAAAA,KAAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAAA;AAErD,MAAA,IAAI,OAAO,GAAA,KAAQ,QAAY,IAAA,OAAOA,UAAS,QAAU,EAAA;AACvD,QAAA,MAAM,IAAI,KAAM,CAAA,CAAA,eAAA,EAAkB,KAAK,SAAU,CAAA,EAAE,CAAC,CAAE,CAAA,CAAA;AAAA;AAExD,MAAA,OAAO,CAAC,iBAAkB,CAAA,GAAG,CAAG,EAAA,kBAAA,CAAmBA,KAAI,CAAC,CAAA;AAAA,KAC1D,MAAA,IAAW,OAAO,EAAA,KAAO,QAAU,EAAA;AAEjC,MAAA,OAAO,CAAC,iBAAkB,CAAA,EAAE,CAAG,EAAA,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,KAErD,MAAA,IAAA,OAAO,EAAO,KAAA,QAAA,IACd,EAAO,KAAA,IAAA,IACP,UAAc,IAAA,EAAA,IACd,MAAU,IAAA,EAAA,IACV,OAAO,EAAA,CAAG,SAAS,QACnB,EAAA;AACA,MAAA,MAAM,UAA+B,GAAA;AAAA,QACnC,iBAAA,CAAkB,GAAG,IAAI,CAAA;AAAA,QACzB,kBAAA,CAAmB,GAAG,IAAI;AAAA,OAC5B;AACA,MAAO,OAAA,UAAA;AAAA;AAET,IAAA,MAAM,IAAI,KAAA,CAAM,CAAuB,oBAAA,EAAA,OAAO,EAAE,CAAE,CAAA,CAAA;AAAA;AAGpD,EAAA,iBAAA,GAAoB,CAAC,KAA6C,KAAA;AAChE,IAAA,MAAM,CAAC,GAAA,EAAKA,KAAI,CAAA,GAAI,eAAe,KAAK,CAAA;AACxC,IAAM,MAAA,cAAA,GAAiBA,MAAK,UAAW,CAAA,cAAc,IAAIA,KAAK,CAAA,KAAA,CAAM,cAAe,CAAA,MAAM,CAAIA,GAAAA,KAAAA;AAC7F,IAAA,MAAM,aAAgB,GAAA,GAAA,CAAI,KAAM,CAAA,MAAM,CAAK,IAAA,EAAA;AAE3C,IAAA,MAAM,YAAY,aACd,GAAA,aAAA,CAAc,MAAU,IAAA,cAAA,CAAe,WAAW,aAAc,CAAA,CAAC,CAAC,CAAA,GAChE,iBACA,aAAc,CAAA,MAAA,GACd,cAAc,CAAC,CAAA,GAAI,iBACnB,cACF,GAAA,cAAA;AACJ,IAAO,OAAA,CAAC,KAAK,SAAS,CAAA;AAAA,GACxB;AACA,EAAO,OAAA,iBAAA;AACT;;;;"}