@wyw-in-js/vite 1.0.2 → 1.0.3

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/esm/index.mjs CHANGED
@@ -185,13 +185,6 @@ export default function wywInJS({
185
185
  const createAsyncResolver = asyncResolverFactory(async (resolved, what, importer, stack) => {
186
186
  const log = logger.extend('vite').extend(getFileIdx(importer));
187
187
  if (resolved) {
188
- if (resolved.external) {
189
- // If module is marked as external, Rollup will not resolve it,
190
- // so we need to resolve it ourselves with default resolver
191
- const resolvedId = syncResolve(what, importer, stack);
192
- log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
193
- return resolvedId;
194
- }
195
188
  log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
196
189
 
197
190
  // Vite adds param like `?v=667939b3` to cached modules
@@ -207,6 +200,16 @@ export default function wywInJS({
207
200
  if (resolvedId.startsWith('/@')) {
208
201
  return null;
209
202
  }
203
+ if (resolved.external) {
204
+ // In SSR mode Vite can mark resolved file ids as `external` (including `external: "absolute"`).
205
+ // Prefer Vite's resolved file path and only fall back to Node resolution for bare specifiers.
206
+ if (path.isAbsolute(resolvedId) || existsSync(resolvedId)) {
207
+ return resolvedId;
208
+ }
209
+
210
+ // If module is marked as external, Rollup will not resolve it further, so resolve it ourselves.
211
+ return syncResolve(what, importer, stack);
212
+ }
210
213
  if (!existsSync(resolvedId)) {
211
214
  // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.
212
215
  // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).
package/esm/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["existsSync","path","createFilter","loadEnv","asyncResolverFactory","logger","syncResolve","createFileReporter","getFileIdx","transform","TransformCacheCollection","isWindowsAbsolutePath","value","test","normalizeToPosix","replace","posix","sep","isInside","childPath","parentPath","rel","relative","startsWith","isAbsolute","isWywCssAssetName","endsWith","normalizeAssetRelativePath","normalized","normalize","stripExtension","ext","extname","slice","length","VITE_FS_PREFIX","safeDecodeURIComponent","decodeURIComponent","normalizeViteFsPath","fsPath","getWywCssAssetFileNames","resolvedConfig","output","originalAssetFileNames","preserveModules","rootDir","root","preserveModulesRootValue","preserveModulesRoot","preserveModulesRootAbs","resolve","preserveModulesRootRel","assetInfo","template","assetName","name","includes","relativePath","assetNameNormalized","preserveRel","withoutExt","dir","dirname","idx","indexOf","prefix","wywInJS","debug","include","exclude","sourceMap","preserveCssPaths","keepComments","prefixer","preprocessor","ssrDevCss","ssrDevCssPath","transformLibraries","rest","filter","cssLookup","cssFileLookup","pendingCssReloads","Set","pendingCssReloadTimer","ssrDevCssVersion","config","devServer","importMetaEnvForEval","ssrDevCssEnabled","Boolean","ssrDevCssPathname","ssrDevCssQuery","split","ssrDevCssRoute","getSsrDevCssHref","versionParam","query","getSsrDevCssContents","entries","Object","merged","sort","a","b","localeCompare","map","cssText","join","emitter","onDone","scheduleCssReload","cssFilename","moduleGraph","add","setTimeout","undefined","ids","Array","from","clear","id","module","getModuleById","reloadModule","targets","cache","isInsideCacheDir","filename","cacheDir","getDepsOptimizer","server","environments","client","depsOptimizer","_depsOptimizer","waitForOptimizedDep","isOptimizedDepFile","init","scanProcessing","info","metadata","depInfoList","find","item","file","processing","createAsyncResolver","resolved","what","importer","stack","log","extend","external","resolvedId","Error","enforce","buildEnd","process","cwd","configResolved","command","outputs","build","rollupOptions","outputEntries","isArray","forEach","entry","assetFileNames","assetsDir","envPrefix","envDir","loaded","mode","base","BASE_URL","MODE","DEV","PROD","SSR","ssr","configureServer","_server","middlewares","use","req","res","next","url","pathname","etag","ifNoneMatch","headers","statusCode","end","setHeader","transformIndexHtml","html","tags","tag","attrs","href","injectTo","load","resolveId","importeeUrl","handleHotUpdate","ctx","modules","affected","x","dependencies","some","dep","m","deps","flatMap","target","depId","invalidateForFile","concat","code","transformOptions","overrideContext","context","isSsr","env","withEnv","__wyw_import_meta_env","transformServices","options","pluginOptions","emitWarning","message","warn","eventEmitter","result","cssRelativePath","cssId","cssSourceMapText","Buffer","toString","didCssChange","JSON","stringify","i","depModule","isEntry","t","push"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * This file contains a Vite loader for wyw-in-js.\n * It uses the transform.ts function to generate class names from source code,\n * returns transformed code without template literals and attaches generated source maps\n */\n\nimport { existsSync } from 'fs';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport path from 'path';\n\nimport { createFilter, loadEnv } from 'vite';\nimport type {\n ModuleNode,\n Plugin,\n ResolvedConfig,\n ViteDevServer,\n FilterPattern,\n} from 'vite';\n\nimport { asyncResolverFactory, logger, syncResolve } from '@wyw-in-js/shared';\nimport type {\n IFileReporterOptions,\n PluginOptions,\n Preprocessor,\n} from '@wyw-in-js/transform';\nimport {\n createFileReporter,\n getFileIdx,\n transform,\n TransformCacheCollection,\n} from '@wyw-in-js/transform';\n\ntype VitePluginOptions = {\n debug?: IFileReporterOptions | false | null | undefined;\n exclude?: FilterPattern;\n include?: FilterPattern;\n keepComments?: boolean | RegExp;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n preserveCssPaths?: boolean;\n sourceMap?: boolean;\n ssrDevCss?: boolean;\n ssrDevCssPath?: string;\n transformLibraries?: boolean;\n} & Partial<PluginOptions>;\n\ntype OverrideContext = NonNullable<PluginOptions['overrideContext']>;\n\nexport { Plugin };\n\ntype AssetInfoLike = { name?: unknown };\ntype AssetFileNames = string | ((assetInfo: AssetInfoLike) => string);\ntype RollupOutputLike = {\n assetFileNames?: AssetFileNames;\n preserveModules?: boolean;\n preserveModulesRoot?: unknown;\n} & Record<string, unknown>;\n\nconst isWindowsAbsolutePath = (value: string): boolean =>\n /^[a-zA-Z]:[\\\\/]/.test(value);\n\nconst normalizeToPosix = (value: string): string =>\n value.replace(/\\\\/g, path.posix.sep);\n\nconst isInside = (childPath: string, parentPath: string): boolean => {\n const rel = path.relative(parentPath, childPath);\n return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));\n};\n\nconst isWywCssAssetName = (value: string): boolean =>\n value.endsWith('.wyw-in-js.css');\n\nconst normalizeAssetRelativePath = (value: string): string | null => {\n const normalized = path.posix.normalize(\n normalizeToPosix(value).replace(/^\\/+/, '')\n );\n if (normalized.startsWith('..') || path.posix.isAbsolute(normalized)) {\n return null;\n }\n\n return normalized;\n};\n\nconst stripExtension = (value: string): string => {\n const ext = path.posix.extname(value);\n return ext ? value.slice(0, -ext.length) : value;\n};\n\nconst VITE_FS_PREFIX = '/@fs/';\n\nconst safeDecodeURIComponent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\nconst normalizeViteFsPath = (value: string): string => {\n const fsPath = value.slice(VITE_FS_PREFIX.length);\n return path.normalize(safeDecodeURIComponent(fsPath));\n};\n\nconst getWywCssAssetFileNames = (\n resolvedConfig: ResolvedConfig,\n output: RollupOutputLike,\n originalAssetFileNames: AssetFileNames\n): ((assetInfo: AssetInfoLike) => string) | null => {\n if (!output.preserveModules) return null;\n\n const rootDir = resolvedConfig.root;\n\n const preserveModulesRootValue = output.preserveModulesRoot;\n let preserveModulesRootAbs: string | null = null;\n if (typeof preserveModulesRootValue === 'string') {\n preserveModulesRootAbs = path.isAbsolute(preserveModulesRootValue)\n ? preserveModulesRootValue\n : path.resolve(rootDir, preserveModulesRootValue);\n }\n\n const preserveModulesRootRel =\n preserveModulesRootAbs && isInside(preserveModulesRootAbs, rootDir)\n ? normalizeToPosix(path.relative(rootDir, preserveModulesRootAbs))\n : null;\n\n return (assetInfo) => {\n const template =\n typeof originalAssetFileNames === 'function'\n ? originalAssetFileNames(assetInfo)\n : originalAssetFileNames;\n\n const assetName = assetInfo?.name;\n if (typeof assetName !== 'string' || !isWywCssAssetName(assetName)) {\n return template;\n }\n\n if (!template.includes('[')) {\n return template;\n }\n\n let relativePath: string | null = null;\n\n const assetNameNormalized = normalizeToPosix(assetName);\n\n if (\n path.isAbsolute(assetName) ||\n isWindowsAbsolutePath(assetNameNormalized)\n ) {\n const preserveRel =\n preserveModulesRootAbs && isInside(assetName, preserveModulesRootAbs)\n ? path.relative(preserveModulesRootAbs, assetName)\n : null;\n\n if (\n preserveRel &&\n !path.isAbsolute(preserveRel) &&\n !preserveRel.startsWith('..')\n ) {\n relativePath = preserveRel;\n } else if (isInside(assetName, rootDir)) {\n relativePath = path.relative(rootDir, assetName);\n }\n } else if (\n preserveModulesRootRel &&\n assetNameNormalized.startsWith(`${preserveModulesRootRel}/`)\n ) {\n relativePath = assetNameNormalized.slice(\n preserveModulesRootRel.length + 1\n );\n } else {\n relativePath = assetNameNormalized;\n }\n\n const normalized = relativePath\n ? normalizeAssetRelativePath(relativePath)\n : null;\n if (!normalized) {\n return template;\n }\n\n const withoutExt = stripExtension(normalized);\n\n if (template.includes('[name]')) {\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n return template.replace(/\\[name\\]/g, `${dir}/[name]`);\n }\n\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n const idx = template.indexOf('[');\n if (idx < 0) {\n return template;\n }\n\n const prefix = template.slice(0, idx);\n if (prefix !== '' && !prefix.endsWith('/')) {\n return template;\n }\n\n return `${prefix}${dir}/${template.slice(idx)}`;\n };\n};\n\nexport default function wywInJS({\n debug,\n include,\n exclude,\n sourceMap,\n preserveCssPaths,\n keepComments,\n prefixer,\n preprocessor,\n ssrDevCss,\n ssrDevCssPath,\n transformLibraries,\n ...rest\n}: VitePluginOptions = {}): Plugin {\n const filter = createFilter(include, exclude);\n const cssLookup: { [key: string]: string } = {};\n const cssFileLookup: { [key: string]: string } = {};\n const pendingCssReloads = new Set<string>();\n let pendingCssReloadTimer: ReturnType<typeof setTimeout> | undefined;\n let ssrDevCssVersion = 0;\n let config: ResolvedConfig;\n let devServer: ViteDevServer;\n let importMetaEnvForEval: {\n client: Record<string, unknown>;\n ssr: Record<string, unknown>;\n } | null = null;\n\n const ssrDevCssEnabled = Boolean(ssrDevCss);\n const [ssrDevCssPathname, ssrDevCssQuery] = (\n ssrDevCssPath ?? '/_wyw-in-js/ssr.css'\n ).split('?', 2);\n const ssrDevCssRoute = ssrDevCssPathname.startsWith('/')\n ? ssrDevCssPathname\n : `/${ssrDevCssPathname}`;\n\n const getSsrDevCssHref = () => {\n const versionParam = `v=${ssrDevCssVersion}`;\n const query = ssrDevCssQuery\n ? `${ssrDevCssQuery}&${versionParam}`\n : versionParam;\n return `${ssrDevCssRoute}?${query}`;\n };\n\n const getSsrDevCssContents = () => {\n const entries = Object.entries(cssLookup);\n if (entries.length === 0) return '';\n\n const merged = entries\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([, cssText]) => cssText)\n .join('\\n');\n return `${merged}\\n`;\n };\n\n const { emitter, onDone } = createFileReporter(debug ?? false);\n\n const scheduleCssReload = (cssFilename: string) => {\n if (!devServer?.moduleGraph) return;\n\n pendingCssReloads.add(cssFilename);\n\n if (pendingCssReloadTimer) return;\n pendingCssReloadTimer = setTimeout(() => {\n pendingCssReloadTimer = undefined;\n\n const ids = Array.from(pendingCssReloads);\n pendingCssReloads.clear();\n\n for (const id of ids) {\n const module = devServer.moduleGraph.getModuleById(id);\n if (module) devServer.reloadModule(module);\n }\n }, 0);\n };\n\n // <dependency id, targets>\n const targets: { dependencies: string[]; id: string }[] = [];\n const cache = new TransformCacheCollection();\n\n type DepInfoLike = { file: string; processing?: Promise<void> };\n type DepsOptimizerLike = {\n init?: () => Promise<void>;\n isOptimizedDepFile?: (id: string) => boolean;\n metadata?: { depInfoList?: DepInfoLike[] };\n scanProcessing?: Promise<void>;\n };\n\n type ViteServerWithDepsOptimizer = ViteDevServer & {\n _depsOptimizer?: DepsOptimizerLike;\n depsOptimizer?: DepsOptimizerLike;\n environments?: Record<string, { depsOptimizer?: DepsOptimizerLike }>;\n };\n\n const isInsideCacheDir = (filename: string): boolean => {\n if (!config.cacheDir) {\n return false;\n }\n\n const relative = path.relative(config.cacheDir, filename);\n return (\n relative !== '' &&\n !relative.startsWith('..') &&\n !path.isAbsolute(relative)\n );\n };\n\n const getDepsOptimizer = (): DepsOptimizerLike | null => {\n if (!devServer) return null;\n\n const server = devServer as unknown as ViteServerWithDepsOptimizer;\n return (\n server.environments?.client?.depsOptimizer ??\n server.depsOptimizer ??\n server._depsOptimizer ??\n null\n );\n };\n\n const waitForOptimizedDep = async (filename: string): Promise<boolean> => {\n const depsOptimizer = getDepsOptimizer();\n if (!depsOptimizer?.isOptimizedDepFile?.(filename)) {\n return false;\n }\n\n await depsOptimizer.init?.();\n await depsOptimizer.scanProcessing;\n\n const info = depsOptimizer.metadata?.depInfoList?.find(\n (item) => item.file === filename\n );\n if (info?.processing) {\n await info.processing;\n }\n\n return true;\n };\n\n const createAsyncResolver = asyncResolverFactory(\n async (\n resolved: { external: boolean | 'absolute'; id: string } | null,\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> => {\n const log = logger.extend('vite').extend(getFileIdx(importer));\n\n if (resolved) {\n if (resolved.external) {\n // If module is marked as external, Rollup will not resolve it,\n // so we need to resolve it ourselves with default resolver\n const resolvedId = syncResolve(what, importer, stack);\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n return resolvedId;\n }\n\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n\n // Vite adds param like `?v=667939b3` to cached modules\n let resolvedId = resolved.id.split('?', 1)[0];\n\n if (resolvedId.startsWith('\\0')) {\n // \\0 is a special character in Rollup that tells Rollup to not include this in the bundle\n // https://rollupjs.org/guide/en/#outputexports\n return null;\n }\n\n if (resolvedId.startsWith(VITE_FS_PREFIX)) {\n resolvedId = normalizeViteFsPath(resolvedId);\n }\n\n if (resolvedId.startsWith('/@')) {\n return null;\n }\n\n if (!existsSync(resolvedId)) {\n // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.\n // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).\n try {\n await waitForOptimizedDep(resolvedId);\n } catch {\n // If optimizer failed, fall through to preserve previous behavior and surface the error.\n }\n\n // Vite can return an optimized deps entry (from cacheDir) before it's written to disk.\n // Manually calling optimizeDeps is deprecated in Vite 7 and can also get called many times.\n // Instead, fall back to resolving the original module path directly.\n if (!existsSync(resolvedId) && isInsideCacheDir(resolvedId)) {\n try {\n return syncResolve(what, importer, stack);\n } catch {\n // Fall through to preserve previous behavior: return resolvedId and let WyW surface the error.\n }\n }\n }\n\n return resolvedId;\n }\n\n log(\"resolve ❌ '%s'@'%s\", what, importer);\n throw new Error(`Could not resolve ${what}`);\n },\n (what, importer) => [what, importer]\n );\n\n return {\n name: 'wyw-in-js',\n enforce: 'post',\n buildEnd() {\n onDone(process.cwd());\n },\n configResolved(resolvedConfig: ResolvedConfig) {\n config = resolvedConfig;\n\n if (preserveCssPaths && config.command === 'build') {\n const outputs = config.build.rollupOptions.output;\n let outputEntries: unknown[] = [];\n if (Array.isArray(outputs)) {\n outputEntries = outputs;\n } else if (outputs) {\n outputEntries = [outputs];\n }\n\n outputEntries.forEach((entry) => {\n if (!entry || typeof entry !== 'object') return;\n\n const output = entry as RollupOutputLike;\n if (!output.preserveModules) return;\n\n const template: AssetFileNames =\n output.assetFileNames ??\n `${config.build.assetsDir ?? 'assets'}/[name].[hash].[ext]`;\n\n const assetFileNames = getWywCssAssetFileNames(\n config,\n output,\n template\n );\n if (assetFileNames) output.assetFileNames = assetFileNames;\n });\n }\n\n const envPrefix = config.envPrefix ?? 'VITE_';\n const envDir =\n // envDir is absolute in modern Vite, but keep a fallback for older versions\n 'envDir' in config && typeof config.envDir === 'string'\n ? config.envDir\n : config.root;\n\n const loaded = loadEnv(config.mode, envDir, envPrefix);\n const base = {\n ...loaded,\n BASE_URL: config.base,\n MODE: config.mode,\n DEV: config.command === 'serve',\n PROD: config.command === 'build',\n };\n\n importMetaEnvForEval = {\n client: { ...base, SSR: false },\n ssr: { ...base, SSR: true },\n };\n },\n configureServer(_server) {\n devServer = _server;\n\n if (!ssrDevCssEnabled || config.command !== 'serve') return;\n\n devServer.middlewares.use(\n (req: IncomingMessage, res: ServerResponse, next: () => void) => {\n const { url } = req;\n if (!url) {\n next();\n return;\n }\n\n const [pathname] = url.split('?', 1);\n if (pathname !== ssrDevCssRoute) {\n next();\n return;\n }\n\n const etag = `W/\"${ssrDevCssVersion}\"`;\n const ifNoneMatch = req.headers['if-none-match'];\n if (ifNoneMatch === etag) {\n res.statusCode = 304;\n res.end();\n return;\n }\n\n res.statusCode = 200;\n res.setHeader('Content-Type', 'text/css; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache');\n res.setHeader('ETag', etag);\n res.end(getSsrDevCssContents());\n }\n );\n },\n transformIndexHtml(html) {\n if (!ssrDevCssEnabled || config.command !== 'serve') return undefined;\n\n return {\n html,\n tags: [\n {\n tag: 'link',\n attrs: { rel: 'stylesheet', href: getSsrDevCssHref() },\n injectTo: 'head-prepend',\n },\n ],\n };\n },\n load(url: string) {\n const [id] = url.split('?', 1);\n return cssLookup[id];\n },\n /* eslint-disable-next-line consistent-return */\n resolveId(importeeUrl: string) {\n const [id] = importeeUrl.split('?', 1);\n if (cssLookup[id]) return id;\n return cssFileLookup[id];\n },\n handleHotUpdate(ctx) {\n // it's module, so just transform it\n if (ctx.modules.length) return ctx.modules;\n\n // Select affected modules of changed dependency\n const affected = targets.filter(\n (x) =>\n // file is dependency of any target\n x.dependencies.some((dep) => dep === ctx.file) ||\n // or changed module is a dependency of any target\n x.dependencies.some((dep) => ctx.modules.some((m) => m.file === dep))\n );\n const deps = affected.flatMap((target) => target.dependencies);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const depId of deps) {\n cache.invalidateForFile(depId);\n }\n\n return affected\n .map((target) => devServer.moduleGraph.getModuleById(target.id))\n .concat(ctx.modules)\n .filter((m): m is ModuleNode => !!m);\n },\n async transform(\n code: string,\n url: string,\n transformOptions?: boolean | { ssr?: boolean }\n ) {\n const [id] = url.split('?', 1);\n\n // Do not transform ignored and generated files\n if (\n (!transformLibraries && url.includes('node_modules')) ||\n !filter(url) ||\n id in cssLookup\n )\n return;\n\n const log = logger.extend('vite').extend(getFileIdx(id));\n\n log('transform %s', id);\n\n const overrideContext: OverrideContext = (context, filename) => {\n const isSsr =\n typeof transformOptions === 'boolean'\n ? transformOptions\n : Boolean(transformOptions?.ssr);\n const env = importMetaEnvForEval?.[isSsr ? 'ssr' : 'client'];\n const withEnv = env\n ? { ...context, __wyw_import_meta_env: env }\n : context;\n\n return rest.overrideContext\n ? rest.overrideContext(withEnv, filename)\n : withEnv;\n };\n\n const transformServices = {\n options: {\n filename: id,\n root: process.cwd(),\n prefixer,\n keepComments,\n preprocessor,\n pluginOptions: {\n ...rest,\n overrideContext,\n },\n },\n cache,\n emitWarning: (message: string) => this.warn(message),\n eventEmitter: emitter,\n };\n\n const result = await transform(\n transformServices,\n code,\n createAsyncResolver(this.resolve)\n );\n\n let { cssText, dependencies } = result;\n\n // Heads up, there are three cases:\n // 1. cssText is undefined, it means that file was not transformed\n // 2. cssText is empty, it means that file was transformed, but it does not contain any styles\n // 3. cssText is not empty, it means that file was transformed and it contains styles\n\n if (typeof cssText === 'undefined') {\n return;\n }\n\n if (cssText === '') {\n /* eslint-disable-next-line consistent-return */\n return {\n code: result.code,\n map: result.sourceMap,\n };\n }\n\n dependencies ??= [];\n\n const cssFilename = path\n .normalize(`${id.replace(/\\.[jt]sx?$/, '')}.wyw-in-js.css`)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssRelativePath = path\n .relative(config.root, cssFilename)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssId = `/${cssRelativePath}`;\n\n if (sourceMap && result.cssSourceMapText) {\n const map = Buffer.from(result.cssSourceMapText).toString('base64');\n cssText += `/*# sourceMappingURL=data:application/json;base64,${map}*/`;\n }\n\n const didCssChange = cssLookup[cssFilename] !== cssText;\n cssLookup[cssFilename] = cssText;\n cssFileLookup[cssId] = cssFilename;\n\n result.code += `\\nimport ${JSON.stringify(cssFilename)};\\n`;\n\n for (let i = 0, end = dependencies.length; i < end; i++) {\n // eslint-disable-next-line no-await-in-loop\n const depModule = await this.resolve(dependencies[i], url, {\n isEntry: false,\n });\n if (depModule) dependencies[i] = depModule.id;\n }\n const target = targets.find((t) => t.id === id);\n if (!target) targets.push({ id, dependencies });\n else target.dependencies = dependencies;\n\n if (didCssChange) {\n scheduleCssReload(cssFilename);\n if (ssrDevCssEnabled && config.command === 'serve') {\n ssrDevCssVersion += 1;\n }\n }\n /* eslint-disable-next-line consistent-return */\n return { code: result.code, map: result.sourceMap };\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.mjs","names":["existsSync","path","createFilter","loadEnv","asyncResolverFactory","logger","syncResolve","createFileReporter","getFileIdx","transform","TransformCacheCollection","isWindowsAbsolutePath","value","test","normalizeToPosix","replace","posix","sep","isInside","childPath","parentPath","rel","relative","startsWith","isAbsolute","isWywCssAssetName","endsWith","normalizeAssetRelativePath","normalized","normalize","stripExtension","ext","extname","slice","length","VITE_FS_PREFIX","safeDecodeURIComponent","decodeURIComponent","normalizeViteFsPath","fsPath","getWywCssAssetFileNames","resolvedConfig","output","originalAssetFileNames","preserveModules","rootDir","root","preserveModulesRootValue","preserveModulesRoot","preserveModulesRootAbs","resolve","preserveModulesRootRel","assetInfo","template","assetName","name","includes","relativePath","assetNameNormalized","preserveRel","withoutExt","dir","dirname","idx","indexOf","prefix","wywInJS","debug","include","exclude","sourceMap","preserveCssPaths","keepComments","prefixer","preprocessor","ssrDevCss","ssrDevCssPath","transformLibraries","rest","filter","cssLookup","cssFileLookup","pendingCssReloads","Set","pendingCssReloadTimer","ssrDevCssVersion","config","devServer","importMetaEnvForEval","ssrDevCssEnabled","Boolean","ssrDevCssPathname","ssrDevCssQuery","split","ssrDevCssRoute","getSsrDevCssHref","versionParam","query","getSsrDevCssContents","entries","Object","merged","sort","a","b","localeCompare","map","cssText","join","emitter","onDone","scheduleCssReload","cssFilename","moduleGraph","add","setTimeout","undefined","ids","Array","from","clear","id","module","getModuleById","reloadModule","targets","cache","isInsideCacheDir","filename","cacheDir","getDepsOptimizer","server","environments","client","depsOptimizer","_depsOptimizer","waitForOptimizedDep","isOptimizedDepFile","init","scanProcessing","info","metadata","depInfoList","find","item","file","processing","createAsyncResolver","resolved","what","importer","stack","log","extend","resolvedId","external","Error","enforce","buildEnd","process","cwd","configResolved","command","outputs","build","rollupOptions","outputEntries","isArray","forEach","entry","assetFileNames","assetsDir","envPrefix","envDir","loaded","mode","base","BASE_URL","MODE","DEV","PROD","SSR","ssr","configureServer","_server","middlewares","use","req","res","next","url","pathname","etag","ifNoneMatch","headers","statusCode","end","setHeader","transformIndexHtml","html","tags","tag","attrs","href","injectTo","load","resolveId","importeeUrl","handleHotUpdate","ctx","modules","affected","x","dependencies","some","dep","m","deps","flatMap","target","depId","invalidateForFile","concat","code","transformOptions","overrideContext","context","isSsr","env","withEnv","__wyw_import_meta_env","transformServices","options","pluginOptions","emitWarning","message","warn","eventEmitter","result","cssRelativePath","cssId","cssSourceMapText","Buffer","toString","didCssChange","JSON","stringify","i","depModule","isEntry","t","push"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * This file contains a Vite loader for wyw-in-js.\n * It uses the transform.ts function to generate class names from source code,\n * returns transformed code without template literals and attaches generated source maps\n */\n\nimport { existsSync } from 'fs';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport path from 'path';\n\nimport { createFilter, loadEnv } from 'vite';\nimport type {\n ModuleNode,\n Plugin,\n ResolvedConfig,\n ViteDevServer,\n FilterPattern,\n} from 'vite';\n\nimport { asyncResolverFactory, logger, syncResolve } from '@wyw-in-js/shared';\nimport type {\n IFileReporterOptions,\n PluginOptions,\n Preprocessor,\n} from '@wyw-in-js/transform';\nimport {\n createFileReporter,\n getFileIdx,\n transform,\n TransformCacheCollection,\n} from '@wyw-in-js/transform';\n\ntype VitePluginOptions = {\n debug?: IFileReporterOptions | false | null | undefined;\n exclude?: FilterPattern;\n include?: FilterPattern;\n keepComments?: boolean | RegExp;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n preserveCssPaths?: boolean;\n sourceMap?: boolean;\n ssrDevCss?: boolean;\n ssrDevCssPath?: string;\n transformLibraries?: boolean;\n} & Partial<PluginOptions>;\n\ntype OverrideContext = NonNullable<PluginOptions['overrideContext']>;\n\nexport { Plugin };\n\ntype AssetInfoLike = { name?: unknown };\ntype AssetFileNames = string | ((assetInfo: AssetInfoLike) => string);\ntype RollupOutputLike = {\n assetFileNames?: AssetFileNames;\n preserveModules?: boolean;\n preserveModulesRoot?: unknown;\n} & Record<string, unknown>;\n\nconst isWindowsAbsolutePath = (value: string): boolean =>\n /^[a-zA-Z]:[\\\\/]/.test(value);\n\nconst normalizeToPosix = (value: string): string =>\n value.replace(/\\\\/g, path.posix.sep);\n\nconst isInside = (childPath: string, parentPath: string): boolean => {\n const rel = path.relative(parentPath, childPath);\n return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));\n};\n\nconst isWywCssAssetName = (value: string): boolean =>\n value.endsWith('.wyw-in-js.css');\n\nconst normalizeAssetRelativePath = (value: string): string | null => {\n const normalized = path.posix.normalize(\n normalizeToPosix(value).replace(/^\\/+/, '')\n );\n if (normalized.startsWith('..') || path.posix.isAbsolute(normalized)) {\n return null;\n }\n\n return normalized;\n};\n\nconst stripExtension = (value: string): string => {\n const ext = path.posix.extname(value);\n return ext ? value.slice(0, -ext.length) : value;\n};\n\nconst VITE_FS_PREFIX = '/@fs/';\n\nconst safeDecodeURIComponent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\nconst normalizeViteFsPath = (value: string): string => {\n const fsPath = value.slice(VITE_FS_PREFIX.length);\n return path.normalize(safeDecodeURIComponent(fsPath));\n};\n\nconst getWywCssAssetFileNames = (\n resolvedConfig: ResolvedConfig,\n output: RollupOutputLike,\n originalAssetFileNames: AssetFileNames\n): ((assetInfo: AssetInfoLike) => string) | null => {\n if (!output.preserveModules) return null;\n\n const rootDir = resolvedConfig.root;\n\n const preserveModulesRootValue = output.preserveModulesRoot;\n let preserveModulesRootAbs: string | null = null;\n if (typeof preserveModulesRootValue === 'string') {\n preserveModulesRootAbs = path.isAbsolute(preserveModulesRootValue)\n ? preserveModulesRootValue\n : path.resolve(rootDir, preserveModulesRootValue);\n }\n\n const preserveModulesRootRel =\n preserveModulesRootAbs && isInside(preserveModulesRootAbs, rootDir)\n ? normalizeToPosix(path.relative(rootDir, preserveModulesRootAbs))\n : null;\n\n return (assetInfo) => {\n const template =\n typeof originalAssetFileNames === 'function'\n ? originalAssetFileNames(assetInfo)\n : originalAssetFileNames;\n\n const assetName = assetInfo?.name;\n if (typeof assetName !== 'string' || !isWywCssAssetName(assetName)) {\n return template;\n }\n\n if (!template.includes('[')) {\n return template;\n }\n\n let relativePath: string | null = null;\n\n const assetNameNormalized = normalizeToPosix(assetName);\n\n if (\n path.isAbsolute(assetName) ||\n isWindowsAbsolutePath(assetNameNormalized)\n ) {\n const preserveRel =\n preserveModulesRootAbs && isInside(assetName, preserveModulesRootAbs)\n ? path.relative(preserveModulesRootAbs, assetName)\n : null;\n\n if (\n preserveRel &&\n !path.isAbsolute(preserveRel) &&\n !preserveRel.startsWith('..')\n ) {\n relativePath = preserveRel;\n } else if (isInside(assetName, rootDir)) {\n relativePath = path.relative(rootDir, assetName);\n }\n } else if (\n preserveModulesRootRel &&\n assetNameNormalized.startsWith(`${preserveModulesRootRel}/`)\n ) {\n relativePath = assetNameNormalized.slice(\n preserveModulesRootRel.length + 1\n );\n } else {\n relativePath = assetNameNormalized;\n }\n\n const normalized = relativePath\n ? normalizeAssetRelativePath(relativePath)\n : null;\n if (!normalized) {\n return template;\n }\n\n const withoutExt = stripExtension(normalized);\n\n if (template.includes('[name]')) {\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n return template.replace(/\\[name\\]/g, `${dir}/[name]`);\n }\n\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n const idx = template.indexOf('[');\n if (idx < 0) {\n return template;\n }\n\n const prefix = template.slice(0, idx);\n if (prefix !== '' && !prefix.endsWith('/')) {\n return template;\n }\n\n return `${prefix}${dir}/${template.slice(idx)}`;\n };\n};\n\nexport default function wywInJS({\n debug,\n include,\n exclude,\n sourceMap,\n preserveCssPaths,\n keepComments,\n prefixer,\n preprocessor,\n ssrDevCss,\n ssrDevCssPath,\n transformLibraries,\n ...rest\n}: VitePluginOptions = {}): Plugin {\n const filter = createFilter(include, exclude);\n const cssLookup: { [key: string]: string } = {};\n const cssFileLookup: { [key: string]: string } = {};\n const pendingCssReloads = new Set<string>();\n let pendingCssReloadTimer: ReturnType<typeof setTimeout> | undefined;\n let ssrDevCssVersion = 0;\n let config: ResolvedConfig;\n let devServer: ViteDevServer;\n let importMetaEnvForEval: {\n client: Record<string, unknown>;\n ssr: Record<string, unknown>;\n } | null = null;\n\n const ssrDevCssEnabled = Boolean(ssrDevCss);\n const [ssrDevCssPathname, ssrDevCssQuery] = (\n ssrDevCssPath ?? '/_wyw-in-js/ssr.css'\n ).split('?', 2);\n const ssrDevCssRoute = ssrDevCssPathname.startsWith('/')\n ? ssrDevCssPathname\n : `/${ssrDevCssPathname}`;\n\n const getSsrDevCssHref = () => {\n const versionParam = `v=${ssrDevCssVersion}`;\n const query = ssrDevCssQuery\n ? `${ssrDevCssQuery}&${versionParam}`\n : versionParam;\n return `${ssrDevCssRoute}?${query}`;\n };\n\n const getSsrDevCssContents = () => {\n const entries = Object.entries(cssLookup);\n if (entries.length === 0) return '';\n\n const merged = entries\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([, cssText]) => cssText)\n .join('\\n');\n return `${merged}\\n`;\n };\n\n const { emitter, onDone } = createFileReporter(debug ?? false);\n\n const scheduleCssReload = (cssFilename: string) => {\n if (!devServer?.moduleGraph) return;\n\n pendingCssReloads.add(cssFilename);\n\n if (pendingCssReloadTimer) return;\n pendingCssReloadTimer = setTimeout(() => {\n pendingCssReloadTimer = undefined;\n\n const ids = Array.from(pendingCssReloads);\n pendingCssReloads.clear();\n\n for (const id of ids) {\n const module = devServer.moduleGraph.getModuleById(id);\n if (module) devServer.reloadModule(module);\n }\n }, 0);\n };\n\n // <dependency id, targets>\n const targets: { dependencies: string[]; id: string }[] = [];\n const cache = new TransformCacheCollection();\n\n type DepInfoLike = { file: string; processing?: Promise<void> };\n type DepsOptimizerLike = {\n init?: () => Promise<void>;\n isOptimizedDepFile?: (id: string) => boolean;\n metadata?: { depInfoList?: DepInfoLike[] };\n scanProcessing?: Promise<void>;\n };\n\n type ViteServerWithDepsOptimizer = ViteDevServer & {\n _depsOptimizer?: DepsOptimizerLike;\n depsOptimizer?: DepsOptimizerLike;\n environments?: Record<string, { depsOptimizer?: DepsOptimizerLike }>;\n };\n\n const isInsideCacheDir = (filename: string): boolean => {\n if (!config.cacheDir) {\n return false;\n }\n\n const relative = path.relative(config.cacheDir, filename);\n return (\n relative !== '' &&\n !relative.startsWith('..') &&\n !path.isAbsolute(relative)\n );\n };\n\n const getDepsOptimizer = (): DepsOptimizerLike | null => {\n if (!devServer) return null;\n\n const server = devServer as unknown as ViteServerWithDepsOptimizer;\n return (\n server.environments?.client?.depsOptimizer ??\n server.depsOptimizer ??\n server._depsOptimizer ??\n null\n );\n };\n\n const waitForOptimizedDep = async (filename: string): Promise<boolean> => {\n const depsOptimizer = getDepsOptimizer();\n if (!depsOptimizer?.isOptimizedDepFile?.(filename)) {\n return false;\n }\n\n await depsOptimizer.init?.();\n await depsOptimizer.scanProcessing;\n\n const info = depsOptimizer.metadata?.depInfoList?.find(\n (item) => item.file === filename\n );\n if (info?.processing) {\n await info.processing;\n }\n\n return true;\n };\n\n const createAsyncResolver = asyncResolverFactory(\n async (\n resolved: { external: boolean | 'absolute'; id: string } | null,\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> => {\n const log = logger.extend('vite').extend(getFileIdx(importer));\n\n if (resolved) {\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n\n // Vite adds param like `?v=667939b3` to cached modules\n let resolvedId = resolved.id.split('?', 1)[0];\n\n if (resolvedId.startsWith('\\0')) {\n // \\0 is a special character in Rollup that tells Rollup to not include this in the bundle\n // https://rollupjs.org/guide/en/#outputexports\n return null;\n }\n\n if (resolvedId.startsWith(VITE_FS_PREFIX)) {\n resolvedId = normalizeViteFsPath(resolvedId);\n }\n\n if (resolvedId.startsWith('/@')) {\n return null;\n }\n\n if (resolved.external) {\n // In SSR mode Vite can mark resolved file ids as `external` (including `external: \"absolute\"`).\n // Prefer Vite's resolved file path and only fall back to Node resolution for bare specifiers.\n if (path.isAbsolute(resolvedId) || existsSync(resolvedId)) {\n return resolvedId;\n }\n\n // If module is marked as external, Rollup will not resolve it further, so resolve it ourselves.\n return syncResolve(what, importer, stack);\n }\n\n if (!existsSync(resolvedId)) {\n // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.\n // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).\n try {\n await waitForOptimizedDep(resolvedId);\n } catch {\n // If optimizer failed, fall through to preserve previous behavior and surface the error.\n }\n\n // Vite can return an optimized deps entry (from cacheDir) before it's written to disk.\n // Manually calling optimizeDeps is deprecated in Vite 7 and can also get called many times.\n // Instead, fall back to resolving the original module path directly.\n if (!existsSync(resolvedId) && isInsideCacheDir(resolvedId)) {\n try {\n return syncResolve(what, importer, stack);\n } catch {\n // Fall through to preserve previous behavior: return resolvedId and let WyW surface the error.\n }\n }\n }\n\n return resolvedId;\n }\n\n log(\"resolve ❌ '%s'@'%s\", what, importer);\n throw new Error(`Could not resolve ${what}`);\n },\n (what, importer) => [what, importer]\n );\n\n return {\n name: 'wyw-in-js',\n enforce: 'post',\n buildEnd() {\n onDone(process.cwd());\n },\n configResolved(resolvedConfig: ResolvedConfig) {\n config = resolvedConfig;\n\n if (preserveCssPaths && config.command === 'build') {\n const outputs = config.build.rollupOptions.output;\n let outputEntries: unknown[] = [];\n if (Array.isArray(outputs)) {\n outputEntries = outputs;\n } else if (outputs) {\n outputEntries = [outputs];\n }\n\n outputEntries.forEach((entry) => {\n if (!entry || typeof entry !== 'object') return;\n\n const output = entry as RollupOutputLike;\n if (!output.preserveModules) return;\n\n const template: AssetFileNames =\n output.assetFileNames ??\n `${config.build.assetsDir ?? 'assets'}/[name].[hash].[ext]`;\n\n const assetFileNames = getWywCssAssetFileNames(\n config,\n output,\n template\n );\n if (assetFileNames) output.assetFileNames = assetFileNames;\n });\n }\n\n const envPrefix = config.envPrefix ?? 'VITE_';\n const envDir =\n // envDir is absolute in modern Vite, but keep a fallback for older versions\n 'envDir' in config && typeof config.envDir === 'string'\n ? config.envDir\n : config.root;\n\n const loaded = loadEnv(config.mode, envDir, envPrefix);\n const base = {\n ...loaded,\n BASE_URL: config.base,\n MODE: config.mode,\n DEV: config.command === 'serve',\n PROD: config.command === 'build',\n };\n\n importMetaEnvForEval = {\n client: { ...base, SSR: false },\n ssr: { ...base, SSR: true },\n };\n },\n configureServer(_server) {\n devServer = _server;\n\n if (!ssrDevCssEnabled || config.command !== 'serve') return;\n\n devServer.middlewares.use(\n (req: IncomingMessage, res: ServerResponse, next: () => void) => {\n const { url } = req;\n if (!url) {\n next();\n return;\n }\n\n const [pathname] = url.split('?', 1);\n if (pathname !== ssrDevCssRoute) {\n next();\n return;\n }\n\n const etag = `W/\"${ssrDevCssVersion}\"`;\n const ifNoneMatch = req.headers['if-none-match'];\n if (ifNoneMatch === etag) {\n res.statusCode = 304;\n res.end();\n return;\n }\n\n res.statusCode = 200;\n res.setHeader('Content-Type', 'text/css; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache');\n res.setHeader('ETag', etag);\n res.end(getSsrDevCssContents());\n }\n );\n },\n transformIndexHtml(html) {\n if (!ssrDevCssEnabled || config.command !== 'serve') return undefined;\n\n return {\n html,\n tags: [\n {\n tag: 'link',\n attrs: { rel: 'stylesheet', href: getSsrDevCssHref() },\n injectTo: 'head-prepend',\n },\n ],\n };\n },\n load(url: string) {\n const [id] = url.split('?', 1);\n return cssLookup[id];\n },\n /* eslint-disable-next-line consistent-return */\n resolveId(importeeUrl: string) {\n const [id] = importeeUrl.split('?', 1);\n if (cssLookup[id]) return id;\n return cssFileLookup[id];\n },\n handleHotUpdate(ctx) {\n // it's module, so just transform it\n if (ctx.modules.length) return ctx.modules;\n\n // Select affected modules of changed dependency\n const affected = targets.filter(\n (x) =>\n // file is dependency of any target\n x.dependencies.some((dep) => dep === ctx.file) ||\n // or changed module is a dependency of any target\n x.dependencies.some((dep) => ctx.modules.some((m) => m.file === dep))\n );\n const deps = affected.flatMap((target) => target.dependencies);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const depId of deps) {\n cache.invalidateForFile(depId);\n }\n\n return affected\n .map((target) => devServer.moduleGraph.getModuleById(target.id))\n .concat(ctx.modules)\n .filter((m): m is ModuleNode => !!m);\n },\n async transform(\n code: string,\n url: string,\n transformOptions?: boolean | { ssr?: boolean }\n ) {\n const [id] = url.split('?', 1);\n\n // Do not transform ignored and generated files\n if (\n (!transformLibraries && url.includes('node_modules')) ||\n !filter(url) ||\n id in cssLookup\n )\n return;\n\n const log = logger.extend('vite').extend(getFileIdx(id));\n\n log('transform %s', id);\n\n const overrideContext: OverrideContext = (context, filename) => {\n const isSsr =\n typeof transformOptions === 'boolean'\n ? transformOptions\n : Boolean(transformOptions?.ssr);\n const env = importMetaEnvForEval?.[isSsr ? 'ssr' : 'client'];\n const withEnv = env\n ? { ...context, __wyw_import_meta_env: env }\n : context;\n\n return rest.overrideContext\n ? rest.overrideContext(withEnv, filename)\n : withEnv;\n };\n\n const transformServices = {\n options: {\n filename: id,\n root: process.cwd(),\n prefixer,\n keepComments,\n preprocessor,\n pluginOptions: {\n ...rest,\n overrideContext,\n },\n },\n cache,\n emitWarning: (message: string) => this.warn(message),\n eventEmitter: emitter,\n };\n\n const result = await transform(\n transformServices,\n code,\n createAsyncResolver(this.resolve)\n );\n\n let { cssText, dependencies } = result;\n\n // Heads up, there are three cases:\n // 1. cssText is undefined, it means that file was not transformed\n // 2. cssText is empty, it means that file was transformed, but it does not contain any styles\n // 3. cssText is not empty, it means that file was transformed and it contains styles\n\n if (typeof cssText === 'undefined') {\n return;\n }\n\n if (cssText === '') {\n /* eslint-disable-next-line consistent-return */\n return {\n code: result.code,\n map: result.sourceMap,\n };\n }\n\n dependencies ??= [];\n\n const cssFilename = path\n .normalize(`${id.replace(/\\.[jt]sx?$/, '')}.wyw-in-js.css`)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssRelativePath = path\n .relative(config.root, cssFilename)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssId = `/${cssRelativePath}`;\n\n if (sourceMap && result.cssSourceMapText) {\n const map = Buffer.from(result.cssSourceMapText).toString('base64');\n cssText += `/*# sourceMappingURL=data:application/json;base64,${map}*/`;\n }\n\n const didCssChange = cssLookup[cssFilename] !== cssText;\n cssLookup[cssFilename] = cssText;\n cssFileLookup[cssId] = cssFilename;\n\n result.code += `\\nimport ${JSON.stringify(cssFilename)};\\n`;\n\n for (let i = 0, end = dependencies.length; i < end; i++) {\n // eslint-disable-next-line no-await-in-loop\n const depModule = await this.resolve(dependencies[i], url, {\n isEntry: false,\n });\n if (depModule) dependencies[i] = depModule.id;\n }\n const target = targets.find((t) => t.id === id);\n if (!target) targets.push({ id, dependencies });\n else target.dependencies = dependencies;\n\n if (didCssChange) {\n scheduleCssReload(cssFilename);\n if (ssrDevCssEnabled && config.command === 'serve') {\n ssrDevCssVersion += 1;\n }\n }\n /* eslint-disable-next-line consistent-return */\n return { code: result.code, map: result.sourceMap };\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -195,13 +195,6 @@ function wywInJS({
195
195
  const createAsyncResolver = (0, _shared.asyncResolverFactory)(async (resolved, what, importer, stack) => {
196
196
  const log = _shared.logger.extend('vite').extend((0, _transform.getFileIdx)(importer));
197
197
  if (resolved) {
198
- if (resolved.external) {
199
- // If module is marked as external, Rollup will not resolve it,
200
- // so we need to resolve it ourselves with default resolver
201
- const resolvedId = (0, _shared.syncResolve)(what, importer, stack);
202
- log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
203
- return resolvedId;
204
- }
205
198
  log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
206
199
 
207
200
  // Vite adds param like `?v=667939b3` to cached modules
@@ -217,6 +210,16 @@ function wywInJS({
217
210
  if (resolvedId.startsWith('/@')) {
218
211
  return null;
219
212
  }
213
+ if (resolved.external) {
214
+ // In SSR mode Vite can mark resolved file ids as `external` (including `external: "absolute"`).
215
+ // Prefer Vite's resolved file path and only fall back to Node resolution for bare specifiers.
216
+ if (_path.default.isAbsolute(resolvedId) || (0, _fs.existsSync)(resolvedId)) {
217
+ return resolvedId;
218
+ }
219
+
220
+ // If module is marked as external, Rollup will not resolve it further, so resolve it ourselves.
221
+ return (0, _shared.syncResolve)(what, importer, stack);
222
+ }
220
223
  if (!(0, _fs.existsSync)(resolvedId)) {
221
224
  // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.
222
225
  // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_fs","require","_path","_interopRequireDefault","_vite","_shared","_transform","e","__esModule","default","isWindowsAbsolutePath","value","test","normalizeToPosix","replace","path","posix","sep","isInside","childPath","parentPath","rel","relative","startsWith","isAbsolute","isWywCssAssetName","endsWith","normalizeAssetRelativePath","normalized","normalize","stripExtension","ext","extname","slice","length","VITE_FS_PREFIX","safeDecodeURIComponent","decodeURIComponent","normalizeViteFsPath","fsPath","getWywCssAssetFileNames","resolvedConfig","output","originalAssetFileNames","preserveModules","rootDir","root","preserveModulesRootValue","preserveModulesRoot","preserveModulesRootAbs","resolve","preserveModulesRootRel","assetInfo","template","assetName","name","includes","relativePath","assetNameNormalized","preserveRel","withoutExt","dir","dirname","idx","indexOf","prefix","wywInJS","debug","include","exclude","sourceMap","preserveCssPaths","keepComments","prefixer","preprocessor","ssrDevCss","ssrDevCssPath","transformLibraries","rest","filter","createFilter","cssLookup","cssFileLookup","pendingCssReloads","Set","pendingCssReloadTimer","ssrDevCssVersion","config","devServer","importMetaEnvForEval","ssrDevCssEnabled","Boolean","ssrDevCssPathname","ssrDevCssQuery","split","ssrDevCssRoute","getSsrDevCssHref","versionParam","query","getSsrDevCssContents","entries","Object","merged","sort","a","b","localeCompare","map","cssText","join","emitter","onDone","createFileReporter","scheduleCssReload","cssFilename","_devServer","moduleGraph","add","setTimeout","undefined","ids","Array","from","clear","id","module","getModuleById","reloadModule","targets","cache","TransformCacheCollection","isInsideCacheDir","filename","cacheDir","getDepsOptimizer","_ref","_ref2","_server$environments$","_server$environments","server","environments","client","depsOptimizer","_depsOptimizer","waitForOptimizedDep","_depsOptimizer$isOpti","_depsOptimizer$init","_depsOptimizer$metada","isOptimizedDepFile","call","init","scanProcessing","info","metadata","depInfoList","find","item","file","processing","createAsyncResolver","asyncResolverFactory","resolved","what","importer","stack","log","logger","extend","getFileIdx","external","resolvedId","syncResolve","existsSync","Error","enforce","buildEnd","process","cwd","configResolved","_config$envPrefix","command","outputs","build","rollupOptions","outputEntries","isArray","forEach","entry","_output$assetFileName","_config$build$assetsD","assetFileNames","assetsDir","envPrefix","envDir","loaded","loadEnv","mode","base","BASE_URL","MODE","DEV","PROD","SSR","ssr","configureServer","_server","middlewares","use","req","res","next","url","pathname","etag","ifNoneMatch","headers","statusCode","end","setHeader","transformIndexHtml","html","tags","tag","attrs","href","injectTo","load","resolveId","importeeUrl","handleHotUpdate","ctx","modules","affected","x","dependencies","some","dep","m","deps","flatMap","target","depId","invalidateForFile","concat","transform","code","transformOptions","overrideContext","context","_importMetaEnvForEval","isSsr","env","withEnv","__wyw_import_meta_env","transformServices","options","pluginOptions","emitWarning","message","warn","eventEmitter","result","cssRelativePath","cssId","cssSourceMapText","Buffer","toString","didCssChange","JSON","stringify","i","depModule","isEntry","t","push"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * This file contains a Vite loader for wyw-in-js.\n * It uses the transform.ts function to generate class names from source code,\n * returns transformed code without template literals and attaches generated source maps\n */\n\nimport { existsSync } from 'fs';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport path from 'path';\n\nimport { createFilter, loadEnv } from 'vite';\nimport type {\n ModuleNode,\n Plugin,\n ResolvedConfig,\n ViteDevServer,\n FilterPattern,\n} from 'vite';\n\nimport { asyncResolverFactory, logger, syncResolve } from '@wyw-in-js/shared';\nimport type {\n IFileReporterOptions,\n PluginOptions,\n Preprocessor,\n} from '@wyw-in-js/transform';\nimport {\n createFileReporter,\n getFileIdx,\n transform,\n TransformCacheCollection,\n} from '@wyw-in-js/transform';\n\ntype VitePluginOptions = {\n debug?: IFileReporterOptions | false | null | undefined;\n exclude?: FilterPattern;\n include?: FilterPattern;\n keepComments?: boolean | RegExp;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n preserveCssPaths?: boolean;\n sourceMap?: boolean;\n ssrDevCss?: boolean;\n ssrDevCssPath?: string;\n transformLibraries?: boolean;\n} & Partial<PluginOptions>;\n\ntype OverrideContext = NonNullable<PluginOptions['overrideContext']>;\n\nexport { Plugin };\n\ntype AssetInfoLike = { name?: unknown };\ntype AssetFileNames = string | ((assetInfo: AssetInfoLike) => string);\ntype RollupOutputLike = {\n assetFileNames?: AssetFileNames;\n preserveModules?: boolean;\n preserveModulesRoot?: unknown;\n} & Record<string, unknown>;\n\nconst isWindowsAbsolutePath = (value: string): boolean =>\n /^[a-zA-Z]:[\\\\/]/.test(value);\n\nconst normalizeToPosix = (value: string): string =>\n value.replace(/\\\\/g, path.posix.sep);\n\nconst isInside = (childPath: string, parentPath: string): boolean => {\n const rel = path.relative(parentPath, childPath);\n return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));\n};\n\nconst isWywCssAssetName = (value: string): boolean =>\n value.endsWith('.wyw-in-js.css');\n\nconst normalizeAssetRelativePath = (value: string): string | null => {\n const normalized = path.posix.normalize(\n normalizeToPosix(value).replace(/^\\/+/, '')\n );\n if (normalized.startsWith('..') || path.posix.isAbsolute(normalized)) {\n return null;\n }\n\n return normalized;\n};\n\nconst stripExtension = (value: string): string => {\n const ext = path.posix.extname(value);\n return ext ? value.slice(0, -ext.length) : value;\n};\n\nconst VITE_FS_PREFIX = '/@fs/';\n\nconst safeDecodeURIComponent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\nconst normalizeViteFsPath = (value: string): string => {\n const fsPath = value.slice(VITE_FS_PREFIX.length);\n return path.normalize(safeDecodeURIComponent(fsPath));\n};\n\nconst getWywCssAssetFileNames = (\n resolvedConfig: ResolvedConfig,\n output: RollupOutputLike,\n originalAssetFileNames: AssetFileNames\n): ((assetInfo: AssetInfoLike) => string) | null => {\n if (!output.preserveModules) return null;\n\n const rootDir = resolvedConfig.root;\n\n const preserveModulesRootValue = output.preserveModulesRoot;\n let preserveModulesRootAbs: string | null = null;\n if (typeof preserveModulesRootValue === 'string') {\n preserveModulesRootAbs = path.isAbsolute(preserveModulesRootValue)\n ? preserveModulesRootValue\n : path.resolve(rootDir, preserveModulesRootValue);\n }\n\n const preserveModulesRootRel =\n preserveModulesRootAbs && isInside(preserveModulesRootAbs, rootDir)\n ? normalizeToPosix(path.relative(rootDir, preserveModulesRootAbs))\n : null;\n\n return (assetInfo) => {\n const template =\n typeof originalAssetFileNames === 'function'\n ? originalAssetFileNames(assetInfo)\n : originalAssetFileNames;\n\n const assetName = assetInfo?.name;\n if (typeof assetName !== 'string' || !isWywCssAssetName(assetName)) {\n return template;\n }\n\n if (!template.includes('[')) {\n return template;\n }\n\n let relativePath: string | null = null;\n\n const assetNameNormalized = normalizeToPosix(assetName);\n\n if (\n path.isAbsolute(assetName) ||\n isWindowsAbsolutePath(assetNameNormalized)\n ) {\n const preserveRel =\n preserveModulesRootAbs && isInside(assetName, preserveModulesRootAbs)\n ? path.relative(preserveModulesRootAbs, assetName)\n : null;\n\n if (\n preserveRel &&\n !path.isAbsolute(preserveRel) &&\n !preserveRel.startsWith('..')\n ) {\n relativePath = preserveRel;\n } else if (isInside(assetName, rootDir)) {\n relativePath = path.relative(rootDir, assetName);\n }\n } else if (\n preserveModulesRootRel &&\n assetNameNormalized.startsWith(`${preserveModulesRootRel}/`)\n ) {\n relativePath = assetNameNormalized.slice(\n preserveModulesRootRel.length + 1\n );\n } else {\n relativePath = assetNameNormalized;\n }\n\n const normalized = relativePath\n ? normalizeAssetRelativePath(relativePath)\n : null;\n if (!normalized) {\n return template;\n }\n\n const withoutExt = stripExtension(normalized);\n\n if (template.includes('[name]')) {\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n return template.replace(/\\[name\\]/g, `${dir}/[name]`);\n }\n\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n const idx = template.indexOf('[');\n if (idx < 0) {\n return template;\n }\n\n const prefix = template.slice(0, idx);\n if (prefix !== '' && !prefix.endsWith('/')) {\n return template;\n }\n\n return `${prefix}${dir}/${template.slice(idx)}`;\n };\n};\n\nexport default function wywInJS({\n debug,\n include,\n exclude,\n sourceMap,\n preserveCssPaths,\n keepComments,\n prefixer,\n preprocessor,\n ssrDevCss,\n ssrDevCssPath,\n transformLibraries,\n ...rest\n}: VitePluginOptions = {}): Plugin {\n const filter = createFilter(include, exclude);\n const cssLookup: { [key: string]: string } = {};\n const cssFileLookup: { [key: string]: string } = {};\n const pendingCssReloads = new Set<string>();\n let pendingCssReloadTimer: ReturnType<typeof setTimeout> | undefined;\n let ssrDevCssVersion = 0;\n let config: ResolvedConfig;\n let devServer: ViteDevServer;\n let importMetaEnvForEval: {\n client: Record<string, unknown>;\n ssr: Record<string, unknown>;\n } | null = null;\n\n const ssrDevCssEnabled = Boolean(ssrDevCss);\n const [ssrDevCssPathname, ssrDevCssQuery] = (\n ssrDevCssPath ?? '/_wyw-in-js/ssr.css'\n ).split('?', 2);\n const ssrDevCssRoute = ssrDevCssPathname.startsWith('/')\n ? ssrDevCssPathname\n : `/${ssrDevCssPathname}`;\n\n const getSsrDevCssHref = () => {\n const versionParam = `v=${ssrDevCssVersion}`;\n const query = ssrDevCssQuery\n ? `${ssrDevCssQuery}&${versionParam}`\n : versionParam;\n return `${ssrDevCssRoute}?${query}`;\n };\n\n const getSsrDevCssContents = () => {\n const entries = Object.entries(cssLookup);\n if (entries.length === 0) return '';\n\n const merged = entries\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([, cssText]) => cssText)\n .join('\\n');\n return `${merged}\\n`;\n };\n\n const { emitter, onDone } = createFileReporter(debug ?? false);\n\n const scheduleCssReload = (cssFilename: string) => {\n if (!devServer?.moduleGraph) return;\n\n pendingCssReloads.add(cssFilename);\n\n if (pendingCssReloadTimer) return;\n pendingCssReloadTimer = setTimeout(() => {\n pendingCssReloadTimer = undefined;\n\n const ids = Array.from(pendingCssReloads);\n pendingCssReloads.clear();\n\n for (const id of ids) {\n const module = devServer.moduleGraph.getModuleById(id);\n if (module) devServer.reloadModule(module);\n }\n }, 0);\n };\n\n // <dependency id, targets>\n const targets: { dependencies: string[]; id: string }[] = [];\n const cache = new TransformCacheCollection();\n\n type DepInfoLike = { file: string; processing?: Promise<void> };\n type DepsOptimizerLike = {\n init?: () => Promise<void>;\n isOptimizedDepFile?: (id: string) => boolean;\n metadata?: { depInfoList?: DepInfoLike[] };\n scanProcessing?: Promise<void>;\n };\n\n type ViteServerWithDepsOptimizer = ViteDevServer & {\n _depsOptimizer?: DepsOptimizerLike;\n depsOptimizer?: DepsOptimizerLike;\n environments?: Record<string, { depsOptimizer?: DepsOptimizerLike }>;\n };\n\n const isInsideCacheDir = (filename: string): boolean => {\n if (!config.cacheDir) {\n return false;\n }\n\n const relative = path.relative(config.cacheDir, filename);\n return (\n relative !== '' &&\n !relative.startsWith('..') &&\n !path.isAbsolute(relative)\n );\n };\n\n const getDepsOptimizer = (): DepsOptimizerLike | null => {\n if (!devServer) return null;\n\n const server = devServer as unknown as ViteServerWithDepsOptimizer;\n return (\n server.environments?.client?.depsOptimizer ??\n server.depsOptimizer ??\n server._depsOptimizer ??\n null\n );\n };\n\n const waitForOptimizedDep = async (filename: string): Promise<boolean> => {\n const depsOptimizer = getDepsOptimizer();\n if (!depsOptimizer?.isOptimizedDepFile?.(filename)) {\n return false;\n }\n\n await depsOptimizer.init?.();\n await depsOptimizer.scanProcessing;\n\n const info = depsOptimizer.metadata?.depInfoList?.find(\n (item) => item.file === filename\n );\n if (info?.processing) {\n await info.processing;\n }\n\n return true;\n };\n\n const createAsyncResolver = asyncResolverFactory(\n async (\n resolved: { external: boolean | 'absolute'; id: string } | null,\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> => {\n const log = logger.extend('vite').extend(getFileIdx(importer));\n\n if (resolved) {\n if (resolved.external) {\n // If module is marked as external, Rollup will not resolve it,\n // so we need to resolve it ourselves with default resolver\n const resolvedId = syncResolve(what, importer, stack);\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n return resolvedId;\n }\n\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n\n // Vite adds param like `?v=667939b3` to cached modules\n let resolvedId = resolved.id.split('?', 1)[0];\n\n if (resolvedId.startsWith('\\0')) {\n // \\0 is a special character in Rollup that tells Rollup to not include this in the bundle\n // https://rollupjs.org/guide/en/#outputexports\n return null;\n }\n\n if (resolvedId.startsWith(VITE_FS_PREFIX)) {\n resolvedId = normalizeViteFsPath(resolvedId);\n }\n\n if (resolvedId.startsWith('/@')) {\n return null;\n }\n\n if (!existsSync(resolvedId)) {\n // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.\n // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).\n try {\n await waitForOptimizedDep(resolvedId);\n } catch {\n // If optimizer failed, fall through to preserve previous behavior and surface the error.\n }\n\n // Vite can return an optimized deps entry (from cacheDir) before it's written to disk.\n // Manually calling optimizeDeps is deprecated in Vite 7 and can also get called many times.\n // Instead, fall back to resolving the original module path directly.\n if (!existsSync(resolvedId) && isInsideCacheDir(resolvedId)) {\n try {\n return syncResolve(what, importer, stack);\n } catch {\n // Fall through to preserve previous behavior: return resolvedId and let WyW surface the error.\n }\n }\n }\n\n return resolvedId;\n }\n\n log(\"resolve ❌ '%s'@'%s\", what, importer);\n throw new Error(`Could not resolve ${what}`);\n },\n (what, importer) => [what, importer]\n );\n\n return {\n name: 'wyw-in-js',\n enforce: 'post',\n buildEnd() {\n onDone(process.cwd());\n },\n configResolved(resolvedConfig: ResolvedConfig) {\n config = resolvedConfig;\n\n if (preserveCssPaths && config.command === 'build') {\n const outputs = config.build.rollupOptions.output;\n let outputEntries: unknown[] = [];\n if (Array.isArray(outputs)) {\n outputEntries = outputs;\n } else if (outputs) {\n outputEntries = [outputs];\n }\n\n outputEntries.forEach((entry) => {\n if (!entry || typeof entry !== 'object') return;\n\n const output = entry as RollupOutputLike;\n if (!output.preserveModules) return;\n\n const template: AssetFileNames =\n output.assetFileNames ??\n `${config.build.assetsDir ?? 'assets'}/[name].[hash].[ext]`;\n\n const assetFileNames = getWywCssAssetFileNames(\n config,\n output,\n template\n );\n if (assetFileNames) output.assetFileNames = assetFileNames;\n });\n }\n\n const envPrefix = config.envPrefix ?? 'VITE_';\n const envDir =\n // envDir is absolute in modern Vite, but keep a fallback for older versions\n 'envDir' in config && typeof config.envDir === 'string'\n ? config.envDir\n : config.root;\n\n const loaded = loadEnv(config.mode, envDir, envPrefix);\n const base = {\n ...loaded,\n BASE_URL: config.base,\n MODE: config.mode,\n DEV: config.command === 'serve',\n PROD: config.command === 'build',\n };\n\n importMetaEnvForEval = {\n client: { ...base, SSR: false },\n ssr: { ...base, SSR: true },\n };\n },\n configureServer(_server) {\n devServer = _server;\n\n if (!ssrDevCssEnabled || config.command !== 'serve') return;\n\n devServer.middlewares.use(\n (req: IncomingMessage, res: ServerResponse, next: () => void) => {\n const { url } = req;\n if (!url) {\n next();\n return;\n }\n\n const [pathname] = url.split('?', 1);\n if (pathname !== ssrDevCssRoute) {\n next();\n return;\n }\n\n const etag = `W/\"${ssrDevCssVersion}\"`;\n const ifNoneMatch = req.headers['if-none-match'];\n if (ifNoneMatch === etag) {\n res.statusCode = 304;\n res.end();\n return;\n }\n\n res.statusCode = 200;\n res.setHeader('Content-Type', 'text/css; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache');\n res.setHeader('ETag', etag);\n res.end(getSsrDevCssContents());\n }\n );\n },\n transformIndexHtml(html) {\n if (!ssrDevCssEnabled || config.command !== 'serve') return undefined;\n\n return {\n html,\n tags: [\n {\n tag: 'link',\n attrs: { rel: 'stylesheet', href: getSsrDevCssHref() },\n injectTo: 'head-prepend',\n },\n ],\n };\n },\n load(url: string) {\n const [id] = url.split('?', 1);\n return cssLookup[id];\n },\n /* eslint-disable-next-line consistent-return */\n resolveId(importeeUrl: string) {\n const [id] = importeeUrl.split('?', 1);\n if (cssLookup[id]) return id;\n return cssFileLookup[id];\n },\n handleHotUpdate(ctx) {\n // it's module, so just transform it\n if (ctx.modules.length) return ctx.modules;\n\n // Select affected modules of changed dependency\n const affected = targets.filter(\n (x) =>\n // file is dependency of any target\n x.dependencies.some((dep) => dep === ctx.file) ||\n // or changed module is a dependency of any target\n x.dependencies.some((dep) => ctx.modules.some((m) => m.file === dep))\n );\n const deps = affected.flatMap((target) => target.dependencies);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const depId of deps) {\n cache.invalidateForFile(depId);\n }\n\n return affected\n .map((target) => devServer.moduleGraph.getModuleById(target.id))\n .concat(ctx.modules)\n .filter((m): m is ModuleNode => !!m);\n },\n async transform(\n code: string,\n url: string,\n transformOptions?: boolean | { ssr?: boolean }\n ) {\n const [id] = url.split('?', 1);\n\n // Do not transform ignored and generated files\n if (\n (!transformLibraries && url.includes('node_modules')) ||\n !filter(url) ||\n id in cssLookup\n )\n return;\n\n const log = logger.extend('vite').extend(getFileIdx(id));\n\n log('transform %s', id);\n\n const overrideContext: OverrideContext = (context, filename) => {\n const isSsr =\n typeof transformOptions === 'boolean'\n ? transformOptions\n : Boolean(transformOptions?.ssr);\n const env = importMetaEnvForEval?.[isSsr ? 'ssr' : 'client'];\n const withEnv = env\n ? { ...context, __wyw_import_meta_env: env }\n : context;\n\n return rest.overrideContext\n ? rest.overrideContext(withEnv, filename)\n : withEnv;\n };\n\n const transformServices = {\n options: {\n filename: id,\n root: process.cwd(),\n prefixer,\n keepComments,\n preprocessor,\n pluginOptions: {\n ...rest,\n overrideContext,\n },\n },\n cache,\n emitWarning: (message: string) => this.warn(message),\n eventEmitter: emitter,\n };\n\n const result = await transform(\n transformServices,\n code,\n createAsyncResolver(this.resolve)\n );\n\n let { cssText, dependencies } = result;\n\n // Heads up, there are three cases:\n // 1. cssText is undefined, it means that file was not transformed\n // 2. cssText is empty, it means that file was transformed, but it does not contain any styles\n // 3. cssText is not empty, it means that file was transformed and it contains styles\n\n if (typeof cssText === 'undefined') {\n return;\n }\n\n if (cssText === '') {\n /* eslint-disable-next-line consistent-return */\n return {\n code: result.code,\n map: result.sourceMap,\n };\n }\n\n dependencies ??= [];\n\n const cssFilename = path\n .normalize(`${id.replace(/\\.[jt]sx?$/, '')}.wyw-in-js.css`)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssRelativePath = path\n .relative(config.root, cssFilename)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssId = `/${cssRelativePath}`;\n\n if (sourceMap && result.cssSourceMapText) {\n const map = Buffer.from(result.cssSourceMapText).toString('base64');\n cssText += `/*# sourceMappingURL=data:application/json;base64,${map}*/`;\n }\n\n const didCssChange = cssLookup[cssFilename] !== cssText;\n cssLookup[cssFilename] = cssText;\n cssFileLookup[cssId] = cssFilename;\n\n result.code += `\\nimport ${JSON.stringify(cssFilename)};\\n`;\n\n for (let i = 0, end = dependencies.length; i < end; i++) {\n // eslint-disable-next-line no-await-in-loop\n const depModule = await this.resolve(dependencies[i], url, {\n isEntry: false,\n });\n if (depModule) dependencies[i] = depModule.id;\n }\n const target = targets.find((t) => t.id === id);\n if (!target) targets.push({ id, dependencies });\n else target.dependencies = dependencies;\n\n if (didCssChange) {\n scheduleCssReload(cssFilename);\n if (ssrDevCssEnabled && config.command === 'serve') {\n ssrDevCssVersion += 1;\n }\n }\n /* eslint-disable-next-line consistent-return */\n return { code: result.code, map: result.sourceMap };\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_fs","require","_path","_interopRequireDefault","_vite","_shared","_transform","e","__esModule","default","isWindowsAbsolutePath","value","test","normalizeToPosix","replace","path","posix","sep","isInside","childPath","parentPath","rel","relative","startsWith","isAbsolute","isWywCssAssetName","endsWith","normalizeAssetRelativePath","normalized","normalize","stripExtension","ext","extname","slice","length","VITE_FS_PREFIX","safeDecodeURIComponent","decodeURIComponent","normalizeViteFsPath","fsPath","getWywCssAssetFileNames","resolvedConfig","output","originalAssetFileNames","preserveModules","rootDir","root","preserveModulesRootValue","preserveModulesRoot","preserveModulesRootAbs","resolve","preserveModulesRootRel","assetInfo","template","assetName","name","includes","relativePath","assetNameNormalized","preserveRel","withoutExt","dir","dirname","idx","indexOf","prefix","wywInJS","debug","include","exclude","sourceMap","preserveCssPaths","keepComments","prefixer","preprocessor","ssrDevCss","ssrDevCssPath","transformLibraries","rest","filter","createFilter","cssLookup","cssFileLookup","pendingCssReloads","Set","pendingCssReloadTimer","ssrDevCssVersion","config","devServer","importMetaEnvForEval","ssrDevCssEnabled","Boolean","ssrDevCssPathname","ssrDevCssQuery","split","ssrDevCssRoute","getSsrDevCssHref","versionParam","query","getSsrDevCssContents","entries","Object","merged","sort","a","b","localeCompare","map","cssText","join","emitter","onDone","createFileReporter","scheduleCssReload","cssFilename","_devServer","moduleGraph","add","setTimeout","undefined","ids","Array","from","clear","id","module","getModuleById","reloadModule","targets","cache","TransformCacheCollection","isInsideCacheDir","filename","cacheDir","getDepsOptimizer","_ref","_ref2","_server$environments$","_server$environments","server","environments","client","depsOptimizer","_depsOptimizer","waitForOptimizedDep","_depsOptimizer$isOpti","_depsOptimizer$init","_depsOptimizer$metada","isOptimizedDepFile","call","init","scanProcessing","info","metadata","depInfoList","find","item","file","processing","createAsyncResolver","asyncResolverFactory","resolved","what","importer","stack","log","logger","extend","getFileIdx","resolvedId","external","existsSync","syncResolve","Error","enforce","buildEnd","process","cwd","configResolved","_config$envPrefix","command","outputs","build","rollupOptions","outputEntries","isArray","forEach","entry","_output$assetFileName","_config$build$assetsD","assetFileNames","assetsDir","envPrefix","envDir","loaded","loadEnv","mode","base","BASE_URL","MODE","DEV","PROD","SSR","ssr","configureServer","_server","middlewares","use","req","res","next","url","pathname","etag","ifNoneMatch","headers","statusCode","end","setHeader","transformIndexHtml","html","tags","tag","attrs","href","injectTo","load","resolveId","importeeUrl","handleHotUpdate","ctx","modules","affected","x","dependencies","some","dep","m","deps","flatMap","target","depId","invalidateForFile","concat","transform","code","transformOptions","overrideContext","context","_importMetaEnvForEval","isSsr","env","withEnv","__wyw_import_meta_env","transformServices","options","pluginOptions","emitWarning","message","warn","eventEmitter","result","cssRelativePath","cssId","cssSourceMapText","Buffer","toString","didCssChange","JSON","stringify","i","depModule","isEntry","t","push"],"sources":["../src/index.ts"],"sourcesContent":["/**\n * This file contains a Vite loader for wyw-in-js.\n * It uses the transform.ts function to generate class names from source code,\n * returns transformed code without template literals and attaches generated source maps\n */\n\nimport { existsSync } from 'fs';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport path from 'path';\n\nimport { createFilter, loadEnv } from 'vite';\nimport type {\n ModuleNode,\n Plugin,\n ResolvedConfig,\n ViteDevServer,\n FilterPattern,\n} from 'vite';\n\nimport { asyncResolverFactory, logger, syncResolve } from '@wyw-in-js/shared';\nimport type {\n IFileReporterOptions,\n PluginOptions,\n Preprocessor,\n} from '@wyw-in-js/transform';\nimport {\n createFileReporter,\n getFileIdx,\n transform,\n TransformCacheCollection,\n} from '@wyw-in-js/transform';\n\ntype VitePluginOptions = {\n debug?: IFileReporterOptions | false | null | undefined;\n exclude?: FilterPattern;\n include?: FilterPattern;\n keepComments?: boolean | RegExp;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n preserveCssPaths?: boolean;\n sourceMap?: boolean;\n ssrDevCss?: boolean;\n ssrDevCssPath?: string;\n transformLibraries?: boolean;\n} & Partial<PluginOptions>;\n\ntype OverrideContext = NonNullable<PluginOptions['overrideContext']>;\n\nexport { Plugin };\n\ntype AssetInfoLike = { name?: unknown };\ntype AssetFileNames = string | ((assetInfo: AssetInfoLike) => string);\ntype RollupOutputLike = {\n assetFileNames?: AssetFileNames;\n preserveModules?: boolean;\n preserveModulesRoot?: unknown;\n} & Record<string, unknown>;\n\nconst isWindowsAbsolutePath = (value: string): boolean =>\n /^[a-zA-Z]:[\\\\/]/.test(value);\n\nconst normalizeToPosix = (value: string): string =>\n value.replace(/\\\\/g, path.posix.sep);\n\nconst isInside = (childPath: string, parentPath: string): boolean => {\n const rel = path.relative(parentPath, childPath);\n return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));\n};\n\nconst isWywCssAssetName = (value: string): boolean =>\n value.endsWith('.wyw-in-js.css');\n\nconst normalizeAssetRelativePath = (value: string): string | null => {\n const normalized = path.posix.normalize(\n normalizeToPosix(value).replace(/^\\/+/, '')\n );\n if (normalized.startsWith('..') || path.posix.isAbsolute(normalized)) {\n return null;\n }\n\n return normalized;\n};\n\nconst stripExtension = (value: string): string => {\n const ext = path.posix.extname(value);\n return ext ? value.slice(0, -ext.length) : value;\n};\n\nconst VITE_FS_PREFIX = '/@fs/';\n\nconst safeDecodeURIComponent = (value: string): string => {\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n};\n\nconst normalizeViteFsPath = (value: string): string => {\n const fsPath = value.slice(VITE_FS_PREFIX.length);\n return path.normalize(safeDecodeURIComponent(fsPath));\n};\n\nconst getWywCssAssetFileNames = (\n resolvedConfig: ResolvedConfig,\n output: RollupOutputLike,\n originalAssetFileNames: AssetFileNames\n): ((assetInfo: AssetInfoLike) => string) | null => {\n if (!output.preserveModules) return null;\n\n const rootDir = resolvedConfig.root;\n\n const preserveModulesRootValue = output.preserveModulesRoot;\n let preserveModulesRootAbs: string | null = null;\n if (typeof preserveModulesRootValue === 'string') {\n preserveModulesRootAbs = path.isAbsolute(preserveModulesRootValue)\n ? preserveModulesRootValue\n : path.resolve(rootDir, preserveModulesRootValue);\n }\n\n const preserveModulesRootRel =\n preserveModulesRootAbs && isInside(preserveModulesRootAbs, rootDir)\n ? normalizeToPosix(path.relative(rootDir, preserveModulesRootAbs))\n : null;\n\n return (assetInfo) => {\n const template =\n typeof originalAssetFileNames === 'function'\n ? originalAssetFileNames(assetInfo)\n : originalAssetFileNames;\n\n const assetName = assetInfo?.name;\n if (typeof assetName !== 'string' || !isWywCssAssetName(assetName)) {\n return template;\n }\n\n if (!template.includes('[')) {\n return template;\n }\n\n let relativePath: string | null = null;\n\n const assetNameNormalized = normalizeToPosix(assetName);\n\n if (\n path.isAbsolute(assetName) ||\n isWindowsAbsolutePath(assetNameNormalized)\n ) {\n const preserveRel =\n preserveModulesRootAbs && isInside(assetName, preserveModulesRootAbs)\n ? path.relative(preserveModulesRootAbs, assetName)\n : null;\n\n if (\n preserveRel &&\n !path.isAbsolute(preserveRel) &&\n !preserveRel.startsWith('..')\n ) {\n relativePath = preserveRel;\n } else if (isInside(assetName, rootDir)) {\n relativePath = path.relative(rootDir, assetName);\n }\n } else if (\n preserveModulesRootRel &&\n assetNameNormalized.startsWith(`${preserveModulesRootRel}/`)\n ) {\n relativePath = assetNameNormalized.slice(\n preserveModulesRootRel.length + 1\n );\n } else {\n relativePath = assetNameNormalized;\n }\n\n const normalized = relativePath\n ? normalizeAssetRelativePath(relativePath)\n : null;\n if (!normalized) {\n return template;\n }\n\n const withoutExt = stripExtension(normalized);\n\n if (template.includes('[name]')) {\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n return template.replace(/\\[name\\]/g, `${dir}/[name]`);\n }\n\n const dir = path.posix.dirname(withoutExt);\n if (dir === '.' || dir === '') {\n return template;\n }\n\n const idx = template.indexOf('[');\n if (idx < 0) {\n return template;\n }\n\n const prefix = template.slice(0, idx);\n if (prefix !== '' && !prefix.endsWith('/')) {\n return template;\n }\n\n return `${prefix}${dir}/${template.slice(idx)}`;\n };\n};\n\nexport default function wywInJS({\n debug,\n include,\n exclude,\n sourceMap,\n preserveCssPaths,\n keepComments,\n prefixer,\n preprocessor,\n ssrDevCss,\n ssrDevCssPath,\n transformLibraries,\n ...rest\n}: VitePluginOptions = {}): Plugin {\n const filter = createFilter(include, exclude);\n const cssLookup: { [key: string]: string } = {};\n const cssFileLookup: { [key: string]: string } = {};\n const pendingCssReloads = new Set<string>();\n let pendingCssReloadTimer: ReturnType<typeof setTimeout> | undefined;\n let ssrDevCssVersion = 0;\n let config: ResolvedConfig;\n let devServer: ViteDevServer;\n let importMetaEnvForEval: {\n client: Record<string, unknown>;\n ssr: Record<string, unknown>;\n } | null = null;\n\n const ssrDevCssEnabled = Boolean(ssrDevCss);\n const [ssrDevCssPathname, ssrDevCssQuery] = (\n ssrDevCssPath ?? '/_wyw-in-js/ssr.css'\n ).split('?', 2);\n const ssrDevCssRoute = ssrDevCssPathname.startsWith('/')\n ? ssrDevCssPathname\n : `/${ssrDevCssPathname}`;\n\n const getSsrDevCssHref = () => {\n const versionParam = `v=${ssrDevCssVersion}`;\n const query = ssrDevCssQuery\n ? `${ssrDevCssQuery}&${versionParam}`\n : versionParam;\n return `${ssrDevCssRoute}?${query}`;\n };\n\n const getSsrDevCssContents = () => {\n const entries = Object.entries(cssLookup);\n if (entries.length === 0) return '';\n\n const merged = entries\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([, cssText]) => cssText)\n .join('\\n');\n return `${merged}\\n`;\n };\n\n const { emitter, onDone } = createFileReporter(debug ?? false);\n\n const scheduleCssReload = (cssFilename: string) => {\n if (!devServer?.moduleGraph) return;\n\n pendingCssReloads.add(cssFilename);\n\n if (pendingCssReloadTimer) return;\n pendingCssReloadTimer = setTimeout(() => {\n pendingCssReloadTimer = undefined;\n\n const ids = Array.from(pendingCssReloads);\n pendingCssReloads.clear();\n\n for (const id of ids) {\n const module = devServer.moduleGraph.getModuleById(id);\n if (module) devServer.reloadModule(module);\n }\n }, 0);\n };\n\n // <dependency id, targets>\n const targets: { dependencies: string[]; id: string }[] = [];\n const cache = new TransformCacheCollection();\n\n type DepInfoLike = { file: string; processing?: Promise<void> };\n type DepsOptimizerLike = {\n init?: () => Promise<void>;\n isOptimizedDepFile?: (id: string) => boolean;\n metadata?: { depInfoList?: DepInfoLike[] };\n scanProcessing?: Promise<void>;\n };\n\n type ViteServerWithDepsOptimizer = ViteDevServer & {\n _depsOptimizer?: DepsOptimizerLike;\n depsOptimizer?: DepsOptimizerLike;\n environments?: Record<string, { depsOptimizer?: DepsOptimizerLike }>;\n };\n\n const isInsideCacheDir = (filename: string): boolean => {\n if (!config.cacheDir) {\n return false;\n }\n\n const relative = path.relative(config.cacheDir, filename);\n return (\n relative !== '' &&\n !relative.startsWith('..') &&\n !path.isAbsolute(relative)\n );\n };\n\n const getDepsOptimizer = (): DepsOptimizerLike | null => {\n if (!devServer) return null;\n\n const server = devServer as unknown as ViteServerWithDepsOptimizer;\n return (\n server.environments?.client?.depsOptimizer ??\n server.depsOptimizer ??\n server._depsOptimizer ??\n null\n );\n };\n\n const waitForOptimizedDep = async (filename: string): Promise<boolean> => {\n const depsOptimizer = getDepsOptimizer();\n if (!depsOptimizer?.isOptimizedDepFile?.(filename)) {\n return false;\n }\n\n await depsOptimizer.init?.();\n await depsOptimizer.scanProcessing;\n\n const info = depsOptimizer.metadata?.depInfoList?.find(\n (item) => item.file === filename\n );\n if (info?.processing) {\n await info.processing;\n }\n\n return true;\n };\n\n const createAsyncResolver = asyncResolverFactory(\n async (\n resolved: { external: boolean | 'absolute'; id: string } | null,\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> => {\n const log = logger.extend('vite').extend(getFileIdx(importer));\n\n if (resolved) {\n log(\"resolve ✅ '%s'@'%s -> %O\\n%s\", what, importer, resolved);\n\n // Vite adds param like `?v=667939b3` to cached modules\n let resolvedId = resolved.id.split('?', 1)[0];\n\n if (resolvedId.startsWith('\\0')) {\n // \\0 is a special character in Rollup that tells Rollup to not include this in the bundle\n // https://rollupjs.org/guide/en/#outputexports\n return null;\n }\n\n if (resolvedId.startsWith(VITE_FS_PREFIX)) {\n resolvedId = normalizeViteFsPath(resolvedId);\n }\n\n if (resolvedId.startsWith('/@')) {\n return null;\n }\n\n if (resolved.external) {\n // In SSR mode Vite can mark resolved file ids as `external` (including `external: \"absolute\"`).\n // Prefer Vite's resolved file path and only fall back to Node resolution for bare specifiers.\n if (path.isAbsolute(resolvedId) || existsSync(resolvedId)) {\n return resolvedId;\n }\n\n // If module is marked as external, Rollup will not resolve it further, so resolve it ourselves.\n return syncResolve(what, importer, stack);\n }\n\n if (!existsSync(resolvedId)) {\n // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.\n // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).\n try {\n await waitForOptimizedDep(resolvedId);\n } catch {\n // If optimizer failed, fall through to preserve previous behavior and surface the error.\n }\n\n // Vite can return an optimized deps entry (from cacheDir) before it's written to disk.\n // Manually calling optimizeDeps is deprecated in Vite 7 and can also get called many times.\n // Instead, fall back to resolving the original module path directly.\n if (!existsSync(resolvedId) && isInsideCacheDir(resolvedId)) {\n try {\n return syncResolve(what, importer, stack);\n } catch {\n // Fall through to preserve previous behavior: return resolvedId and let WyW surface the error.\n }\n }\n }\n\n return resolvedId;\n }\n\n log(\"resolve ❌ '%s'@'%s\", what, importer);\n throw new Error(`Could not resolve ${what}`);\n },\n (what, importer) => [what, importer]\n );\n\n return {\n name: 'wyw-in-js',\n enforce: 'post',\n buildEnd() {\n onDone(process.cwd());\n },\n configResolved(resolvedConfig: ResolvedConfig) {\n config = resolvedConfig;\n\n if (preserveCssPaths && config.command === 'build') {\n const outputs = config.build.rollupOptions.output;\n let outputEntries: unknown[] = [];\n if (Array.isArray(outputs)) {\n outputEntries = outputs;\n } else if (outputs) {\n outputEntries = [outputs];\n }\n\n outputEntries.forEach((entry) => {\n if (!entry || typeof entry !== 'object') return;\n\n const output = entry as RollupOutputLike;\n if (!output.preserveModules) return;\n\n const template: AssetFileNames =\n output.assetFileNames ??\n `${config.build.assetsDir ?? 'assets'}/[name].[hash].[ext]`;\n\n const assetFileNames = getWywCssAssetFileNames(\n config,\n output,\n template\n );\n if (assetFileNames) output.assetFileNames = assetFileNames;\n });\n }\n\n const envPrefix = config.envPrefix ?? 'VITE_';\n const envDir =\n // envDir is absolute in modern Vite, but keep a fallback for older versions\n 'envDir' in config && typeof config.envDir === 'string'\n ? config.envDir\n : config.root;\n\n const loaded = loadEnv(config.mode, envDir, envPrefix);\n const base = {\n ...loaded,\n BASE_URL: config.base,\n MODE: config.mode,\n DEV: config.command === 'serve',\n PROD: config.command === 'build',\n };\n\n importMetaEnvForEval = {\n client: { ...base, SSR: false },\n ssr: { ...base, SSR: true },\n };\n },\n configureServer(_server) {\n devServer = _server;\n\n if (!ssrDevCssEnabled || config.command !== 'serve') return;\n\n devServer.middlewares.use(\n (req: IncomingMessage, res: ServerResponse, next: () => void) => {\n const { url } = req;\n if (!url) {\n next();\n return;\n }\n\n const [pathname] = url.split('?', 1);\n if (pathname !== ssrDevCssRoute) {\n next();\n return;\n }\n\n const etag = `W/\"${ssrDevCssVersion}\"`;\n const ifNoneMatch = req.headers['if-none-match'];\n if (ifNoneMatch === etag) {\n res.statusCode = 304;\n res.end();\n return;\n }\n\n res.statusCode = 200;\n res.setHeader('Content-Type', 'text/css; charset=utf-8');\n res.setHeader('Cache-Control', 'no-cache');\n res.setHeader('ETag', etag);\n res.end(getSsrDevCssContents());\n }\n );\n },\n transformIndexHtml(html) {\n if (!ssrDevCssEnabled || config.command !== 'serve') return undefined;\n\n return {\n html,\n tags: [\n {\n tag: 'link',\n attrs: { rel: 'stylesheet', href: getSsrDevCssHref() },\n injectTo: 'head-prepend',\n },\n ],\n };\n },\n load(url: string) {\n const [id] = url.split('?', 1);\n return cssLookup[id];\n },\n /* eslint-disable-next-line consistent-return */\n resolveId(importeeUrl: string) {\n const [id] = importeeUrl.split('?', 1);\n if (cssLookup[id]) return id;\n return cssFileLookup[id];\n },\n handleHotUpdate(ctx) {\n // it's module, so just transform it\n if (ctx.modules.length) return ctx.modules;\n\n // Select affected modules of changed dependency\n const affected = targets.filter(\n (x) =>\n // file is dependency of any target\n x.dependencies.some((dep) => dep === ctx.file) ||\n // or changed module is a dependency of any target\n x.dependencies.some((dep) => ctx.modules.some((m) => m.file === dep))\n );\n const deps = affected.flatMap((target) => target.dependencies);\n\n // eslint-disable-next-line no-restricted-syntax\n for (const depId of deps) {\n cache.invalidateForFile(depId);\n }\n\n return affected\n .map((target) => devServer.moduleGraph.getModuleById(target.id))\n .concat(ctx.modules)\n .filter((m): m is ModuleNode => !!m);\n },\n async transform(\n code: string,\n url: string,\n transformOptions?: boolean | { ssr?: boolean }\n ) {\n const [id] = url.split('?', 1);\n\n // Do not transform ignored and generated files\n if (\n (!transformLibraries && url.includes('node_modules')) ||\n !filter(url) ||\n id in cssLookup\n )\n return;\n\n const log = logger.extend('vite').extend(getFileIdx(id));\n\n log('transform %s', id);\n\n const overrideContext: OverrideContext = (context, filename) => {\n const isSsr =\n typeof transformOptions === 'boolean'\n ? transformOptions\n : Boolean(transformOptions?.ssr);\n const env = importMetaEnvForEval?.[isSsr ? 'ssr' : 'client'];\n const withEnv = env\n ? { ...context, __wyw_import_meta_env: env }\n : context;\n\n return rest.overrideContext\n ? rest.overrideContext(withEnv, filename)\n : withEnv;\n };\n\n const transformServices = {\n options: {\n filename: id,\n root: process.cwd(),\n prefixer,\n keepComments,\n preprocessor,\n pluginOptions: {\n ...rest,\n overrideContext,\n },\n },\n cache,\n emitWarning: (message: string) => this.warn(message),\n eventEmitter: emitter,\n };\n\n const result = await transform(\n transformServices,\n code,\n createAsyncResolver(this.resolve)\n );\n\n let { cssText, dependencies } = result;\n\n // Heads up, there are three cases:\n // 1. cssText is undefined, it means that file was not transformed\n // 2. cssText is empty, it means that file was transformed, but it does not contain any styles\n // 3. cssText is not empty, it means that file was transformed and it contains styles\n\n if (typeof cssText === 'undefined') {\n return;\n }\n\n if (cssText === '') {\n /* eslint-disable-next-line consistent-return */\n return {\n code: result.code,\n map: result.sourceMap,\n };\n }\n\n dependencies ??= [];\n\n const cssFilename = path\n .normalize(`${id.replace(/\\.[jt]sx?$/, '')}.wyw-in-js.css`)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssRelativePath = path\n .relative(config.root, cssFilename)\n .replace(/\\\\/g, path.posix.sep);\n\n const cssId = `/${cssRelativePath}`;\n\n if (sourceMap && result.cssSourceMapText) {\n const map = Buffer.from(result.cssSourceMapText).toString('base64');\n cssText += `/*# sourceMappingURL=data:application/json;base64,${map}*/`;\n }\n\n const didCssChange = cssLookup[cssFilename] !== cssText;\n cssLookup[cssFilename] = cssText;\n cssFileLookup[cssId] = cssFilename;\n\n result.code += `\\nimport ${JSON.stringify(cssFilename)};\\n`;\n\n for (let i = 0, end = dependencies.length; i < end; i++) {\n // eslint-disable-next-line no-await-in-loop\n const depModule = await this.resolve(dependencies[i], url, {\n isEntry: false,\n });\n if (depModule) dependencies[i] = depModule.id;\n }\n const target = targets.find((t) => t.id === id);\n if (!target) targets.push({ id, dependencies });\n else target.dependencies = dependencies;\n\n if (didCssChange) {\n scheduleCssReload(cssFilename);\n if (ssrDevCssEnabled && config.command === 'serve') {\n ssrDevCssVersion += 1;\n }\n }\n /* eslint-disable-next-line consistent-return */\n return { code: result.code, map: result.sourceMap };\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@wyw-in-js/vite",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "dependencies": {
5
5
  "@wyw-in-js/shared": "1.0.2",
6
- "@wyw-in-js/transform": "1.0.2"
6
+ "@wyw-in-js/transform": "1.0.3"
7
7
  },
8
8
  "devDependencies": {
9
9
  "@types/node": "^16.18.55",
package/types/index.js CHANGED
@@ -209,13 +209,6 @@ function wywInJS({ debug, include, exclude, sourceMap, preserveCssPaths, keepCom
209
209
  const createAsyncResolver = (0, shared_1.asyncResolverFactory)(async (resolved, what, importer, stack) => {
210
210
  const log = shared_1.logger.extend('vite').extend((0, transform_1.getFileIdx)(importer));
211
211
  if (resolved) {
212
- if (resolved.external) {
213
- // If module is marked as external, Rollup will not resolve it,
214
- // so we need to resolve it ourselves with default resolver
215
- const resolvedId = (0, shared_1.syncResolve)(what, importer, stack);
216
- log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
217
- return resolvedId;
218
- }
219
212
  log("resolve ✅ '%s'@'%s -> %O\n%s", what, importer, resolved);
220
213
  // Vite adds param like `?v=667939b3` to cached modules
221
214
  let resolvedId = resolved.id.split('?', 1)[0];
@@ -230,6 +223,15 @@ function wywInJS({ debug, include, exclude, sourceMap, preserveCssPaths, keepCom
230
223
  if (resolvedId.startsWith('/@')) {
231
224
  return null;
232
225
  }
226
+ if (resolved.external) {
227
+ // In SSR mode Vite can mark resolved file ids as `external` (including `external: "absolute"`).
228
+ // Prefer Vite's resolved file path and only fall back to Node resolution for bare specifiers.
229
+ if (path_1.default.isAbsolute(resolvedId) || (0, fs_1.existsSync)(resolvedId)) {
230
+ return resolvedId;
231
+ }
232
+ // If module is marked as external, Rollup will not resolve it further, so resolve it ourselves.
233
+ return (0, shared_1.syncResolve)(what, importer, stack);
234
+ }
233
235
  if (!(0, fs_1.existsSync)(resolvedId)) {
234
236
  // When Vite resolves to an optimized deps entry (cacheDir) it may not be written yet.
235
237
  // Wait for Vite's optimizer instead of calling optimizeDeps() manually (deprecated in Vite 7).