You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
165 KiB
Plaintext

{"version":3,"sources":["../src/index.ts","../src/utils/log.ts","../src/utils/error.ts","../src/handle-hot-update.ts","../src/utils/compile.ts","../src/utils/hash.ts","../src/utils/preprocess.ts","../src/utils/sourcemaps.ts","../src/utils/id.ts","../src/utils/options.ts","../src/utils/load-svelte-config.ts","../src/utils/constants.ts","../src/utils/esbuild.ts","../src/utils/dependencies.ts","../src/utils/vite-plugin-svelte-stats.ts","../src/utils/watch.ts","../src/utils/resolve.ts","../src/utils/optimizer.ts","../src/ui/inspector/plugin.ts","../src/ui/inspector/utils.ts","../src/ui/inspector/options.ts","../src/utils/vite-plugin-svelte-cache.ts","../src/utils/load-raw.ts","../src/preprocess.ts"],"sourcesContent":["import fs from 'fs';\nimport { VERSION as svelteVersion } from 'svelte/compiler';\nimport {\n\tHmrContext,\n\tModuleNode,\n\tPlugin,\n\tResolvedConfig,\n\tUserConfig,\n\tversion as viteVersion\n} from 'vite';\n// eslint-disable-next-line node/no-missing-import\nimport { isDepExcluded } from 'vitefu';\nimport { handleHotUpdate } from './handle-hot-update';\nimport { log, logCompilerWarnings } from './utils/log';\nimport { type CompileSvelte, createCompileSvelte } from './utils/compile';\nimport { buildIdParser, IdParser } from './utils/id';\nimport {\n\tbuildExtraViteConfig,\n\tvalidateInlineOptions,\n\tOptions,\n\tResolvedOptions,\n\tresolveOptions,\n\tpatchResolvedViteConfig,\n\tpreResolveOptions\n} from './utils/options';\n\nimport { ensureWatchedFile, setupWatchers } from './utils/watch';\nimport { resolveViaPackageJsonSvelte } from './utils/resolve';\nimport { PartialResolvedId } from 'rollup';\nimport { toRollupError } from './utils/error';\nimport { saveSvelteMetadata } from './utils/optimizer';\nimport { svelteInspector } from './ui/inspector/plugin';\nimport { VitePluginSvelteCache } from './utils/vite-plugin-svelte-cache';\nimport { loadRaw } from './utils/load-raw';\nimport { FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE } from './utils/constants';\n\ninterface PluginAPI {\n\t/**\n\t * must not be modified, should not be used outside of vite-plugin-svelte repo\n\t * @internal\n\t * @experimental\n\t */\n\toptions?: ResolvedOptions;\n\t// TODO expose compile cache here so other utility plugins can use it\n}\n\nconst isVite4_0 = viteVersion.startsWith('4.0');\nconst isSvelte3 = svelteVersion.startsWith('3');\n\nexport function svelte(inlineOptions?: Partial<Options>): Plugin[] {\n\tif (process.env.DEBUG != null) {\n\t\tlog.setLevel('debug');\n\t}\n\tvalidateInlineOptions(inlineOptions);\n\tconst cache = new VitePluginSvelteCache();\n\t// updated in configResolved hook\n\tlet requestParser: IdParser;\n\tlet options: ResolvedOptions;\n\tlet viteConfig: ResolvedConfig;\n\t/* eslint-disable no-unused-vars */\n\tlet compileSvelte: CompileSvelte;\n\t/* eslint-enable no-unused-vars */\n\n\tlet resolvedSvelteSSR: Promise<PartialResolvedId | null>;\n\tlet packagesWithResolveWarnings: Set<string>;\n\tconst api: PluginAPI = {};\n\tconst plugins: Plugin[] = [\n\t\t{\n\t\t\tname: 'vite-plugin-svelte',\n\t\t\t// make sure our resolver runs before vite internal resolver to resolve svelte field correctly\n\t\t\tenforce: 'pre',\n\t\t\tapi,\n\t\t\tasync config(config, configEnv): Promise<Partial<UserConfig>> {\n\t\t\t\t// setup logger\n\t\t\t\tif (process.env.DEBUG) {\n\t\t\t\t\tlog.setLevel('debug');\n\t\t\t\t} else if (config.logLevel) {\n\t\t\t\t\tlog.setLevel(config.logLevel);\n\t\t\t\t}\n\t\t\t\t// @ts-expect-error temporarily lend the options variable until fixed in configResolved\n\t\t\t\toptions = await preResolveOptions(inlineOptions, config, configEnv);\n\t\t\t\t// extra vite config\n\t\t\t\tconst extraViteConfig = await buildExtraViteConfig(options, config);\n\t\t\t\tlog.debug('additional vite config', extraViteConfig);\n\t\t\t\treturn extraViteConfig;\n\t\t\t},\n\n\t\t\tasync configResolved(config) {\n\t\t\t\toptions = resolveOptions(options, config, cache);\n\t\t\t\tpatchResolvedViteConfig(config, options);\n\t\t\t\trequestParser = buildIdParser(options);\n\t\t\t\tcompileSvelte = createCompileSvelte(options);\n\t\t\t\tviteConfig = config;\n\t\t\t\t// TODO deep clone to avoid mutability from outside?\n\t\t\t\tapi.options = options;\n\t\t\t\tlog.debug('resolved options', options);\n\t\t\t},\n\n\t\t\tasync buildStart() {\n\t\t\t\tpackagesWithResolveWarnings = new Set<string>();\n\t\t\t\tif (!options.prebundleSvelteLibraries) return;\n\t\t\t\tconst isSvelteMetadataChanged = await saveSvelteMetadata(viteConfig.cacheDir, options);\n\t\t\t\tif (isSvelteMetadataChanged) {\n\t\t\t\t\t// Force Vite to optimize again. Although we mutate the config here, it works because\n\t\t\t\t\t// Vite's optimizer runs after `buildStart()`.\n\t\t\t\t\tviteConfig.optimizeDeps.force = true;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tconfigureServer(server) {\n\t\t\t\t// eslint-disable-next-line no-unused-vars\n\t\t\t\toptions.server = server;\n\t\t\t\tsetupWatchers(options, cache, requestParser);\n\t\t\t},\n\n\t\t\tasync load(id, opts) {\n\t\t\t\tconst ssr = !!opts?.ssr;\n\t\t\t\tconst svelteRequest = requestParser(id, !!ssr);\n\t\t\t\tif (svelteRequest) {\n\t\t\t\t\tconst { filename, query, raw } = svelteRequest;\n\t\t\t\t\tif (raw) {\n\t\t\t\t\t\treturn loadRaw(svelteRequest, compileSvelte, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (query.svelte && query.type === 'style') {\n\t\t\t\t\t\t\tconst css = cache.getCSS(svelteRequest);\n\t\t\t\t\t\t\tif (css) {\n\t\t\t\t\t\t\t\tlog.debug(`load returns css for ${filename}`);\n\t\t\t\t\t\t\t\treturn css;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// prevent vite asset plugin from loading files as url that should be compiled in transform\n\t\t\t\t\t\tif (viteConfig.assetsInclude(filename)) {\n\t\t\t\t\t\t\tlog.debug(`load returns raw content for ${filename}`);\n\t\t\t\t\t\t\treturn fs.readFileSync(filename, 'utf-8');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tasync resolveId(importee, importer, opts) {\n\t\t\t\tconst ssr = !!opts?.ssr;\n\t\t\t\tconst svelteRequest = requestParser(importee, ssr);\n\t\t\t\tif (svelteRequest?.query.svelte) {\n\t\t\t\t\tif (svelteRequest.query.type === 'style' && !svelteRequest.raw) {\n\t\t\t\t\t\t// return cssId with root prefix so postcss pipeline of vite finds the directory correctly\n\t\t\t\t\t\t// see https://github.com/sveltejs/vite-plugin-svelte/issues/14\n\t\t\t\t\t\tlog.debug(`resolveId resolved virtual css module ${svelteRequest.cssId}`);\n\t\t\t\t\t\treturn svelteRequest.cssId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// TODO: remove this after bumping peerDep on Vite to 4.1+ or Svelte to 4.0+\n\t\t\t\tif (isVite4_0 && isSvelte3 && ssr && importee === 'svelte') {\n\t\t\t\t\tif (!resolvedSvelteSSR) {\n\t\t\t\t\t\tresolvedSvelteSSR = this.resolve('svelte/ssr', undefined, { skipSelf: true }).then(\n\t\t\t\t\t\t\t(svelteSSR) => {\n\t\t\t\t\t\t\t\tlog.debug('resolved svelte to svelte/ssr');\n\t\t\t\t\t\t\t\treturn svelteSSR;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(err) => {\n\t\t\t\t\t\t\t\tlog.debug(\n\t\t\t\t\t\t\t\t\t'failed to resolve svelte to svelte/ssr. Update svelte to a version that exports it',\n\t\t\t\t\t\t\t\t\terr\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn null; // returning null here leads to svelte getting resolved regularly\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn resolvedSvelteSSR;\n\t\t\t\t}\n\t\t\t\t//@ts-expect-error scan\n\t\t\t\tconst scan = !!opts?.scan; // scanner phase of optimizeDeps\n\t\t\t\tconst isPrebundled =\n\t\t\t\t\toptions.prebundleSvelteLibraries &&\n\t\t\t\t\tviteConfig.optimizeDeps?.disabled !== true &&\n\t\t\t\t\tviteConfig.optimizeDeps?.disabled !== (options.isBuild ? 'build' : 'dev') &&\n\t\t\t\t\t!isDepExcluded(importee, viteConfig.optimizeDeps?.exclude ?? []);\n\t\t\t\t// for prebundled libraries we let vite resolve the prebundling result\n\t\t\t\t// for ssr, during scanning and non-prebundled, we do it\n\t\t\t\tif (ssr || scan || !isPrebundled) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst isFirstResolve = !cache.hasResolvedSvelteField(importee, importer);\n\t\t\t\t\t\tconst resolved = await resolveViaPackageJsonSvelte(importee, importer, cache);\n\t\t\t\t\t\tif (isFirstResolve && resolved) {\n\t\t\t\t\t\t\tconst packageInfo = await cache.getPackageInfo(resolved);\n\t\t\t\t\t\t\tconst packageVersion = `${packageInfo.name}@${packageInfo.version}`;\n\t\t\t\t\t\t\tlog.debug.once(\n\t\t\t\t\t\t\t\t`resolveId resolved ${importee} to ${resolved} via package.json svelte field of ${packageVersion}`\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst viteResolved = (\n\t\t\t\t\t\t\t\t\tawait this.resolve(importee, importer, { ...opts, skipSelf: true })\n\t\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\t\t\tif (resolved !== viteResolved) {\n\t\t\t\t\t\t\t\t\tpackagesWithResolveWarnings.add(packageVersion);\n\t\t\t\t\t\t\t\t\tlog.debug.enabled &&\n\t\t\t\t\t\t\t\t\t\tlog.debug.once(\n\t\t\t\t\t\t\t\t\t\t\t`resolve difference for ${packageVersion} ${importee} - svelte: \"${resolved}\", vite: \"${viteResolved}\"`\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tpackagesWithResolveWarnings.add(packageVersion);\n\t\t\t\t\t\t\t\tlog.debug.enabled &&\n\t\t\t\t\t\t\t\t\tlog.debug.once(\n\t\t\t\t\t\t\t\t\t\t`resolve error for ${packageVersion} ${importee} - svelte: \"${resolved}\", vite: ERROR`,\n\t\t\t\t\t\t\t\t\t\te\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resolved;\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tlog.debug.once(\n\t\t\t\t\t\t\t`error trying to resolve ${importee} from ${importer} via package.json svelte field `,\n\t\t\t\t\t\t\te\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// this error most likely happens due to non-svelte related importee/importers so swallow it here\n\t\t\t\t\t\t// in case it really way a svelte library, users will notice anyway. (lib not working due to failed resolve)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tasync transform(code, id, opts) {\n\t\t\t\tconst ssr = !!opts?.ssr;\n\t\t\t\tconst svelteRequest = requestParser(id, ssr);\n\t\t\t\tif (!svelteRequest || svelteRequest.query.type === 'style' || svelteRequest.raw) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet compileData;\n\t\t\t\ttry {\n\t\t\t\t\tcompileData = await compileSvelte(svelteRequest, code, options);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcache.setError(svelteRequest, e);\n\t\t\t\t\tthrow toRollupError(e, options);\n\t\t\t\t}\n\t\t\t\tlogCompilerWarnings(svelteRequest, compileData.compiled.warnings, options);\n\t\t\t\tcache.update(compileData);\n\t\t\t\tif (compileData.dependencies?.length && options.server) {\n\t\t\t\t\tcompileData.dependencies.forEach((d) => {\n\t\t\t\t\t\tensureWatchedFile(options.server!.watcher, d, options.root);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tlog.debug(`transform returns compiled js for ${svelteRequest.filename}`);\n\t\t\t\treturn {\n\t\t\t\t\t...compileData.compiled.js,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tvite: {\n\t\t\t\t\t\t\tlang: compileData.lang\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\thandleHotUpdate(ctx: HmrContext): void | Promise<Array<ModuleNode> | void> {\n\t\t\t\tif (!options.hot || !options.emitCss) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst svelteRequest = requestParser(ctx.file, false, ctx.timestamp);\n\t\t\t\tif (svelteRequest) {\n\t\t\t\t\treturn handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options);\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync buildEnd() {\n\t\t\t\tawait options.stats?.finishAll();\n\t\t\t\tif (\n\t\t\t\t\t!options.experimental?.disableSvelteResolveWarnings &&\n\t\t\t\t\tpackagesWithResolveWarnings?.size > 0\n\t\t\t\t) {\n\t\t\t\t\tlog.warn(\n\t\t\t\t\t\t`WARNING: The following packages use a svelte resolve configuration in package.json that has conflicting results and is going to cause problems future.\\n\\n${[\n\t\t\t\t\t\t\t...packagesWithResolveWarnings\n\t\t\t\t\t\t].join('\\n')}\\n\\nPlease see ${FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE} for details.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsvelteInspector()\n\t];\n\treturn plugins;\n}\n\nexport { vitePreprocess } from './preprocess';\nexport { loadSvelteConfig } from './utils/load-svelte-config';\n\nexport {\n\tOptions,\n\tPluginOptions,\n\tSvelteOptions,\n\tPreprocessor,\n\tPreprocessorGroup,\n\tCompileOptions,\n\tCssHashGetter,\n\tArrayable,\n\tMarkupPreprocessor,\n\tModuleFormat,\n\tProcessed,\n\tWarning\n} from './utils/options';\n\nexport { SvelteWarningsMessage } from './utils/log';\n","/* eslint-disable no-unused-vars,no-console */\nimport { cyan, yellow, red } from 'kleur/colors';\nimport debug from 'debug';\nimport { ResolvedOptions, Warning } from './options';\nimport { SvelteRequest } from './id';\nconst levels: string[] = ['debug', 'info', 'warn', 'error', 'silent'];\nconst prefix = 'vite-plugin-svelte';\nconst loggers: { [key: string]: any } = {\n\tdebug: {\n\t\tlog: debug(`vite:${prefix}`),\n\t\tenabled: false,\n\t\tisDebug: true\n\t},\n\tinfo: {\n\t\tcolor: cyan,\n\t\tlog: console.log,\n\t\tenabled: true\n\t},\n\twarn: {\n\t\tcolor: yellow,\n\t\tlog: console.warn,\n\t\tenabled: true\n\t},\n\terror: {\n\t\tcolor: red,\n\t\tlog: console.error,\n\t\tenabled: true\n\t},\n\tsilent: {\n\t\tenabled: false\n\t}\n};\n\nlet _level: string = 'info';\nfunction setLevel(level: string) {\n\tif (level === _level) {\n\t\treturn;\n\t}\n\tconst levelIndex = levels.indexOf(level);\n\tif (levelIndex > -1) {\n\t\t_level = level;\n\t\tfor (let i = 0; i < levels.length; i++) {\n\t\t\tloggers[levels[i]].enabled = i >= levelIndex;\n\t\t}\n\t} else {\n\t\t_log(loggers.error, `invalid log level: ${level} `);\n\t}\n}\n\nfunction _log(logger: any, message: string, payload?: any, namespace?: string) {\n\tif (!logger.enabled) {\n\t\treturn;\n\t}\n\tif (logger.isDebug) {\n\t\tconst log = namespace ? logger.log.extend(namespace) : logger.log;\n\t\tpayload !== undefined ? log(message, payload) : log(message);\n\t} else {\n\t\tlogger.log(\n\t\t\tlogger.color(\n\t\t\t\t`${new Date().toLocaleTimeString()} [${prefix}${\n\t\t\t\t\tnamespace ? `:${namespace}` : ''\n\t\t\t\t}] ${message}`\n\t\t\t)\n\t\t);\n\t\tif (payload) {\n\t\t\tlogger.log(payload);\n\t\t}\n\t}\n}\n\nexport interface LogFn {\n\t(message: string, payload?: any, namespace?: string): void;\n\tenabled: boolean;\n\tonce: (message: string, payload?: any, namespace?: string) => void;\n}\n\nfunction createLogger(level: string): LogFn {\n\tconst logger = loggers[level];\n\tconst logFn: LogFn = _log.bind(null, logger) as LogFn;\n\tconst logged = new Set<String>();\n\tconst once = function (message: string, payload?: any, namespace?: string) {\n\t\tif (!logger.enabled || logged.has(message)) {\n\t\t\treturn;\n\t\t}\n\t\tlogged.add(message);\n\t\tlogFn.apply(null, [message, payload, namespace]);\n\t};\n\tObject.defineProperty(logFn, 'enabled', {\n\t\tget() {\n\t\t\treturn logger.enabled;\n\t\t}\n\t});\n\tObject.defineProperty(logFn, 'once', {\n\t\tget() {\n\t\t\treturn once;\n\t\t}\n\t});\n\treturn logFn;\n}\n\nexport const log = {\n\tdebug: createLogger('debug'),\n\tinfo: createLogger('info'),\n\twarn: createLogger('warn'),\n\terror: createLogger('error'),\n\tsetLevel\n};\n\nexport type SvelteWarningsMessage = {\n\tid: string;\n\tfilename: string;\n\tnormalizedFilename: string;\n\ttimestamp: number;\n\twarnings: Warning[]; // allWarnings filtered by warnings where onwarn did not call the default handler\n\tallWarnings: Warning[]; // includes warnings filtered by onwarn and our extra vite plugin svelte warnings\n\trawWarnings: Warning[]; // raw compiler output\n};\n\nexport function logCompilerWarnings(\n\tsvelteRequest: SvelteRequest,\n\twarnings: Warning[],\n\toptions: ResolvedOptions\n) {\n\tconst { emitCss, onwarn, isBuild } = options;\n\tconst sendViaWS = !isBuild && options.experimental?.sendWarningsToBrowser;\n\tlet warn = isBuild ? warnBuild : warnDev;\n\tconst handledByDefaultWarn: Warning[] = [];\n\tconst notIgnored = warnings?.filter((w) => !ignoreCompilerWarning(w, isBuild, emitCss));\n\tconst extra = buildExtraWarnings(warnings, isBuild);\n\tconst allWarnings = [...notIgnored, ...extra];\n\tif (sendViaWS) {\n\t\tconst _warn = warn;\n\t\twarn = (w: Warning) => {\n\t\t\thandledByDefaultWarn.push(w);\n\t\t\t_warn(w);\n\t\t};\n\t}\n\tallWarnings.forEach((warning) => {\n\t\tif (onwarn) {\n\t\t\tonwarn(warning, warn);\n\t\t} else {\n\t\t\twarn(warning);\n\t\t}\n\t});\n\tif (sendViaWS) {\n\t\tconst message: SvelteWarningsMessage = {\n\t\t\tid: svelteRequest.id,\n\t\t\tfilename: svelteRequest.filename,\n\t\t\tnormalizedFilename: svelteRequest.normalizedFilename,\n\t\t\ttimestamp: svelteRequest.timestamp,\n\t\t\twarnings: handledByDefaultWarn, // allWarnings filtered by warnings where onwarn did not call the default handler\n\t\t\tallWarnings, // includes warnings filtered by onwarn and our extra vite plugin svelte warnings\n\t\t\trawWarnings: warnings // raw compiler output\n\t\t};\n\t\tlog.debug(`sending svelte:warnings message for ${svelteRequest.normalizedFilename}`);\n\t\toptions.server?.ws?.send('svelte:warnings', message);\n\t}\n}\n\nfunction ignoreCompilerWarning(\n\twarning: Warning,\n\tisBuild: boolean,\n\temitCss: boolean | undefined\n): boolean {\n\treturn (\n\t\t(!emitCss && warning.code === 'css-unused-selector') || // same as rollup-plugin-svelte\n\t\t(!isBuild && isNoScopableElementWarning(warning))\n\t);\n}\n\nfunction isNoScopableElementWarning(warning: Warning) {\n\t// see https://github.com/sveltejs/vite-plugin-svelte/issues/153\n\treturn warning.code === 'css-unused-selector' && warning.message.includes('\"*\"');\n}\n\nfunction buildExtraWarnings(warnings: Warning[], isBuild: boolean): Warning[] {\n\tconst extraWarnings = [];\n\tif (!isBuild) {\n\t\tconst noScopableElementWarnings = warnings.filter((w) => isNoScopableElementWarning(w));\n\t\tif (noScopableElementWarnings.length > 0) {\n\t\t\t// in case there are multiple, use last one as that is the one caused by our *{} rule\n\t\t\tconst noScopableElementWarning =\n\t\t\t\tnoScopableElementWarnings[noScopableElementWarnings.length - 1];\n\t\t\textraWarnings.push({\n\t\t\t\t...noScopableElementWarning,\n\t\t\t\tcode: 'vite-plugin-svelte-css-no-scopable-elements',\n\t\t\t\tmessage: `No scopable elements found in template. If you're using global styles in the style tag, you should move it into an external stylesheet file and import it in JS. See https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#where-should-i-put-my-global-styles.`\n\t\t\t});\n\t\t}\n\t}\n\treturn extraWarnings;\n}\n\nfunction warnDev(w: Warning) {\n\tlog.info.enabled && log.info(buildExtendedLogMessage(w));\n}\n\nfunction warnBuild(w: Warning) {\n\tlog.warn.enabled && log.warn(buildExtendedLogMessage(w), w.frame);\n}\n\nexport function buildExtendedLogMessage(w: Warning) {\n\tconst parts = [];\n\tif (w.filename) {\n\t\tparts.push(w.filename);\n\t}\n\tif (w.start) {\n\t\tparts.push(':', w.start.line, ':', w.start.column);\n\t}\n\tif (w.message) {\n\t\tif (parts.length > 0) {\n\t\t\tparts.push(' ');\n\t\t}\n\t\tparts.push(w.message);\n\t}\n\treturn parts.join('');\n}\n\nexport function isDebugNamespaceEnabled(namespace: string) {\n\treturn debug.enabled(`vite:${prefix}:${namespace}`);\n}\n","import { RollupError } from 'rollup';\nimport { ResolvedOptions, Warning } from './options';\nimport { buildExtendedLogMessage } from './log';\nimport { PartialMessage } from 'esbuild';\n\n/**\n * convert an error thrown by svelte.compile to a RollupError so that vite displays it in a user friendly way\n * @param error a svelte compiler error, which is a mix of Warning and an error\n * @returns {RollupError} the converted error\n */\nexport function toRollupError(error: Warning & Error, options: ResolvedOptions): RollupError {\n\tconst { filename, frame, start, code, name, stack } = error;\n\tconst rollupError: RollupError = {\n\t\tname, // needed otherwise sveltekit coalesce_to_error turns it into a string\n\t\tid: filename,\n\t\tmessage: buildExtendedLogMessage(error), // include filename:line:column so that it's clickable\n\t\tframe: formatFrameForVite(frame),\n\t\tcode,\n\t\tstack: options.isBuild || options.isDebug || !frame ? stack : ''\n\t};\n\tif (start) {\n\t\trollupError.loc = {\n\t\t\tline: start.line,\n\t\t\tcolumn: start.column,\n\t\t\tfile: filename\n\t\t};\n\t}\n\treturn rollupError;\n}\n\n/**\n * convert an error thrown by svelte.compile to an esbuild PartialMessage\n * @param error a svelte compiler error, which is a mix of Warning and an error\n * @returns {PartialMessage} the converted error\n */\nexport function toESBuildError(error: Warning & Error, options: ResolvedOptions): PartialMessage {\n\tconst { filename, frame, start, stack } = error;\n\tconst partialMessage: PartialMessage = {\n\t\ttext: buildExtendedLogMessage(error)\n\t};\n\tif (start) {\n\t\tpartialMessage.location = {\n\t\t\tline: start.line,\n\t\t\tcolumn: start.column,\n\t\t\tfile: filename,\n\t\t\tlineText: lineFromFrame(start.line, frame) // needed to get a meaningful error message on cli\n\t\t};\n\t}\n\tif (options.isBuild || options.isDebug || !frame) {\n\t\tpartialMessage.detail = stack;\n\t}\n\treturn partialMessage;\n}\n\n/**\n * extract line with number from codeframe\n */\nfunction lineFromFrame(lineNo: number, frame?: string): string {\n\tif (!frame) {\n\t\treturn '';\n\t}\n\tconst lines = frame.split('\\n');\n\tconst errorLine = lines.find((line) => line.trimStart().startsWith(`${lineNo}: `));\n\treturn errorLine ? errorLine.substring(errorLine.indexOf(': ') + 3) : '';\n}\n\n/**\n * vite error overlay expects a specific format to show frames\n * this reformats svelte frame (colon separated, less whitespace)\n * to one that vite displays on overlay ( pipe separated, more whitespace)\n * e.g.\n * ```\n * 1: foo\n * 2: bar;\n * ^\n * 3: baz\n * ```\n * to\n * ```\n * 1 | foo\n * 2 | bar;\n * ^\n * 3 | baz\n * ```\n * @see https://github.com/vitejs/vite/blob/96591bf9989529de839ba89958755eafe4c445ae/packages/vite/src/client/overlay.ts#L116\n */\nfunction formatFrameForVite(frame?: string): string {\n\tif (!frame) {\n\t\treturn '';\n\t}\n\treturn frame\n\t\t.split('\\n')\n\t\t.map((line) => (line.match(/^\\s+\\^/) ? ' ' + line : ' ' + line.replace(':', ' | ')))\n\t\t.join('\\n');\n}\n","import { ModuleNode, HmrContext } from 'vite';\nimport { Code, CompileData } from './utils/compile';\nimport { log, logCompilerWarnings } from './utils/log';\nimport { SvelteRequest } from './utils/id';\nimport { VitePluginSvelteCache } from './utils/vite-plugin-svelte-cache';\nimport { ResolvedOptions } from './utils/options';\nimport { toRollupError } from './utils/error';\n\n/**\n * Vite-specific HMR handling\n */\nexport async function handleHotUpdate(\n\tcompileSvelte: Function,\n\tctx: HmrContext,\n\tsvelteRequest: SvelteRequest,\n\tcache: VitePluginSvelteCache,\n\toptions: ResolvedOptions\n): Promise<ModuleNode[] | void> {\n\tif (!cache.has(svelteRequest)) {\n\t\t// file hasn't been requested yet (e.g. async component)\n\t\tlog.debug(`handleHotUpdate called before initial transform for ${svelteRequest.id}`);\n\t\treturn;\n\t}\n\tconst { read, server, modules } = ctx;\n\n\tconst cachedJS = cache.getJS(svelteRequest);\n\tconst cachedCss = cache.getCSS(svelteRequest);\n\n\tconst content = await read();\n\tlet compileData: CompileData;\n\ttry {\n\t\tcompileData = await compileSvelte(svelteRequest, content, options);\n\t\tcache.update(compileData);\n\t} catch (e) {\n\t\tcache.setError(svelteRequest, e);\n\t\tthrow toRollupError(e, options);\n\t}\n\n\tconst affectedModules = [...modules];\n\n\tconst cssIdx = modules.findIndex((m) => m.id === svelteRequest.cssId);\n\tif (cssIdx > -1) {\n\t\tconst cssUpdated = cssChanged(cachedCss, compileData.compiled.css);\n\t\tif (!cssUpdated) {\n\t\t\tlog.debug(`skipping unchanged css for ${svelteRequest.cssId}`);\n\t\t\taffectedModules.splice(cssIdx, 1);\n\t\t}\n\t}\n\tconst jsIdx = modules.findIndex((m) => m.id === svelteRequest.id);\n\tif (jsIdx > -1) {\n\t\tconst jsUpdated = jsChanged(cachedJS, compileData.compiled.js, svelteRequest.filename);\n\t\tif (!jsUpdated) {\n\t\t\tlog.debug(`skipping unchanged js for ${svelteRequest.id}`);\n\t\t\taffectedModules.splice(jsIdx, 1);\n\t\t\t// transform won't be called, log warnings here\n\t\t\tlogCompilerWarnings(svelteRequest, compileData.compiled.warnings, options);\n\t\t}\n\t}\n\n\t// TODO is this enough? see also: https://github.com/vitejs/vite/issues/2274\n\tconst ssrModulesToInvalidate = affectedModules.filter((m) => !!m.ssrTransformResult);\n\tif (ssrModulesToInvalidate.length > 0) {\n\t\tlog.debug(`invalidating modules ${ssrModulesToInvalidate.map((m) => m.id).join(', ')}`);\n\t\tssrModulesToInvalidate.forEach((moduleNode) => server.moduleGraph.invalidateModule(moduleNode));\n\t}\n\tif (affectedModules.length > 0) {\n\t\tlog.debug(\n\t\t\t`handleHotUpdate for ${svelteRequest.id} result: ${affectedModules\n\t\t\t\t.map((m) => m.id)\n\t\t\t\t.join(', ')}`\n\t\t);\n\t}\n\treturn affectedModules;\n}\n\nfunction cssChanged(prev?: Code, next?: Code): boolean {\n\treturn !isCodeEqual(prev?.code, next?.code);\n}\n\nfunction jsChanged(prev?: Code, next?: Code, filename?: string): boolean {\n\tconst prevJs = prev?.code;\n\tconst nextJs = next?.code;\n\tconst isStrictEqual = isCodeEqual(prevJs, nextJs);\n\tif (isStrictEqual) {\n\t\treturn false;\n\t}\n\tconst isLooseEqual = isCodeEqual(normalizeJsCode(prevJs), normalizeJsCode(nextJs));\n\tif (!isStrictEqual && isLooseEqual) {\n\t\tlog.warn(\n\t\t\t`ignoring compiler output js change for ${filename} as it is equal to previous output after normalization`\n\t\t);\n\t}\n\treturn !isLooseEqual;\n}\n\nfunction isCodeEqual(prev?: string, next?: string): boolean {\n\tif (!prev && !next) {\n\t\treturn true;\n\t}\n\tif ((!prev && next) || (prev && !next)) {\n\t\treturn false;\n\t}\n\treturn prev === next;\n}\n\n/**\n * remove code that only changes metadata and does not require a js update for the component to keep working\n *\n * 1) add_location() calls. These add location metadata to elements, only used by some dev tools\n * 2) ... maybe more (or less) in the future\n * @param code\n */\nfunction normalizeJsCode(code?: string): string | undefined {\n\tif (!code) {\n\t\treturn code;\n\t}\n\treturn code.replace(/\\s*\\badd_location\\s*\\([^)]*\\)\\s*;?/g, '');\n}\n","import { CompileOptions, ResolvedOptions } from './options';\nimport { compile, preprocess, walk } from 'svelte/compiler';\n// @ts-ignore\nimport { createMakeHot } from 'svelte-hmr';\nimport { SvelteRequest } from './id';\nimport { safeBase64Hash } from './hash';\nimport { log } from './log';\nimport { StatCollection } from './vite-plugin-svelte-stats';\n//eslint-disable-next-line node/no-missing-import\nimport type { Processed } from 'svelte/types/compiler/preprocess';\nimport { createInjectScopeEverythingRulePreprocessorGroup } from './preprocess';\nimport { mapToRelative } from './sourcemaps';\n\nconst scriptLangRE = /<script [^>]*lang=[\"']?([^\"' >]+)[\"']?[^>]*>/;\n\nexport type CompileSvelte = ReturnType<typeof _createCompileSvelte>;\n\nconst _createCompileSvelte = (makeHot: Function) => {\n\tlet stats: StatCollection | undefined;\n\tconst devStylePreprocessor = createInjectScopeEverythingRulePreprocessorGroup();\n\treturn async function compileSvelte(\n\t\tsvelteRequest: SvelteRequest,\n\t\tcode: string,\n\t\toptions: Partial<ResolvedOptions>\n\t): Promise<CompileData> {\n\t\tconst { filename, normalizedFilename, cssId, ssr, raw } = svelteRequest;\n\t\tconst { emitCss = true } = options;\n\t\tconst dependencies = [];\n\n\t\tif (options.stats) {\n\t\t\tif (options.isBuild) {\n\t\t\t\tif (!stats) {\n\t\t\t\t\t// build is either completely ssr or csr, create stats collector on first compile\n\t\t\t\t\t// it is then finished in the buildEnd hook.\n\t\t\t\t\tstats = options.stats.startCollection(`${ssr ? 'ssr' : 'dom'} compile`, {\n\t\t\t\t\t\tlogInProgress: () => false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// dev time ssr, it's a ssr request and there are no stats, assume new page load and start collecting\n\t\t\t\tif (ssr && !stats) {\n\t\t\t\t\tstats = options.stats.startCollection('ssr compile');\n\t\t\t\t}\n\t\t\t\t// stats are being collected but this isn't an ssr request, assume page loaded and stop collecting\n\t\t\t\tif (!ssr && stats) {\n\t\t\t\t\tstats.finish();\n\t\t\t\t\tstats = undefined;\n\t\t\t\t}\n\t\t\t\t// TODO find a way to trace dom compile during dev\n\t\t\t\t// problem: we need to call finish at some point but have no way to tell if page load finished\n\t\t\t\t// also they for hmr updates too\n\t\t\t}\n\t\t}\n\n\t\tconst compileOptions: CompileOptions = {\n\t\t\t...options.compilerOptions,\n\t\t\tfilename: normalizedFilename, // use normalized here to avoid bleeding absolute fs path\n\t\t\tgenerate: ssr ? 'ssr' : 'dom',\n\t\t\tformat: 'esm'\n\t\t};\n\t\tif (options.hot && options.emitCss) {\n\t\t\tconst hash = `s-${safeBase64Hash(normalizedFilename)}`;\n\t\t\tlog.debug(`setting cssHash ${hash} for ${normalizedFilename}`);\n\t\t\tcompileOptions.cssHash = () => hash;\n\t\t}\n\t\tif (ssr && compileOptions.enableSourcemap !== false) {\n\t\t\tif (typeof compileOptions.enableSourcemap === 'object') {\n\t\t\t\tcompileOptions.enableSourcemap.css = false;\n\t\t\t} else {\n\t\t\t\tcompileOptions.enableSourcemap = { js: true, css: false };\n\t\t\t}\n\t\t}\n\n\t\tlet preprocessed;\n\t\tlet preprocessors = options.preprocess;\n\t\tif (!options.isBuild && options.emitCss && options.hot) {\n\t\t\t// inject preprocessor that ensures css hmr works better\n\t\t\tif (!Array.isArray(preprocessors)) {\n\t\t\t\tpreprocessors = preprocessors\n\t\t\t\t\t? [preprocessors, devStylePreprocessor]\n\t\t\t\t\t: [devStylePreprocessor];\n\t\t\t} else {\n\t\t\t\tpreprocessors = preprocessors.concat(devStylePreprocessor);\n\t\t\t}\n\t\t}\n\t\tif (preprocessors) {\n\t\t\ttry {\n\t\t\t\tpreprocessed = await preprocess(code, preprocessors, { filename }); // full filename here so postcss works\n\t\t\t} catch (e) {\n\t\t\t\te.message = `Error while preprocessing ${filename}${e.message ? ` - ${e.message}` : ''}`;\n\t\t\t\tthrow e;\n\t\t\t}\n\n\t\t\tif (preprocessed.dependencies) dependencies.push(...preprocessed.dependencies);\n\t\t\tif (preprocessed.map) compileOptions.sourcemap = preprocessed.map;\n\t\t}\n\t\tif (typeof preprocessed?.map === 'object') {\n\t\t\tmapToRelative(preprocessed?.map, filename);\n\t\t}\n\t\tif (raw && svelteRequest.query.type === 'preprocessed') {\n\t\t\t// shortcut\n\t\t\treturn { preprocessed: preprocessed ?? { code } } as CompileData;\n\t\t}\n\t\tconst finalCode = preprocessed ? preprocessed.code : code;\n\t\tconst dynamicCompileOptions = await options.experimental?.dynamicCompileOptions?.({\n\t\t\tfilename,\n\t\t\tcode: finalCode,\n\t\t\tcompileOptions\n\t\t});\n\t\tif (dynamicCompileOptions && log.debug.enabled) {\n\t\t\tlog.debug(\n\t\t\t\t`dynamic compile options for ${filename}: ${JSON.stringify(dynamicCompileOptions)}`\n\t\t\t);\n\t\t}\n\t\tconst finalCompileOptions = dynamicCompileOptions\n\t\t\t? {\n\t\t\t\t\t...compileOptions,\n\t\t\t\t\t...dynamicCompileOptions\n\t\t\t }\n\t\t\t: compileOptions;\n\n\t\tconst endStat = stats?.start(filename);\n\t\tconst compiled = compile(finalCode, finalCompileOptions);\n\n\t\t// prevent dangling pure comments\n\t\t// see https://github.com/sveltejs/kit/issues/9492#issuecomment-1487704985\n\t\t// uses regex replace with whitespace to keep sourcemap/character count unmodified\n\t\tcompiled.js.code = compiled.js.code.replace(\n\t\t\t/\\/\\* [@#]__PURE__ \\*\\/(\\s*)$/gm,\n\t\t\t' $1'\n\t\t);\n\t\tif (endStat) {\n\t\t\tendStat();\n\t\t}\n\t\tmapToRelative(compiled.js?.map, filename);\n\t\tmapToRelative(compiled.css?.map, filename);\n\t\tif (!raw) {\n\t\t\t// wire css import and code for hmr\n\t\t\tconst hasCss = compiled.css?.code?.trim().length > 0;\n\t\t\t// compiler might not emit css with mode none or it may be empty\n\t\t\tif (emitCss && hasCss) {\n\t\t\t\t// TODO properly update sourcemap?\n\t\t\t\tcompiled.js.code += `\\nimport ${JSON.stringify(cssId)};\\n`;\n\t\t\t}\n\n\t\t\t// only apply hmr when not in ssr context and hot options are set\n\t\t\tif (!ssr && makeHot) {\n\t\t\t\tcompiled.js.code = makeHot({\n\t\t\t\t\tid: filename,\n\t\t\t\t\tcompiledCode: compiled.js.code,\n\t\t\t\t\t//@ts-expect-error hot isn't a boolean at this point\n\t\t\t\t\thotOptions: { ...options.hot, injectCss: options.hot?.injectCss === true && hasCss },\n\t\t\t\t\tcompiled,\n\t\t\t\t\toriginalCode: code,\n\t\t\t\t\tcompileOptions: finalCompileOptions\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tcompiled.js.dependencies = dependencies;\n\n\t\treturn {\n\t\t\tfilename,\n\t\t\tnormalizedFilename,\n\t\t\tlang: code.match(scriptLangRE)?.[1] || 'js',\n\t\t\t// @ts-ignore\n\t\t\tcompiled,\n\t\t\tssr,\n\t\t\tdependencies,\n\t\t\tpreprocessed: preprocessed ?? { code }\n\t\t};\n\t};\n};\nfunction buildMakeHot(options: ResolvedOptions) {\n\tconst needsMakeHot = options.hot !== false && options.isServe && !options.isProduction;\n\tif (needsMakeHot) {\n\t\t// @ts-ignore\n\t\tconst hotApi = options?.hot?.hotApi;\n\t\t// @ts-ignore\n\t\tconst adapter = options?.hot?.adapter;\n\t\treturn createMakeHot({\n\t\t\twalk,\n\t\t\thotApi,\n\t\t\tadapter,\n\t\t\thotOptions: { noOverlay: true, ...(options.hot as object) }\n\t\t});\n\t}\n}\n\nexport function createCompileSvelte(options: ResolvedOptions) {\n\tconst makeHot = buildMakeHot(options);\n\treturn _createCompileSvelte(makeHot);\n}\n\nexport interface Code {\n\tcode: string;\n\tmap?: any;\n\tdependencies?: any[];\n}\n\nexport interface Compiled {\n\tjs: Code;\n\tcss: Code;\n\tast: any; // TODO type\n\twarnings: any[]; // TODO type\n\tvars: {\n\t\tname: string;\n\t\texport_name: string;\n\t\tinjected: boolean;\n\t\tmodule: boolean;\n\t\tmutated: boolean;\n\t\treassigned: boolean;\n\t\treferenced: boolean;\n\t\twritable: boolean;\n\t\treferenced_from_script: boolean;\n\t}[];\n\tstats: {\n\t\ttimings: {\n\t\t\ttotal: number;\n\t\t};\n\t};\n}\n\nexport interface CompileData {\n\tfilename: string;\n\tnormalizedFilename: string;\n\tlang: string;\n\tcompiled: Compiled;\n\tssr: boolean | undefined;\n\tdependencies: string[];\n\tpreprocessed: Processed;\n}\n","import * as crypto from 'crypto';\n\nconst hashes = Object.create(null);\n\n//TODO shorter?\nconst hash_length = 12;\n\nexport function safeBase64Hash(input: string) {\n\tif (hashes[input]) {\n\t\treturn hashes[input];\n\t}\n\t//TODO if performance really matters, use a faster one like xx-hash etc.\n\t// should be evenly distributed because short input length and similarities in paths could cause collisions otherwise\n\t// OR DON'T USE A HASH AT ALL, what about a simple counter?\n\tconst md5 = crypto.createHash('md5');\n\tmd5.update(input);\n\tconst hash = toSafe(md5.digest('base64')).slice(0, hash_length);\n\thashes[input] = hash;\n\treturn hash;\n}\n\nconst replacements: { [key: string]: string } = {\n\t'+': '-',\n\t'/': '_',\n\t'=': ''\n};\n\nconst replaceRE = new RegExp(`[${Object.keys(replacements).join('')}]`, 'g');\n\nfunction toSafe(base64: string) {\n\treturn base64.replace(replaceRE, (x) => replacements[x]);\n}\n","import type { ResolvedConfig, Plugin } from 'vite';\nimport MagicString from 'magic-string';\nimport { PreprocessorGroup, ResolvedOptions } from './options';\nimport { log } from './log';\nimport path from 'path';\n\n/**\n * this appends a *{} rule to component styles to force the svelte compiler to add style classes to all nodes\n * That means adding/removing class rules from <style> node won't trigger js updates as the scope classes are not changed\n *\n * only used during dev with enabled css hmr\n */\nexport function createInjectScopeEverythingRulePreprocessorGroup(): PreprocessorGroup {\n\treturn {\n\t\tstyle({ content, filename }) {\n\t\t\tconst s = new MagicString(content);\n\t\t\ts.append(' *{}');\n\t\t\treturn {\n\t\t\t\tcode: s.toString(),\n\t\t\t\tmap: s.generateDecodedMap({\n\t\t\t\t\tsource: filename ? path.basename(filename) : undefined,\n\t\t\t\t\thires: true\n\t\t\t\t})\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction buildExtraPreprocessors(options: ResolvedOptions, config: ResolvedConfig) {\n\tconst prependPreprocessors: PreprocessorGroup[] = [];\n\tconst appendPreprocessors: PreprocessorGroup[] = [];\n\n\t// @ts-ignore\n\tconst pluginsWithPreprocessorsDeprecated = config.plugins.filter((p) => p?.sveltePreprocess);\n\tif (pluginsWithPreprocessorsDeprecated.length > 0) {\n\t\tlog.warn(\n\t\t\t`The following plugins use the deprecated 'plugin.sveltePreprocess' field. Please contact their maintainers and ask them to move it to 'plugin.api.sveltePreprocess': ${pluginsWithPreprocessorsDeprecated\n\t\t\t\t.map((p) => p.name)\n\t\t\t\t.join(', ')}`\n\t\t);\n\t\t// patch plugin to avoid breaking\n\t\tpluginsWithPreprocessorsDeprecated.forEach((p) => {\n\t\t\tif (!p.api) {\n\t\t\t\tp.api = {};\n\t\t\t}\n\t\t\tif (p.api.sveltePreprocess === undefined) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tp.api.sveltePreprocess = p.sveltePreprocess;\n\t\t\t} else {\n\t\t\t\tlog.error(\n\t\t\t\t\t`ignoring plugin.sveltePreprocess of ${p.name} because it already defined plugin.api.sveltePreprocess.`\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst pluginsWithPreprocessors: Plugin[] = config.plugins.filter((p) => p?.api?.sveltePreprocess);\n\tconst ignored: Plugin[] = [],\n\t\tincluded: Plugin[] = [];\n\tfor (const p of pluginsWithPreprocessors) {\n\t\tif (\n\t\t\toptions.ignorePluginPreprocessors === true ||\n\t\t\t(Array.isArray(options.ignorePluginPreprocessors) &&\n\t\t\t\toptions.ignorePluginPreprocessors?.includes(p.name))\n\t\t) {\n\t\t\tignored.push(p);\n\t\t} else {\n\t\t\tincluded.push(p);\n\t\t}\n\t}\n\tif (ignored.length > 0) {\n\t\tlog.debug(\n\t\t\t`Ignoring svelte preprocessors defined by these vite plugins: ${ignored\n\t\t\t\t.map((p) => p.name)\n\t\t\t\t.join(', ')}`\n\t\t);\n\t}\n\tif (included.length > 0) {\n\t\tlog.debug(\n\t\t\t`Adding svelte preprocessors defined by these vite plugins: ${included\n\t\t\t\t.map((p) => p.name)\n\t\t\t\t.join(', ')}`\n\t\t);\n\t\tappendPreprocessors.push(...pluginsWithPreprocessors.map((p) => p.api.sveltePreprocess));\n\t}\n\n\treturn { prependPreprocessors, appendPreprocessors };\n}\n\nexport function addExtraPreprocessors(options: ResolvedOptions, config: ResolvedConfig) {\n\tconst { prependPreprocessors, appendPreprocessors } = buildExtraPreprocessors(options, config);\n\tif (prependPreprocessors.length > 0 || appendPreprocessors.length > 0) {\n\t\tif (!options.preprocess) {\n\t\t\toptions.preprocess = [...prependPreprocessors, ...appendPreprocessors];\n\t\t} else if (Array.isArray(options.preprocess)) {\n\t\t\toptions.preprocess.unshift(...prependPreprocessors);\n\t\t\toptions.preprocess.push(...appendPreprocessors);\n\t\t} else {\n\t\t\toptions.preprocess = [...prependPreprocessors, options.preprocess, ...appendPreprocessors];\n\t\t}\n\t}\n}\n","import path from 'path';\nconst IS_WINDOWS = process.platform === 'win32';\ninterface SourceMapFileRefs {\n\tfile?: string;\n\tsources?: string[];\n\tsourceRoot?: string;\n}\n\n/**\n * convert absolute paths in sourcemap file refs to their relative equivalents to avoid leaking fs info\n *\n * map is modified in place.\n *\n * @param map sourcemap\n * @param filename absolute path to file the sourcemap is for\n */\nexport function mapToRelative(map: SourceMapFileRefs | undefined, filename: string) {\n\tif (!map) {\n\t\treturn;\n\t}\n\tconst sourceRoot = map.sourceRoot;\n\tconst dirname = path.dirname(filename);\n\tconst toRelative = (s: string) => {\n\t\tif (!s) {\n\t\t\treturn s;\n\t\t}\n\t\tlet sourcePath: string;\n\t\tif (s.startsWith('file:///')) {\n\t\t\t// windows has file:///C:/foo and posix has file:///foo, so we have to remove one extra on windows\n\t\t\tsourcePath = s.slice(IS_WINDOWS ? 8 : 7);\n\t\t} else if (sourceRoot) {\n\t\t\tconst sep = sourceRoot[sourceRoot.length - 1] === '/' || s[0] === '/' ? '' : '/';\n\t\t\tsourcePath = `${sourceRoot}${sep}${s}`;\n\t\t} else {\n\t\t\tsourcePath = s;\n\t\t}\n\t\treturn path.isAbsolute(sourcePath) ? path.relative(dirname, sourcePath) : sourcePath;\n\t};\n\n\tif (map.file) {\n\t\tmap.file = path.basename(filename);\n\t}\n\tif (map.sources) {\n\t\tmap.sources = map.sources.map(toRelative);\n\t}\n\tif (map.sourceRoot) {\n\t\t// we have prepended sourceRoot and computed relative paths from it\n\t\t// remove it here to avoid downstream processing prepending it again\n\t\tdelete map.sourceRoot;\n\t}\n}\n\n/**\n * vitePreprocess uses an extra lang extension to tell vite about the type of preprocessor to use\n * This function removes it afterwards to get back working file refs\n *\n * map is modified in place.\n *\n * @param map the output sourcemap\n * @param suffix the suffix to remove\n */\nexport function removeLangSuffix(map: SourceMapFileRefs | undefined, suffix: string) {\n\tif (!map) {\n\t\treturn;\n\t}\n\tconst removeSuffix = (s: string) => (s?.endsWith(suffix) ? s.slice(0, -1 * suffix.length) : s);\n\tif (map.file) {\n\t\tmap.file = removeSuffix(map.file);\n\t}\n\tif (map.sources) {\n\t\tmap.sources = map.sources.map(removeSuffix);\n\t}\n}\n","/* eslint-disable no-unused-vars */\nimport { createFilter } from 'vite';\nimport { Arrayable, ResolvedOptions } from './options';\nimport { normalizePath } from 'vite';\nimport * as fs from 'fs';\n//eslint-disable-next-line node/no-missing-import\nimport { CompileOptions } from 'svelte/types/compiler/interfaces';\nimport { log } from './log';\n\nconst VITE_FS_PREFIX = '/@fs/';\nconst IS_WINDOWS = process.platform === 'win32';\n\nconst SUPPORTED_COMPILER_OPTIONS = [\n\t'generate',\n\t'dev',\n\t'css',\n\t'hydratable',\n\t'customElement',\n\t'immutable',\n\t'enableSourcemap'\n];\nconst TYPES_WITH_COMPILER_OPTIONS = ['style', 'script', 'all'];\n\nexport type SvelteQueryTypes = 'style' | 'script' | 'preprocessed' | 'all';\n\nexport interface RequestQuery {\n\t// our own\n\tsvelte?: boolean;\n\ttype?: SvelteQueryTypes;\n\tsourcemap?: boolean;\n\tcompilerOptions?: Pick<\n\t\tCompileOptions,\n\t\t'generate' | 'dev' | 'css' | 'hydratable' | 'customElement' | 'immutable' | 'enableSourcemap'\n\t>;\n\t// vite specific\n\turl?: boolean;\n\traw?: boolean;\n\tdirect?: boolean;\n}\n\nexport interface SvelteRequest {\n\tid: string;\n\tcssId: string;\n\tfilename: string;\n\tnormalizedFilename: string;\n\tquery: RequestQuery;\n\ttimestamp: number;\n\tssr: boolean;\n\traw: boolean;\n}\n\nfunction splitId(id: string) {\n\tconst parts = id.split(`?`, 2);\n\tconst filename = parts[0];\n\tconst rawQuery = parts[1];\n\treturn { filename, rawQuery };\n}\n\nfunction parseToSvelteRequest(\n\tid: string,\n\tfilename: string,\n\trawQuery: string,\n\troot: string,\n\ttimestamp: number,\n\tssr: boolean\n): SvelteRequest | undefined {\n\tconst query = parseRequestQuery(rawQuery);\n\tconst rawOrDirect = !!(query.raw || query.direct);\n\tif (query.url || (!query.svelte && rawOrDirect)) {\n\t\t// skip requests with special vite tags\n\t\treturn;\n\t}\n\tconst raw = rawOrDirect;\n\tconst normalizedFilename = normalize(filename, root);\n\tconst cssId = createVirtualImportId(filename, root, 'style');\n\n\treturn {\n\t\tid,\n\t\tfilename,\n\t\tnormalizedFilename,\n\t\tcssId,\n\t\tquery,\n\t\ttimestamp,\n\t\tssr,\n\t\traw\n\t};\n}\n\nfunction createVirtualImportId(filename: string, root: string, type: SvelteQueryTypes) {\n\tconst parts = ['svelte', `type=${type}`];\n\tif (type === 'style') {\n\t\tparts.push('lang.css');\n\t}\n\tif (existsInRoot(filename, root)) {\n\t\tfilename = root + filename;\n\t} else if (filename.startsWith(VITE_FS_PREFIX)) {\n\t\tfilename = IS_WINDOWS\n\t\t\t? filename.slice(VITE_FS_PREFIX.length) // remove /@fs/ from /@fs/C:/...\n\t\t\t: filename.slice(VITE_FS_PREFIX.length - 1); // remove /@fs from /@fs/home/user\n\t}\n\t// return same virtual id format as vite-plugin-vue eg ...App.svelte?svelte&type=style&lang.css\n\treturn `${filename}?${parts.join('&')}`;\n}\n\nfunction parseRequestQuery(rawQuery: string): RequestQuery {\n\tconst query = Object.fromEntries(new URLSearchParams(rawQuery));\n\tfor (const key in query) {\n\t\tif (query[key] === '') {\n\t\t\t// @ts-ignore\n\t\t\tquery[key] = true;\n\t\t}\n\t}\n\tconst compilerOptions = query.compilerOptions;\n\tif (compilerOptions) {\n\t\tif (!((query.raw || query.direct) && TYPES_WITH_COMPILER_OPTIONS.includes(query.type))) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid compilerOptions in query ${rawQuery}. CompilerOptions are only supported for raw or direct queries with type in \"${TYPES_WITH_COMPILER_OPTIONS.join(\n\t\t\t\t\t', '\n\t\t\t\t)}\" e.g. '?svelte&raw&type=script&compilerOptions={\"generate\":\"ssr\",\"dev\":false}`\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(compilerOptions);\n\t\t\tconst invalid = Object.keys(parsed).filter(\n\t\t\t\t(key) => !SUPPORTED_COMPILER_OPTIONS.includes(key)\n\t\t\t);\n\t\t\tif (invalid.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid compilerOptions in query ${rawQuery}: ${invalid.join(\n\t\t\t\t\t\t', '\n\t\t\t\t\t)}. Supported: ${SUPPORTED_COMPILER_OPTIONS.join(', ')}`\n\t\t\t\t);\n\t\t\t}\n\t\t\tquery.compilerOptions = parsed;\n\t\t} catch (e) {\n\t\t\tlog.error('failed to parse request query compilerOptions', e);\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\treturn query as RequestQuery;\n}\n\n/**\n * posixify and remove root at start\n *\n * @param filename\n * @param normalizedRoot\n */\nfunction normalize(filename: string, normalizedRoot: string) {\n\treturn stripRoot(normalizePath(filename), normalizedRoot);\n}\n\nfunction existsInRoot(filename: string, root: string) {\n\tif (filename.startsWith(VITE_FS_PREFIX)) {\n\t\treturn false; // vite already tagged it as out of root\n\t}\n\treturn fs.existsSync(root + filename);\n}\n\nfunction stripRoot(normalizedFilename: string, normalizedRoot: string) {\n\treturn normalizedFilename.startsWith(normalizedRoot + '/')\n\t\t? normalizedFilename.slice(normalizedRoot.length)\n\t\t: normalizedFilename;\n}\n\nfunction buildFilter(\n\tinclude: Arrayable<string> | undefined,\n\texclude: Arrayable<string> | undefined,\n\textensions: string[]\n): (filename: string) => boolean {\n\tconst rollupFilter = createFilter(include, exclude);\n\treturn (filename) => rollupFilter(filename) && extensions.some((ext) => filename.endsWith(ext));\n}\n\nexport type IdParser = (id: string, ssr: boolean, timestamp?: number) => SvelteRequest | undefined;\nexport function buildIdParser(options: ResolvedOptions): IdParser {\n\tconst { include, exclude, extensions, root } = options;\n\tconst normalizedRoot = normalizePath(root);\n\tconst filter = buildFilter(include, exclude, extensions!);\n\treturn (id, ssr, timestamp = Date.now()) => {\n\t\tconst { filename, rawQuery } = splitId(id);\n\t\tif (filter(filename)) {\n\t\t\treturn parseToSvelteRequest(id, filename, rawQuery, normalizedRoot, timestamp, ssr);\n\t\t}\n\t};\n}\n","/* eslint-disable no-unused-vars */\nimport { ConfigEnv, normalizePath, ResolvedConfig, UserConfig, ViteDevServer } from 'vite';\nimport { isDebugNamespaceEnabled, log } from './log';\nimport { loadSvelteConfig } from './load-svelte-config';\nimport {\n\tSVELTE_EXPORT_CONDITIONS,\n\tSVELTE_HMR_IMPORTS,\n\tSVELTE_IMPORTS,\n\tSVELTE_RESOLVE_MAIN_FIELDS,\n\tVITE_RESOLVE_MAIN_FIELDS\n} from './constants';\n// eslint-disable-next-line node/no-missing-import\nimport type { CompileOptions, Warning } from 'svelte/types/compiler/interfaces';\nimport type {\n\tMarkupPreprocessor,\n\tPreprocessor,\n\tPreprocessorGroup,\n\tProcessed\n\t// eslint-disable-next-line node/no-missing-import\n} from 'svelte/types/compiler/preprocess';\n\nimport path from 'path';\nimport { esbuildSveltePlugin, facadeEsbuildSveltePluginName } from './esbuild';\nimport { addExtraPreprocessors } from './preprocess';\nimport deepmerge from 'deepmerge';\nimport {\n\tcrawlFrameworkPkgs,\n\tisDepExcluded,\n\tisDepExternaled,\n\tisDepIncluded,\n\tisDepNoExternaled\n\t// eslint-disable-next-line node/no-missing-import\n} from 'vitefu';\n\nimport { isCommonDepWithoutSvelteField } from './dependencies';\nimport { VitePluginSvelteStats } from './vite-plugin-svelte-stats';\nimport { VitePluginSvelteCache } from './vite-plugin-svelte-cache';\nimport type { InspectorOptions } from '../ui/inspector/options';\n\nconst allowedPluginOptions = new Set([\n\t'include',\n\t'exclude',\n\t'emitCss',\n\t'hot',\n\t'ignorePluginPreprocessors',\n\t'disableDependencyReinclusion',\n\t'prebundleSvelteLibraries',\n\t'inspector',\n\t'experimental'\n]);\n\nconst knownRootOptions = new Set(['extensions', 'compilerOptions', 'preprocess', 'onwarn']);\n\nconst allowedInlineOptions = new Set(['configFile', ...allowedPluginOptions, ...knownRootOptions]);\n\nexport function validateInlineOptions(inlineOptions?: Partial<Options>) {\n\tconst invalidKeys = Object.keys(inlineOptions || {}).filter(\n\t\t(key) => !allowedInlineOptions.has(key)\n\t);\n\tif (invalidKeys.length) {\n\t\tlog.warn(`invalid plugin options \"${invalidKeys.join(', ')}\" in inline config`, inlineOptions);\n\t}\n}\n\nfunction convertPluginOptions(config?: Partial<SvelteOptions>): Partial<Options> | undefined {\n\tif (!config) {\n\t\treturn;\n\t}\n\tconst invalidRootOptions = Object.keys(config).filter((key) => allowedPluginOptions.has(key));\n\tif (invalidRootOptions.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid options in svelte config. Move the following options into 'vitePlugin:{...}': ${invalidRootOptions.join(\n\t\t\t\t', '\n\t\t\t)}`\n\t\t);\n\t}\n\tif (!config.vitePlugin) {\n\t\treturn config;\n\t}\n\tconst pluginOptions = config.vitePlugin;\n\tconst pluginOptionKeys = Object.keys(pluginOptions);\n\n\tconst rootOptionsInPluginOptions = pluginOptionKeys.filter((key) => knownRootOptions.has(key));\n\tif (rootOptionsInPluginOptions.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid options in svelte config under vitePlugin:{...}', move them to the config root : ${rootOptionsInPluginOptions.join(\n\t\t\t\t', '\n\t\t\t)}`\n\t\t);\n\t}\n\tconst duplicateOptions = pluginOptionKeys.filter((key) =>\n\t\tObject.prototype.hasOwnProperty.call(config, key)\n\t);\n\tif (duplicateOptions.length > 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid duplicate options in svelte config under vitePlugin:{...}', they are defined in root too and must only exist once: ${duplicateOptions.join(\n\t\t\t\t', '\n\t\t\t)}`\n\t\t);\n\t}\n\tconst unknownPluginOptions = pluginOptionKeys.filter((key) => !allowedPluginOptions.has(key));\n\tif (unknownPluginOptions.length > 0) {\n\t\tlog.warn(\n\t\t\t`ignoring unknown plugin options in svelte config under vitePlugin:{...}: ${unknownPluginOptions.join(\n\t\t\t\t', '\n\t\t\t)}`\n\t\t);\n\t\tunknownPluginOptions.forEach((unkownOption) => {\n\t\t\t// @ts-ignore\n\t\t\tdelete pluginOptions[unkownOption];\n\t\t});\n\t}\n\n\tconst result: Options = {\n\t\t...config,\n\t\t...pluginOptions\n\t};\n\t// @ts-expect-error it exists\n\tdelete result.vitePlugin;\n\n\treturn result;\n}\n\n// used in config phase, merges the default options, svelte config, and inline options\nexport async function preResolveOptions(\n\tinlineOptions: Partial<Options> = {},\n\tviteUserConfig: UserConfig,\n\tviteEnv: ConfigEnv\n): Promise<PreResolvedOptions> {\n\tconst viteConfigWithResolvedRoot: UserConfig = {\n\t\t...viteUserConfig,\n\t\troot: resolveViteRoot(viteUserConfig)\n\t};\n\tconst isBuild = viteEnv.command === 'build';\n\tconst defaultOptions: Partial<Options> = {\n\t\textensions: ['.svelte'],\n\t\temitCss: true,\n\t\tprebundleSvelteLibraries: !isBuild\n\t};\n\tconst svelteConfig = convertPluginOptions(\n\t\tawait loadSvelteConfig(viteConfigWithResolvedRoot, inlineOptions)\n\t);\n\n\tconst extraOptions: Partial<PreResolvedOptions> = {\n\t\troot: viteConfigWithResolvedRoot.root!,\n\t\tisBuild,\n\t\tisServe: viteEnv.command === 'serve',\n\t\tisDebug: process.env.DEBUG != null\n\t};\n\tconst merged = mergeConfigs<PreResolvedOptions>(\n\t\tdefaultOptions,\n\t\tsvelteConfig,\n\t\tinlineOptions,\n\t\textraOptions\n\t);\n\t// configFile of svelteConfig contains the absolute path it was loaded from,\n\t// prefer it over the possibly relative inline path\n\tif (svelteConfig?.configFile) {\n\t\tmerged.configFile = svelteConfig.configFile;\n\t}\n\treturn merged;\n}\n\nfunction mergeConfigs<T>(...configs: (Partial<T> | undefined)[]): T {\n\tlet result: Partial<T> = {};\n\tfor (const config of configs.filter((x) => x != null)) {\n\t\tresult = deepmerge<T>(result, config!, {\n\t\t\t// replace arrays\n\t\t\tarrayMerge: (target: any[], source: any[]) => source ?? target\n\t\t});\n\t}\n\treturn result as T;\n}\n\n// used in configResolved phase, merges a contextual default config, pre-resolved options, and some preprocessors.\n// also validates the final config.\nexport function resolveOptions(\n\tpreResolveOptions: PreResolvedOptions,\n\tviteConfig: ResolvedConfig,\n\tcache: VitePluginSvelteCache\n): ResolvedOptions {\n\tconst css = preResolveOptions.emitCss ? 'external' : 'injected';\n\tconst defaultOptions: Partial<Options> = {\n\t\thot: viteConfig.isProduction\n\t\t\t? false\n\t\t\t: {\n\t\t\t\t\tinjectCss: css === 'injected',\n\t\t\t\t\tpartialAccept: !!viteConfig.experimental?.hmrPartialAccept\n\t\t\t },\n\t\tcompilerOptions: {\n\t\t\tcss,\n\t\t\tdev: !viteConfig.isProduction\n\t\t}\n\t};\n\tconst extraOptions: Partial<ResolvedOptions> = {\n\t\troot: viteConfig.root,\n\t\tisProduction: viteConfig.isProduction\n\t};\n\tconst merged = mergeConfigs<ResolvedOptions>(defaultOptions, preResolveOptions, extraOptions);\n\n\tremoveIgnoredOptions(merged);\n\thandleDeprecatedOptions(merged);\n\taddExtraPreprocessors(merged, viteConfig);\n\tenforceOptionsForHmr(merged);\n\tenforceOptionsForProduction(merged);\n\t// mergeConfigs would mangle functions on the stats class, so do this afterwards\n\tif (log.debug.enabled && isDebugNamespaceEnabled('stats')) {\n\t\tmerged.stats = new VitePluginSvelteStats(cache);\n\t}\n\treturn merged;\n}\n\nfunction enforceOptionsForHmr(options: ResolvedOptions) {\n\tif (options.hot) {\n\t\tif (!options.compilerOptions.dev) {\n\t\t\tlog.warn('hmr is enabled but compilerOptions.dev is false, forcing it to true');\n\t\t\toptions.compilerOptions.dev = true;\n\t\t}\n\t\tif (options.emitCss) {\n\t\t\tif (options.hot !== true && options.hot.injectCss) {\n\t\t\t\tlog.warn('hmr and emitCss are enabled but hot.injectCss is true, forcing it to false');\n\t\t\t\toptions.hot.injectCss = false;\n\t\t\t}\n\t\t\tconst css = options.compilerOptions.css;\n\t\t\tif (css === true || css === 'injected') {\n\t\t\t\tconst forcedCss = 'external';\n\t\t\t\tlog.warn(\n\t\t\t\t\t`hmr and emitCss are enabled but compilerOptions.css is ${css}, forcing it to ${forcedCss}`\n\t\t\t\t);\n\t\t\t\toptions.compilerOptions.css = forcedCss;\n\t\t\t}\n\t\t} else {\n\t\t\tif (options.hot === true || !options.hot.injectCss) {\n\t\t\t\tlog.warn(\n\t\t\t\t\t'hmr with emitCss disabled requires option hot.injectCss to be enabled, forcing it to true'\n\t\t\t\t);\n\t\t\t\tif (options.hot === true) {\n\t\t\t\t\toptions.hot = { injectCss: true };\n\t\t\t\t} else {\n\t\t\t\t\toptions.hot.injectCss = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst css = options.compilerOptions.css;\n\t\t\tif (!(css === true || css === 'injected')) {\n\t\t\t\tconst forcedCss = 'injected';\n\t\t\t\tlog.warn(\n\t\t\t\t\t`hmr with emitCss disabled requires compilerOptions.css to be enabled, forcing it to ${forcedCss}`\n\t\t\t\t);\n\t\t\t\toptions.compilerOptions.css = forcedCss;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction enforceOptionsForProduction(options: ResolvedOptions) {\n\tif (options.isProduction) {\n\t\tif (options.hot) {\n\t\t\tlog.warn('options.hot is enabled but does not work on production build, forcing it to false');\n\t\t\toptions.hot = false;\n\t\t}\n\t\tif (options.compilerOptions.dev) {\n\t\t\tlog.warn(\n\t\t\t\t'you are building for production but compilerOptions.dev is true, forcing it to false'\n\t\t\t);\n\t\t\toptions.compilerOptions.dev = false;\n\t\t}\n\t}\n}\n\nfunction removeIgnoredOptions(options: ResolvedOptions) {\n\tconst ignoredCompilerOptions = ['generate', 'format', 'filename'];\n\tif (options.hot && options.emitCss) {\n\t\tignoredCompilerOptions.push('cssHash');\n\t}\n\tconst passedCompilerOptions = Object.keys(options.compilerOptions || {});\n\tconst passedIgnored = passedCompilerOptions.filter((o) => ignoredCompilerOptions.includes(o));\n\tif (passedIgnored.length) {\n\t\tlog.warn(\n\t\t\t`The following Svelte compilerOptions are controlled by vite-plugin-svelte and essential to its functionality. User-specified values are ignored. Please remove them from your configuration: ${passedIgnored.join(\n\t\t\t\t', '\n\t\t\t)}`\n\t\t);\n\t\tpassedIgnored.forEach((ignored) => {\n\t\t\t// @ts-expect-error string access\n\t\t\tdelete options.compilerOptions[ignored];\n\t\t});\n\t}\n}\n\nfunction handleDeprecatedOptions(options: ResolvedOptions) {\n\tconst experimental = options.experimental as any;\n\tif (experimental) {\n\t\tfor (const promoted of ['prebundleSvelteLibraries', 'inspector']) {\n\t\t\tif (experimental[promoted]) {\n\t\t\t\t//@ts-expect-error untyped assign\n\t\t\t\toptions[promoted] = experimental[promoted];\n\t\t\t\tdelete experimental[promoted];\n\t\t\t\tlog.warn(\n\t\t\t\t\t`Option \"vitePlugin.experimental.${promoted}\" is no longer experimental and has moved to \"vitePlugin.${promoted}\". Please update your svelte config.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (experimental.generateMissingPreprocessorSourcemaps) {\n\t\t\tlog.warn('experimental.generateMissingPreprocessorSourcemaps has been removed.');\n\t\t}\n\t}\n}\n\n// vite passes unresolved `root`option to config hook but we need the resolved value, so do it here\n// https://github.com/sveltejs/vite-plugin-svelte/issues/113\n// https://github.com/vitejs/vite/blob/43c957de8a99bb326afd732c962f42127b0a4d1e/packages/vite/src/node/config.ts#L293\nfunction resolveViteRoot(viteConfig: UserConfig): string | undefined {\n\treturn normalizePath(viteConfig.root ? path.resolve(viteConfig.root) : process.cwd());\n}\n\nexport async function buildExtraViteConfig(\n\toptions: PreResolvedOptions,\n\tconfig: UserConfig\n): Promise<Partial<UserConfig>> {\n\t// make sure we only readd vite default mainFields when no other plugin has changed the config already\n\t// see https://github.com/sveltejs/vite-plugin-svelte/issues/581\n\tif (!config.resolve) {\n\t\tconfig.resolve = {};\n\t}\n\tconfig.resolve.mainFields = [\n\t\t...SVELTE_RESOLVE_MAIN_FIELDS,\n\t\t...(config.resolve.mainFields ?? VITE_RESOLVE_MAIN_FIELDS)\n\t];\n\n\tconst extraViteConfig: Partial<UserConfig> = {\n\t\tresolve: {\n\t\t\tdedupe: [...SVELTE_IMPORTS, ...SVELTE_HMR_IMPORTS],\n\t\t\tconditions: [...SVELTE_EXPORT_CONDITIONS]\n\t\t}\n\t\t// this option is still awaiting a PR in vite to be supported\n\t\t// see https://github.com/sveltejs/vite-plugin-svelte/issues/60\n\t\t// @ts-ignore\n\t\t// knownJsSrcExtensions: options.extensions\n\t};\n\n\tconst extraSvelteConfig = buildExtraConfigForSvelte(config);\n\tconst extraDepsConfig = await buildExtraConfigForDependencies(options, config);\n\t// merge extra svelte and deps config, but make sure dep values are not contradicting svelte\n\textraViteConfig.optimizeDeps = {\n\t\tinclude: [\n\t\t\t...extraSvelteConfig.optimizeDeps.include,\n\t\t\t...extraDepsConfig.optimizeDeps.include.filter(\n\t\t\t\t(dep) => !isDepExcluded(dep, extraSvelteConfig.optimizeDeps.exclude)\n\t\t\t)\n\t\t],\n\t\texclude: [\n\t\t\t...extraSvelteConfig.optimizeDeps.exclude,\n\t\t\t...extraDepsConfig.optimizeDeps.exclude.filter(\n\t\t\t\t(dep) => !isDepIncluded(dep, extraSvelteConfig.optimizeDeps.include)\n\t\t\t)\n\t\t]\n\t};\n\n\textraViteConfig.ssr = {\n\t\texternal: [\n\t\t\t...extraSvelteConfig.ssr.external,\n\t\t\t...extraDepsConfig.ssr.external.filter(\n\t\t\t\t(dep) => !isDepNoExternaled(dep, extraSvelteConfig.ssr.noExternal)\n\t\t\t)\n\t\t],\n\t\tnoExternal: [\n\t\t\t...extraSvelteConfig.ssr.noExternal,\n\t\t\t...extraDepsConfig.ssr.noExternal.filter(\n\t\t\t\t(dep) => !isDepExternaled(dep, extraSvelteConfig.ssr.external)\n\t\t\t)\n\t\t]\n\t};\n\n\t// handle prebundling for svelte files\n\tif (options.prebundleSvelteLibraries) {\n\t\textraViteConfig.optimizeDeps = {\n\t\t\t...extraViteConfig.optimizeDeps,\n\t\t\t// Experimental Vite API to allow these extensions to be scanned and prebundled\n\t\t\t// @ts-ignore\n\t\t\textensions: options.extensions ?? ['.svelte'],\n\t\t\t// Add esbuild plugin to prebundle Svelte files.\n\t\t\t// Currently a placeholder as more information is needed after Vite config is resolved,\n\t\t\t// the real Svelte plugin is added in `patchResolvedViteConfig()`\n\t\t\tesbuildOptions: {\n\t\t\t\tplugins: [{ name: facadeEsbuildSveltePluginName, setup: () => {} }]\n\t\t\t}\n\t\t};\n\t}\n\n\t// enable hmrPartialAccept if not explicitly disabled\n\tif (\n\t\t(options.hot == null ||\n\t\t\toptions.hot === true ||\n\t\t\t(options.hot && options.hot.partialAccept !== false)) && // deviate from svelte-hmr, default to true\n\t\tconfig.experimental?.hmrPartialAccept !== false\n\t) {\n\t\tlog.debug('enabling \"experimental.hmrPartialAccept\" in vite config');\n\t\textraViteConfig.experimental = { hmrPartialAccept: true };\n\t}\n\tvalidateViteConfig(extraViteConfig, config, options);\n\treturn extraViteConfig;\n}\n\nfunction validateViteConfig(\n\textraViteConfig: Partial<UserConfig>,\n\tconfig: UserConfig,\n\toptions: PreResolvedOptions\n) {\n\tconst { prebundleSvelteLibraries, isBuild } = options;\n\tif (prebundleSvelteLibraries) {\n\t\tconst isEnabled = (option: 'dev' | 'build' | boolean) =>\n\t\t\toption !== true && option !== (isBuild ? 'build' : 'dev');\n\t\tconst logWarning = (name: string, value: 'dev' | 'build' | boolean, recommendation: string) =>\n\t\t\tlog.warn.once(\n\t\t\t\t`Incompatible options: \\`prebundleSvelteLibraries: true\\` and vite \\`${name}: ${JSON.stringify(\n\t\t\t\t\tvalue\n\t\t\t\t)}\\` ${isBuild ? 'during build.' : '.'} ${recommendation}`\n\t\t\t);\n\t\tconst viteOptimizeDepsDisabled = config.optimizeDeps?.disabled ?? 'build'; // fall back to vite default\n\t\tconst isOptimizeDepsEnabled = isEnabled(viteOptimizeDepsDisabled);\n\t\tif (!isBuild && !isOptimizeDepsEnabled) {\n\t\t\tlogWarning(\n\t\t\t\t'optimizeDeps.disabled',\n\t\t\t\tviteOptimizeDepsDisabled,\n\t\t\t\t'Forcing `optimizeDeps.disabled: \"build\"`. Disable prebundleSvelteLibraries or update your vite config to enable optimizeDeps during dev.'\n\t\t\t);\n\t\t\textraViteConfig.optimizeDeps!.disabled = 'build';\n\t\t} else if (isBuild && isOptimizeDepsEnabled) {\n\t\t\tlogWarning(\n\t\t\t\t'optimizeDeps.disabled',\n\t\t\t\tviteOptimizeDepsDisabled,\n\t\t\t\t'Disable optimizeDeps or prebundleSvelteLibraries for build if you experience errors.'\n\t\t\t);\n\t\t}\n\t}\n}\n\nasync function buildExtraConfigForDependencies(options: PreResolvedOptions, config: UserConfig) {\n\t// extra handling for svelte dependencies in the project\n\tconst depsConfig = await crawlFrameworkPkgs({\n\t\troot: options.root,\n\t\tisBuild: options.isBuild,\n\t\tviteUserConfig: config,\n\t\tisFrameworkPkgByJson(pkgJson) {\n\t\t\tlet hasSvelteCondition = false;\n\t\t\tif (typeof pkgJson.exports === 'object') {\n\t\t\t\t// use replacer as a simple way to iterate over nested keys\n\t\t\t\tJSON.stringify(pkgJson.exports, (key, value) => {\n\t\t\t\t\tif (SVELTE_EXPORT_CONDITIONS.includes(key)) {\n\t\t\t\t\t\thasSvelteCondition = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn hasSvelteCondition || !!pkgJson.svelte;\n\t\t},\n\t\tisSemiFrameworkPkgByJson(pkgJson) {\n\t\t\treturn !!pkgJson.dependencies?.svelte || !!pkgJson.peerDependencies?.svelte;\n\t\t},\n\t\tisFrameworkPkgByName(pkgName) {\n\t\t\tconst isNotSveltePackage = isCommonDepWithoutSvelteField(pkgName);\n\t\t\tif (isNotSveltePackage) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t});\n\n\tlog.debug('extra config for dependencies generated by vitefu', depsConfig);\n\n\tif (options.prebundleSvelteLibraries) {\n\t\t// prebundling enabled, so we don't need extra dependency excludes\n\t\tdepsConfig.optimizeDeps.exclude = [];\n\t\t// but keep dependency reinclusions of explicit user excludes\n\t\tconst userExclude = config.optimizeDeps?.exclude;\n\t\tdepsConfig.optimizeDeps.include = !userExclude\n\t\t\t? []\n\t\t\t: depsConfig.optimizeDeps.include.filter((dep: string) => {\n\t\t\t\t\t// reincludes look like this: foo > bar > baz\n\t\t\t\t\t// in case foo or bar are excluded, we have to retain the reinclude even with prebundling\n\t\t\t\t\treturn (\n\t\t\t\t\t\tdep.includes('>') &&\n\t\t\t\t\t\tdep\n\t\t\t\t\t\t\t.split('>')\n\t\t\t\t\t\t\t.slice(0, -1)\n\t\t\t\t\t\t\t.some((d) => isDepExcluded(d.trim(), userExclude))\n\t\t\t\t\t);\n\t\t\t });\n\t}\n\tif (options.disableDependencyReinclusion === true) {\n\t\tdepsConfig.optimizeDeps.include = depsConfig.optimizeDeps.include.filter(\n\t\t\t(dep) => !dep.includes('>')\n\t\t);\n\t} else if (Array.isArray(options.disableDependencyReinclusion)) {\n\t\tconst disabledDeps = options.disableDependencyReinclusion;\n\t\tdepsConfig.optimizeDeps.include = depsConfig.optimizeDeps.include.filter((dep) => {\n\t\t\tif (!dep.includes('>')) return true;\n\t\t\tconst trimDep = dep.replace(/\\s+/g, '');\n\t\t\treturn disabledDeps.some((disabled) => trimDep.includes(`${disabled}>`));\n\t\t});\n\t}\n\n\tlog.debug('post-processed extra config for dependencies', depsConfig);\n\n\treturn depsConfig;\n}\n\nfunction buildExtraConfigForSvelte(config: UserConfig) {\n\t// include svelte imports for optimization unless explicitly excluded\n\tconst include: string[] = [];\n\tconst exclude: string[] = ['svelte-hmr'];\n\tif (!isDepExcluded('svelte', config.optimizeDeps?.exclude ?? [])) {\n\t\tconst svelteImportsToInclude = SVELTE_IMPORTS.filter((x) => x !== 'svelte/ssr'); // not used on clientside\n\t\tlog.debug(\n\t\t\t`adding bare svelte packages to optimizeDeps.include: ${svelteImportsToInclude.join(', ')} `\n\t\t);\n\t\tinclude.push(...svelteImportsToInclude);\n\t} else {\n\t\tlog.debug('\"svelte\" is excluded in optimizeDeps.exclude, skipped adding it to include.');\n\t}\n\tconst noExternal: (string | RegExp)[] = [];\n\tconst external: string[] = [];\n\t// add svelte to ssr.noExternal unless it is present in ssr.external\n\t// so we can resolve it with svelte/ssr\n\tif (!isDepExternaled('svelte', config.ssr?.external ?? [])) {\n\t\tnoExternal.push('svelte', /^svelte\\//);\n\t}\n\treturn { optimizeDeps: { include, exclude }, ssr: { noExternal, external } };\n}\n\nexport function patchResolvedViteConfig(viteConfig: ResolvedConfig, options: ResolvedOptions) {\n\tif (options.preprocess) {\n\t\tfor (const preprocessor of arraify(options.preprocess)) {\n\t\t\tif (preprocessor.style && '__resolvedConfig' in preprocessor.style) {\n\t\t\t\tpreprocessor.style.__resolvedConfig = viteConfig;\n\t\t\t}\n\t\t}\n\t}\n\n\t// replace facade esbuild plugin with a real one\n\tconst facadeEsbuildSveltePlugin = viteConfig.optimizeDeps.esbuildOptions?.plugins?.find(\n\t\t(plugin) => plugin.name === facadeEsbuildSveltePluginName\n\t);\n\tif (facadeEsbuildSveltePlugin) {\n\t\tObject.assign(facadeEsbuildSveltePlugin, esbuildSveltePlugin(options));\n\t}\n}\n\nfunction arraify<T>(value: T | T[]): T[] {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nexport type Options = Omit<SvelteOptions, 'vitePlugin'> & PluginOptionsInline;\n\ninterface PluginOptionsInline extends PluginOptions {\n\t/**\n\t * Path to a svelte config file, either absolute or relative to Vite root\n\t *\n\t * set to `false` to ignore the svelte config file\n\t *\n\t * @see https://vitejs.dev/config/#root\n\t */\n\tconfigFile?: string | false;\n}\n\nexport interface PluginOptions {\n\t/**\n\t * A `picomatch` pattern, or array of patterns, which specifies the files the plugin should\n\t * operate on. By default, all svelte files are included.\n\t *\n\t * @see https://github.com/micromatch/picomatch\n\t */\n\tinclude?: Arrayable<string>;\n\n\t/**\n\t * A `picomatch` pattern, or array of patterns, which specifies the files to be ignored by the\n\t * plugin. By default, no files are ignored.\n\t *\n\t * @see https://github.com/micromatch/picomatch\n\t */\n\texclude?: Arrayable<string>;\n\n\t/**\n\t * Emit Svelte styles as virtual CSS files for Vite and other plugins to process\n\t *\n\t * @default true\n\t */\n\temitCss?: boolean;\n\n\t/**\n\t * Enable or disable Hot Module Replacement.\n\t *\n\t * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\t *\n\t * DO NOT CUSTOMIZE SVELTE-HMR OPTIONS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING\n\t *\n\t * YOU HAVE BEEN WARNED\n\t *\n\t * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\t *\n\t * Set an object to pass custom options to svelte-hmr\n\t *\n\t * @see https://github.com/rixo/svelte-hmr#options\n\t * @default true for development, always false for production\n\t */\n\thot?: boolean | { injectCss?: boolean; partialAccept?: boolean; [key: string]: any };\n\n\t/**\n\t * Some Vite plugins can contribute additional preprocessors by defining `api.sveltePreprocess`.\n\t * If you don't want to use them, set this to true to ignore them all or use an array of strings\n\t * with plugin names to specify which.\n\t *\n\t * @default false\n\t */\n\tignorePluginPreprocessors?: boolean | string[];\n\n\t/**\n\t * vite-plugin-svelte automatically handles excluding svelte libraries and reinclusion of their dependencies\n\t * in vite.optimizeDeps.\n\t *\n\t * `disableDependencyReinclusion: true` disables all reinclusions\n\t * `disableDependencyReinclusion: ['foo','bar']` disables reinclusions for dependencies of foo and bar\n\t *\n\t * This should be used for hybrid packages that contain both node and browser dependencies, eg Routify\n\t *\n\t * @default false\n\t */\n\tdisableDependencyReinclusion?: boolean | string[];\n\n\t/**\n\t * Enable support for Vite's dependency optimization to prebundle Svelte libraries.\n\t *\n\t * To disable prebundling for a specific library, add it to `optimizeDeps.exclude`.\n\t *\n\t * @default true for dev, false for build\n\t */\n\tprebundleSvelteLibraries?: boolean;\n\n\t/**\n\t * toggle/configure Svelte Inspector\n\t *\n\t * @default true\n\t */\n\tinspector?: InspectorOptions | boolean;\n\n\t/**\n\t * These options are considered experimental and breaking changes to them can occur in any release\n\t */\n\texperimental?: ExperimentalOptions;\n}\n\nexport interface SvelteOptions {\n\t/**\n\t * A list of file extensions to be compiled by Svelte\n\t *\n\t * @default ['.svelte']\n\t */\n\textensions?: string[];\n\n\t/**\n\t * An array of preprocessors to transform the Svelte source code before compilation\n\t *\n\t * @see https://svelte.dev/docs#svelte_preprocess\n\t */\n\tpreprocess?: Arrayable<PreprocessorGroup>;\n\n\t/**\n\t * The options to be passed to the Svelte compiler. A few options are set by default,\n\t * including `dev` and `css`. However, some options are non-configurable, like\n\t * `filename`, `format`, `generate`, and `cssHash` (in dev).\n\t *\n\t * @see https://svelte.dev/docs#svelte_compile\n\t */\n\tcompilerOptions?: Omit<CompileOptions, 'filename' | 'format' | 'generate'>;\n\n\t/**\n\t * Handles warning emitted from the Svelte compiler\n\t */\n\tonwarn?: (warning: Warning, defaultHandler?: (warning: Warning) => void) => void;\n\n\t/**\n\t * Options for vite-plugin-svelte\n\t */\n\tvitePlugin?: PluginOptions;\n}\n\n/**\n * These options are considered experimental and breaking changes to them can occur in any release\n */\nexport interface ExperimentalOptions {\n\t/**\n\t * A function to update `compilerOptions` before compilation\n\t *\n\t * `data.filename` - The file to be compiled\n\t * `data.code` - The preprocessed Svelte code\n\t * `data.compileOptions` - The current compiler options\n\t *\n\t * To change part of the compiler options, return an object with the changes you need.\n\t *\n\t * @example\n\t * ```\n\t * ({ filename, compileOptions }) => {\n\t * // Dynamically set hydration per Svelte file\n\t * if (compileWithHydratable(filename) && !compileOptions.hydratable) {\n\t * return { hydratable: true };\n\t * }\n\t * }\n\t * ```\n\t */\n\tdynamicCompileOptions?: (data: {\n\t\tfilename: string;\n\t\tcode: string;\n\t\tcompileOptions: Partial<CompileOptions>;\n\t}) => Promise<Partial<CompileOptions> | void> | Partial<CompileOptions> | void;\n\n\t/**\n\t * send a websocket message with svelte compiler warnings during dev\n\t *\n\t */\n\tsendWarningsToBrowser?: boolean;\n\n\t/**\n\t * disable svelte field resolve warnings\n\t *\n\t * @default false\n\t */\n\tdisableSvelteResolveWarnings?: boolean;\n}\n\nexport interface PreResolvedOptions extends Options {\n\t// these options are non-nullable after resolve\n\tcompilerOptions: CompileOptions;\n\texperimental?: ExperimentalOptions;\n\t// extra options\n\troot: string;\n\tisBuild: boolean;\n\tisServe: boolean;\n\tisDebug: boolean;\n}\n\nexport interface ResolvedOptions extends PreResolvedOptions {\n\tisProduction: boolean;\n\tserver?: ViteDevServer;\n\tstats?: VitePluginSvelteStats;\n}\n\nexport type {\n\tCompileOptions,\n\tProcessed,\n\tMarkupPreprocessor,\n\tPreprocessor,\n\tPreprocessorGroup,\n\tWarning\n};\n\nexport type ModuleFormat = NonNullable<CompileOptions['format']>;\n\nexport type CssHashGetter = NonNullable<CompileOptions['cssHash']>;\n\nexport type Arrayable<T> = T | T[];\n","import { createRequire } from 'module';\nimport path from 'path';\nimport fs from 'fs';\nimport { pathToFileURL } from 'url';\nimport { log } from './log';\nimport { Options, SvelteOptions } from './options';\nimport { UserConfig } from 'vite';\n\n// used to require cjs config in esm.\n// NOTE dynamic import() cjs technically works, but timestamp query cache bust\n// have no effect, likely because it has another internal cache?\nlet esmRequire: NodeRequire;\n\nexport const knownSvelteConfigNames = [\n\t'svelte.config.js',\n\t'svelte.config.cjs',\n\t'svelte.config.mjs'\n];\n\n// hide dynamic import from ts transform to prevent it turning into a require\n// see https://github.com/microsoft/TypeScript/issues/43329#issuecomment-811606238\n// also use timestamp query to avoid caching on reload\nconst dynamicImportDefault = new Function(\n\t'path',\n\t'timestamp',\n\t'return import(path + \"?t=\" + timestamp).then(m => m.default)'\n);\n\nexport async function loadSvelteConfig(\n\tviteConfig?: UserConfig,\n\tinlineOptions?: Partial<Options>\n): Promise<Partial<SvelteOptions> | undefined> {\n\tif (inlineOptions?.configFile === false) {\n\t\treturn;\n\t}\n\tconst configFile = findConfigToLoad(viteConfig, inlineOptions);\n\tif (configFile) {\n\t\tlet err;\n\t\t// try to use dynamic import for svelte.config.js first\n\t\tif (configFile.endsWith('.js') || configFile.endsWith('.mjs')) {\n\t\t\ttry {\n\t\t\t\tconst result = await dynamicImportDefault(\n\t\t\t\t\tpathToFileURL(configFile).href,\n\t\t\t\t\tfs.statSync(configFile).mtimeMs\n\t\t\t\t);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tconfigFile\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`invalid export in ${configFile}`);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(`failed to import config ${configFile}`, e);\n\t\t\t\terr = e;\n\t\t\t}\n\t\t}\n\t\t// cjs or error with dynamic import\n\t\tif (!configFile.endsWith('.mjs')) {\n\t\t\ttry {\n\t\t\t\t// identify which require function to use (esm and cjs mode)\n\t\t\t\tconst _require = import.meta.url\n\t\t\t\t\t? (esmRequire ??= createRequire(import.meta.url))\n\t\t\t\t\t: require;\n\n\t\t\t\t// avoid loading cached version on reload\n\t\t\t\tdelete _require.cache[_require.resolve(configFile)];\n\t\t\t\tconst result = _require(configFile);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tconfigFile\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`invalid export in ${configFile}`);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tlog.error(`failed to require config ${configFile}`, e);\n\t\t\t\tif (!err) {\n\t\t\t\t\terr = e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// failed to load existing config file\n\t\tthrow err;\n\t}\n}\n\nfunction findConfigToLoad(viteConfig?: UserConfig, inlineOptions?: Partial<Options>) {\n\tconst root = viteConfig?.root || process.cwd();\n\tif (inlineOptions?.configFile) {\n\t\tconst abolutePath = path.isAbsolute(inlineOptions.configFile)\n\t\t\t? inlineOptions.configFile\n\t\t\t: path.resolve(root, inlineOptions.configFile);\n\t\tif (!fs.existsSync(abolutePath)) {\n\t\t\tthrow new Error(`failed to find svelte config file ${abolutePath}.`);\n\t\t}\n\t\treturn abolutePath;\n\t} else {\n\t\tconst existingKnownConfigFiles = knownSvelteConfigNames\n\t\t\t.map((candidate) => path.resolve(root, candidate))\n\t\t\t.filter((file) => fs.existsSync(file));\n\t\tif (existingKnownConfigFiles.length === 0) {\n\t\t\tlog.debug(`no svelte config found at ${root}`);\n\t\t\treturn;\n\t\t} else if (existingKnownConfigFiles.length > 1) {\n\t\t\tlog.warn(\n\t\t\t\t`found more than one svelte config file, using ${existingKnownConfigFiles[0]}. you should only have one!`,\n\t\t\t\texistingKnownConfigFiles\n\t\t\t);\n\t\t}\n\t\treturn existingKnownConfigFiles[0];\n\t}\n}\n","export const VITE_RESOLVE_MAIN_FIELDS = ['module', 'jsnext:main', 'jsnext'];\n\nexport const SVELTE_RESOLVE_MAIN_FIELDS = ['svelte'];\n\nexport const SVELTE_IMPORTS = [\n\t'svelte/animate',\n\t'svelte/easing',\n\t'svelte/internal',\n\t'svelte/motion',\n\t'svelte/ssr',\n\t'svelte/store',\n\t'svelte/transition',\n\t'svelte'\n];\n\nexport const SVELTE_HMR_IMPORTS = [\n\t'svelte-hmr/runtime/hot-api-esm.js',\n\t'svelte-hmr/runtime/proxy-adapter-dom.js',\n\t'svelte-hmr'\n];\n\nexport const SVELTE_EXPORT_CONDITIONS = ['svelte'];\n\nexport const FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE =\n\t'https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#conflicts-in-svelte-resolve';\n","import { readFileSync } from 'fs';\nimport { compile, preprocess } from 'svelte/compiler';\nimport { DepOptimizationOptions } from 'vite';\nimport { Compiled } from './compile';\nimport { log } from './log';\nimport { CompileOptions, ResolvedOptions } from './options';\nimport { toESBuildError } from './error';\nimport { StatCollection } from './vite-plugin-svelte-stats';\n\ntype EsbuildOptions = NonNullable<DepOptimizationOptions['esbuildOptions']>;\ntype EsbuildPlugin = NonNullable<EsbuildOptions['plugins']>[number];\n\nexport const facadeEsbuildSveltePluginName = 'vite-plugin-svelte:facade';\n\nexport function esbuildSveltePlugin(options: ResolvedOptions): EsbuildPlugin {\n\treturn {\n\t\tname: 'vite-plugin-svelte:optimize-svelte',\n\t\tsetup(build) {\n\t\t\t// Skip in scanning phase as Vite already handles scanning Svelte files.\n\t\t\t// Otherwise this would heavily slow down the scanning phase.\n\t\t\tif (build.initialOptions.plugins?.some((v) => v.name === 'vite:dep-scan')) return;\n\n\t\t\tconst svelteExtensions = (options.extensions ?? ['.svelte']).map((ext) => ext.slice(1));\n\t\t\tconst svelteFilter = new RegExp(`\\\\.(` + svelteExtensions.join('|') + `)(\\\\?.*)?$`);\n\t\t\tlet statsCollection: StatCollection | undefined;\n\t\t\tbuild.onStart(() => {\n\t\t\t\tstatsCollection = options.stats?.startCollection('prebundle libraries', {\n\t\t\t\t\tlogResult: (c) => c.stats.length > 1\n\t\t\t\t});\n\t\t\t});\n\t\t\tbuild.onLoad({ filter: svelteFilter }, async ({ path: filename }) => {\n\t\t\t\tconst code = readFileSync(filename, 'utf8');\n\t\t\t\ttry {\n\t\t\t\t\tconst contents = await compileSvelte(options, { filename, code }, statsCollection);\n\t\t\t\t\treturn { contents };\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn { errors: [toESBuildError(e, options)] };\n\t\t\t\t}\n\t\t\t});\n\t\t\tbuild.onEnd(() => {\n\t\t\t\tstatsCollection?.finish();\n\t\t\t});\n\t\t}\n\t};\n}\n\nasync function compileSvelte(\n\toptions: ResolvedOptions,\n\t{ filename, code }: { filename: string; code: string },\n\tstatsCollection?: StatCollection\n): Promise<string> {\n\tlet css = options.compilerOptions.css;\n\tif (css !== 'none') {\n\t\t// TODO ideally we'd be able to externalize prebundled styles too, but for now always put them in the js\n\t\tcss = 'injected';\n\t}\n\tconst compileOptions: CompileOptions = {\n\t\t...options.compilerOptions,\n\t\tcss,\n\t\tfilename,\n\t\tformat: 'esm',\n\t\tgenerate: 'dom'\n\t};\n\n\tlet preprocessed;\n\n\tif (options.preprocess) {\n\t\ttry {\n\t\t\tpreprocessed = await preprocess(code, options.preprocess, { filename });\n\t\t} catch (e) {\n\t\t\te.message = `Error while preprocessing ${filename}${e.message ? ` - ${e.message}` : ''}`;\n\t\t\tthrow e;\n\t\t}\n\t\tif (preprocessed.map) compileOptions.sourcemap = preprocessed.map;\n\t}\n\n\tconst finalCode = preprocessed ? preprocessed.code : code;\n\n\tconst dynamicCompileOptions = await options.experimental?.dynamicCompileOptions?.({\n\t\tfilename,\n\t\tcode: finalCode,\n\t\tcompileOptions\n\t});\n\n\tif (dynamicCompileOptions && log.debug.enabled) {\n\t\tlog.debug(`dynamic compile options for ${filename}: ${JSON.stringify(dynamicCompileOptions)}`);\n\t}\n\n\tconst finalCompileOptions = dynamicCompileOptions\n\t\t? {\n\t\t\t\t...compileOptions,\n\t\t\t\t...dynamicCompileOptions\n\t\t }\n\t\t: compileOptions;\n\tconst endStat = statsCollection?.start(filename);\n\tconst compiled = compile(finalCode, finalCompileOptions) as Compiled;\n\tif (endStat) {\n\t\tendStat();\n\t}\n\treturn compiled.js.code + '//# sourceMappingURL=' + compiled.js.map.toUrl();\n}\n","import path from 'path';\nimport fs from 'fs/promises';\n// eslint-disable-next-line node/no-missing-import\nimport { findDepPkgJsonPath } from 'vitefu';\n\ninterface DependencyData {\n\tdir: string;\n\tpkg: Record<string, any>;\n}\n\nexport async function resolveDependencyData(\n\tdep: string,\n\tparent: string\n): Promise<DependencyData | undefined> {\n\tconst depDataPath = await findDepPkgJsonPath(dep, parent);\n\tif (!depDataPath) return undefined;\n\ttry {\n\t\treturn {\n\t\t\tdir: path.dirname(depDataPath),\n\t\t\tpkg: JSON.parse(await fs.readFile(depDataPath, 'utf-8'))\n\t\t};\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nconst COMMON_DEPENDENCIES_WITHOUT_SVELTE_FIELD = [\n\t'@lukeed/uuid',\n\t'@playwright/test',\n\t'@sveltejs/vite-plugin-svelte',\n\t'@sveltejs/kit',\n\t'autoprefixer',\n\t'cookie',\n\t'dotenv',\n\t'esbuild',\n\t'eslint',\n\t'jest',\n\t'mdsvex',\n\t'playwright',\n\t'postcss',\n\t'prettier',\n\t'svelte',\n\t'svelte-check',\n\t'svelte-hmr',\n\t'svelte-preprocess',\n\t'tslib',\n\t'typescript',\n\t'vite',\n\t'vitest',\n\t'__vite-browser-external' // see https://github.com/sveltejs/vite-plugin-svelte/issues/362\n];\nconst COMMON_PREFIXES_WITHOUT_SVELTE_FIELD = [\n\t'@fontsource/',\n\t'@postcss-plugins/',\n\t'@rollup/',\n\t'@sveltejs/adapter-',\n\t'@types/',\n\t'@typescript-eslint/',\n\t'eslint-',\n\t'jest-',\n\t'postcss-plugin-',\n\t'prettier-plugin-',\n\t'rollup-plugin-',\n\t'vite-plugin-'\n];\n\n/**\n * Test for common dependency names that tell us it is not a package including a svelte field, eg. eslint + plugins.\n *\n * This speeds up the find process as we don't have to try and require the package.json for all of them\n *\n * @param dependency {string}\n * @returns {boolean} true if it is a dependency without a svelte field\n */\nexport function isCommonDepWithoutSvelteField(dependency: string): boolean {\n\treturn (\n\t\tCOMMON_DEPENDENCIES_WITHOUT_SVELTE_FIELD.includes(dependency) ||\n\t\tCOMMON_PREFIXES_WITHOUT_SVELTE_FIELD.some(\n\t\t\t(prefix) =>\n\t\t\t\tprefix.startsWith('@')\n\t\t\t\t\t? dependency.startsWith(prefix)\n\t\t\t\t\t: dependency.substring(dependency.lastIndexOf('/') + 1).startsWith(prefix) // check prefix omitting @scope/\n\t\t)\n\t);\n}\n","import { log } from './log';\nimport { performance } from 'perf_hooks';\nimport { normalizePath } from 'vite';\nimport { VitePluginSvelteCache } from './vite-plugin-svelte-cache';\n\ninterface Stat {\n\tfile: string;\n\tpkg?: string;\n\tstart: number;\n\tend: number;\n}\n\nexport interface StatCollection {\n\tname: string;\n\toptions: CollectionOptions;\n\t//eslint-disable-next-line no-unused-vars\n\tstart: (file: string) => () => void;\n\tstats: Stat[];\n\tpackageStats?: PackageStats[];\n\tcollectionStart: number;\n\tduration?: number;\n\tfinish: () => Promise<void> | void;\n\tfinished: boolean;\n}\n\ninterface PackageStats {\n\tpkg: string;\n\tfiles: number;\n\tduration: number;\n}\n\nexport interface CollectionOptions {\n\t//eslint-disable-next-line no-unused-vars\n\tlogInProgress: (collection: StatCollection, now: number) => boolean;\n\t//eslint-disable-next-line no-unused-vars\n\tlogResult: (collection: StatCollection) => boolean;\n}\n\nconst defaultCollectionOptions: CollectionOptions = {\n\t// log after 500ms and more than one file processed\n\tlogInProgress: (c, now) => now - c.collectionStart > 500 && c.stats.length > 1,\n\t// always log results\n\tlogResult: () => true\n};\n\nfunction humanDuration(n: number) {\n\t// 99.9ms 0.10s\n\treturn n < 100 ? `${n.toFixed(1)}ms` : `${(n / 1000).toFixed(2)}s`;\n}\n\nfunction formatPackageStats(pkgStats: PackageStats[]) {\n\tconst statLines = pkgStats.map((pkgStat) => {\n\t\tconst duration = pkgStat.duration;\n\t\tconst avg = duration / pkgStat.files;\n\t\treturn [pkgStat.pkg, `${pkgStat.files}`, humanDuration(duration), humanDuration(avg)];\n\t});\n\tstatLines.unshift(['package', 'files', 'time', 'avg']);\n\tconst columnWidths = statLines.reduce(\n\t\t(widths: number[], row) => {\n\t\t\tfor (let i = 0; i < row.length; i++) {\n\t\t\t\tconst cell = row[i];\n\t\t\t\tif (widths[i] < cell.length) {\n\t\t\t\t\twidths[i] = cell.length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn widths;\n\t\t},\n\t\tstatLines[0].map(() => 0)\n\t);\n\n\tconst table = statLines\n\t\t.map((row: string[]) =>\n\t\t\trow\n\t\t\t\t.map((cell: string, i: number) => {\n\t\t\t\t\tif (i === 0) {\n\t\t\t\t\t\treturn cell.padEnd(columnWidths[i], ' ');\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn cell.padStart(columnWidths[i], ' ');\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.join('\\t')\n\t\t)\n\t\t.join('\\n');\n\treturn table;\n}\n\nexport class VitePluginSvelteStats {\n\t// package directory -> package name\n\tprivate _cache: VitePluginSvelteCache;\n\tprivate _collections: StatCollection[] = [];\n\tconstructor(cache: VitePluginSvelteCache) {\n\t\tthis._cache = cache;\n\t}\n\tstartCollection(name: string, opts?: Partial<CollectionOptions>) {\n\t\tconst options = {\n\t\t\t...defaultCollectionOptions,\n\t\t\t...opts\n\t\t};\n\t\tconst stats: Stat[] = [];\n\t\tconst collectionStart = performance.now();\n\t\tconst _this = this;\n\t\tlet hasLoggedProgress = false;\n\t\tconst collection: StatCollection = {\n\t\t\tname,\n\t\t\toptions,\n\t\t\tstats,\n\t\t\tcollectionStart,\n\t\t\tfinished: false,\n\t\t\tstart(file) {\n\t\t\t\tif (collection.finished) {\n\t\t\t\t\tthrow new Error('called after finish() has been used');\n\t\t\t\t}\n\t\t\t\tfile = normalizePath(file);\n\t\t\t\tconst start = performance.now();\n\t\t\t\tconst stat: Stat = { file, start, end: start };\n\t\t\t\treturn () => {\n\t\t\t\t\tconst now = performance.now();\n\t\t\t\t\tstat.end = now;\n\t\t\t\t\tstats.push(stat);\n\t\t\t\t\tif (!hasLoggedProgress && options.logInProgress(collection, now)) {\n\t\t\t\t\t\thasLoggedProgress = true;\n\t\t\t\t\t\tlog.debug(`${name} in progress ...`, undefined, 'stats');\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t\tasync finish() {\n\t\t\t\tawait _this._finish(collection);\n\t\t\t}\n\t\t};\n\t\t_this._collections.push(collection);\n\t\treturn collection;\n\t}\n\n\tpublic async finishAll() {\n\t\tawait Promise.all(this._collections.map((c) => c.finish()));\n\t}\n\n\tprivate async _finish(collection: StatCollection) {\n\t\ttry {\n\t\t\tcollection.finished = true;\n\t\t\tconst now = performance.now();\n\t\t\tcollection.duration = now - collection.collectionStart;\n\t\t\tconst logResult = collection.options.logResult(collection);\n\t\t\tif (logResult) {\n\t\t\t\tawait this._aggregateStatsResult(collection);\n\t\t\t\tlog.debug(\n\t\t\t\t\t`${collection.name} done.\\n${formatPackageStats(collection.packageStats!)}`,\n\t\t\t\t\tundefined,\n\t\t\t\t\t'stats'\n\t\t\t\t);\n\t\t\t}\n\t\t\t// cut some ties to free it for garbage collection\n\t\t\tconst index = this._collections.indexOf(collection);\n\t\t\tthis._collections.splice(index, 1);\n\t\t\tcollection.stats.length = 0;\n\t\t\tcollection.stats = [];\n\t\t\tif (collection.packageStats) {\n\t\t\t\tcollection.packageStats.length = 0;\n\t\t\t\tcollection.packageStats = [];\n\t\t\t}\n\t\t\tcollection.start = () => () => {};\n\t\t\tcollection.finish = () => {};\n\t\t} catch (e) {\n\t\t\t// this should not happen, but stats taking also should not break the process\n\t\t\tlog.debug.once(`failed to finish stats for ${collection.name}\\n`, e, 'stats');\n\t\t}\n\t}\n\n\tprivate async _aggregateStatsResult(collection: StatCollection) {\n\t\tconst stats = collection.stats;\n\t\tfor (const stat of stats) {\n\t\t\tstat.pkg = (await this._cache.getPackageInfo(stat.file)).name;\n\t\t}\n\n\t\t// group stats\n\t\tconst grouped: { [key: string]: PackageStats } = {};\n\t\tstats.forEach((stat) => {\n\t\t\tconst pkg = stat.pkg!;\n\t\t\tlet group = grouped[pkg];\n\t\t\tif (!group) {\n\t\t\t\tgroup = grouped[pkg] = {\n\t\t\t\t\tfiles: 0,\n\t\t\t\t\tduration: 0,\n\t\t\t\t\tpkg\n\t\t\t\t};\n\t\t\t}\n\t\t\tgroup.files += 1;\n\t\t\tgroup.duration += stat.end - stat.start;\n\t\t});\n\n\t\tconst groups = Object.values(grouped);\n\t\tgroups.sort((a, b) => b.duration - a.duration);\n\t\tcollection.packageStats = groups;\n\t}\n}\n","import { VitePluginSvelteCache } from './vite-plugin-svelte-cache';\nimport fs from 'fs';\nimport { log } from './log';\nimport { IdParser } from './id';\nimport { ResolvedOptions } from './options';\nimport { knownSvelteConfigNames } from './load-svelte-config';\nimport path from 'path';\nimport { FSWatcher } from 'vite';\n\nexport function setupWatchers(\n\toptions: ResolvedOptions,\n\tcache: VitePluginSvelteCache,\n\trequestParser: IdParser\n) {\n\tconst { server, configFile: svelteConfigFile } = options;\n\tif (!server) {\n\t\treturn;\n\t}\n\tconst { watcher, ws } = server;\n\tconst { root, server: serverConfig } = server.config;\n\n\tconst emitChangeEventOnDependants = (filename: string) => {\n\t\tconst dependants = cache.getDependants(filename);\n\t\tdependants.forEach((dependant) => {\n\t\t\tif (fs.existsSync(dependant)) {\n\t\t\t\tlog.debug(\n\t\t\t\t\t`emitting virtual change event for \"${dependant}\" because depdendency \"${filename}\" changed`\n\t\t\t\t);\n\t\t\t\twatcher.emit('change', dependant);\n\t\t\t}\n\t\t});\n\t};\n\n\tconst removeUnlinkedFromCache = (filename: string) => {\n\t\tconst svelteRequest = requestParser(filename, false);\n\t\tif (svelteRequest) {\n\t\t\tconst removedFromCache = cache.remove(svelteRequest);\n\t\t\tif (removedFromCache) {\n\t\t\t\tlog.debug(`cleared VitePluginSvelteCache for deleted file ${filename}`);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst triggerViteRestart = (filename: string) => {\n\t\tif (serverConfig.middlewareMode) {\n\t\t\t// in middlewareMode we can't restart the server automatically\n\t\t\t// show the user an overlay instead\n\t\t\tconst message =\n\t\t\t\t'Svelte config change detected, restart your dev process to apply the changes.';\n\t\t\tlog.info(message, filename);\n\t\t\tws.send({\n\t\t\t\ttype: 'error',\n\t\t\t\terr: { message, stack: '', plugin: 'vite-plugin-svelte', id: filename }\n\t\t\t});\n\t\t} else {\n\t\t\tlog.info(`svelte config changed: restarting vite server. - file: ${filename}`);\n\t\t\tserver.restart();\n\t\t}\n\t};\n\n\t// collection of watcher listeners by event\n\tconst listenerCollection = {\n\t\tadd: [] as Array<Function>,\n\t\tchange: [emitChangeEventOnDependants],\n\t\tunlink: [removeUnlinkedFromCache, emitChangeEventOnDependants]\n\t};\n\n\tif (svelteConfigFile !== false) {\n\t\t// configFile false means we ignore the file and external process is responsible\n\t\tconst possibleSvelteConfigs = knownSvelteConfigNames.map((cfg) => path.join(root, cfg));\n\t\tconst restartOnConfigAdd = (filename: string) => {\n\t\t\tif (possibleSvelteConfigs.includes(filename)) {\n\t\t\t\ttriggerViteRestart(filename);\n\t\t\t}\n\t\t};\n\n\t\tconst restartOnConfigChange = (filename: string) => {\n\t\t\tif (filename === svelteConfigFile) {\n\t\t\t\ttriggerViteRestart(filename);\n\t\t\t}\n\t\t};\n\n\t\tif (svelteConfigFile) {\n\t\t\tlistenerCollection.change.push(restartOnConfigChange);\n\t\t\tlistenerCollection.unlink.push(restartOnConfigChange);\n\t\t} else {\n\t\t\tlistenerCollection.add.push(restartOnConfigAdd);\n\t\t}\n\t}\n\n\tObject.entries(listenerCollection).forEach(([evt, listeners]) => {\n\t\tif (listeners.length > 0) {\n\t\t\twatcher.on(evt, (filename) => listeners.forEach((listener) => listener(filename)));\n\t\t}\n\t});\n}\n// taken from vite utils\nexport function ensureWatchedFile(watcher: FSWatcher, file: string | null, root: string): void {\n\tif (\n\t\tfile &&\n\t\t// only need to watch if out of root\n\t\t!file.startsWith(root + '/') &&\n\t\t// some rollup plugins use null bytes for private resolved Ids\n\t\t!file.includes('\\0') &&\n\t\tfs.existsSync(file)\n\t) {\n\t\t// resolve file to normalized system path\n\t\twatcher.add(path.resolve(file));\n\t}\n}\n","import path from 'path';\nimport { builtinModules } from 'module';\nimport { resolveDependencyData, isCommonDepWithoutSvelteField } from './dependencies';\nimport { VitePluginSvelteCache } from './vite-plugin-svelte-cache';\nimport { normalizePath } from 'vite';\n\nexport async function resolveViaPackageJsonSvelte(\n\timportee: string,\n\timporter: string | undefined,\n\tcache: VitePluginSvelteCache\n): Promise<string | void> {\n\tif (\n\t\timporter &&\n\t\tisBareImport(importee) &&\n\t\t!isNodeInternal(importee) &&\n\t\t!isCommonDepWithoutSvelteField(importee)\n\t) {\n\t\tconst cached = cache.getResolvedSvelteField(importee, importer);\n\t\tif (cached) {\n\t\t\treturn cached;\n\t\t}\n\t\tconst pkgData = await resolveDependencyData(importee, importer);\n\t\tif (pkgData) {\n\t\t\tconst { pkg, dir } = pkgData;\n\t\t\tif (pkg.svelte) {\n\t\t\t\tconst result = normalizePath(path.resolve(dir, pkg.svelte));\n\t\t\t\tcache.setResolvedSvelteField(importee, importer, result);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction isNodeInternal(importee: string) {\n\treturn importee.startsWith('node:') || builtinModules.includes(importee);\n}\n\nfunction isBareImport(importee: string): boolean {\n\tif (\n\t\t!importee ||\n\t\timportee[0] === '.' ||\n\t\timportee[0] === '\\0' ||\n\t\timportee.includes(':') ||\n\t\tpath.isAbsolute(importee)\n\t) {\n\t\treturn false;\n\t}\n\tconst parts = importee.split('/');\n\tswitch (parts.length) {\n\t\tcase 1:\n\t\t\treturn true;\n\t\tcase 2:\n\t\t\treturn parts[0].startsWith('@');\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n","import { promises as fs } from 'fs';\nimport path from 'path';\nimport { ResolvedOptions } from './options';\n\n// List of options that changes the prebundling result\nconst PREBUNDLE_SENSITIVE_OPTIONS: (keyof ResolvedOptions)[] = [\n\t'compilerOptions',\n\t'configFile',\n\t'experimental',\n\t'extensions',\n\t'ignorePluginPreprocessors',\n\t'preprocess'\n];\n\n/**\n * @returns Whether the Svelte metadata has changed\n */\nexport async function saveSvelteMetadata(cacheDir: string, options: ResolvedOptions) {\n\tconst svelteMetadata = generateSvelteMetadata(options);\n\tconst svelteMetadataPath = path.resolve(cacheDir, '_svelte_metadata.json');\n\n\tconst currentSvelteMetadata = JSON.stringify(svelteMetadata, (_, value) => {\n\t\t// Handle preprocessors\n\t\treturn typeof value === 'function' ? value.toString() : value;\n\t});\n\n\tlet existingSvelteMetadata: string | undefined;\n\ttry {\n\t\texistingSvelteMetadata = await fs.readFile(svelteMetadataPath, 'utf8');\n\t} catch {\n\t\t// ignore\n\t}\n\n\tawait fs.mkdir(cacheDir, { recursive: true });\n\tawait fs.writeFile(svelteMetadataPath, currentSvelteMetadata);\n\treturn currentSvelteMetadata !== existingSvelteMetadata;\n}\n\nfunction generateSvelteMetadata(options: ResolvedOptions) {\n\tconst metadata: Record<string, any> = {};\n\tfor (const key of PREBUNDLE_SENSITIVE_OPTIONS) {\n\t\tmetadata[key] = options[key];\n\t}\n\treturn metadata;\n}\n","import { Plugin, normalizePath } from 'vite';\nimport { log } from '../../utils/log';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport fs from 'fs';\nimport { idToFile } from './utils';\nimport { defaultInspectorOptions, type InspectorOptions, parseEnvironmentOptions } from './options';\n\nfunction getInspectorPath() {\n\tconst pluginPath = normalizePath(path.dirname(fileURLToPath(import.meta.url)));\n\treturn pluginPath.replace(/\\/vite-plugin-svelte\\/dist$/, '/vite-plugin-svelte/src/ui/inspector/');\n}\n\nexport function svelteInspector(): Plugin {\n\tconst inspectorPath = getInspectorPath();\n\tlog.debug.enabled && log.debug(`svelte inspector path: ${inspectorPath}`);\n\tlet inspectorOptions: InspectorOptions;\n\tlet disabled = false;\n\n\treturn {\n\t\tname: 'vite-plugin-svelte:inspector',\n\t\tapply: 'serve',\n\t\tenforce: 'pre',\n\n\t\tconfigResolved(config) {\n\t\t\tconst vps = config.plugins.find((p) => p.name === 'vite-plugin-svelte');\n\t\t\tif (!vps) {\n\t\t\t\tlog.warn('vite-plugin-svelte is missing, inspector disabled', undefined, 'inspector');\n\t\t\t\tdisabled = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst configFileOptions = vps?.api?.options?.inspector;\n\t\t\tconst environmentOptions = parseEnvironmentOptions(config);\n\t\t\tif (!configFileOptions && !environmentOptions) {\n\t\t\t\tlog.debug('no options found, inspector disabled', undefined, 'inspector');\n\t\t\t\tdisabled = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (environmentOptions === true) {\n\t\t\t\tinspectorOptions = defaultInspectorOptions;\n\t\t\t} else {\n\t\t\t\tinspectorOptions = {\n\t\t\t\t\t...defaultInspectorOptions,\n\t\t\t\t\t...configFileOptions,\n\t\t\t\t\t...(environmentOptions || {})\n\t\t\t\t};\n\t\t\t}\n\t\t\tinspectorOptions.__internal = {\n\t\t\t\tbase: config.base?.replace(/\\/$/, '') || ''\n\t\t\t};\n\t\t},\n\n\t\tasync resolveId(importee: string, importer, options) {\n\t\t\tif (options?.ssr || disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (importee.startsWith('virtual:svelte-inspector-options')) {\n\t\t\t\treturn importee;\n\t\t\t} else if (importee.startsWith('virtual:svelte-inspector-path:')) {\n\t\t\t\tconst resolved = importee.replace('virtual:svelte-inspector-path:', inspectorPath);\n\t\t\t\tlog.debug.enabled &&\n\t\t\t\t\tlog.debug(`resolved ${importee} with ${resolved}`, undefined, 'inspector');\n\t\t\t\treturn resolved;\n\t\t\t}\n\t\t},\n\n\t\tasync load(id, options) {\n\t\t\tif (options?.ssr || disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (id === 'virtual:svelte-inspector-options') {\n\t\t\t\treturn `export default ${JSON.stringify(inspectorOptions ?? {})}`;\n\t\t\t} else if (id.startsWith(inspectorPath)) {\n\t\t\t\t// read file ourselves to avoid getting shut out by vites fs.allow check\n\t\t\t\tconst file = idToFile(id);\n\t\t\t\tif (fs.existsSync(file)) {\n\t\t\t\t\treturn await fs.promises.readFile(file, 'utf-8');\n\t\t\t\t} else {\n\t\t\t\t\tlog.error(\n\t\t\t\t\t\t`failed to find file for svelte-inspector: ${file}, referenced by id ${id}.`,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t'inspector'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttransform(code, id, options) {\n\t\t\tif (options?.ssr || disabled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (id.includes('vite/dist/client/client.mjs')) {\n\t\t\t\treturn { code: `${code}\\nimport('virtual:svelte-inspector-path:load-inspector.js')` };\n\t\t\t}\n\t\t}\n\t};\n}\n","const FS_PREFIX = `/@fs/`;\nconst IS_WINDOWS = process.platform === 'win32';\nconst queryRE = /\\?.*$/s;\nconst hashRE = /#.*$/s;\n\nexport function idToFile(id: string): string {\n\t// strip /@fs/ but keep leading / on non-windows\n\tif (id.startsWith(FS_PREFIX)) {\n\t\tid = id = id.slice(IS_WINDOWS ? FS_PREFIX.length : FS_PREFIX.length - 1);\n\t}\n\t// strip query and hash\n\treturn id.replace(hashRE, '').replace(queryRE, '');\n}\n","import * as process from 'process';\nimport { log } from '../../utils/log';\nimport { loadEnv, ResolvedConfig } from 'vite';\nexport const defaultInspectorOptions: InspectorOptions = {\n\ttoggleKeyCombo: process.platform === 'darwin' ? 'meta-shift' : 'control-shift',\n\tnavKeys: { parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' },\n\topenKey: 'Enter',\n\tholdMode: true,\n\tshowToggleButton: 'active',\n\ttoggleButtonPos: 'top-right',\n\tcustomStyles: true\n};\n\nexport function parseEnvironmentOptions(\n\tconfig: ResolvedConfig\n): Partial<InspectorOptions> | boolean | void {\n\tconst env = loadEnv(config.mode, config.envDir ?? process.cwd(), 'SVELTE_INSPECTOR');\n\tconst options = env?.SVELTE_INSPECTOR_OPTIONS;\n\tconst toggle = env?.SVELTE_INSPECTOR_TOGGLE;\n\tif (options) {\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(options);\n\t\t\tconst parsedType = typeof parsed;\n\t\t\tif (parsedType === 'boolean') {\n\t\t\t\treturn parsed;\n\t\t\t} else if (parsedType === 'object') {\n\t\t\t\tif (Array.isArray(parsed)) {\n\t\t\t\t\tthrow new Error('invalid type, expected object map but got array');\n\t\t\t\t}\n\t\t\t\tconst parsedKeys = Object.keys(parsed);\n\t\t\t\tconst defaultKeys = Object.keys(defaultInspectorOptions);\n\t\t\t\tconst unknownKeys = parsedKeys.filter((k) => !defaultKeys.includes(k));\n\t\t\t\tif (unknownKeys.length) {\n\t\t\t\t\tlog.warn(\n\t\t\t\t\t\t`ignoring unknown options in environment SVELTE_INSPECTOR_OPTIONS: ${unknownKeys.join(\n\t\t\t\t\t\t\t', '\n\t\t\t\t\t\t)}.`,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t'inspector'\n\t\t\t\t\t);\n\t\t\t\t\tfor (const key of unknownKeys) {\n\t\t\t\t\t\tdelete parsed[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlog.debug('loaded environment config', parsed, 'inspector');\n\t\t\t\treturn parsed;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tlog.error(\n\t\t\t\t`failed to parse inspector options from environment SVELTE_INSPECTOR_OPTIONS=\"${options}\"`,\n\t\t\t\te,\n\t\t\t\t'inspector'\n\t\t\t);\n\t\t}\n\t} else if (toggle) {\n\t\tconst keyConfig = {\n\t\t\ttoggleKeyCombo: toggle\n\t\t};\n\t\tlog.debug('loaded environment config', keyConfig, 'inspector');\n\t\treturn keyConfig;\n\t}\n}\n\nexport interface InspectorOptions {\n\t/**\n\t * define a key combo to toggle inspector,\n\t * @default 'meta-shift' on mac, 'control-shift' on other os\n\t *\n\t * any number of modifiers `control` `shift` `alt` `meta` followed by zero or one regular key, separated by -\n\t * examples: control-shift, control-o, control-alt-s meta-x control-meta\n\t * Some keys have native behavior (e.g. alt-s opens history menu on firefox).\n\t * To avoid conflicts or accidentally typing into inputs, modifier only combinations are recommended.\n\t */\n\ttoggleKeyCombo?: string;\n\n\t/**\n\t * define keys to select elements with via keyboard\n\t * @default {parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' }\n\t *\n\t * improves accessibility and also helps when you want to select elements that do not have a hoverable surface area\n\t * due to tight wrapping\n\t *\n\t * A note for users of screen-readers:\n\t * If you are using arrow keys to navigate the page itself, change the navKeys to avoid conflicts.\n\t * e.g. navKeys: {parent: 'w', prev: 'a', child: 's', next: 'd'}\n\t *\n\t *\n\t * parent: select closest parent\n\t * child: select first child (or grandchild)\n\t * next: next sibling (or parent if no next sibling exists)\n\t * prev: previous sibling (or parent if no prev sibling exists)\n\t */\n\tnavKeys?: { parent: string; child: string; next: string; prev: string };\n\n\t/**\n\t * define key to open the editor for the currently selected dom node\n\t *\n\t * @default 'Enter'\n\t */\n\topenKey?: string;\n\n\t/**\n\t * inspector is automatically disabled when releasing toggleKeyCombo after holding it for a longpress\n\t * @default true\n\t */\n\tholdMode?: boolean;\n\t/**\n\t * when to show the toggle button\n\t * @default 'active'\n\t */\n\tshowToggleButton?: 'always' | 'active' | 'never';\n\n\t/**\n\t * where to display the toggle button\n\t * @default top-right\n\t */\n\ttoggleButtonPos?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\n\t/**\n\t * inject custom styles when inspector is active\n\t */\n\tcustomStyles?: boolean;\n\n\t/**\n\t * internal options that are automatically set, not to be set or used by users\n\t */\n\t__internal?: {\n\t\t// vite base url\n\t\tbase: string;\n\t};\n}\n","import { SvelteRequest } from './id';\nimport { Code, CompileData } from './compile';\nimport { readFileSync } from 'fs';\nimport { dirname } from 'path';\n//eslint-disable-next-line node/no-missing-import\nimport { findClosestPkgJsonPath } from 'vitefu';\nimport { normalizePath } from 'vite';\n\ninterface PackageInfo {\n\tname: string;\n\tversion: string;\n\tsvelte?: string;\n\tpath: string;\n}\n\nexport class VitePluginSvelteCache {\n\tprivate _css = new Map<string, Code>();\n\tprivate _js = new Map<string, Code>();\n\tprivate _dependencies = new Map<string, string[]>();\n\tprivate _dependants = new Map<string, Set<string>>();\n\tprivate _resolvedSvelteFields = new Map<string, string>();\n\tprivate _errors = new Map<string, any>();\n\tprivate _packageInfos: PackageInfo[] = [];\n\n\tpublic update(compileData: CompileData) {\n\t\tthis._errors.delete(compileData.normalizedFilename);\n\t\tthis.updateCSS(compileData);\n\t\tthis.updateJS(compileData);\n\t\tthis.updateDependencies(compileData);\n\t}\n\n\tpublic has(svelteRequest: SvelteRequest) {\n\t\tconst id = svelteRequest.normalizedFilename;\n\t\treturn this._errors.has(id) || this._js.has(id) || this._css.has(id);\n\t}\n\n\tpublic setError(svelteRequest: SvelteRequest, error: any) {\n\t\t// keep dependency info, otherwise errors in dependants would not trigger an update after fixing\n\t\t// because they are no longer watched\n\t\tthis.remove(svelteRequest, true);\n\t\tthis._errors.set(svelteRequest.normalizedFilename, error);\n\t}\n\n\tprivate updateCSS(compileData: CompileData) {\n\t\tthis._css.set(compileData.normalizedFilename, compileData.compiled.css);\n\t}\n\n\tprivate updateJS(compileData: CompileData) {\n\t\tif (!compileData.ssr) {\n\t\t\t// do not cache SSR js\n\t\t\tthis._js.set(compileData.normalizedFilename, compileData.compiled.js);\n\t\t}\n\t}\n\n\tprivate updateDependencies(compileData: CompileData) {\n\t\tconst id = compileData.normalizedFilename;\n\t\tconst prevDependencies = this._dependencies.get(id) || [];\n\t\tconst dependencies = compileData.dependencies;\n\t\tthis._dependencies.set(id, dependencies);\n\t\tconst removed = prevDependencies.filter((d) => !dependencies.includes(d));\n\t\tconst added = dependencies.filter((d) => !prevDependencies.includes(d));\n\t\tadded.forEach((d) => {\n\t\t\tif (!this._dependants.has(d)) {\n\t\t\t\tthis._dependants.set(d, new Set<string>());\n\t\t\t}\n\t\t\tthis._dependants.get(d)!.add(compileData.filename);\n\t\t});\n\t\tremoved.forEach((d) => {\n\t\t\tthis._dependants.get(d)!.delete(compileData.filename);\n\t\t});\n\t}\n\n\tpublic remove(svelteRequest: SvelteRequest, keepDependencies: boolean = false): boolean {\n\t\tconst id = svelteRequest.normalizedFilename;\n\t\tlet removed = false;\n\t\tif (this._errors.delete(id)) {\n\t\t\tremoved = true;\n\t\t}\n\t\tif (this._js.delete(id)) {\n\t\t\tremoved = true;\n\t\t}\n\t\tif (this._css.delete(id)) {\n\t\t\tremoved = true;\n\t\t}\n\t\tif (!keepDependencies) {\n\t\t\tconst dependencies = this._dependencies.get(id);\n\t\t\tif (dependencies) {\n\t\t\t\tremoved = true;\n\t\t\t\tdependencies.forEach((d) => {\n\t\t\t\t\tconst dependants = this._dependants.get(d);\n\t\t\t\t\tif (dependants && dependants.has(svelteRequest.filename)) {\n\t\t\t\t\t\tdependants.delete(svelteRequest.filename);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis._dependencies.delete(id);\n\t\t\t}\n\t\t}\n\n\t\treturn removed;\n\t}\n\n\tpublic getCSS(svelteRequest: SvelteRequest) {\n\t\treturn this._css.get(svelteRequest.normalizedFilename);\n\t}\n\n\tpublic getJS(svelteRequest: SvelteRequest) {\n\t\tif (!svelteRequest.ssr) {\n\t\t\t// SSR js isn't cached\n\t\t\treturn this._js.get(svelteRequest.normalizedFilename);\n\t\t}\n\t}\n\n\tpublic getError(svelteRequest: SvelteRequest) {\n\t\treturn this._errors.get(svelteRequest.normalizedFilename);\n\t}\n\n\tpublic getDependants(path: string): string[] {\n\t\tconst dependants = this._dependants.get(path);\n\t\treturn dependants ? [...dependants] : [];\n\t}\n\n\tpublic getResolvedSvelteField(name: string, importer?: string): string | void {\n\t\treturn this._resolvedSvelteFields.get(this._getResolvedSvelteFieldKey(name, importer));\n\t}\n\n\tpublic hasResolvedSvelteField(name: string, importer?: string) {\n\t\treturn this._resolvedSvelteFields.has(this._getResolvedSvelteFieldKey(name, importer));\n\t}\n\tpublic setResolvedSvelteField(\n\t\timportee: string,\n\t\timporter: string | undefined = undefined,\n\t\tresolvedSvelte: string\n\t) {\n\t\tthis._resolvedSvelteFields.set(\n\t\t\tthis._getResolvedSvelteFieldKey(importee, importer),\n\t\t\tresolvedSvelte\n\t\t);\n\t}\n\n\tprivate _getResolvedSvelteFieldKey(importee: string, importer?: string): string {\n\t\treturn importer ? `${importer} > ${importee}` : importee;\n\t}\n\n\tpublic async getPackageInfo(file: string): Promise<PackageInfo> {\n\t\tlet info = this._packageInfos.find((pi) => file.startsWith(pi.path));\n\t\tif (!info) {\n\t\t\tinfo = await findPackageInfo(file);\n\t\t\tthis._packageInfos.push(info);\n\t\t}\n\t\treturn info;\n\t}\n}\n\n/**\n * utility to get some info from the closest package.json with a \"name\" set\n *\n * @param {string} file to find info for\n * @returns {PackageInfo}\n */\nasync function findPackageInfo(file: string): Promise<PackageInfo> {\n\tconst info: PackageInfo = {\n\t\tname: '$unknown',\n\t\tversion: '0.0.0-unknown',\n\t\tpath: '$unknown'\n\t};\n\tlet path = await findClosestPkgJsonPath(file, (pkgPath) => {\n\t\tconst pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));\n\t\tif (pkg.name != null) {\n\t\t\tinfo.name = pkg.name;\n\t\t\tif (pkg.version != null) {\n\t\t\t\tinfo.version = pkg.version;\n\t\t\t}\n\t\t\tinfo.svelte = pkg.svelte;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\t// return normalized path with appended '/' so .startsWith works for future file checks\n\tpath = normalizePath(dirname(path ?? file)) + '/';\n\tinfo.path = path;\n\treturn info;\n}\n","import { ResolvedOptions } from './options';\nimport fs from 'fs';\nimport { toRollupError } from './error';\nimport { log } from './log';\nimport type { SvelteRequest } from './id';\nimport { type CompileData, CompileSvelte } from './compile';\n\n/**\n * utility function to compile ?raw and ?direct requests in load hook\n */\nexport async function loadRaw(\n\tsvelteRequest: SvelteRequest,\n\tcompileSvelte: CompileSvelte,\n\toptions: ResolvedOptions\n) {\n\tconst { id, filename, query } = svelteRequest;\n\n\t// raw svelte subrequest, compile on the fly and return requested subpart\n\tlet compileData;\n\tconst source = fs.readFileSync(filename, 'utf-8');\n\ttry {\n\t\t//avoid compileSvelte doing extra ssr stuff unless requested\n\t\tsvelteRequest.ssr = query.compilerOptions?.generate === 'ssr';\n\t\tconst type = query.type;\n\t\tcompileData = await compileSvelte(svelteRequest, source, {\n\t\t\t...options,\n\t\t\t// don't use dynamic vite-plugin-svelte defaults here to ensure stable result between ssr,dev and build\n\t\t\tcompilerOptions: {\n\t\t\t\tdev: false,\n\t\t\t\tcss: false,\n\t\t\t\thydratable: false,\n\t\t\t\tenableSourcemap: query.sourcemap\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tjs: type === 'script' || type === 'all',\n\t\t\t\t\t\t\tcss: type === 'style' || type === 'all'\n\t\t\t\t\t }\n\t\t\t\t\t: false,\n\t\t\t\t...svelteRequest.query.compilerOptions\n\t\t\t},\n\t\t\thot: false,\n\t\t\temitCss: true\n\t\t});\n\t} catch (e) {\n\t\tthrow toRollupError(e, options);\n\t}\n\tlet result;\n\tif (query.type === 'style') {\n\t\tresult = compileData.compiled.css;\n\t} else if (query.type === 'script') {\n\t\tresult = compileData.compiled.js;\n\t} else if (query.type === 'preprocessed') {\n\t\tresult = compileData.preprocessed;\n\t} else if (query.type === 'all' && query.raw) {\n\t\treturn allToRawExports(compileData, source);\n\t} else {\n\t\tthrow new Error(\n\t\t\t`invalid \"type=${query.type}\" in ${id}. supported are script, style, preprocessed, all`\n\t\t);\n\t}\n\tif (query.direct) {\n\t\tconst supportedDirectTypes = ['script', 'style'];\n\t\tif (!supportedDirectTypes.includes(query.type)) {\n\t\t\tthrow new Error(\n\t\t\t\t`invalid \"type=${\n\t\t\t\t\tquery.type\n\t\t\t\t}\" combined with direct in ${id}. supported are: ${supportedDirectTypes.join(', ')}`\n\t\t\t);\n\t\t}\n\t\tlog.debug(`load returns direct result for ${id}`);\n\t\tlet directOutput = result.code;\n\t\tif (query.sourcemap && result.map?.toUrl) {\n\t\t\tconst map = `sourceMappingURL=${result.map.toUrl()}`;\n\t\t\tif (query.type === 'style') {\n\t\t\t\tdirectOutput += `\\n\\n/*# ${map} */\\n`;\n\t\t\t} else if (query.type === 'script') {\n\t\t\t\tdirectOutput += `\\n\\n//# ${map}\\n`;\n\t\t\t}\n\t\t}\n\t\treturn directOutput;\n\t} else if (query.raw) {\n\t\tlog.debug(`load returns raw result for ${id}`);\n\t\treturn toRawExports(result);\n\t} else {\n\t\tthrow new Error(`invalid raw mode in ${id}, supported are raw, direct`);\n\t}\n}\n\n/**\n * turn compileData and source into a flat list of raw exports\n *\n * @param compileData\n * @param source\n */\nfunction allToRawExports(compileData: CompileData, source: string) {\n\t// flatten CompileData\n\tconst exports: Partial<CompileData & { source: string }> = {\n\t\t...compileData,\n\t\t...compileData.compiled,\n\t\tsource\n\t};\n\tdelete exports.compiled;\n\tdelete exports.filename; // absolute path, remove to avoid it in output\n\treturn toRawExports(exports);\n}\n\n/**\n * turn object into raw exports.\n *\n * every prop is returned as a const export, and if prop 'code' exists it is additionally added as default export\n *\n * eg {'foo':'bar','code':'baz'} results in\n *\n * ```js\n * export const code='baz'\n * export const foo='bar'\n * export default code\n * ```\n * @param object\n */\nfunction toRawExports(object: object) {\n\tlet exports =\n\t\tObject.entries(object)\n\t\t\t//eslint-disable-next-line no-unused-vars\n\t\t\t.filter(([key, value]) => typeof value !== 'function') // preprocess output has a toString function that's enumerable\n\t\t\t.sort(([a], [b]) => (a < b ? -1 : a === b ? 0 : 1))\n\t\t\t.map(([key, value]) => `export const ${key}=${JSON.stringify(value)}`)\n\t\t\t.join('\\n') + '\\n';\n\tif (Object.prototype.hasOwnProperty.call(object, 'code')) {\n\t\texports += `export default code\\n`;\n\t}\n\treturn exports;\n}\n","import { preprocessCSS, resolveConfig, transformWithEsbuild } from 'vite';\nimport type { ESBuildOptions, InlineConfig, ResolvedConfig } from 'vite';\n// eslint-disable-next-line node/no-missing-import\nimport type { Preprocessor, PreprocessorGroup } from 'svelte/types/compiler/preprocess';\nimport { mapToRelative, removeLangSuffix } from './utils/sourcemaps';\n\nconst supportedStyleLangs = ['css', 'less', 'sass', 'scss', 'styl', 'stylus', 'postcss', 'sss'];\nconst supportedScriptLangs = ['ts'];\n\nexport const lang_sep = '.vite-preprocess.';\n\nexport function vitePreprocess(opts?: {\n\tscript?: boolean;\n\tstyle?: boolean | InlineConfig | ResolvedConfig;\n}) {\n\tconst preprocessor: PreprocessorGroup = {};\n\tif (opts?.script !== false) {\n\t\tpreprocessor.script = viteScript().script;\n\t}\n\tif (opts?.style !== false) {\n\t\tconst styleOpts = typeof opts?.style == 'object' ? opts?.style : undefined;\n\t\tpreprocessor.style = viteStyle(styleOpts).style;\n\t}\n\treturn preprocessor;\n}\n\nfunction viteScript(): { script: Preprocessor } {\n\treturn {\n\t\tasync script({ attributes, content, filename = '' }) {\n\t\t\tconst lang = attributes.lang as string;\n\t\t\tif (!supportedScriptLangs.includes(lang)) return;\n\t\t\tconst { code, map } = await transformWithEsbuild(content, filename, {\n\t\t\t\tloader: lang as ESBuildOptions['loader'],\n\t\t\t\ttarget: 'esnext',\n\t\t\t\ttsconfigRaw: {\n\t\t\t\t\tcompilerOptions: {\n\t\t\t\t\t\t// svelte typescript needs this flag to work with type imports\n\t\t\t\t\t\timportsNotUsedAsValues: 'preserve',\n\t\t\t\t\t\tpreserveValueImports: true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmapToRelative(map, filename);\n\n\t\t\treturn {\n\t\t\t\tcode,\n\t\t\t\tmap\n\t\t\t};\n\t\t}\n\t};\n}\n\nfunction viteStyle(config: InlineConfig | ResolvedConfig = {}): {\n\tstyle: Preprocessor;\n} {\n\tlet transform: CssTransform;\n\tconst style: Preprocessor = async ({ attributes, content, filename = '' }) => {\n\t\tconst lang = attributes.lang as string;\n\t\tif (!supportedStyleLangs.includes(lang)) return;\n\t\tif (!transform) {\n\t\t\tlet resolvedConfig: ResolvedConfig;\n\t\t\t// @ts-expect-error special prop added if running in v-p-s\n\t\t\tif (style.__resolvedConfig) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tresolvedConfig = style.__resolvedConfig;\n\t\t\t} else if (isResolvedConfig(config)) {\n\t\t\t\tresolvedConfig = config;\n\t\t\t} else {\n\t\t\t\tresolvedConfig = await resolveConfig(\n\t\t\t\t\tconfig,\n\t\t\t\t\tprocess.env.NODE_ENV === 'production' ? 'build' : 'serve'\n\t\t\t\t);\n\t\t\t}\n\t\t\ttransform = getCssTransformFn(resolvedConfig);\n\t\t}\n\t\tconst suffix = `${lang_sep}${lang}`;\n\t\tconst moduleId = `${filename}${suffix}`;\n\t\tconst { code, map, deps } = await transform(content, moduleId);\n\t\tremoveLangSuffix(map, suffix);\n\t\tmapToRelative(map, filename);\n\t\tconst dependencies = deps ? Array.from(deps).filter((d) => !d.endsWith(suffix)) : undefined;\n\t\treturn {\n\t\t\tcode,\n\t\t\tmap: map ?? undefined,\n\t\t\tdependencies\n\t\t};\n\t};\n\t// @ts-expect-error tag so can be found by v-p-s\n\tstyle.__resolvedConfig = null;\n\treturn { style };\n}\n\ntype CssTransform = (\n\t// eslint-disable-next-line no-unused-vars\n\tcode: string,\n\t// eslint-disable-next-line no-unused-vars\n\tfilename: string\n) => Promise<{ code: string; map?: any; deps?: Set<string> }>;\n\nfunction getCssTransformFn(config: ResolvedConfig): CssTransform {\n\treturn async (code, filename) => {\n\t\treturn preprocessCSS(code, filename, config);\n\t};\n}\n\nfunction isResolvedConfig(config: any): config is ResolvedConfig {\n\treturn !!config.inlineConfig;\n}\n"],"mappings":"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","names":["fs","isDepExcluded","log","compileSvelte","path","dirname","compileSvelte","IS_WINDOWS","normalizePath","path","fs","fs","path","path","compile","preprocess","preprocess","compile","path","fs","prefix","normalizePath","preResolveOptions","normalizePath","path","fs","path","fs","path","normalizePath","path","fs","path","normalizePath","path","fs","IS_WINDOWS","process","normalizePath","path","fs","readFileSync","normalizePath","path","fs","compileSvelte","fs","compileSvelte","fs","isDepExcluded"]}