vite-plugin-react-server 1.1.16 → 1.1.17
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.
- package/dist/package.json +2 -1
- package/dist/plugin/config/createModuleID.d.ts +8 -0
- package/dist/plugin/config/createModuleID.d.ts.map +1 -0
- package/dist/plugin/config/createModuleID.js +33 -0
- package/dist/plugin/config/defaults.d.ts +5 -0
- package/dist/plugin/config/defaults.d.ts.map +1 -1
- package/dist/plugin/config/defaults.js +6 -1
- package/dist/plugin/config/defaults.js.map +1 -1
- package/dist/plugin/config/extMap.d.ts +1 -1
- package/dist/plugin/config/extMap.d.ts.map +1 -1
- package/dist/plugin/config/extMap.js +56 -26
- package/dist/plugin/config/extMap.js.map +1 -0
- package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
- package/dist/plugin/config/resolveOptions.js +24 -8
- package/dist/plugin/config/resolveOptions.js.map +1 -1
- package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
- package/dist/plugin/config/resolveUserConfig.js +0 -1
- package/dist/plugin/config/resolveUserConfig.js.map +1 -1
- package/dist/plugin/helpers/requestInfo.d.ts +2 -2
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
- package/dist/plugin/helpers/requestInfo.js +9 -8
- package/dist/plugin/helpers/requestInfo.js.map +1 -1
- package/dist/plugin/react-server/configureReactServer.js.map +1 -1
- package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
- package/dist/plugin/utils/createCallServer.js +1 -2
- package/dist/plugin/utils/createCallServer.js.map +1 -1
- package/dist/plugin/worker/rsc/state.d.ts +0 -9
- package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/state.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/plugin/config/createModuleID.ts +51 -0
- package/plugin/config/defaults.tsx +5 -0
- package/plugin/config/extMap.ts +56 -44
- package/plugin/config/resolveOptions.ts +44 -24
- package/plugin/config/resolveUserConfig.ts +0 -1
- package/plugin/helpers/requestInfo.ts +29 -21
- package/plugin/react-server/configureReactServer.ts +1 -1
- package/plugin/utils/createCallServer.ts +1 -2
- package/plugin/worker/rsc/state.ts +0 -35
|
@@ -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 let [id, value] = userOptions.normalizer(input);\n if (value.startsWith(userOptions.moduleBasePath)) {\n value = value.slice(userOptions.moduleBasePath.length);\n }\n const entry = autoDiscoveredFiles.staticManifest[value];\n console.log(\"entry\", entry);\n if (\n entry?.name &&\n info.type === \"asset\" &&\n userOptions.autoDiscover.cssPattern(value)\n ) {\n const found = entry.css?.find((css) =>\n css.startsWith(id 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 =\n info.facadeModuleId ??\n info.name + userOptions.autoDiscover.moduleExtension;\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n if (!stashedReturns[inputId]) {\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[inputId] = r;\n }\n return stashedReturns[inputId];\n }),\n assetFileNames: process.env[\"VITEST\"]\n ? undefined\n : userDefinedAssetFileNames ??\n ((i) => {\n const input = i.originalFileNames[0];\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n\n if (!stashedReturns[inputId]) {\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[inputId] = r;\n }\n return stashedReturns[inputId];\n }),\n chunkFileNames:\n userDefinedChunkFileNames ??\n ((info) => {\n const input =\n info.facadeModuleId ??\n info.name + userOptions.autoDiscover.moduleExtension;\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n\n if (!stashedReturns[inputId]) {\n const r = handleSsrName(\n info,\n input,\n userOptions.build.chunkFile,\n ssr\n );\n\n if (userOptions.verbose) {\n console.log(\"chunkFileNames\", input, stashedReturns[input]);\n }\n stashedReturns[inputId] = r;\n }\n return stashedReturns[inputId];\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":"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"}
|
|
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 let [id, value] = userOptions.normalizer(input);\n if (value.startsWith(userOptions.moduleBasePath)) {\n value = value.slice(userOptions.moduleBasePath.length);\n }\n const entry = autoDiscoveredFiles.staticManifest[value];\n if (\n entry?.name &&\n info.type === \"asset\" &&\n userOptions.autoDiscover.cssPattern(value)\n ) {\n const found = entry.css?.find((css) =>\n css.startsWith(id 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 =\n info.facadeModuleId ??\n info.name + userOptions.autoDiscover.moduleExtension;\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n if (!stashedReturns[inputId]) {\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[inputId] = r;\n }\n return stashedReturns[inputId];\n }),\n assetFileNames: process.env[\"VITEST\"]\n ? undefined\n : userDefinedAssetFileNames ??\n ((i) => {\n const input = i.originalFileNames[0];\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n\n if (!stashedReturns[inputId]) {\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[inputId] = r;\n }\n return stashedReturns[inputId];\n }),\n chunkFileNames:\n userDefinedChunkFileNames ??\n ((info) => {\n const input =\n info.facadeModuleId ??\n info.name + userOptions.autoDiscover.moduleExtension;\n const inputId = input + (ssr ? \"-ssr\" : \"\");\n\n if (!stashedReturns[inputId]) {\n const r = handleSsrName(\n info,\n input,\n userOptions.build.chunkFile,\n ssr\n );\n\n if (userOptions.verbose) {\n console.log(\"chunkFileNames\", input, stashedReturns[input]);\n }\n stashedReturns[inputId] = r;\n }\n return stashedReturns[inputId];\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":"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"}
|
|
@@ -33,8 +33,8 @@ export declare function requestInfo(req: Connect.IncomingMessage, userOptions: P
|
|
|
33
33
|
hasJsonHeader: boolean | undefined;
|
|
34
34
|
hasHtmlHeader: boolean | undefined;
|
|
35
35
|
hasRscHeader: boolean | undefined;
|
|
36
|
-
hasServerActionHeaders: boolean
|
|
37
|
-
isServerActionRequest: boolean
|
|
36
|
+
hasServerActionHeaders: boolean;
|
|
37
|
+
isServerActionRequest: boolean;
|
|
38
38
|
isFormContentType: boolean;
|
|
39
39
|
isFormActionRequest: boolean;
|
|
40
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAG/D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CACpD,EACD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAG/D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CACpD,EACD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0KhC"}
|
|
@@ -24,16 +24,17 @@ function requestInfo(req, userOptions, hostDir, logger = createLogger()) {
|
|
|
24
24
|
const hasRscHeader = req.headers.accept?.includes("text/x-component");
|
|
25
25
|
const hasCssHeader = req.headers.accept?.includes("text/css");
|
|
26
26
|
const isFolder = !ext;
|
|
27
|
-
const
|
|
27
|
+
const isFormContentType = req.headers["content-type"]?.includes(
|
|
28
|
+
"application/x-www-form-urlencoded"
|
|
29
|
+
) || !!req.headers["content-type"]?.includes("multipart/form-data");
|
|
30
|
+
const hasServerActionHeaders = req.method === "POST" && (req.headers["sec-fetch-dest"] === "empty" || req.headers["sec-fetch-dest"] === "") && req.headers["sec-fetch-mode"] === "cors";
|
|
31
|
+
const isServerActionRequest = hasServerActionHeaders;
|
|
32
|
+
const isFormActionRequest = !isServerActionRequest && (req.method === "POST" || isFormContentType && req.headers["sec-fetch-dest"] === "document" && req.headers["sec-fetch-mode"] === "navigate");
|
|
33
|
+
const isJsRequest = !isFormActionRequest && !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);
|
|
28
34
|
const isJsonRequest = isJson || hasJsonHeader && !isJsRequest;
|
|
29
|
-
const isHtmlRequest = isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !isRsc && !isJsRequest;
|
|
35
|
+
const isHtmlRequest = isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !isRsc && !isJsRequest && !isFormActionRequest;
|
|
30
36
|
const isRscRequest = !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);
|
|
31
37
|
const isCssRequest = !isHtmlRequest && !isRscRequest && !isJsRequest && !isJsonRequest && (isCss || hasCssHeader);
|
|
32
|
-
const formContentType = req.headers["content-type"] ?? "";
|
|
33
|
-
const isFormContentType = formContentType.includes("application/x-www-form-urlencoded") || formContentType.includes("multipart/form-data");
|
|
34
|
-
const isFormActionRequest = isFormContentType && req.headers["sec-fetch-dest"] === "document" && req.headers["sec-fetch-mode"] === "navigate";
|
|
35
|
-
const hasServerActionHeaders = isJsonRequest && (req.headers["sec-fetch-dest"] === "empty" || req.headers["sec-fetch-dest"] === "") && req.headers["sec-fetch-mode"] === "cors";
|
|
36
|
-
const isServerActionRequest = hasServerActionHeaders;
|
|
37
38
|
let filePath = join(hostDir, value);
|
|
38
39
|
let contentType;
|
|
39
40
|
if (isServerActionRequest) {
|
|
@@ -85,7 +86,7 @@ function requestInfo(req, userOptions, hostDir, logger = createLogger()) {
|
|
|
85
86
|
} else if (isHtmlRequest) {
|
|
86
87
|
logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);
|
|
87
88
|
} else if (isRscRequest) {
|
|
88
|
-
logger.info(`[react-dev-server] (rsc
|
|
89
|
+
logger.info(`[react-dev-server] (rsc) ${routeWithLeadingSlash}`);
|
|
89
90
|
} else if (isCssRequest) {
|
|
90
91
|
logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);
|
|
91
92
|
} else if (isJsRequest) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestInfo.js","sources":["../../../plugin/helpers/requestInfo.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\nimport type { ResolvedUserOptions } from \"../types.js\";\nimport { createLogger, type Connect, type Logger } from \"vite\";\nimport { MIME_TYPES } from \"../config/mimeTypes.js\";\n\n/**\n * # Request info\n *\n * Does the initial work to check if the request is for html, rsc, json, js, css, server-action, or something else not handled by this plugin.\n *\n * @param req\n * @param userOptions\n * @param hostDir\n * @returns\n */\nexport function requestInfo(\n req: Connect.IncomingMessage,\n userOptions: Pick<\n ResolvedUserOptions,\n \"normalizer\" | \"build\" | \"autoDiscover\" | \"verbose\"\n >,\n hostDir: string,\n logger: Logger = createLogger()\n) {\n const [, value] = userOptions.normalizer(req.url);\n const dotIndex = value.lastIndexOf(\".\");\n const ext = dotIndex === -1 ? \"\" : value.slice(dotIndex);\n // handle index.html\n const isVendor = userOptions.autoDiscover.vendorPattern(value);\n const isVirtual = userOptions.autoDiscover.virtualPattern(value);\n const isJS = userOptions.autoDiscover.modulePattern(value);\n const isHtml = userOptions.autoDiscover.htmlPattern(value);\n const isCss = userOptions.autoDiscover.cssPattern(value);\n const isJson = userOptions.autoDiscover.jsonPattern(value);\n const isRsc = userOptions.autoDiscover.rscPattern(value);\n const hasJsHeader =\n req.headers[\"sec-fetch-dest\"] === \"script\" ||\n req.headers[\"accept\"]?.includes(\"*/*\") ||\n req.headers[\"accept\"]?.includes(\"text/javascript\");\n const hasJsonHeader = req.headers[\"accept\"]?.includes(\"application/json\");\n const hasHtmlHeader = req.headers.accept?.includes(\"text/html\");\n const hasRscHeader = req.headers.accept?.includes(\"text/x-component\");\n const hasCssHeader = req.headers.accept?.includes(\"text/css\");\n const isFolder = !ext;\n const isJsRequest =\n !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);\n const isJsonRequest = isJson || (hasJsonHeader && !isJsRequest);\n const isHtmlRequest =\n isHtml ||\n hasHtmlHeader ||\n (isFolder && !hasRscHeader && !isRsc && !isJsRequest);\n const isRscRequest =\n !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);\n const isCssRequest =\n !isHtmlRequest &&\n !isRscRequest &&\n !isJsRequest &&\n !isJsonRequest &&\n (isCss || hasCssHeader);\n\n // Form action detection\n const formContentType = req.headers[\"content-type\"] ?? \"\";\n const isFormContentType =\n formContentType.includes(\"application/x-www-form-urlencoded\") ||\n formContentType.includes(\"multipart/form-data\");\n const isFormActionRequest =\n isFormContentType &&\n req.headers[\"sec-fetch-dest\"] === \"document\" &&\n req.headers[\"sec-fetch-mode\"] === \"navigate\";\n\n // Server action detection\n const hasServerActionHeaders =\n isJsonRequest &&\n (req.headers[\"sec-fetch-dest\"] === \"empty\" ||\n req.headers[\"sec-fetch-dest\"] === \"\") &&\n req.headers[\"sec-fetch-mode\"] === \"cors\";\n const isServerActionRequest = hasServerActionHeaders;\n\n let filePath = join(hostDir, value);\n let contentType;\n if (isServerActionRequest) {\n // For server actions, we'll get the actual file path from the request body\n // The route is just a placeholder\n filePath = value;\n contentType = \"application/json; charset=utf-8\";\n } else if (isHtmlRequest) {\n if (!isHtml) {\n filePath = join(hostDir, value, userOptions.build.htmlOutputPath);\n }\n contentType = \"text/html; charset=utf-8\";\n } else if (isRscRequest) {\n if (!isRsc) {\n filePath = join(hostDir, value, userOptions.build.rscOutputPath);\n }\n contentType = \"text/x-component; charset=utf-8\";\n } else if (isCssRequest) {\n if (!isCss) {\n filePath = join(hostDir, value + \".css\");\n }\n contentType = \"text/css; charset=utf-8\";\n } else if (isJsRequest) {\n if (!isJS) {\n filePath = resolve(hostDir, value + \".js\");\n }\n contentType = \"application/javascript; charset=utf-8\";\n } else if (isJsonRequest) {\n if (!isJson) {\n filePath = join(hostDir, value + \".json\");\n }\n contentType = \"application/json; charset=utf-8\";\n } else {\n const mimeType = MIME_TYPES[ext];\n if (mimeType) {\n contentType = mimeType;\n } else {\n contentType = \"application/octet-stream\";\n }\n }\n const route = value\n .replace(userOptions.build.rscOutputPath, \"\")\n .replace(userOptions.build.htmlOutputPath, \"\");\n\n const routeWithoutTrailingSlash =\n route === \"\" || route === \"/\"\n ? \"/\"\n : route.endsWith(\"/\")\n ? route.slice(0, -1)\n : route;\n\n const routeWithLeadingSlash = !routeWithoutTrailingSlash\n ? \"/\"\n : routeWithoutTrailingSlash.startsWith(\"/\")\n ? routeWithoutTrailingSlash\n : `/${routeWithoutTrailingSlash}`;\n\n if (userOptions.verbose) {\n if (isFormActionRequest) {\n logger.info(`[react-dev-server] (form-action) ${routeWithLeadingSlash}`);\n } else if (isServerActionRequest) {\n logger.info(\n `[react-dev-server] (server-action) ${routeWithLeadingSlash}`\n );\n } else if (isHtmlRequest) {\n logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);\n } else if (isRscRequest) {\n logger.info(`[react-dev-server] (rsc.) ${routeWithLeadingSlash}`);\n } else if (isCssRequest) {\n logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);\n } else if (isJsRequest) {\n logger.info(`[react-dev-server] (js) ${routeWithLeadingSlash}`);\n } else if (isJsonRequest) {\n logger.info(`[react-dev-server] (json) ${routeWithLeadingSlash}`);\n } else {\n logger.info(`[react-dev-server] (other) ${routeWithLeadingSlash}`);\n }\n }\n return {\n route: routeWithLeadingSlash,\n ext,\n isHtmlRequest,\n isRscRequest,\n isCssRequest,\n isCss,\n isHtml,\n isRsc,\n isFolder,\n contentType,\n filePath,\n isJS,\n isVendor,\n isVirtual,\n hasJsHeader,\n isJsRequest,\n isJson,\n isJsonRequest,\n hasCssHeader,\n hasJsonHeader,\n hasHtmlHeader,\n hasRscHeader,\n hasServerActionHeaders,\n isServerActionRequest,\n isFormContentType,\n isFormActionRequest,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"requestInfo.js","sources":["../../../plugin/helpers/requestInfo.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\nimport type { ResolvedUserOptions } from \"../types.js\";\nimport { createLogger, type Connect, type Logger } from \"vite\";\nimport { MIME_TYPES } from \"../config/mimeTypes.js\";\n\n/**\n * # Request info\n *\n * Does the initial work to check if the request is for html, rsc, json, js, css, server-action, or something else not handled by this plugin.\n *\n * @param req\n * @param userOptions\n * @param hostDir\n * @returns\n */\nexport function requestInfo(\n req: Connect.IncomingMessage,\n userOptions: Pick<\n ResolvedUserOptions,\n \"normalizer\" | \"build\" | \"autoDiscover\" | \"verbose\"\n >,\n hostDir: string,\n logger: Logger = createLogger()\n) {\n const [, value] = userOptions.normalizer(req.url);\n const dotIndex = value.lastIndexOf(\".\");\n const ext = dotIndex === -1 ? \"\" : value.slice(dotIndex);\n // handle index.html\n const isVendor = userOptions.autoDiscover.vendorPattern(value);\n const isVirtual = userOptions.autoDiscover.virtualPattern(value);\n const isJS = userOptions.autoDiscover.modulePattern(value);\n const isHtml = userOptions.autoDiscover.htmlPattern(value);\n const isCss = userOptions.autoDiscover.cssPattern(value);\n const isJson = userOptions.autoDiscover.jsonPattern(value);\n const isRsc = userOptions.autoDiscover.rscPattern(value);\n const hasJsHeader =\n req.headers[\"sec-fetch-dest\"] === \"script\" ||\n req.headers[\"accept\"]?.includes(\"*/*\") ||\n req.headers[\"accept\"]?.includes(\"text/javascript\");\n const hasJsonHeader = req.headers[\"accept\"]?.includes(\"application/json\");\n const hasHtmlHeader = req.headers.accept?.includes(\"text/html\");\n const hasRscHeader = req.headers.accept?.includes(\"text/x-component\");\n const hasCssHeader = req.headers.accept?.includes(\"text/css\");\n const isFolder = !ext;\n const isFormContentType =\n req.headers[\"content-type\"]?.includes(\n \"application/x-www-form-urlencoded\"\n ) || !!req.headers[\"content-type\"]?.includes(\"multipart/form-data\");\n \n // Server action detection\n const hasServerActionHeaders =\n req.method === \"POST\" &&\n (req.headers[\"sec-fetch-dest\"] === \"empty\" ||\n req.headers[\"sec-fetch-dest\"] === \"\") &&\n req.headers[\"sec-fetch-mode\"] === \"cors\";\n const isServerActionRequest = hasServerActionHeaders;\n\n const isFormActionRequest = !isServerActionRequest && (\n req.method === \"POST\" ||\n (isFormContentType &&\n req.headers[\"sec-fetch-dest\"] === \"document\" &&\n req.headers[\"sec-fetch-mode\"] === \"navigate\")\n );\n\n const isJsRequest =\n !isFormActionRequest && !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);\n const isJsonRequest = isJson || (hasJsonHeader && !isJsRequest);\n // Form action detection\n \n const isHtmlRequest =\n isHtml ||\n hasHtmlHeader ||\n (isFolder &&\n !hasRscHeader &&\n !isRsc &&\n !isJsRequest &&\n !isFormActionRequest);\n const isRscRequest =\n !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);\n const isCssRequest =\n !isHtmlRequest &&\n !isRscRequest &&\n !isJsRequest &&\n !isJsonRequest &&\n (isCss || hasCssHeader);\n\n let filePath = join(hostDir, value);\n let contentType;\n if (isServerActionRequest) {\n // For server actions, we'll get the actual file path from the request body\n // The route is just a placeholder\n filePath = value;\n contentType = \"application/json; charset=utf-8\";\n } else if (isHtmlRequest) {\n if (!isHtml) {\n filePath = join(hostDir, value, userOptions.build.htmlOutputPath);\n }\n contentType = \"text/html; charset=utf-8\";\n } else if (isRscRequest) {\n if (!isRsc) {\n filePath = join(hostDir, value, userOptions.build.rscOutputPath);\n }\n contentType = \"text/x-component; charset=utf-8\";\n } else if (isCssRequest) {\n if (!isCss) {\n filePath = join(hostDir, value + \".css\");\n }\n contentType = \"text/css; charset=utf-8\";\n } else if (isJsRequest) {\n if (!isJS) {\n filePath = resolve(hostDir, value + \".js\");\n }\n contentType = \"application/javascript; charset=utf-8\";\n } else if (isJsonRequest) {\n if (!isJson) {\n filePath = join(hostDir, value + \".json\");\n }\n contentType = \"application/json; charset=utf-8\";\n } else {\n const mimeType = MIME_TYPES[ext];\n if (mimeType) {\n contentType = mimeType;\n } else {\n contentType = \"application/octet-stream\";\n }\n }\n const route = value\n .replace(userOptions.build.rscOutputPath, \"\")\n .replace(userOptions.build.htmlOutputPath, \"\");\n\n const routeWithoutTrailingSlash =\n route === \"\" || route === \"/\"\n ? \"/\"\n : route.endsWith(\"/\")\n ? route.slice(0, -1)\n : route;\n\n const routeWithLeadingSlash = !routeWithoutTrailingSlash\n ? \"/\"\n : routeWithoutTrailingSlash.startsWith(\"/\")\n ? routeWithoutTrailingSlash\n : `/${routeWithoutTrailingSlash}`;\n\n if (userOptions.verbose) {\n if (isFormActionRequest) {\n logger.info(`[react-dev-server] (form-action) ${routeWithLeadingSlash}`);\n } else if (isServerActionRequest) {\n logger.info(\n `[react-dev-server] (server-action) ${routeWithLeadingSlash}`\n );\n } else if (isHtmlRequest) {\n logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);\n } else if (isRscRequest) {\n logger.info(`[react-dev-server] (rsc) ${routeWithLeadingSlash}`);\n } else if (isCssRequest) {\n logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);\n } else if (isJsRequest) {\n logger.info(`[react-dev-server] (js) ${routeWithLeadingSlash}`);\n } else if (isJsonRequest) {\n logger.info(`[react-dev-server] (json) ${routeWithLeadingSlash}`);\n } else {\n logger.info(`[react-dev-server] (other) ${routeWithLeadingSlash}`);\n }\n }\n return {\n route: routeWithLeadingSlash,\n ext,\n isHtmlRequest,\n isRscRequest,\n isCssRequest,\n isCss,\n isHtml,\n isRsc,\n isFolder,\n contentType,\n filePath,\n isJS,\n isVendor,\n isVirtual,\n hasJsHeader,\n isJsRequest,\n isJson,\n isJsonRequest,\n hasCssHeader,\n hasJsonHeader,\n hasHtmlHeader,\n hasRscHeader,\n hasServerActionHeaders,\n isServerActionRequest,\n isFormContentType,\n isFormActionRequest,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureReactServer.js","sources":["../../../plugin/react-server/configureReactServer.ts"],"sourcesContent":["import type { Manifest, ViteDevServer } from \"vite\";\nimport type { ServerResponse } from \"http\";\nimport type {\n AutoDiscoveredFiles,\n InlineCssOpt,\n PagePropOpt,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { createEventHandler } from \"../helpers/createEventHandler.js\";\nimport { collectViteModuleGraphCss } from \"../helpers/collectViteModuleGraphCss.js\";\nimport { resolvePageAndProps } from \"../helpers/resolvePageAndProps.js\";\nimport { createHandler } from \"../helpers/createHandler.js\";\nimport React from \"react\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\nimport { getRouteFiles } from \"../helpers/getRouteFiles.js\";\nimport { logError } from \"../error/toError.js\";\nimport { handleServerAction } from \"./handleServerAction.js\";\n\nexport async function configureReactServer<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n server,\n autoDiscoveredFiles,\n userOptions: _userOptions,\n serverManifest,\n}: {\n server: ViteDevServer;\n autoDiscoveredFiles: AutoDiscoveredFiles;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n serverManifest: Manifest;\n}) {\n const activeStreams = new Set<ServerResponse>();\n const {\n Html: _UserHtmlComponent,\n onEvent,\n // remove these\n ...handlerUserOptions\n } = _userOptions;\n const handlerOptions = {\n ...handlerUserOptions,\n moduleBaseURL: server.config.base,\n moduleBasePath: server.config.base,\n projectRoot: server.config.root,\n Html: React.Fragment,\n onEvent: createEventHandler(onEvent),\n css: handlerUserOptions.css\n };\n\n // Set environment-specific configuration\n const define = {\n ...server.config.define,\n \"process.env.NODE_ENV\": JSON.stringify(\n process.env[\"NODE_ENV\"] || \"development\"\n ),\n };\n server.config = {\n ...server.config,\n define,\n };\n\n // Handle Vite server restarts\n server.ws.on(\"restart\", (path) => {\n server.config.logger.info(\n \"[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:\",\n path\n );\n\n // Close streams with restart message\n for (const res of activeStreams) {\n res.writeHead(503, {\n \"Content-Type\": \"text/x-component; charset=utf-8\",\n \"Retry-After\": \"1\",\n });\n res.end(\n `0:E{\"digest\":\"\",\"name\":\"Error\",\"message\":\"Server restarting...\",\"stack\":\"\",\"env\":\"Server\"}`\n );\n }\n activeStreams.clear();\n });\n\n server.middlewares.use(async (req, res, next) => {\n if (!req.url) {\n return next();\n }\n const info = requestInfo(req, handlerOptions, \"\", server.config.logger);\n\n // Handle server actions\n if (info.isServerActionRequest) {\n return handleServerAction(req, res, server, handlerOptions);\n }\n\n if (!info.isRscRequest) return next();\n try {\n const routeFiles = await getRouteFiles(\n info.route,\n autoDiscoveredFiles,\n handlerOptions\n );\n if (routeFiles.type === \"error\") {\n server.config.logger.error(routeFiles.error.message);\n return next();\n }\n const pagePath = routeFiles.page;\n const propsPath = routeFiles.props;\n\n // first load the page and props\n const pageAndPropsResult = await resolvePageAndProps({\n pagePath,\n propsPath,\n route: info.route,\n loader: server.ssrLoadModule,\n pageExportName: handlerOptions.pageExportName ?? \"default\",\n propsExportName: handlerOptions.propsExportName ?? \"default\",\n });\n if (pageAndPropsResult.type === \"error\") {\n throw pageAndPropsResult.error;\n }\n if (pageAndPropsResult.type === \"skip\") {\n return next();\n }\n\n const eventHandler = createEventHandler(onEvent);\n const cssFilesResult = await collectViteModuleGraphCss({\n moduleGraph: server.moduleGraph, // by having loaded the page and props, we can get them from the module graph\n parentUrl: pagePath,\n handlerOptions: {\n pagePath,\n loader: server.ssrLoadModule,\n // explicitly set for development server\n ...handlerOptions,\n },\n });\n if (cssFilesResult.type === \"skip\") {\n return next();\n }\n if (cssFilesResult.type === \"error\") {\n throw cssFilesResult.error;\n }\n const { PageComponent, pageProps } = pageAndPropsResult;\n // Create the headless RSC stream directly;\n const rscResult = createHandler({\n ...handlerOptions,\n PageComponent: PageComponent,\n pageProps: pageProps,\n logger: server.config.logger,\n loader: server.ssrLoadModule,\n Html: React.Fragment,\n onEvent: eventHandler,\n manifest: serverManifest,\n server,\n route: info.route,\n pagePath,\n propsPath,\n cssFiles: cssFilesResult.cssFiles ?? new Map(),\n globalCss: new Map(),\n });\n if (rscResult.type === \"success\") {\n // set headers\n res.setHeader(\"Content-Type\", \"text/x-component; charset=utf-8\");\n rscResult.stream!.pipe(res);\n }\n activeStreams.add(res);\n res.on(\"close\", () => {\n activeStreams.delete(res);\n });\n } catch (error) {\n logError(error, server.config.logger);\n res.end();\n }\n });\n // Listen for when the server actually starts\n server.httpServer?.once(\"listening\", () => {\n const address = server.httpServer?.address();\n if (address && typeof address !== \"string\") {\n const port = address.port;\n const host = server.config.server.host ?? \"localhost\";\n const protocol = server.config.server.https ? \"https\" : \"http\";\n handlerOptions.publicOrigin = `${protocol}://${host}:${port}`;\n if (handlerOptions.publicOrigin !== process.env.VITE_PUBLIC_ORIGIN) {\n process.env.VITE_PUBLIC_ORIGIN = handlerOptions.publicOrigin;\n }\n }\n });\n}\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configureReactServer.js","sources":["../../../plugin/react-server/configureReactServer.ts"],"sourcesContent":["import type { Manifest, ViteDevServer } from \"vite\";\nimport type { ServerResponse } from \"http\";\nimport type {\n AutoDiscoveredFiles,\n InlineCssOpt,\n PagePropOpt,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { createEventHandler } from \"../helpers/createEventHandler.js\";\nimport { collectViteModuleGraphCss } from \"../helpers/collectViteModuleGraphCss.js\";\nimport { resolvePageAndProps } from \"../helpers/resolvePageAndProps.js\";\nimport { createHandler } from \"../helpers/createHandler.js\";\nimport React from \"react\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\nimport { getRouteFiles } from \"../helpers/getRouteFiles.js\";\nimport { logError } from \"../error/toError.js\";\nimport { handleServerAction } from \"./handleServerAction.js\";\n\nexport async function configureReactServer<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n server,\n autoDiscoveredFiles,\n userOptions: _userOptions,\n serverManifest,\n}: {\n server: ViteDevServer;\n autoDiscoveredFiles: AutoDiscoveredFiles;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n serverManifest: Manifest;\n}) {\n const activeStreams = new Set<ServerResponse>();\n const {\n Html: _UserHtmlComponent,\n onEvent,\n // remove these\n ...handlerUserOptions\n } = _userOptions;\n const handlerOptions = {\n ...handlerUserOptions,\n moduleBaseURL: server.config.base,\n moduleBasePath: server.config.base,\n projectRoot: server.config.root,\n Html: React.Fragment,\n onEvent: createEventHandler(onEvent),\n css: handlerUserOptions.css\n };\n\n // Set environment-specific configuration\n const define = {\n ...server.config.define,\n \"process.env.NODE_ENV\": JSON.stringify(\n process.env[\"NODE_ENV\"] || \"development\"\n ),\n };\n server.config = {\n ...server.config,\n define,\n };\n\n // Handle Vite server restarts\n server.ws.on(\"restart\", (path) => {\n server.config.logger.info(\n \"[vite-plugin-react-server] 🔧 Plugin changed, preparing for restart:\",\n path\n );\n\n // Close streams with restart message\n for (const res of activeStreams) {\n res.writeHead(503, {\n \"Content-Type\": \"text/x-component; charset=utf-8\",\n \"Retry-After\": \"1\",\n });\n res.end(\n `0:E{\"digest\":\"\",\"name\":\"Error\",\"message\":\"Server restarting...\",\"stack\":\"\",\"env\":\"Server\"}`\n );\n }\n activeStreams.clear();\n });\n\n server.middlewares.use(async (req, res, next) => {\n if (!req.url) {\n return next();\n }\n const info = requestInfo(req, handlerOptions, \"\", server.config.logger);\n\n\n // Handle server actions\n if (info.isServerActionRequest) {\n return handleServerAction(req, res, server, handlerOptions);\n }\n if (!info.isRscRequest) return next();\n try {\n const routeFiles = await getRouteFiles(\n info.route,\n autoDiscoveredFiles,\n handlerOptions\n );\n if (routeFiles.type === \"error\") {\n server.config.logger.error(routeFiles.error.message);\n return next();\n }\n const pagePath = routeFiles.page;\n const propsPath = routeFiles.props;\n\n // first load the page and props\n const pageAndPropsResult = await resolvePageAndProps({\n pagePath,\n propsPath,\n route: info.route,\n loader: server.ssrLoadModule,\n pageExportName: handlerOptions.pageExportName ?? \"default\",\n propsExportName: handlerOptions.propsExportName ?? \"default\",\n });\n if (pageAndPropsResult.type === \"error\") {\n throw pageAndPropsResult.error;\n }\n if (pageAndPropsResult.type === \"skip\") {\n return next();\n }\n\n const eventHandler = createEventHandler(onEvent);\n const cssFilesResult = await collectViteModuleGraphCss({\n moduleGraph: server.moduleGraph, // by having loaded the page and props, we can get them from the module graph\n parentUrl: pagePath,\n handlerOptions: {\n pagePath,\n loader: server.ssrLoadModule,\n // explicitly set for development server\n ...handlerOptions,\n },\n });\n if (cssFilesResult.type === \"skip\") {\n return next();\n }\n if (cssFilesResult.type === \"error\") {\n throw cssFilesResult.error;\n }\n const { PageComponent, pageProps } = pageAndPropsResult;\n // Create the headless RSC stream directly;\n const rscResult = createHandler({\n ...handlerOptions,\n PageComponent: PageComponent,\n pageProps: pageProps,\n logger: server.config.logger,\n loader: server.ssrLoadModule,\n Html: React.Fragment,\n onEvent: eventHandler,\n manifest: serverManifest,\n server,\n route: info.route,\n pagePath,\n propsPath,\n cssFiles: cssFilesResult.cssFiles ?? new Map(),\n globalCss: new Map(),\n });\n if (rscResult.type === \"success\") {\n // set headers\n res.setHeader(\"Content-Type\", \"text/x-component; charset=utf-8\");\n rscResult.stream!.pipe(res);\n }\n activeStreams.add(res);\n res.on(\"close\", () => {\n activeStreams.delete(res);\n });\n } catch (error) {\n logError(error, server.config.logger);\n res.end();\n }\n });\n // Listen for when the server actually starts\n server.httpServer?.once(\"listening\", () => {\n const address = server.httpServer?.address();\n if (address && typeof address !== \"string\") {\n const port = address.port;\n const host = server.config.server.host ?? \"localhost\";\n const protocol = server.config.server.https ? \"https\" : \"http\";\n handlerOptions.publicOrigin = `${protocol}://${host}:${port}`;\n if (handlerOptions.publicOrigin !== process.env.VITE_PUBLIC_ORIGIN) {\n process.env.VITE_PUBLIC_ORIGIN = handlerOptions.publicOrigin;\n }\n }\n });\n}\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCallServer.d.ts","sourceRoot":"","sources":["../../../plugin/utils/createCallServer.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,kBAAmB,MAAM,UACtB,MAAM,QAAQ,OAAO,EAAE,KAAG,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"createCallServer.d.ts","sourceRoot":"","sources":["../../../plugin/utils/createCallServer.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,gBAAgB,kBAAmB,MAAM,UACtB,MAAM,QAAQ,OAAO,EAAE,KAAG,OAAO,CAAC,OAAO,CA2BxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCallServer.js","sources":["../../../plugin/utils/createCallServer.ts"],"sourcesContent":["import {\n createFromFetch,\n encodeReply,\n} from \"react-server-dom-esm/client.browser\";\n\ninterface ServerActionResponse {\n returnValue: unknown;\n type: 'server-action-response';\n error?: string;\n}\n\nexport const createCallServer = (moduleBaseURL: string) => {\n const callServer = async (id: string, args: unknown[]): Promise<unknown> => {\n const response = await createFromFetch(\n fetch(moduleBaseURL, {\n method: \"POST\",\n body: await encodeReply({\n id,\n args\n }),\n headers: {\n Accept: \"
|
|
1
|
+
{"version":3,"file":"createCallServer.js","sources":["../../../plugin/utils/createCallServer.ts"],"sourcesContent":["import {\n createFromFetch,\n encodeReply,\n} from \"react-server-dom-esm/client.browser\";\n\ninterface ServerActionResponse {\n returnValue: unknown;\n type: 'server-action-response';\n error?: string;\n}\n\nexport const createCallServer = (moduleBaseURL: string) => {\n const callServer = async (id: string, args: unknown[]): Promise<unknown> => {\n const response = await createFromFetch(\n fetch(moduleBaseURL, {\n method: \"POST\",\n body: await encodeReply({\n id,\n args\n }),\n headers: {\n Accept: \"text/x-component\",\n },\n }),\n { callServer, moduleBaseURL }\n );\n \n // Check if this is a server action response\n if (response && typeof response === 'object' && 'returnValue' in response) {\n const serverResponse = response as ServerActionResponse;\n if (serverResponse.error) {\n throw new Error(serverResponse.error);\n }\n return serverResponse.returnValue;\n }\n \n return response;\n };\n return callServer;\n};\n"],"names":[],"mappings":";;;;;;;AAWa,MAAA,gBAAA,GAAmB,CAAC,aAA0B,KAAA;AACzD,EAAM,MAAA,UAAA,GAAa,OAAO,EAAA,EAAY,IAAsC,KAAA;AAC1E,IAAA,MAAM,WAAW,MAAM,eAAA;AAAA,MACrB,MAAM,aAAe,EAAA;AAAA,QACnB,MAAQ,EAAA,MAAA;AAAA,QACR,IAAA,EAAM,MAAM,WAAY,CAAA;AAAA,UACtB,EAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA,QACD,OAAS,EAAA;AAAA,UACP,MAAQ,EAAA;AAAA;AACV,OACD,CAAA;AAAA,MACD,EAAE,YAAY,aAAc;AAAA,KAC9B;AAGA,IAAA,IAAI,QAAY,IAAA,OAAO,QAAa,KAAA,QAAA,IAAY,iBAAiB,QAAU,EAAA;AACzE,MAAA,MAAM,cAAiB,GAAA,QAAA;AACvB,MAAA,IAAI,eAAe,KAAO,EAAA;AACxB,QAAM,MAAA,IAAI,KAAM,CAAA,cAAA,CAAe,KAAK,CAAA;AAAA;AAEtC,MAAA,OAAO,cAAe,CAAA,WAAA;AAAA;AAGxB,IAAO,OAAA,QAAA;AAAA,GACT;AACA,EAAO,OAAA,UAAA;AACT;;;;"}
|
|
@@ -4,16 +4,7 @@ export declare const activeStreams: Map<string, PassThrough>;
|
|
|
4
4
|
export declare const cssFiles: Map<string, CssContent>;
|
|
5
5
|
export declare const moduleIds: Map<string, string>;
|
|
6
6
|
export declare const hmrState: Map<string, HmrState>;
|
|
7
|
-
export declare const clientFiles: Set<string>;
|
|
8
|
-
export declare const serverActionFiles: Set<string>;
|
|
9
|
-
export declare function clearCssFiles(): void;
|
|
10
|
-
export declare function getCssFiles(): MapIterator<[string, CssContent]>;
|
|
11
|
-
export declare function clearClientFiles(): void;
|
|
12
|
-
export declare function clearServerActionFiles(): void;
|
|
13
7
|
export declare function addCssFileContent(id: string, code: string, userOptions: Pick<ResolvedUserOptions, "projectRoot" | "moduleBaseURL" | "moduleBasePath" | "moduleRootPath" | "css" | "normalizer" | "moduleID">): void;
|
|
14
|
-
export declare function addClientFile(url: string): void;
|
|
15
|
-
export declare function addServerActionFile(url: string): void;
|
|
16
|
-
export declare function clearAllFiles(): void;
|
|
17
8
|
export declare function isModuleInvalidated(path: string): boolean;
|
|
18
9
|
export declare function clearHmrState(path: string): void;
|
|
19
10
|
export declare function getInvalidatedModules(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAG5D,eAAO,MAAM,QAAQ,yBAAgC,CAAC;AAGtD,eAAO,MAAM,SAAS,qBAA4B,CAAC;AAEnD,eAAO,MAAM,QAAQ,uBAA8B,CAAC;AAyBpD,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAG5D,eAAO,MAAM,QAAQ,yBAAgC,CAAC;AAGtD,eAAO,MAAM,SAAS,qBAA4B,CAAC;AAEnD,eAAO,MAAM,QAAQ,uBAA8B,CAAC;AAyBpD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC,QAS5M;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD;AAGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhD;AAGD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAIhD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAElD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sources":["../../../../plugin/worker/rsc/state.ts"],"sourcesContent":["import { workerData } from \"node:worker_threads\";\nimport { createCssProps } from \"../../helpers/createCssProps.js\";\nimport type { CssContent, ResolvedUserOptions, HmrState } from \"../../types.js\";\nimport type { PassThrough } from \"node:stream\";\nimport { relative } from \"node:path\";\n\n\n// Track active RSC streams\nexport const activeStreams = new Map<string, PassThrough>();\n\n// Track CSS files\nexport const cssFiles = new Map<string, CssContent>();\n\n// Track module IDs\nexport const moduleIds = new Map<string, string>();\n\nexport const hmrState = new Map<string, HmrState>();\n\nif(workerData) {\n if(workerData.hmrPort) {\n workerData.hmrPort.on('message', (msg: { type: string; path: string; routes?: string[] }) => {\n if(msg.type === 'HMR_UPDATE') {\n // Normalize the path relative to project root\n const normalizedPath = relative(workerData.userOptions.projectRoot, msg.path);\n hmrState.set(normalizedPath, { \n timestamp: Date.now(), \n invalidated: true,\n routes: msg.routes || []\n });\n } else if(msg.type === 'HMR_ACCEPT') {\n // Normalize the path relative to project root\n const normalizedPath = relative(workerData.userOptions.projectRoot, msg.path);\n hmrState.delete(normalizedPath);\n }\n });\n }\n} else {\n throw new Error(\"This module must be run with workerData\");\n}\n\n
|
|
1
|
+
{"version":3,"file":"state.js","sources":["../../../../plugin/worker/rsc/state.ts"],"sourcesContent":["import { workerData } from \"node:worker_threads\";\nimport { createCssProps } from \"../../helpers/createCssProps.js\";\nimport type { CssContent, ResolvedUserOptions, HmrState } from \"../../types.js\";\nimport type { PassThrough } from \"node:stream\";\nimport { relative } from \"node:path\";\n\n\n// Track active RSC streams\nexport const activeStreams = new Map<string, PassThrough>();\n\n// Track CSS files\nexport const cssFiles = new Map<string, CssContent>();\n\n// Track module IDs\nexport const moduleIds = new Map<string, string>();\n\nexport const hmrState = new Map<string, HmrState>();\n\nif(workerData) {\n if(workerData.hmrPort) {\n workerData.hmrPort.on('message', (msg: { type: string; path: string; routes?: string[] }) => {\n if(msg.type === 'HMR_UPDATE') {\n // Normalize the path relative to project root\n const normalizedPath = relative(workerData.userOptions.projectRoot, msg.path);\n hmrState.set(normalizedPath, { \n timestamp: Date.now(), \n invalidated: true,\n routes: msg.routes || []\n });\n } else if(msg.type === 'HMR_ACCEPT') {\n // Normalize the path relative to project root\n const normalizedPath = relative(workerData.userOptions.projectRoot, msg.path);\n hmrState.delete(normalizedPath);\n }\n });\n }\n} else {\n throw new Error(\"This module must be run with workerData\");\n}\n\n\nexport function addCssFileContent(id: string, code: string, userOptions: Pick<ResolvedUserOptions, \"projectRoot\" | \"moduleBaseURL\" | \"moduleBasePath\" | \"moduleRootPath\" | \"css\" | \"normalizer\" | \"moduleID\">) {\n if(typeof code !== \"string\"){\n throw new Error(`Expected css to be loaded as a string, but got ${typeof code}`);\n }\n cssFiles.set(id, createCssProps({\n id,\n code,\n userOptions\n }));\n} \n\n\n// Helper to check if a module is invalidated\nexport function isModuleInvalidated(path: string): boolean {\n const state = hmrState.get(path);\n return state?.invalidated || false;\n}\n\n// Helper to clear HMR state for a module\nexport function clearHmrState(path: string): void {\n hmrState.delete(path);\n}\n\n// Helper to get all invalidated modules\nexport function getInvalidatedModules(): string[] {\n return Array.from(hmrState.entries())\n .filter(([_, state]) => state.invalidated)\n .map(([path]) => path);\n}\n\nexport function addModuleId(id: string, url: string) {\n moduleIds.set(id, url);\n}\n\nexport function getModuleId(id: string): string | undefined {\n return moduleIds.get(id);\n} "],"names":[],"mappings":";;;;;;;;;AAQa,MAAA,aAAA,uBAAoB,GAAyB;AAG7C,MAAA,QAAA,uBAAe,GAAwB;AAGvC,MAAA,SAAA,uBAAgB,GAAoB;AAEpC,MAAA,QAAA,uBAAe,GAAsB;AAElD,IAAG,UAAY,EAAA;AACb,EAAA,IAAG,WAAW,OAAS,EAAA;AACrB,IAAA,UAAA,CAAW,OAAQ,CAAA,EAAA,CAAG,SAAW,EAAA,CAAC,GAA2D,KAAA;AAC3F,MAAG,IAAA,GAAA,CAAI,SAAS,YAAc,EAAA;AAE5B,QAAA,MAAM,iBAAiB,QAAS,CAAA,UAAA,CAAW,WAAY,CAAA,WAAA,EAAa,IAAI,IAAI,CAAA;AAC5E,QAAA,QAAA,CAAS,IAAI,cAAgB,EAAA;AAAA,UAC3B,SAAA,EAAW,KAAK,GAAI,EAAA;AAAA,UACpB,WAAa,EAAA,IAAA;AAAA,UACb,MAAA,EAAQ,GAAI,CAAA,MAAA,IAAU;AAAC,SACxB,CAAA;AAAA,OACH,MAAA,IAAU,GAAI,CAAA,IAAA,KAAS,YAAc,EAAA;AAEnC,QAAA,MAAM,iBAAiB,QAAS,CAAA,UAAA,CAAW,WAAY,CAAA,WAAA,EAAa,IAAI,IAAI,CAAA;AAC5E,QAAA,QAAA,CAAS,OAAO,cAAc,CAAA;AAAA;AAChC,KACD,CAAA;AAAA;AAEL,CAAO,MAAA;AACL,EAAM,MAAA,IAAI,MAAM,yCAAyC,CAAA;AAC3D;AAGO,SAAS,iBAAA,CAAkB,EAAY,EAAA,IAAA,EAAc,WAAmJ,EAAA;AAC7M,EAAG,IAAA,OAAO,SAAS,QAAS,EAAA;AAC1B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAkD,+CAAA,EAAA,OAAO,IAAI,CAAE,CAAA,CAAA;AAAA;AAEjF,EAAS,QAAA,CAAA,GAAA,CAAI,IAAI,cAAe,CAAA;AAAA,IAC9B,EAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACD,CAAC,CAAA;AACJ;AAqBO,SAAS,WAAA,CAAY,IAAY,GAAa,EAAA;AACnD,EAAU,SAAA,CAAA,GAAA,CAAI,IAAI,GAAG,CAAA;AACvB;;;;"}
|