@sveltejs/vite-plugin-svelte 2.0.4 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +174 -71
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/fixtures/preprocess/foo.scss +3 -0
- package/src/__tests__/preprocess.spec.ts +51 -0
- package/src/index.ts +55 -7
- package/src/preprocess.ts +18 -10
- package/src/utils/__tests__/sourcemaps.spec.ts +79 -0
- package/src/utils/compile.ts +4 -4
- package/src/utils/constants.ts +3 -0
- package/src/utils/log.ts +19 -9
- package/src/utils/options.ts +8 -10
- package/src/utils/resolve.ts +2 -1
- package/src/utils/sourcemaps.ts +67 -14
- package/src/utils/vite-plugin-svelte-cache.ts +55 -0
- package/src/utils/vite-plugin-svelte-stats.ts +13 -35
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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/utils/vite-plugin-svelte-cache.ts","../src/utils/load-raw.ts","../src/preprocess.ts"],"sourcesContent":["import fs from 'fs';\nimport { HmrContext, ModuleNode, Plugin, ResolvedConfig, UserConfig } 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';\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\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\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);\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\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\tif (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 resolved = await resolveViaPackageJsonSvelte(importee, importer, cache);\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tlog.debug(\n\t\t\t\t\t\t\t\t`resolveId resolved ${resolved} via package.json svelte field of ${importee}`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn resolved;\n\t\t\t\t\t\t}\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}\n\t\t}\n\t];\n\tplugins.push(svelteInspector());\n\treturn plugins.filter(Boolean);\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';\n\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) {\n\tif (!logger.enabled) {\n\t\treturn;\n\t}\n\tif (logger.isDebug) {\n\t\tpayload !== undefined ? logger.log(message, payload) : logger.log(message);\n\t} else {\n\t\tlogger.log(logger.color(`${new Date().toLocaleTimeString()} [${prefix}] ${message}`));\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): void;\n\tenabled: boolean;\n\tonce: (message: string, payload?: any) => 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) {\n\t\tif (logged.has(message)) {\n\t\t\treturn;\n\t\t}\n\t\tlogged.add(message);\n\t\tlogFn.apply(null, [message, payload]);\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","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 { mapSourcesToRelative } 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\tmapSourcesToRelative(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\tmapSourcesToRelative(compiled.js?.map, filename);\n\t\tmapSourcesToRelative(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';\n\n/**\n * sourcemap sources are relative to the sourcemap itself\n * assume the sourcemap location is the same as filename and turn absolute paths to relative\n * to avoid leaking fs information like vite root\n */\nexport function mapSourcesToRelative(map: { sources?: string[] }, filename: string) {\n\tif (map?.sources) {\n\t\tmap.sources = map.sources.map((s) => {\n\t\t\tif (path.isAbsolute(s)) {\n\t\t\t\tconst relative = path.relative(filename, s);\n\t\t\t\t// empty string as a source is not allowed, use simple filename\n\t\t\t\treturn relative === '' ? path.basename(filename) : relative;\n\t\t\t} else {\n\t\t\t\treturn s;\n\t\t\t}\n\t\t});\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, ResolvedConfig, UserConfig, ViteDevServer, normalizePath } from 'vite';\nimport { 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';\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'experimental'\n]);\n\nconst knownRootOptions = new Set(['extensions', 'compilerOptions', 'preprocess', 'onwarn']);\n\nconst allowedInlineOptions = new Set([\n\t'configFile',\n\t'kit', // only for internal use by sveltekit\n\t...allowedPluginOptions,\n\t...knownRootOptions\n]);\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): 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\taddSvelteKitOptions(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\tconst isLogLevelInfo = [undefined, 'info'].includes(viteConfig.logLevel);\n\tconst disableCompileStats = merged.experimental?.disableCompileStats;\n\tconst statsEnabled =\n\t\tdisableCompileStats !== true && disableCompileStats !== (merged.isBuild ? 'build' : 'dev');\n\tif (statsEnabled && isLogLevelInfo) {\n\t\tmerged.stats = new VitePluginSvelteStats();\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\n// some SvelteKit options need compilerOptions to work, so set them here.\nfunction addSvelteKitOptions(options: ResolvedOptions) {\n\t// @ts-expect-error kit is not typed to avoid dependency on sveltekit\n\tif (options?.kit != null && options.compilerOptions.hydratable == null) {\n\t\tlog.debug(`Setting compilerOptions.hydratable = true for SvelteKit`);\n\t\toptions.compilerOptions.hydratable = true;\n\t}\n}\n\nfunction handleDeprecatedOptions(options: ResolvedOptions) {\n\tif ((options.experimental as any)?.prebundleSvelteLibraries) {\n\t\toptions.prebundleSvelteLibraries = (options.experimental as any)?.prebundleSvelteLibraries;\n\t\tlog.warn(\n\t\t\t'experimental.prebundleSvelteLibraries is no longer experimental and has moved to prebundleSvelteLibraries'\n\t\t);\n\t}\n\tif ((options.experimental as any)?.generateMissingPreprocessorSourcemaps) {\n\t\tlog.warn('experimental.generateMissingPreprocessorSourcemaps has been removed.');\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 * 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 * enable svelte inspector\n\t */\n\tinspector?: InspectorOptions | boolean;\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 compile statistics\n\t *\n\t * @default false\n\t */\n\tdisableCompileStats?: 'dev' | 'build' | boolean;\n}\n\nexport interface InspectorOptions {\n\t/**\n\t * define a key combo to toggle inspector,\n\t * @default 'control-shift' on windows, 'meta-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 false\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 * append an import to the module id ending with `appendTo` instead of adding a script into body\n\t * useful for frameworks that do not support trannsformIndexHtml hook\n\t *\n\t * WARNING: only set this if you know exactly what it does.\n\t * Regular users of vite-plugin-svelte or SvelteKit do not need it\n\t */\n\tappendTo?: string;\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","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';\n//eslint-disable-next-line node/no-missing-import\nimport { findClosestPkgJsonPath } from 'vitefu';\nimport { readFileSync } from 'fs';\nimport { dirname } from 'path';\nimport { performance } from 'perf_hooks';\nimport { normalizePath } from 'vite';\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\n/**\n * utility to get the package name a file belongs to\n *\n * @param {string} file to find package for\n * @returns {path:string,name:string} tuple of path,name where name is the parsed package name and path is the normalized path to it\n */\nasync function getClosestNamedPackage(file: string): Promise<{ name: string; path: string }> {\n\tlet name = '$unknown';\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\tname = pkg.name;\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\treturn { name, path };\n}\n\nexport class VitePluginSvelteStats {\n\t// package directory -> package name\n\tprivate _packages: { path: string; name: string }[] = [];\n\tprivate _collections: StatCollection[] = [];\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.info(`${name} in progress ...`);\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.info(`${collection.name} done.`, formatPackageStats(collection.packageStats!));\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}`, e);\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\tlet pkg = this._packages.find((p) => stat.file.startsWith(p.path));\n\t\t\tif (!pkg) {\n\t\t\t\tpkg = await getClosestNamedPackage(stat.file);\n\t\t\t\tthis._packages.push(pkg);\n\t\t\t}\n\t\t\tstat.pkg = pkg.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';\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 = 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 { InspectorOptions } from '../../utils/options';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport fs from 'fs';\nimport { idToFile } from './utils';\n\nconst defaultInspectorOptions: InspectorOptions = {\n\ttoggleKeyCombo: process.platform === 'win32' ? 'control-shift' : 'meta-shift',\n\tnavKeys: { parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' },\n\topenKey: 'Enter',\n\tholdMode: false,\n\tshowToggleButton: 'active',\n\ttoggleButtonPos: 'top-right',\n\tcustomStyles: true\n};\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 appendTo: string | undefined;\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\tconst options = vps?.api?.options?.experimental?.inspector;\n\t\t\tif (!vps || !options) {\n\t\t\t\tlog.debug('inspector disabled, could not find config');\n\t\t\t\tdisabled = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinspectorOptions = {\n\t\t\t\t...defaultInspectorOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst isSvelteKit = config.plugins.some((p) => p.name.startsWith('vite-plugin-sveltekit'));\n\t\t\tif (isSvelteKit && !inspectorOptions.appendTo) {\n\t\t\t\t// this could append twice if a user had a file that ends with /generated/root.svelte\n\t\t\t\t// but that should be rare and inspector doesn't execute twice\n\t\t\t\tinspectorOptions.appendTo = `/generated/root.svelte`;\n\t\t\t}\n\t\t\tappendTo = inspectorOptions.appendTo;\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 && log.debug(`resolved ${importee} with ${resolved}`);\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(`failed to find file for svelte-inspector: ${file}, referenced by id ${id}.`);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttransform(code: string, id: string, options?: { ssr?: boolean }) {\n\t\t\tif (options?.ssr || disabled || !appendTo) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (id.endsWith(appendTo)) {\n\t\t\t\treturn { code: `${code}\\nimport 'virtual:svelte-inspector-path:load-inspector.js'` };\n\t\t\t}\n\t\t},\n\t\ttransformIndexHtml(html) {\n\t\t\tif (disabled || appendTo) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\ttags: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttag: 'script',\n\t\t\t\t\t\tinjectTo: 'body',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttype: 'module',\n\t\t\t\t\t\t\t// /@id/ is needed, otherwise the virtual: is seen as protocol by browser and cors error happens\n\t\t\t\t\t\t\tsrc: '/@id/virtual:svelte-inspector-path:load-inspector.js'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\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 { SvelteRequest } from './id';\nimport { Code, CompileData } from './compile';\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\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 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","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 { mapSourcesToRelative } from './utils/sourcemaps';\n\nconst supportedStyleLangs = ['css', 'less', 'sass', 'scss', 'styl', 'stylus', 'postcss', 'sss'];\nconst supportedScriptLangs = ['ts'];\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\tmapSourcesToRelative(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 moduleId = `${filename}.${lang}`;\n\t\tconst { code, map } = await transform(content, moduleId);\n\n\t\tmapSourcesToRelative(map, moduleId);\n\n\t\treturn {\n\t\t\tcode,\n\t\t\tmap: map ?? undefined\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\n// eslint-disable-next-line no-unused-vars\ntype CssTransform = (code: string, filename: string) => Promise<{ code: string; map?: any }>;\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":";;;;;;;;;AAAA,OAAOA,SAAQ;AAGf,SAAS,iBAAAC,sBAAqB;;;ACF9B,SAAS,MAAM,QAAQ,WAAW;AAClC,OAAO,WAAW;AAIlB,IAAM,SAAmB,CAAC,SAAS,QAAQ,QAAQ,SAAS,QAAQ;AACpE,IAAM,SAAS;AACf,IAAM,UAAkC;AAAA,EACvC,OAAO;AAAA,IACN,KAAK,MAAM,QAAQ,QAAQ;AAAA,IAC3B,SAAS;AAAA,IACT,SAAS;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACL,OAAO;AAAA,IACP,KAAK,QAAQ;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACA,MAAM;AAAA,IACL,OAAO;AAAA,IACP,KAAK,QAAQ;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACA,OAAO;AAAA,IACN,OAAO;AAAA,IACP,KAAK,QAAQ;AAAA,IACb,SAAS;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACP,SAAS;AAAA,EACV;AACD;AAEA,IAAI,SAAiB;AACrB,SAAS,SAAS,OAAe;AAChC,MAAI,UAAU,QAAQ;AACrB;AAAA,EACD;AACA,QAAM,aAAa,OAAO,QAAQ,KAAK;AACvC,MAAI,aAAa,IAAI;AACpB,aAAS;AACT,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,cAAQ,OAAO,CAAC,CAAC,EAAE,UAAU,KAAK;AAAA,IACnC;AAAA,EACD,OAAO;AACN,SAAK,QAAQ,OAAO,sBAAsB,QAAQ;AAAA,EACnD;AACD;AAEA,SAAS,KAAK,QAAa,SAAiB,SAAe;AAC1D,MAAI,CAAC,OAAO,SAAS;AACpB;AAAA,EACD;AACA,MAAI,OAAO,SAAS;AACnB,gBAAY,SAAY,OAAO,IAAI,SAAS,OAAO,IAAI,OAAO,IAAI,OAAO;AAAA,EAC1E,OAAO;AACN,WAAO,IAAI,OAAO,MAAM,IAAG,oBAAI,KAAK,GAAE,mBAAmB,MAAM,WAAW,SAAS,CAAC;AACpF,QAAI,SAAS;AACZ,aAAO,IAAI,OAAO;AAAA,IACnB;AAAA,EACD;AACD;AAQA,SAAS,aAAa,OAAsB;AAC3C,QAAM,SAAS,QAAQ,KAAK;AAC5B,QAAM,QAAe,KAAK,KAAK,MAAM,MAAM;AAC3C,QAAM,SAAS,oBAAI,IAAY;AAC/B,QAAM,OAAO,SAAU,SAAiB,SAAe;AACtD,QAAI,OAAO,IAAI,OAAO,GAAG;AACxB;AAAA,IACD;AACA,WAAO,IAAI,OAAO;AAClB,UAAM,MAAM,MAAM,CAAC,SAAS,OAAO,CAAC;AAAA,EACrC;AACA,SAAO,eAAe,OAAO,WAAW;AAAA,IACvC,MAAM;AACL,aAAO,OAAO;AAAA,IACf;AAAA,EACD,CAAC;AACD,SAAO,eAAe,OAAO,QAAQ;AAAA,IACpC,MAAM;AACL,aAAO;AAAA,IACR;AAAA,EACD,CAAC;AACD,SAAO;AACR;AAEO,IAAM,MAAM;AAAA,EAClB,OAAO,aAAa,OAAO;AAAA,EAC3B,MAAM,aAAa,MAAM;AAAA,EACzB,MAAM,aAAa,MAAM;AAAA,EACzB,OAAO,aAAa,OAAO;AAAA,EAC3B;AACD;AAYO,SAAS,oBACf,eACA,UACA,SACC;AACD,QAAM,EAAE,SAAS,QAAQ,QAAQ,IAAI;AACrC,QAAM,YAAY,CAAC,WAAW,QAAQ,cAAc;AACpD,MAAI,OAAO,UAAU,YAAY;AACjC,QAAM,uBAAkC,CAAC;AACzC,QAAM,aAAa,UAAU,OAAO,CAAC,MAAM,CAAC,sBAAsB,GAAG,SAAS,OAAO,CAAC;AACtF,QAAM,QAAQ,mBAAmB,UAAU,OAAO;AAClD,QAAM,cAAc,CAAC,GAAG,YAAY,GAAG,KAAK;AAC5C,MAAI,WAAW;AACd,UAAM,QAAQ;AACd,WAAO,CAAC,MAAe;AACtB,2BAAqB,KAAK,CAAC;AAC3B,YAAM,CAAC;AAAA,IACR;AAAA,EACD;AACA,cAAY,QAAQ,CAAC,YAAY;AAChC,QAAI,QAAQ;AACX,aAAO,SAAS,IAAI;AAAA,IACrB,OAAO;AACN,WAAK,OAAO;AAAA,IACb;AAAA,EACD,CAAC;AACD,MAAI,WAAW;AACd,UAAM,UAAiC;AAAA,MACtC,IAAI,cAAc;AAAA,MAClB,UAAU,cAAc;AAAA,MACxB,oBAAoB,cAAc;AAAA,MAClC,WAAW,cAAc;AAAA,MACzB,UAAU;AAAA;AAAA,MACV;AAAA;AAAA,MACA,aAAa;AAAA;AAAA,IACd;AACA,QAAI,MAAM,uCAAuC,cAAc,oBAAoB;AACnF,YAAQ,QAAQ,IAAI,KAAK,mBAAmB,OAAO;AAAA,EACpD;AACD;AAEA,SAAS,sBACR,SACA,SACA,SACU;AACV,SACE,CAAC,WAAW,QAAQ,SAAS;AAAA,EAC7B,CAAC,WAAW,2BAA2B,OAAO;AAEjD;AAEA,SAAS,2BAA2B,SAAkB;AAErD,SAAO,QAAQ,SAAS,yBAAyB,QAAQ,QAAQ,SAAS,KAAK;AAChF;AAEA,SAAS,mBAAmB,UAAqB,SAA6B;AAC7E,QAAM,gBAAgB,CAAC;AACvB,MAAI,CAAC,SAAS;AACb,UAAM,4BAA4B,SAAS,OAAO,CAAC,MAAM,2BAA2B,CAAC,CAAC;AACtF,QAAI,0BAA0B,SAAS,GAAG;AAEzC,YAAM,2BACL,0BAA0B,0BAA0B,SAAS,CAAC;AAC/D,oBAAc,KAAK;AAAA,QAClB,GAAG;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,MACV,CAAC;AAAA,IACF;AAAA,EACD;AACA,SAAO;AACR;AAEA,SAAS,QAAQ,GAAY;AAC5B,MAAI,KAAK,WAAW,IAAI,KAAK,wBAAwB,CAAC,CAAC;AACxD;AAEA,SAAS,UAAU,GAAY;AAC9B,MAAI,KAAK,WAAW,IAAI,KAAK,wBAAwB,CAAC,GAAG,EAAE,KAAK;AACjE;AAEO,SAAS,wBAAwB,GAAY;AACnD,QAAM,QAAQ,CAAC;AACf,MAAI,EAAE,UAAU;AACf,UAAM,KAAK,EAAE,QAAQ;AAAA,EACtB;AACA,MAAI,EAAE,OAAO;AACZ,UAAM,KAAK,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,MAAM,MAAM;AAAA,EAClD;AACA,MAAI,EAAE,SAAS;AACd,QAAI,MAAM,SAAS,GAAG;AACrB,YAAM,KAAK,GAAG;AAAA,IACf;AACA,UAAM,KAAK,EAAE,OAAO;AAAA,EACrB;AACA,SAAO,MAAM,KAAK,EAAE;AACrB;;;ACxMO,SAAS,cAAc,OAAwB,SAAuC;AAC5F,QAAM,EAAE,UAAU,OAAO,OAAO,MAAM,MAAM,MAAM,IAAI;AACtD,QAAM,cAA2B;AAAA,IAChC;AAAA;AAAA,IACA,IAAI;AAAA,IACJ,SAAS,wBAAwB,KAAK;AAAA;AAAA,IACtC,OAAO,mBAAmB,KAAK;AAAA,IAC/B;AAAA,IACA,OAAO,QAAQ,WAAW,QAAQ,WAAW,CAAC,QAAQ,QAAQ;AAAA,EAC/D;AACA,MAAI,OAAO;AACV,gBAAY,MAAM;AAAA,MACjB,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,MAAM;AAAA,IACP;AAAA,EACD;AACA,SAAO;AACR;AAOO,SAAS,eAAe,OAAwB,SAA0C;AAChG,QAAM,EAAE,UAAU,OAAO,OAAO,MAAM,IAAI;AAC1C,QAAM,iBAAiC;AAAA,IACtC,MAAM,wBAAwB,KAAK;AAAA,EACpC;AACA,MAAI,OAAO;AACV,mBAAe,WAAW;AAAA,MACzB,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,MAAM;AAAA,MACN,UAAU,cAAc,MAAM,MAAM,KAAK;AAAA;AAAA,IAC1C;AAAA,EACD;AACA,MAAI,QAAQ,WAAW,QAAQ,WAAW,CAAC,OAAO;AACjD,mBAAe,SAAS;AAAA,EACzB;AACA,SAAO;AACR;AAKA,SAAS,cAAc,QAAgB,OAAwB;AAC9D,MAAI,CAAC,OAAO;AACX,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,QAAM,YAAY,MAAM,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,WAAW,GAAG,UAAU,CAAC;AACjF,SAAO,YAAY,UAAU,UAAU,UAAU,QAAQ,IAAI,IAAI,CAAC,IAAI;AACvE;AAsBA,SAAS,mBAAmB,OAAwB;AACnD,MAAI,CAAC,OAAO;AACX,WAAO;AAAA,EACR;AACA,SAAO,MACL,MAAM,IAAI,EACV,IAAI,CAAC,SAAU,KAAK,MAAM,QAAQ,IAAI,QAAQ,OAAO,MAAM,KAAK,QAAQ,KAAK,KAAK,CAAE,EACpF,KAAK,IAAI;AACZ;;;ACnFA,eAAsB,gBACrBC,gBACA,KACA,eACA,OACA,SAC+B;AAC/B,MAAI,CAAC,MAAM,IAAI,aAAa,GAAG;AAE9B,QAAI,MAAM,uDAAuD,cAAc,IAAI;AACnF;AAAA,EACD;AACA,QAAM,EAAE,MAAM,QAAQ,QAAQ,IAAI;AAElC,QAAM,WAAW,MAAM,MAAM,aAAa;AAC1C,QAAM,YAAY,MAAM,OAAO,aAAa;AAE5C,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI;AACJ,MAAI;AACH,kBAAc,MAAMA,eAAc,eAAe,SAAS,OAAO;AACjE,UAAM,OAAO,WAAW;AAAA,EACzB,SAAS,GAAP;AACD,UAAM,SAAS,eAAe,CAAC;AAC/B,UAAM,cAAc,GAAG,OAAO;AAAA,EAC/B;AAEA,QAAM,kBAAkB,CAAC,GAAG,OAAO;AAEnC,QAAM,SAAS,QAAQ,UAAU,CAAC,MAAM,EAAE,OAAO,cAAc,KAAK;AACpE,MAAI,SAAS,IAAI;AAChB,UAAM,aAAa,WAAW,WAAW,YAAY,SAAS,GAAG;AACjE,QAAI,CAAC,YAAY;AAChB,UAAI,MAAM,8BAA8B,cAAc,OAAO;AAC7D,sBAAgB,OAAO,QAAQ,CAAC;AAAA,IACjC;AAAA,EACD;AACA,QAAM,QAAQ,QAAQ,UAAU,CAAC,MAAM,EAAE,OAAO,cAAc,EAAE;AAChE,MAAI,QAAQ,IAAI;AACf,UAAM,YAAY,UAAU,UAAU,YAAY,SAAS,IAAI,cAAc,QAAQ;AACrF,QAAI,CAAC,WAAW;AACf,UAAI,MAAM,6BAA6B,cAAc,IAAI;AACzD,sBAAgB,OAAO,OAAO,CAAC;AAE/B,0BAAoB,eAAe,YAAY,SAAS,UAAU,OAAO;AAAA,IAC1E;AAAA,EACD;AAGA,QAAM,yBAAyB,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB;AACnF,MAAI,uBAAuB,SAAS,GAAG;AACtC,QAAI,MAAM,wBAAwB,uBAAuB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG;AACtF,2BAAuB,QAAQ,CAAC,eAAe,OAAO,YAAY,iBAAiB,UAAU,CAAC;AAAA,EAC/F;AACA,MAAI,gBAAgB,SAAS,GAAG;AAC/B,QAAI;AAAA,MACH,uBAAuB,cAAc,cAAc,gBACjD,IAAI,CAAC,MAAM,EAAE,EAAE,EACf,KAAK,IAAI;AAAA,IACZ;AAAA,EACD;AACA,SAAO;AACR;AAEA,SAAS,WAAW,MAAa,MAAsB;AACtD,SAAO,CAAC,YAAY,MAAM,MAAM,MAAM,IAAI;AAC3C;AAEA,SAAS,UAAU,MAAa,MAAa,UAA4B;AACxE,QAAM,SAAS,MAAM;AACrB,QAAM,SAAS,MAAM;AACrB,QAAM,gBAAgB,YAAY,QAAQ,MAAM;AAChD,MAAI,eAAe;AAClB,WAAO;AAAA,EACR;AACA,QAAM,eAAe,YAAY,gBAAgB,MAAM,GAAG,gBAAgB,MAAM,CAAC;AACjF,MAAI,CAAC,iBAAiB,cAAc;AACnC,QAAI;AAAA,MACH,0CAA0C;AAAA,IAC3C;AAAA,EACD;AACA,SAAO,CAAC;AACT;AAEA,SAAS,YAAY,MAAe,MAAwB;AAC3D,MAAI,CAAC,QAAQ,CAAC,MAAM;AACnB,WAAO;AAAA,EACR;AACA,MAAK,CAAC,QAAQ,QAAU,QAAQ,CAAC,MAAO;AACvC,WAAO;AAAA,EACR;AACA,SAAO,SAAS;AACjB;AASA,SAAS,gBAAgB,MAAmC;AAC3D,MAAI,CAAC,MAAM;AACV,WAAO;AAAA,EACR;AACA,SAAO,KAAK,QAAQ,uCAAuC,EAAE;AAC9D;;;ACpHA,SAAS,SAAS,YAAY,YAAY;AAE1C,SAAS,qBAAqB;;;ACH9B,YAAY,YAAY;AAExB,IAAM,SAAS,uBAAO,OAAO,IAAI;AAGjC,IAAM,cAAc;AAEb,SAAS,eAAe,OAAe;AAC7C,MAAI,OAAO,KAAK,GAAG;AAClB,WAAO,OAAO,KAAK;AAAA,EACpB;AAIA,QAAM,MAAa,kBAAW,KAAK;AACnC,MAAI,OAAO,KAAK;AAChB,QAAM,OAAO,OAAO,IAAI,OAAO,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW;AAC9D,SAAO,KAAK,IAAI;AAChB,SAAO;AACR;AAEA,IAAM,eAA0C;AAAA,EAC/C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACN;AAEA,IAAM,YAAY,IAAI,OAAO,IAAI,OAAO,KAAK,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG;AAE3E,SAAS,OAAO,QAAgB;AAC/B,SAAO,OAAO,QAAQ,WAAW,CAAC,MAAM,aAAa,CAAC,CAAC;AACxD;;;AC9BA,OAAO,iBAAiB;AAGxB,OAAO,UAAU;AAQV,SAAS,mDAAsE;AACrF,SAAO;AAAA,IACN,MAAM,EAAE,SAAS,SAAS,GAAG;AAC5B,YAAM,IAAI,IAAI,YAAY,OAAO;AACjC,QAAE,OAAO,MAAM;AACf,aAAO;AAAA,QACN,MAAM,EAAE,SAAS;AAAA,QACjB,KAAK,EAAE,mBAAmB;AAAA,UACzB,QAAQ,WAAW,KAAK,SAAS,QAAQ,IAAI;AAAA,UAC7C,OAAO;AAAA,QACR,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,wBAAwB,SAA0B,QAAwB;AAClF,QAAM,uBAA4C,CAAC;AACnD,QAAM,sBAA2C,CAAC;AAGlD,QAAM,qCAAqC,OAAO,QAAQ,OAAO,CAAC,MAAM,GAAG,gBAAgB;AAC3F,MAAI,mCAAmC,SAAS,GAAG;AAClD,QAAI;AAAA,MACH,wKAAwK,mCACtK,IAAI,CAAC,MAAM,EAAE,IAAI,EACjB,KAAK,IAAI;AAAA,IACZ;AAEA,uCAAmC,QAAQ,CAAC,MAAM;AACjD,UAAI,CAAC,EAAE,KAAK;AACX,UAAE,MAAM,CAAC;AAAA,MACV;AACA,UAAI,EAAE,IAAI,qBAAqB,QAAW;AAEzC,UAAE,IAAI,mBAAmB,EAAE;AAAA,MAC5B,OAAO;AACN,YAAI;AAAA,UACH,uCAAuC,EAAE;AAAA,QAC1C;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAEA,QAAM,2BAAqC,OAAO,QAAQ,OAAO,CAAC,MAAM,GAAG,KAAK,gBAAgB;AAChG,QAAM,UAAoB,CAAC,GAC1B,WAAqB,CAAC;AACvB,aAAW,KAAK,0BAA0B;AACzC,QACC,QAAQ,8BAA8B,QACrC,MAAM,QAAQ,QAAQ,yBAAyB,KAC/C,QAAQ,2BAA2B,SAAS,EAAE,IAAI,GAClD;AACD,cAAQ,KAAK,CAAC;AAAA,IACf,OAAO;AACN,eAAS,KAAK,CAAC;AAAA,IAChB;AAAA,EACD;AACA,MAAI,QAAQ,SAAS,GAAG;AACvB,QAAI;AAAA,MACH,gEAAgE,QAC9D,IAAI,CAAC,MAAM,EAAE,IAAI,EACjB,KAAK,IAAI;AAAA,IACZ;AAAA,EACD;AACA,MAAI,SAAS,SAAS,GAAG;AACxB,QAAI;AAAA,MACH,8DAA8D,SAC5D,IAAI,CAAC,MAAM,EAAE,IAAI,EACjB,KAAK,IAAI;AAAA,IACZ;AACA,wBAAoB,KAAK,GAAG,yBAAyB,IAAI,CAAC,MAAM,EAAE,IAAI,gBAAgB,CAAC;AAAA,EACxF;AAEA,SAAO,EAAE,sBAAsB,oBAAoB;AACpD;AAEO,SAAS,sBAAsB,SAA0B,QAAwB;AACvF,QAAM,EAAE,sBAAsB,oBAAoB,IAAI,wBAAwB,SAAS,MAAM;AAC7F,MAAI,qBAAqB,SAAS,KAAK,oBAAoB,SAAS,GAAG;AACtE,QAAI,CAAC,QAAQ,YAAY;AACxB,cAAQ,aAAa,CAAC,GAAG,sBAAsB,GAAG,mBAAmB;AAAA,IACtE,WAAW,MAAM,QAAQ,QAAQ,UAAU,GAAG;AAC7C,cAAQ,WAAW,QAAQ,GAAG,oBAAoB;AAClD,cAAQ,WAAW,KAAK,GAAG,mBAAmB;AAAA,IAC/C,OAAO;AACN,cAAQ,aAAa,CAAC,GAAG,sBAAsB,QAAQ,YAAY,GAAG,mBAAmB;AAAA,IAC1F;AAAA,EACD;AACD;;;ACrGA,OAAOC,WAAU;AAOV,SAAS,qBAAqB,KAA6B,UAAkB;AACnF,MAAI,KAAK,SAAS;AACjB,QAAI,UAAU,IAAI,QAAQ,IAAI,CAAC,MAAM;AACpC,UAAIA,MAAK,WAAW,CAAC,GAAG;AACvB,cAAM,WAAWA,MAAK,SAAS,UAAU,CAAC;AAE1C,eAAO,aAAa,KAAKA,MAAK,SAAS,QAAQ,IAAI;AAAA,MACpD,OAAO;AACN,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAAA,EACF;AACD;;;AHNA,IAAM,eAAe;AAIrB,IAAM,uBAAuB,CAAC,YAAsB;AACnD,MAAI;AACJ,QAAM,uBAAuB,iDAAiD;AAC9E,SAAO,eAAeC,eACrB,eACA,MACA,SACuB;AACvB,UAAM,EAAE,UAAU,oBAAoB,OAAO,KAAK,IAAI,IAAI;AAC1D,UAAM,EAAE,UAAU,KAAK,IAAI;AAC3B,UAAM,eAAe,CAAC;AAEtB,QAAI,QAAQ,OAAO;AAClB,UAAI,QAAQ,SAAS;AACpB,YAAI,CAAC,OAAO;AAGX,kBAAQ,QAAQ,MAAM,gBAAgB,GAAG,MAAM,QAAQ,iBAAiB;AAAA,YACvE,eAAe,MAAM;AAAA,UACtB,CAAC;AAAA,QACF;AAAA,MACD,OAAO;AAEN,YAAI,OAAO,CAAC,OAAO;AAClB,kBAAQ,QAAQ,MAAM,gBAAgB,aAAa;AAAA,QACpD;AAEA,YAAI,CAAC,OAAO,OAAO;AAClB,gBAAM,OAAO;AACb,kBAAQ;AAAA,QACT;AAAA,MAID;AAAA,IACD;AAEA,UAAM,iBAAiC;AAAA,MACtC,GAAG,QAAQ;AAAA,MACX,UAAU;AAAA;AAAA,MACV,UAAU,MAAM,QAAQ;AAAA,MACxB,QAAQ;AAAA,IACT;AACA,QAAI,QAAQ,OAAO,QAAQ,SAAS;AACnC,YAAM,OAAO,KAAK,eAAe,kBAAkB;AACnD,UAAI,MAAM,mBAAmB,YAAY,oBAAoB;AAC7D,qBAAe,UAAU,MAAM;AAAA,IAChC;AACA,QAAI,OAAO,eAAe,oBAAoB,OAAO;AACpD,UAAI,OAAO,eAAe,oBAAoB,UAAU;AACvD,uBAAe,gBAAgB,MAAM;AAAA,MACtC,OAAO;AACN,uBAAe,kBAAkB,EAAE,IAAI,MAAM,KAAK,MAAM;AAAA,MACzD;AAAA,IACD;AAEA,QAAI;AACJ,QAAI,gBAAgB,QAAQ;AAC5B,QAAI,CAAC,QAAQ,WAAW,QAAQ,WAAW,QAAQ,KAAK;AAEvD,UAAI,CAAC,MAAM,QAAQ,aAAa,GAAG;AAClC,wBAAgB,gBACb,CAAC,eAAe,oBAAoB,IACpC,CAAC,oBAAoB;AAAA,MACzB,OAAO;AACN,wBAAgB,cAAc,OAAO,oBAAoB;AAAA,MAC1D;AAAA,IACD;AACA,QAAI,eAAe;AAClB,UAAI;AACH,uBAAe,MAAM,WAAW,MAAM,eAAe,EAAE,SAAS,CAAC;AAAA,MAClE,SAAS,GAAP;AACD,UAAE,UAAU,6BAA6B,WAAW,EAAE,UAAU,MAAM,EAAE,YAAY;AACpF,cAAM;AAAA,MACP;AAEA,UAAI,aAAa;AAAc,qBAAa,KAAK,GAAG,aAAa,YAAY;AAC7E,UAAI,aAAa;AAAK,uBAAe,YAAY,aAAa;AAAA,IAC/D;AACA,QAAI,OAAO,cAAc,QAAQ,UAAU;AAC1C,2BAAqB,cAAc,KAAK,QAAQ;AAAA,IACjD;AACA,QAAI,OAAO,cAAc,MAAM,SAAS,gBAAgB;AAEvD,aAAO,EAAE,cAAc,gBAAgB,EAAE,KAAK,EAAE;AAAA,IACjD;AACA,UAAM,YAAY,eAAe,aAAa,OAAO;AACrD,UAAM,wBAAwB,MAAM,QAAQ,cAAc,wBAAwB;AAAA,MACjF;AAAA,MACA,MAAM;AAAA,MACN;AAAA,IACD,CAAC;AACD,QAAI,yBAAyB,IAAI,MAAM,SAAS;AAC/C,UAAI;AAAA,QACH,gCAAgC,aAAa,KAAK,UAAU,qBAAqB;AAAA,MAClF;AAAA,IACD;AACA,UAAM,sBAAsB,wBACzB;AAAA,MACA,GAAG;AAAA,MACH,GAAG;AAAA,IACH,IACA;AAEH,UAAM,UAAU,OAAO,MAAM,QAAQ;AACrC,UAAM,WAAW,QAAQ,WAAW,mBAAmB;AAKvD,aAAS,GAAG,OAAO,SAAS,GAAG,KAAK;AAAA,MACnC;AAAA,MACA;AAAA,IACD;AACA,QAAI,SAAS;AACZ,cAAQ;AAAA,IACT;AACA,yBAAqB,SAAS,IAAI,KAAK,QAAQ;AAC/C,yBAAqB,SAAS,KAAK,KAAK,QAAQ;AAChD,QAAI,CAAC,KAAK;AAET,YAAM,SAAS,SAAS,KAAK,MAAM,KAAK,EAAE,SAAS;AAEnD,UAAI,WAAW,QAAQ;AAEtB,iBAAS,GAAG,QAAQ;AAAA,SAAY,KAAK,UAAU,KAAK;AAAA;AAAA,MACrD;AAGA,UAAI,CAAC,OAAO,SAAS;AACpB,iBAAS,GAAG,OAAO,QAAQ;AAAA,UAC1B,IAAI;AAAA,UACJ,cAAc,SAAS,GAAG;AAAA;AAAA,UAE1B,YAAY,EAAE,GAAG,QAAQ,KAAK,WAAW,QAAQ,KAAK,cAAc,QAAQ,OAAO;AAAA,UACnF;AAAA,UACA,cAAc;AAAA,UACd,gBAAgB;AAAA,QACjB,CAAC;AAAA,MACF;AAAA,IACD;AAEA,aAAS,GAAG,eAAe;AAE3B,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAM,KAAK,MAAM,YAAY,IAAI,CAAC,KAAK;AAAA;AAAA,MAEvC;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc,gBAAgB,EAAE,KAAK;AAAA,IACtC;AAAA,EACD;AACD;AACA,SAAS,aAAa,SAA0B;AAC/C,QAAM,eAAe,QAAQ,QAAQ,SAAS,QAAQ,WAAW,CAAC,QAAQ;AAC1E,MAAI,cAAc;AAEjB,UAAM,SAAS,SAAS,KAAK;AAE7B,UAAM,UAAU,SAAS,KAAK;AAC9B,WAAO,cAAc;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,EAAE,WAAW,MAAM,GAAI,QAAQ,IAAe;AAAA,IAC3D,CAAC;AAAA,EACF;AACD;AAEO,SAAS,oBAAoB,SAA0B;AAC7D,QAAM,UAAU,aAAa,OAAO;AACpC,SAAO,qBAAqB,OAAO;AACpC;;;AI/LA,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAC9B,YAAY,QAAQ;AAKpB,IAAM,iBAAiB;AACvB,IAAM,aAAa,QAAQ,aAAa;AAExC,IAAM,6BAA6B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AACA,IAAM,8BAA8B,CAAC,SAAS,UAAU,KAAK;AA8B7D,SAAS,QAAQ,IAAY;AAC5B,QAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;AAC7B,QAAM,WAAW,MAAM,CAAC;AACxB,QAAM,WAAW,MAAM,CAAC;AACxB,SAAO,EAAE,UAAU,SAAS;AAC7B;AAEA,SAAS,qBACR,IACA,UACA,UACA,MACA,WACA,KAC4B;AAC5B,QAAM,QAAQ,kBAAkB,QAAQ;AACxC,QAAM,cAAc,CAAC,EAAE,MAAM,OAAO,MAAM;AAC1C,MAAI,MAAM,OAAQ,CAAC,MAAM,UAAU,aAAc;AAEhD;AAAA,EACD;AACA,QAAM,MAAM;AACZ,QAAM,qBAAqB,UAAU,UAAU,IAAI;AACnD,QAAM,QAAQ,sBAAsB,UAAU,MAAM,OAAO;AAE3D,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEA,SAAS,sBAAsB,UAAkB,MAAc,MAAwB;AACtF,QAAM,QAAQ,CAAC,UAAU,QAAQ,MAAM;AACvC,MAAI,SAAS,SAAS;AACrB,UAAM,KAAK,UAAU;AAAA,EACtB;AACA,MAAI,aAAa,UAAU,IAAI,GAAG;AACjC,eAAW,OAAO;AAAA,EACnB,WAAW,SAAS,WAAW,cAAc,GAAG;AAC/C,eAAW,aACR,SAAS,MAAM,eAAe,MAAM,IACpC,SAAS,MAAM,eAAe,SAAS,CAAC;AAAA,EAC5C;AAEA,SAAO,GAAG,YAAY,MAAM,KAAK,GAAG;AACrC;AAEA,SAAS,kBAAkB,UAAgC;AAC1D,QAAM,QAAQ,OAAO,YAAY,IAAI,gBAAgB,QAAQ,CAAC;AAC9D,aAAW,OAAO,OAAO;AACxB,QAAI,MAAM,GAAG,MAAM,IAAI;AAEtB,YAAM,GAAG,IAAI;AAAA,IACd;AAAA,EACD;AACA,QAAM,kBAAkB,MAAM;AAC9B,MAAI,iBAAiB;AACpB,QAAI,GAAG,MAAM,OAAO,MAAM,WAAW,4BAA4B,SAAS,MAAM,IAAI,IAAI;AACvF,YAAM,IAAI;AAAA,QACT,oCAAoC,wFAAwF,4BAA4B;AAAA,UACvJ;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,QAAI;AACH,YAAM,SAAS,KAAK,MAAM,eAAe;AACzC,YAAM,UAAU,OAAO,KAAK,MAAM,EAAE;AAAA,QACnC,CAAC,QAAQ,CAAC,2BAA2B,SAAS,GAAG;AAAA,MAClD;AACA,UAAI,QAAQ,QAAQ;AACnB,cAAM,IAAI;AAAA,UACT,oCAAoC,aAAa,QAAQ;AAAA,YACxD;AAAA,UACD,iBAAiB,2BAA2B,KAAK,IAAI;AAAA,QACtD;AAAA,MACD;AACA,YAAM,kBAAkB;AAAA,IACzB,SAAS,GAAP;AACD,UAAI,MAAM,iDAAiD,CAAC;AAC5D,YAAM;AAAA,IACP;AAAA,EACD;AAEA,SAAO;AACR;AAQA,SAAS,UAAU,UAAkB,gBAAwB;AAC5D,SAAO,UAAU,cAAc,QAAQ,GAAG,cAAc;AACzD;AAEA,SAAS,aAAa,UAAkB,MAAc;AACrD,MAAI,SAAS,WAAW,cAAc,GAAG;AACxC,WAAO;AAAA,EACR;AACA,SAAU,cAAW,OAAO,QAAQ;AACrC;AAEA,SAAS,UAAU,oBAA4B,gBAAwB;AACtE,SAAO,mBAAmB,WAAW,iBAAiB,GAAG,IACtD,mBAAmB,MAAM,eAAe,MAAM,IAC9C;AACJ;AAEA,SAAS,YACR,SACA,SACA,YACgC;AAChC,QAAM,eAAe,aAAa,SAAS,OAAO;AAClD,SAAO,CAAC,aAAa,aAAa,QAAQ,KAAK,WAAW,KAAK,CAAC,QAAQ,SAAS,SAAS,GAAG,CAAC;AAC/F;AAGO,SAAS,cAAc,SAAoC;AACjE,QAAM,EAAE,SAAS,SAAS,YAAY,KAAK,IAAI;AAC/C,QAAM,iBAAiB,cAAc,IAAI;AACzC,QAAM,SAAS,YAAY,SAAS,SAAS,UAAW;AACxD,SAAO,CAAC,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM;AAC3C,UAAM,EAAE,UAAU,SAAS,IAAI,QAAQ,EAAE;AACzC,QAAI,OAAO,QAAQ,GAAG;AACrB,aAAO,qBAAqB,IAAI,UAAU,UAAU,gBAAgB,WAAW,GAAG;AAAA,IACnF;AAAA,EACD;AACD;;;ACzLA,SAA+D,iBAAAC,sBAAqB;;;ACDpF,SAAS,qBAAqB;AAC9B,OAAOC,WAAU;AACjB,OAAOC,SAAQ;AACf,SAAS,qBAAqB;AAQ9B,IAAI;AAEG,IAAM,yBAAyB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACD;AAKA,IAAM,uBAAuB,IAAI;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACD;AAEA,eAAsB,iBACrB,YACA,eAC8C;AAC9C,MAAI,eAAe,eAAe,OAAO;AACxC;AAAA,EACD;AACA,QAAM,aAAa,iBAAiB,YAAY,aAAa;AAC7D,MAAI,YAAY;AACf,QAAI;AAEJ,QAAI,WAAW,SAAS,KAAK,KAAK,WAAW,SAAS,MAAM,GAAG;AAC9D,UAAI;AACH,cAAM,SAAS,MAAM;AAAA,UACpB,cAAc,UAAU,EAAE;AAAA,UAC1BC,IAAG,SAAS,UAAU,EAAE;AAAA,QACzB;AACA,YAAI,UAAU,MAAM;AACnB,iBAAO;AAAA,YACN,GAAG;AAAA,YACH;AAAA,UACD;AAAA,QACD,OAAO;AACN,gBAAM,IAAI,MAAM,qBAAqB,YAAY;AAAA,QAClD;AAAA,MACD,SAAS,GAAP;AACD,YAAI,MAAM,2BAA2B,cAAc,CAAC;AACpD,cAAM;AAAA,MACP;AAAA,IACD;AAEA,QAAI,CAAC,WAAW,SAAS,MAAM,GAAG;AACjC,UAAI;AAEH,cAAM,WAAW,YAAY,MACzB,4BAAe,cAAc,YAAY,GAAG,KAC7C;AAGH,eAAO,SAAS,MAAM,SAAS,QAAQ,UAAU,CAAC;AAClD,cAAM,SAAS,SAAS,UAAU;AAClC,YAAI,UAAU,MAAM;AACnB,iBAAO;AAAA,YACN,GAAG;AAAA,YACH;AAAA,UACD;AAAA,QACD,OAAO;AACN,gBAAM,IAAI,MAAM,qBAAqB,YAAY;AAAA,QAClD;AAAA,MACD,SAAS,GAAP;AACD,YAAI,MAAM,4BAA4B,cAAc,CAAC;AACrD,YAAI,CAAC,KAAK;AACT,gBAAM;AAAA,QACP;AAAA,MACD;AAAA,IACD;AAEA,UAAM;AAAA,EACP;AACD;AAEA,SAAS,iBAAiB,YAAyB,eAAkC;AACpF,QAAM,OAAO,YAAY,QAAQ,QAAQ,IAAI;AAC7C,MAAI,eAAe,YAAY;AAC9B,UAAM,cAAcC,MAAK,WAAW,cAAc,UAAU,IACzD,cAAc,aACdA,MAAK,QAAQ,MAAM,cAAc,UAAU;AAC9C,QAAI,CAACD,IAAG,WAAW,WAAW,GAAG;AAChC,YAAM,IAAI,MAAM,qCAAqC,cAAc;AAAA,IACpE;AACA,WAAO;AAAA,EACR,OAAO;AACN,UAAM,2BAA2B,uBAC/B,IAAI,CAAC,cAAcC,MAAK,QAAQ,MAAM,SAAS,CAAC,EAChD,OAAO,CAAC,SAASD,IAAG,WAAW,IAAI,CAAC;AACtC,QAAI,yBAAyB,WAAW,GAAG;AAC1C,UAAI,MAAM,6BAA6B,MAAM;AAC7C;AAAA,IACD,WAAW,yBAAyB,SAAS,GAAG;AAC/C,UAAI;AAAA,QACH,iDAAiD,yBAAyB,CAAC;AAAA,QAC3E;AAAA,MACD;AAAA,IACD;AACA,WAAO,yBAAyB,CAAC;AAAA,EAClC;AACD;;;AClHO,IAAM,2BAA2B,CAAC,UAAU,eAAe,QAAQ;AAEnE,IAAM,6BAA6B,CAAC,QAAQ;AAE5C,IAAM,iBAAiB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,qBAAqB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,2BAA2B,CAAC,QAAQ;;;AFAjD,OAAOE,WAAU;;;AGrBjB,SAAS,oBAAoB;AAC7B,SAAS,WAAAC,UAAS,cAAAC,mBAAkB;AAW7B,IAAM,gCAAgC;AAEtC,SAAS,oBAAoB,SAAyC;AAC5E,SAAO;AAAA,IACN,MAAM;AAAA,IACN,MAAM,OAAO;AAGZ,UAAI,MAAM,eAAe,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,eAAe;AAAG;AAE3E,YAAM,oBAAoB,QAAQ,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AACtF,YAAM,eAAe,IAAI,OAAO,SAAS,iBAAiB,KAAK,GAAG,IAAI,YAAY;AAClF,UAAI;AACJ,YAAM,QAAQ,MAAM;AACnB,0BAAkB,QAAQ,OAAO,gBAAgB,uBAAuB;AAAA,UACvE,WAAW,CAAC,MAAM,EAAE,MAAM,SAAS;AAAA,QACpC,CAAC;AAAA,MACF,CAAC;AACD,YAAM,OAAO,EAAE,QAAQ,aAAa,GAAG,OAAO,EAAE,MAAM,SAAS,MAAM;AACpE,cAAM,OAAO,aAAa,UAAU,MAAM;AAC1C,YAAI;AACH,gBAAM,WAAW,MAAM,cAAc,SAAS,EAAE,UAAU,KAAK,GAAG,eAAe;AACjF,iBAAO,EAAE,SAAS;AAAA,QACnB,SAAS,GAAP;AACD,iBAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,EAAE;AAAA,QAC/C;AAAA,MACD,CAAC;AACD,YAAM,MAAM,MAAM;AACjB,yBAAiB,OAAO;AAAA,MACzB,CAAC;AAAA,IACF;AAAA,EACD;AACD;AAEA,eAAe,cACd,SACA,EAAE,UAAU,KAAK,GACjB,iBACkB;AAClB,MAAI,MAAM,QAAQ,gBAAgB;AAClC,MAAI,QAAQ,QAAQ;AAEnB,UAAM;AAAA,EACP;AACA,QAAM,iBAAiC;AAAA,IACtC,GAAG,QAAQ;AAAA,IACX;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,UAAU;AAAA,EACX;AAEA,MAAI;AAEJ,MAAI,QAAQ,YAAY;AACvB,QAAI;AACH,qBAAe,MAAMC,YAAW,MAAM,QAAQ,YAAY,EAAE,SAAS,CAAC;AAAA,IACvE,SAAS,GAAP;AACD,QAAE,UAAU,6BAA6B,WAAW,EAAE,UAAU,MAAM,EAAE,YAAY;AACpF,YAAM;AAAA,IACP;AACA,QAAI,aAAa;AAAK,qBAAe,YAAY,aAAa;AAAA,EAC/D;AAEA,QAAM,YAAY,eAAe,aAAa,OAAO;AAErD,QAAM,wBAAwB,MAAM,QAAQ,cAAc,wBAAwB;AAAA,IACjF;AAAA,IACA,MAAM;AAAA,IACN;AAAA,EACD,CAAC;AAED,MAAI,yBAAyB,IAAI,MAAM,SAAS;AAC/C,QAAI,MAAM,gCAAgC,aAAa,KAAK,UAAU,qBAAqB,GAAG;AAAA,EAC/F;AAEA,QAAM,sBAAsB,wBACzB;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,EACH,IACA;AACH,QAAM,UAAU,iBAAiB,MAAM,QAAQ;AAC/C,QAAM,WAAWC,SAAQ,WAAW,mBAAmB;AACvD,MAAI,SAAS;AACZ,YAAQ;AAAA,EACT;AACA,SAAO,SAAS,GAAG,OAAO,0BAA0B,SAAS,GAAG,IAAI,MAAM;AAC3E;;;AH5EA,OAAO,eAAe;AACtB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEM;;;AIhCP,OAAOC,WAAU;AACjB,OAAOC,SAAQ;AAEf,SAAS,0BAA0B;AAOnC,eAAsB,sBACrB,KACA,QACsC;AACtC,QAAM,cAAc,MAAM,mBAAmB,KAAK,MAAM;AACxD,MAAI,CAAC;AAAa,WAAO;AACzB,MAAI;AACH,WAAO;AAAA,MACN,KAAKD,MAAK,QAAQ,WAAW;AAAA,MAC7B,KAAK,KAAK,MAAM,MAAMC,IAAG,SAAS,aAAa,OAAO,CAAC;AAAA,IACxD;AAAA,EACD,QAAE;AACD,WAAO;AAAA,EACR;AACD;AAEA,IAAM,2CAA2C;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AACD;AACA,IAAM,uCAAuC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAUO,SAAS,8BAA8B,YAA6B;AAC1E,SACC,yCAAyC,SAAS,UAAU,KAC5D,qCAAqC;AAAA,IACpC,CAACC,YACAA,QAAO,WAAW,GAAG,IAClB,WAAW,WAAWA,OAAM,IAC5B,WAAW,UAAU,WAAW,YAAY,GAAG,IAAI,CAAC,EAAE,WAAWA,OAAM;AAAA;AAAA,EAC5E;AAEF;;;AClFA,SAAS,8BAA8B;AACvC,SAAS,gBAAAC,qBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,mBAAmB;AAC5B,SAAS,iBAAAC,sBAAqB;AAmC9B,IAAM,2BAA8C;AAAA;AAAA,EAEnD,eAAe,CAAC,GAAG,QAAQ,MAAM,EAAE,kBAAkB,OAAO,EAAE,MAAM,SAAS;AAAA;AAAA,EAE7E,WAAW,MAAM;AAClB;AAEA,SAAS,cAAc,GAAW;AAEjC,SAAO,IAAI,MAAM,GAAG,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,KAAM,QAAQ,CAAC;AAC/D;AAEA,SAAS,mBAAmB,UAA0B;AACrD,QAAM,YAAY,SAAS,IAAI,CAAC,YAAY;AAC3C,UAAM,WAAW,QAAQ;AACzB,UAAM,MAAM,WAAW,QAAQ;AAC/B,WAAO,CAAC,QAAQ,KAAK,GAAG,QAAQ,SAAS,cAAc,QAAQ,GAAG,cAAc,GAAG,CAAC;AAAA,EACrF,CAAC;AACD,YAAU,QAAQ,CAAC,WAAW,SAAS,QAAQ,KAAK,CAAC;AACrD,QAAM,eAAe,UAAU;AAAA,IAC9B,CAAC,QAAkB,QAAQ;AAC1B,eAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACpC,cAAM,OAAO,IAAI,CAAC;AAClB,YAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;AAC5B,iBAAO,CAAC,IAAI,KAAK;AAAA,QAClB;AAAA,MACD;AACA,aAAO;AAAA,IACR;AAAA,IACA,UAAU,CAAC,EAAE,IAAI,MAAM,CAAC;AAAA,EACzB;AAEA,QAAM,QAAQ,UACZ;AAAA,IAAI,CAAC,QACL,IACE,IAAI,CAAC,MAAc,MAAc;AACjC,UAAI,MAAM,GAAG;AACZ,eAAO,KAAK,OAAO,aAAa,CAAC,GAAG,GAAG;AAAA,MACxC,OAAO;AACN,eAAO,KAAK,SAAS,aAAa,CAAC,GAAG,GAAG;AAAA,MAC1C;AAAA,IACD,CAAC,EACA,KAAK,GAAI;AAAA,EACZ,EACC,KAAK,IAAI;AACX,SAAO;AACR;AAQA,eAAe,uBAAuB,MAAuD;AAC5F,MAAI,OAAO;AACX,MAAIC,SAAO,MAAM,uBAAuB,MAAM,CAAC,YAAY;AAC1D,UAAM,MAAM,KAAK,MAAMF,cAAa,SAAS,OAAO,CAAC;AACrD,QAAI,IAAI,QAAQ,MAAM;AACrB,aAAO,IAAI;AACX,aAAO;AAAA,IACR;AACA,WAAO;AAAA,EACR,CAAC;AAED,EAAAE,SAAOD,eAAc,QAAQC,UAAQ,IAAI,CAAC,IAAI;AAC9C,SAAO,EAAE,MAAM,MAAAA,OAAK;AACrB;AAEO,IAAM,wBAAN,MAA4B;AAAA,EAA5B;AAEN;AAAA,SAAQ,YAA8C,CAAC;AACvD,SAAQ,eAAiC,CAAC;AAAA;AAAA,EAC1C,gBAAgB,MAAc,MAAmC;AAChE,UAAM,UAAU;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,IACJ;AACA,UAAM,QAAgB,CAAC;AACvB,UAAM,kBAAkB,YAAY,IAAI;AACxC,UAAM,QAAQ;AACd,QAAI,oBAAoB;AACxB,UAAM,aAA6B;AAAA,MAClC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,MAAM,MAAM;AACX,YAAI,WAAW,UAAU;AACxB,gBAAM,IAAI,MAAM,qCAAqC;AAAA,QACtD;AACA,eAAOD,eAAc,IAAI;AACzB,cAAM,QAAQ,YAAY,IAAI;AAC9B,cAAM,OAAa,EAAE,MAAM,OAAO,KAAK,MAAM;AAC7C,eAAO,MAAM;AACZ,gBAAM,MAAM,YAAY,IAAI;AAC5B,eAAK,MAAM;AACX,gBAAM,KAAK,IAAI;AACf,cAAI,CAAC,qBAAqB,QAAQ,cAAc,YAAY,GAAG,GAAG;AACjE,gCAAoB;AACpB,gBAAI,KAAK,GAAG,sBAAsB;AAAA,UACnC;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM,SAAS;AACd,cAAM,MAAM,QAAQ,UAAU;AAAA,MAC/B;AAAA,IACD;AACA,UAAM,aAAa,KAAK,UAAU;AAClC,WAAO;AAAA,EACR;AAAA,EAEA,MAAa,YAAY;AACxB,UAAM,QAAQ,IAAI,KAAK,aAAa,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAAA,EAC3D;AAAA,EAEA,MAAc,QAAQ,YAA4B;AACjD,QAAI;AACH,iBAAW,WAAW;AACtB,YAAM,MAAM,YAAY,IAAI;AAC5B,iBAAW,WAAW,MAAM,WAAW;AACvC,YAAM,YAAY,WAAW,QAAQ,UAAU,UAAU;AACzD,UAAI,WAAW;AACd,cAAM,KAAK,sBAAsB,UAAU;AAC3C,YAAI,KAAK,GAAG,WAAW,cAAc,mBAAmB,WAAW,YAAa,CAAC;AAAA,MAClF;AAEA,YAAM,QAAQ,KAAK,aAAa,QAAQ,UAAU;AAClD,WAAK,aAAa,OAAO,OAAO,CAAC;AACjC,iBAAW,MAAM,SAAS;AAC1B,iBAAW,QAAQ,CAAC;AACpB,UAAI,WAAW,cAAc;AAC5B,mBAAW,aAAa,SAAS;AACjC,mBAAW,eAAe,CAAC;AAAA,MAC5B;AACA,iBAAW,QAAQ,MAAM,MAAM;AAAA,MAAC;AAChC,iBAAW,SAAS,MAAM;AAAA,MAAC;AAAA,IAC5B,SAAS,GAAP;AAED,UAAI,MAAM,KAAK,8BAA8B,WAAW,QAAQ,CAAC;AAAA,IAClE;AAAA,EACD;AAAA,EAEA,MAAc,sBAAsB,YAA4B;AAC/D,UAAM,QAAQ,WAAW;AACzB,eAAW,QAAQ,OAAO;AACzB,UAAI,MAAM,KAAK,UAAU,KAAK,CAAC,MAAM,KAAK,KAAK,WAAW,EAAE,IAAI,CAAC;AACjE,UAAI,CAAC,KAAK;AACT,cAAM,MAAM,uBAAuB,KAAK,IAAI;AAC5C,aAAK,UAAU,KAAK,GAAG;AAAA,MACxB;AACA,WAAK,MAAM,IAAI;AAAA,IAChB;AAGA,UAAM,UAA2C,CAAC;AAClD,UAAM,QAAQ,CAAC,SAAS;AACvB,YAAM,MAAM,KAAK;AACjB,UAAI,QAAQ,QAAQ,GAAG;AACvB,UAAI,CAAC,OAAO;AACX,gBAAQ,QAAQ,GAAG,IAAI;AAAA,UACtB,OAAO;AAAA,UACP,UAAU;AAAA,UACV;AAAA,QACD;AAAA,MACD;AACA,YAAM,SAAS;AACf,YAAM,YAAY,KAAK,MAAM,KAAK;AAAA,IACnC,CAAC;AAED,UAAM,SAAS,OAAO,OAAO,OAAO;AACpC,WAAO,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAC7C,eAAW,eAAe;AAAA,EAC3B;AACD;;;ALnLA,IAAM,uBAAuB,oBAAI,IAAI;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,IAAM,mBAAmB,oBAAI,IAAI,CAAC,cAAc,mBAAmB,cAAc,QAAQ,CAAC;AAE1F,IAAM,uBAAuB,oBAAI,IAAI;AAAA,EACpC;AAAA,EACA;AAAA;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACJ,CAAC;AAEM,SAAS,sBAAsB,eAAkC;AACvE,QAAM,cAAc,OAAO,KAAK,iBAAiB,CAAC,CAAC,EAAE;AAAA,IACpD,CAAC,QAAQ,CAAC,qBAAqB,IAAI,GAAG;AAAA,EACvC;AACA,MAAI,YAAY,QAAQ;AACvB,QAAI,KAAK,2BAA2B,YAAY,KAAK,IAAI,uBAAuB,aAAa;AAAA,EAC9F;AACD;AAEA,SAAS,qBAAqB,QAA+D;AAC5F,MAAI,CAAC,QAAQ;AACZ;AAAA,EACD;AACA,QAAM,qBAAqB,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,qBAAqB,IAAI,GAAG,CAAC;AAC5F,MAAI,mBAAmB,SAAS,GAAG;AAClC,UAAM,IAAI;AAAA,MACT,yFAAyF,mBAAmB;AAAA,QAC3G;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,MAAI,CAAC,OAAO,YAAY;AACvB,WAAO;AAAA,EACR;AACA,QAAM,gBAAgB,OAAO;AAC7B,QAAM,mBAAmB,OAAO,KAAK,aAAa;AAElD,QAAM,6BAA6B,iBAAiB,OAAO,CAAC,QAAQ,iBAAiB,IAAI,GAAG,CAAC;AAC7F,MAAI,2BAA2B,SAAS,GAAG;AAC1C,UAAM,IAAI;AAAA,MACT,4FAA4F,2BAA2B;AAAA,QACtH;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,QAAM,mBAAmB,iBAAiB;AAAA,IAAO,CAAC,QACjD,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG;AAAA,EACjD;AACA,MAAI,iBAAiB,SAAS,GAAG;AAChC,UAAM,IAAI;AAAA,MACT,8HAA8H,iBAAiB;AAAA,QAC9I;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,QAAM,uBAAuB,iBAAiB,OAAO,CAAC,QAAQ,CAAC,qBAAqB,IAAI,GAAG,CAAC;AAC5F,MAAI,qBAAqB,SAAS,GAAG;AACpC,QAAI;AAAA,MACH,4EAA4E,qBAAqB;AAAA,QAChG;AAAA,MACD;AAAA,IACD;AACA,yBAAqB,QAAQ,CAAC,iBAAiB;AAE9C,aAAO,cAAc,YAAY;AAAA,IAClC,CAAC;AAAA,EACF;AAEA,QAAM,SAAkB;AAAA,IACvB,GAAG;AAAA,IACH,GAAG;AAAA,EACJ;AAEA,SAAO,OAAO;AAEd,SAAO;AACR;AAGA,eAAsB,kBACrB,gBAAkC,CAAC,GACnC,gBACA,SAC8B;AAC9B,QAAM,6BAAyC;AAAA,IAC9C,GAAG;AAAA,IACH,MAAM,gBAAgB,cAAc;AAAA,EACrC;AACA,QAAM,UAAU,QAAQ,YAAY;AACpC,QAAM,iBAAmC;AAAA,IACxC,YAAY,CAAC,SAAS;AAAA,IACtB,SAAS;AAAA,IACT,0BAA0B,CAAC;AAAA,EAC5B;AACA,QAAM,eAAe;AAAA,IACpB,MAAM,iBAAiB,4BAA4B,aAAa;AAAA,EACjE;AAEA,QAAM,eAA4C;AAAA,IACjD,MAAM,2BAA2B;AAAA,IACjC;AAAA,IACA,SAAS,QAAQ,YAAY;AAAA,IAC7B,SAAS,QAAQ,IAAI,SAAS;AAAA,EAC/B;AACA,QAAM,SAAS;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,MAAI,cAAc,YAAY;AAC7B,WAAO,aAAa,aAAa;AAAA,EAClC;AACA,SAAO;AACR;AAEA,SAAS,gBAAmB,SAAwC;AACnE,MAAI,SAAqB,CAAC;AAC1B,aAAW,UAAU,QAAQ,OAAO,CAAC,MAAM,KAAK,IAAI,GAAG;AACtD,aAAS,UAAa,QAAQ,QAAS;AAAA;AAAA,MAEtC,YAAY,CAAC,QAAe,WAAkB,UAAU;AAAA,IACzD,CAAC;AAAA,EACF;AACA,SAAO;AACR;AAIO,SAAS,eACfE,oBACA,YACkB;AAClB,QAAM,MAAMA,mBAAkB,UAAU,aAAa;AACrD,QAAM,iBAAmC;AAAA,IACxC,KAAK,WAAW,eACb,QACA;AAAA,MACA,WAAW,QAAQ;AAAA,MACnB,eAAe,CAAC,CAAC,WAAW,cAAc;AAAA,IAC1C;AAAA,IACH,iBAAiB;AAAA,MAChB;AAAA,MACA,KAAK,CAAC,WAAW;AAAA,IAClB;AAAA,EACD;AACA,QAAM,eAAyC;AAAA,IAC9C,MAAM,WAAW;AAAA,IACjB,cAAc,WAAW;AAAA,EAC1B;AACA,QAAM,SAAS,aAA8B,gBAAgBA,oBAAmB,YAAY;AAE5F,uBAAqB,MAAM;AAC3B,0BAAwB,MAAM;AAC9B,sBAAoB,MAAM;AAC1B,wBAAsB,QAAQ,UAAU;AACxC,uBAAqB,MAAM;AAC3B,8BAA4B,MAAM;AAElC,QAAM,iBAAiB,CAAC,QAAW,MAAM,EAAE,SAAS,WAAW,QAAQ;AACvE,QAAM,sBAAsB,OAAO,cAAc;AACjD,QAAM,eACL,wBAAwB,QAAQ,yBAAyB,OAAO,UAAU,UAAU;AACrF,MAAI,gBAAgB,gBAAgB;AACnC,WAAO,QAAQ,IAAI,sBAAsB;AAAA,EAC1C;AACA,SAAO;AACR;AAEA,SAAS,qBAAqB,SAA0B;AACvD,MAAI,QAAQ,KAAK;AAChB,QAAI,CAAC,QAAQ,gBAAgB,KAAK;AACjC,UAAI,KAAK,qEAAqE;AAC9E,cAAQ,gBAAgB,MAAM;AAAA,IAC/B;AACA,QAAI,QAAQ,SAAS;AACpB,UAAI,QAAQ,QAAQ,QAAQ,QAAQ,IAAI,WAAW;AAClD,YAAI,KAAK,4EAA4E;AACrF,gBAAQ,IAAI,YAAY;AAAA,MACzB;AACA,YAAM,MAAM,QAAQ,gBAAgB;AACpC,UAAI,QAAQ,QAAQ,QAAQ,YAAY;AACvC,cAAM,YAAY;AAClB,YAAI;AAAA,UACH,0DAA0D,sBAAsB;AAAA,QACjF;AACA,gBAAQ,gBAAgB,MAAM;AAAA,MAC/B;AAAA,IACD,OAAO;AACN,UAAI,QAAQ,QAAQ,QAAQ,CAAC,QAAQ,IAAI,WAAW;AACnD,YAAI;AAAA,UACH;AAAA,QACD;AACA,YAAI,QAAQ,QAAQ,MAAM;AACzB,kBAAQ,MAAM,EAAE,WAAW,KAAK;AAAA,QACjC,OAAO;AACN,kBAAQ,IAAI,YAAY;AAAA,QACzB;AAAA,MACD;AACA,YAAM,MAAM,QAAQ,gBAAgB;AACpC,UAAI,EAAE,QAAQ,QAAQ,QAAQ,aAAa;AAC1C,cAAM,YAAY;AAClB,YAAI;AAAA,UACH,uFAAuF;AAAA,QACxF;AACA,gBAAQ,gBAAgB,MAAM;AAAA,MAC/B;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,4BAA4B,SAA0B;AAC9D,MAAI,QAAQ,cAAc;AACzB,QAAI,QAAQ,KAAK;AAChB,UAAI,KAAK,mFAAmF;AAC5F,cAAQ,MAAM;AAAA,IACf;AACA,QAAI,QAAQ,gBAAgB,KAAK;AAChC,UAAI;AAAA,QACH;AAAA,MACD;AACA,cAAQ,gBAAgB,MAAM;AAAA,IAC/B;AAAA,EACD;AACD;AAEA,SAAS,qBAAqB,SAA0B;AACvD,QAAM,yBAAyB,CAAC,YAAY,UAAU,UAAU;AAChE,MAAI,QAAQ,OAAO,QAAQ,SAAS;AACnC,2BAAuB,KAAK,SAAS;AAAA,EACtC;AACA,QAAM,wBAAwB,OAAO,KAAK,QAAQ,mBAAmB,CAAC,CAAC;AACvE,QAAM,gBAAgB,sBAAsB,OAAO,CAAC,MAAM,uBAAuB,SAAS,CAAC,CAAC;AAC5F,MAAI,cAAc,QAAQ;AACzB,QAAI;AAAA,MACH,gMAAgM,cAAc;AAAA,QAC7M;AAAA,MACD;AAAA,IACD;AACA,kBAAc,QAAQ,CAAC,YAAY;AAElC,aAAO,QAAQ,gBAAgB,OAAO;AAAA,IACvC,CAAC;AAAA,EACF;AACD;AAGA,SAAS,oBAAoB,SAA0B;AAEtD,MAAI,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,cAAc,MAAM;AACvE,QAAI,MAAM,yDAAyD;AACnE,YAAQ,gBAAgB,aAAa;AAAA,EACtC;AACD;AAEA,SAAS,wBAAwB,SAA0B;AAC1D,MAAK,QAAQ,cAAsB,0BAA0B;AAC5D,YAAQ,2BAA4B,QAAQ,cAAsB;AAClE,QAAI;AAAA,MACH;AAAA,IACD;AAAA,EACD;AACA,MAAK,QAAQ,cAAsB,uCAAuC;AACzE,QAAI,KAAK,sEAAsE;AAAA,EAChF;AACD;AAKA,SAAS,gBAAgB,YAA4C;AACpE,SAAOC,eAAc,WAAW,OAAOC,MAAK,QAAQ,WAAW,IAAI,IAAI,QAAQ,IAAI,CAAC;AACrF;AAEA,eAAsB,qBACrB,SACA,QAC+B;AAG/B,MAAI,CAAC,OAAO,SAAS;AACpB,WAAO,UAAU,CAAC;AAAA,EACnB;AACA,SAAO,QAAQ,aAAa;AAAA,IAC3B,GAAG;AAAA,IACH,GAAI,OAAO,QAAQ,cAAc;AAAA,EAClC;AAEA,QAAM,kBAAuC;AAAA,IAC5C,SAAS;AAAA,MACR,QAAQ,CAAC,GAAG,gBAAgB,GAAG,kBAAkB;AAAA,MACjD,YAAY,CAAC,GAAG,wBAAwB;AAAA,IACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD;AAEA,QAAM,oBAAoB,0BAA0B,MAAM;AAC1D,QAAM,kBAAkB,MAAM,gCAAgC,SAAS,MAAM;AAE7E,kBAAgB,eAAe;AAAA,IAC9B,SAAS;AAAA,MACR,GAAG,kBAAkB,aAAa;AAAA,MAClC,GAAG,gBAAgB,aAAa,QAAQ;AAAA,QACvC,CAAC,QAAQ,CAAC,cAAc,KAAK,kBAAkB,aAAa,OAAO;AAAA,MACpE;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR,GAAG,kBAAkB,aAAa;AAAA,MAClC,GAAG,gBAAgB,aAAa,QAAQ;AAAA,QACvC,CAAC,QAAQ,CAAC,cAAc,KAAK,kBAAkB,aAAa,OAAO;AAAA,MACpE;AAAA,IACD;AAAA,EACD;AAEA,kBAAgB,MAAM;AAAA,IACrB,UAAU;AAAA,MACT,GAAG,kBAAkB,IAAI;AAAA,MACzB,GAAG,gBAAgB,IAAI,SAAS;AAAA,QAC/B,CAAC,QAAQ,CAAC,kBAAkB,KAAK,kBAAkB,IAAI,UAAU;AAAA,MAClE;AAAA,IACD;AAAA,IACA,YAAY;AAAA,MACX,GAAG,kBAAkB,IAAI;AAAA,MACzB,GAAG,gBAAgB,IAAI,WAAW;AAAA,QACjC,CAAC,QAAQ,CAAC,gBAAgB,KAAK,kBAAkB,IAAI,QAAQ;AAAA,MAC9D;AAAA,IACD;AAAA,EACD;AAGA,MAAI,QAAQ,0BAA0B;AACrC,oBAAgB,eAAe;AAAA,MAC9B,GAAG,gBAAgB;AAAA;AAAA;AAAA,MAGnB,YAAY,QAAQ,cAAc,CAAC,SAAS;AAAA;AAAA;AAAA;AAAA,MAI5C,gBAAgB;AAAA,QACf,SAAS,CAAC,EAAE,MAAM,+BAA+B,OAAO,MAAM;AAAA,QAAC,EAAE,CAAC;AAAA,MACnE;AAAA,IACD;AAAA,EACD;AAGA,OACE,QAAQ,OAAO,QACf,QAAQ,QAAQ,QACf,QAAQ,OAAO,QAAQ,IAAI,kBAAkB;AAAA,EAC/C,OAAO,cAAc,qBAAqB,OACzC;AACD,QAAI,MAAM,yDAAyD;AACnE,oBAAgB,eAAe,EAAE,kBAAkB,KAAK;AAAA,EACzD;AACA,qBAAmB,iBAAiB,QAAQ,OAAO;AACnD,SAAO;AACR;AAEA,SAAS,mBACR,iBACA,QACA,SACC;AACD,QAAM,EAAE,0BAA0B,QAAQ,IAAI;AAC9C,MAAI,0BAA0B;AAC7B,UAAM,YAAY,CAAC,WAClB,WAAW,QAAQ,YAAY,UAAU,UAAU;AACpD,UAAM,aAAa,CAAC,MAAc,OAAkC,mBACnE,IAAI,KAAK;AAAA,MACR,uEAAuE,SAAS,KAAK;AAAA,QACpF;AAAA,MACD,OAAO,UAAU,kBAAkB,OAAO;AAAA,IAC3C;AACD,UAAM,2BAA2B,OAAO,cAAc,YAAY;AAClE,UAAM,wBAAwB,UAAU,wBAAwB;AAChE,QAAI,CAAC,WAAW,CAAC,uBAAuB;AACvC;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,sBAAgB,aAAc,WAAW;AAAA,IAC1C,WAAW,WAAW,uBAAuB;AAC5C;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,eAAe,gCAAgC,SAA6B,QAAoB;AAE/F,QAAM,aAAa,MAAM,mBAAmB;AAAA,IAC3C,MAAM,QAAQ;AAAA,IACd,SAAS,QAAQ;AAAA,IACjB,gBAAgB;AAAA,IAChB,qBAAqB,SAAS;AAC7B,UAAI,qBAAqB;AACzB,UAAI,OAAO,QAAQ,YAAY,UAAU;AAExC,aAAK,UAAU,QAAQ,SAAS,CAAC,KAAK,UAAU;AAC/C,cAAI,yBAAyB,SAAS,GAAG,GAAG;AAC3C,iCAAqB;AAAA,UACtB;AACA,iBAAO;AAAA,QACR,CAAC;AAAA,MACF;AACA,aAAO,sBAAsB,CAAC,CAAC,QAAQ;AAAA,IACxC;AAAA,IACA,yBAAyB,SAAS;AACjC,aAAO,CAAC,CAAC,QAAQ,cAAc,UAAU,CAAC,CAAC,QAAQ,kBAAkB;AAAA,IACtE;AAAA,IACA,qBAAqB,SAAS;AAC7B,YAAM,qBAAqB,8BAA8B,OAAO;AAChE,UAAI,oBAAoB;AACvB,eAAO;AAAA,MACR,OAAO;AACN,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,MAAM,qDAAqD,UAAU;AAEzE,MAAI,QAAQ,0BAA0B;AAErC,eAAW,aAAa,UAAU,CAAC;AAEnC,UAAM,cAAc,OAAO,cAAc;AACzC,eAAW,aAAa,UAAU,CAAC,cAChC,CAAC,IACD,WAAW,aAAa,QAAQ,OAAO,CAAC,QAAgB;AAGxD,aACC,IAAI,SAAS,GAAG,KAChB,IACE,MAAM,GAAG,EACT,MAAM,GAAG,EAAE,EACX,KAAK,CAAC,MAAM,cAAc,EAAE,KAAK,GAAG,WAAW,CAAC;AAAA,IAEnD,CAAC;AAAA,EACL;AACA,MAAI,QAAQ,iCAAiC,MAAM;AAClD,eAAW,aAAa,UAAU,WAAW,aAAa,QAAQ;AAAA,MACjE,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG;AAAA,IAC3B;AAAA,EACD,WAAW,MAAM,QAAQ,QAAQ,4BAA4B,GAAG;AAC/D,UAAM,eAAe,QAAQ;AAC7B,eAAW,aAAa,UAAU,WAAW,aAAa,QAAQ,OAAO,CAAC,QAAQ;AACjF,UAAI,CAAC,IAAI,SAAS,GAAG;AAAG,eAAO;AAC/B,YAAM,UAAU,IAAI,QAAQ,QAAQ,EAAE;AACtC,aAAO,aAAa,KAAK,CAAC,aAAa,QAAQ,SAAS,GAAG,WAAW,CAAC;AAAA,IACxE,CAAC;AAAA,EACF;AAEA,MAAI,MAAM,gDAAgD,UAAU;AAEpE,SAAO;AACR;AAEA,SAAS,0BAA0B,QAAoB;AAEtD,QAAM,UAAoB,CAAC;AAC3B,QAAM,UAAoB,CAAC,YAAY;AACvC,MAAI,CAAC,cAAc,UAAU,OAAO,cAAc,WAAW,CAAC,CAAC,GAAG;AACjE,UAAM,yBAAyB,eAAe,OAAO,CAAC,MAAM,MAAM,YAAY;AAC9E,QAAI;AAAA,MACH,wDAAwD,uBAAuB,KAAK,IAAI;AAAA,IACzF;AACA,YAAQ,KAAK,GAAG,sBAAsB;AAAA,EACvC,OAAO;AACN,QAAI,MAAM,6EAA6E;AAAA,EACxF;AACA,QAAM,aAAkC,CAAC;AACzC,QAAM,WAAqB,CAAC;AAG5B,MAAI,CAAC,gBAAgB,UAAU,OAAO,KAAK,YAAY,CAAC,CAAC,GAAG;AAC3D,eAAW,KAAK,UAAU,WAAW;AAAA,EACtC;AACA,SAAO,EAAE,cAAc,EAAE,SAAS,QAAQ,GAAG,KAAK,EAAE,YAAY,SAAS,EAAE;AAC5E;AAEO,SAAS,wBAAwB,YAA4B,SAA0B;AAC7F,MAAI,QAAQ,YAAY;AACvB,eAAW,gBAAgB,QAAQ,QAAQ,UAAU,GAAG;AACvD,UAAI,aAAa,SAAS,sBAAsB,aAAa,OAAO;AACnE,qBAAa,MAAM,mBAAmB;AAAA,MACvC;AAAA,IACD;AAAA,EACD;AAGA,QAAM,4BAA4B,WAAW,aAAa,gBAAgB,SAAS;AAAA,IAClF,CAAC,WAAW,OAAO,SAAS;AAAA,EAC7B;AACA,MAAI,2BAA2B;AAC9B,WAAO,OAAO,2BAA2B,oBAAoB,OAAO,CAAC;AAAA,EACtE;AACD;AAEA,SAAS,QAAW,OAAqB;AACxC,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC7C;;;AM9iBA,OAAOC,SAAQ;AAKf,OAAOC,WAAU;AAGV,SAAS,cACf,SACA,OACA,eACC;AACD,QAAM,EAAE,QAAQ,YAAY,iBAAiB,IAAI;AACjD,MAAI,CAAC,QAAQ;AACZ;AAAA,EACD;AACA,QAAM,EAAE,SAAS,GAAG,IAAI;AACxB,QAAM,EAAE,MAAM,QAAQ,aAAa,IAAI,OAAO;AAE9C,QAAM,8BAA8B,CAAC,aAAqB;AACzD,UAAM,aAAa,MAAM,cAAc,QAAQ;AAC/C,eAAW,QAAQ,CAAC,cAAc;AACjC,UAAIC,IAAG,WAAW,SAAS,GAAG;AAC7B,YAAI;AAAA,UACH,sCAAsC,mCAAmC;AAAA,QAC1E;AACA,gBAAQ,KAAK,UAAU,SAAS;AAAA,MACjC;AAAA,IACD,CAAC;AAAA,EACF;AAEA,QAAM,0BAA0B,CAAC,aAAqB;AACrD,UAAM,gBAAgB,cAAc,UAAU,KAAK;AACnD,QAAI,eAAe;AAClB,YAAM,mBAAmB,MAAM,OAAO,aAAa;AACnD,UAAI,kBAAkB;AACrB,YAAI,MAAM,kDAAkD,UAAU;AAAA,MACvE;AAAA,IACD;AAAA,EACD;AAEA,QAAM,qBAAqB,CAAC,aAAqB;AAChD,QAAI,aAAa,gBAAgB;AAGhC,YAAM,UACL;AACD,UAAI,KAAK,SAAS,QAAQ;AAC1B,SAAG,KAAK;AAAA,QACP,MAAM;AAAA,QACN,KAAK,EAAE,SAAS,OAAO,IAAI,QAAQ,sBAAsB,IAAI,SAAS;AAAA,MACvE,CAAC;AAAA,IACF,OAAO;AACN,UAAI,KAAK,0DAA0D,UAAU;AAC7E,aAAO,QAAQ;AAAA,IAChB;AAAA,EACD;AAGA,QAAM,qBAAqB;AAAA,IAC1B,KAAK,CAAC;AAAA,IACN,QAAQ,CAAC,2BAA2B;AAAA,IACpC,QAAQ,CAAC,yBAAyB,2BAA2B;AAAA,EAC9D;AAEA,MAAI,qBAAqB,OAAO;AAE/B,UAAM,wBAAwB,uBAAuB,IAAI,CAAC,QAAQD,MAAK,KAAK,MAAM,GAAG,CAAC;AACtF,UAAM,qBAAqB,CAAC,aAAqB;AAChD,UAAI,sBAAsB,SAAS,QAAQ,GAAG;AAC7C,2BAAmB,QAAQ;AAAA,MAC5B;AAAA,IACD;AAEA,UAAM,wBAAwB,CAAC,aAAqB;AACnD,UAAI,aAAa,kBAAkB;AAClC,2BAAmB,QAAQ;AAAA,MAC5B;AAAA,IACD;AAEA,QAAI,kBAAkB;AACrB,yBAAmB,OAAO,KAAK,qBAAqB;AACpD,yBAAmB,OAAO,KAAK,qBAAqB;AAAA,IACrD,OAAO;AACN,yBAAmB,IAAI,KAAK,kBAAkB;AAAA,IAC/C;AAAA,EACD;AAEA,SAAO,QAAQ,kBAAkB,EAAE,QAAQ,CAAC,CAAC,KAAK,SAAS,MAAM;AAChE,QAAI,UAAU,SAAS,GAAG;AACzB,cAAQ,GAAG,KAAK,CAAC,aAAa,UAAU,QAAQ,CAAC,aAAa,SAAS,QAAQ,CAAC,CAAC;AAAA,IAClF;AAAA,EACD,CAAC;AACF;AAEO,SAAS,kBAAkB,SAAoB,MAAqB,MAAoB;AAC9F,MACC;AAAA,EAEA,CAAC,KAAK,WAAW,OAAO,GAAG;AAAA,EAE3B,CAAC,KAAK,SAAS,IAAI,KACnBC,IAAG,WAAW,IAAI,GACjB;AAED,YAAQ,IAAID,MAAK,QAAQ,IAAI,CAAC;AAAA,EAC/B;AACD;;;AC7GA,OAAOE,WAAU;AACjB,SAAS,sBAAsB;AAI/B,eAAsB,4BACrB,UACA,UACA,OACyB;AACzB,MACC,YACA,aAAa,QAAQ,KACrB,CAAC,eAAe,QAAQ,KACxB,CAAC,8BAA8B,QAAQ,GACtC;AACD,UAAM,SAAS,MAAM,uBAAuB,UAAU,QAAQ;AAC9D,QAAI,QAAQ;AACX,aAAO;AAAA,IACR;AACA,UAAM,UAAU,MAAM,sBAAsB,UAAU,QAAQ;AAC9D,QAAI,SAAS;AACZ,YAAM,EAAE,KAAK,IAAI,IAAI;AACrB,UAAI,IAAI,QAAQ;AACf,cAAM,SAASC,MAAK,QAAQ,KAAK,IAAI,MAAM;AAC3C,cAAM,uBAAuB,UAAU,UAAU,MAAM;AACvD,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,eAAe,UAAkB;AACzC,SAAO,SAAS,WAAW,OAAO,KAAK,eAAe,SAAS,QAAQ;AACxE;AAEA,SAAS,aAAa,UAA2B;AAChD,MACC,CAAC,YACD,SAAS,CAAC,MAAM,OAChB,SAAS,CAAC,MAAM,QAChB,SAAS,SAAS,GAAG,KACrBA,MAAK,WAAW,QAAQ,GACvB;AACD,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,SAAS,MAAM,GAAG;AAChC,UAAQ,MAAM,QAAQ;AAAA,IACrB,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO,MAAM,CAAC,EAAE,WAAW,GAAG;AAAA,IAC/B;AACC,aAAO;AAAA,EACT;AACD;;;ACvDA,SAAS,YAAYC,WAAU;AAC/B,OAAOC,WAAU;AAIjB,IAAM,8BAAyD;AAAA,EAC9D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAKA,eAAsB,mBAAmB,UAAkB,SAA0B;AACpF,QAAM,iBAAiB,uBAAuB,OAAO;AACrD,QAAM,qBAAqBA,MAAK,QAAQ,UAAU,uBAAuB;AAEzE,QAAM,wBAAwB,KAAK,UAAU,gBAAgB,CAAC,GAAG,UAAU;AAE1E,WAAO,OAAO,UAAU,aAAa,MAAM,SAAS,IAAI;AAAA,EACzD,CAAC;AAED,MAAI;AACJ,MAAI;AACH,6BAAyB,MAAMD,IAAG,SAAS,oBAAoB,MAAM;AAAA,EACtE,QAAE;AAAA,EAEF;AAEA,QAAMA,IAAG,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AAC5C,QAAMA,IAAG,UAAU,oBAAoB,qBAAqB;AAC5D,SAAO,0BAA0B;AAClC;AAEA,SAAS,uBAAuB,SAA0B;AACzD,QAAM,WAAgC,CAAC;AACvC,aAAW,OAAO,6BAA6B;AAC9C,aAAS,GAAG,IAAI,QAAQ,GAAG;AAAA,EAC5B;AACA,SAAO;AACR;;;AC5CA,SAAiB,iBAAAE,sBAAqB;AAGtC,OAAOC,WAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAOC,SAAQ;;;ACLf,IAAM,YAAY;AAClB,IAAMC,cAAa,QAAQ,aAAa;AACxC,IAAM,UAAU;AAChB,IAAM,SAAS;AAER,SAAS,SAAS,IAAoB;AAE5C,MAAI,GAAG,WAAW,SAAS,GAAG;AAC7B,SAAK,KAAK,GAAG,MAAMA,cAAa,UAAU,SAAS,UAAU,SAAS,CAAC;AAAA,EACxE;AAEA,SAAO,GAAG,QAAQ,QAAQ,EAAE,EAAE,QAAQ,SAAS,EAAE;AAClD;;;ADJA,IAAM,0BAA4C;AAAA,EACjD,gBAAgB,QAAQ,aAAa,UAAU,kBAAkB;AAAA,EACjE,SAAS,EAAE,QAAQ,WAAW,OAAO,aAAa,MAAM,cAAc,MAAM,YAAY;AAAA,EACxF,SAAS;AAAA,EACT,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,cAAc;AACf;AAEA,SAAS,mBAAmB;AAC3B,QAAM,aAAaC,eAAcC,MAAK,QAAQ,cAAc,YAAY,GAAG,CAAC,CAAC;AAC7E,SAAO,WAAW,QAAQ,+BAA+B,uCAAuC;AACjG;AAEO,SAAS,kBAA0B;AACzC,QAAM,gBAAgB,iBAAiB;AACvC,MAAI,MAAM,WAAW,IAAI,MAAM,0BAA0B,eAAe;AACxE,MAAI;AACJ,MAAI;AACJ,MAAI,WAAW;AAEf,SAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IAET,eAAe,QAAQ;AACtB,YAAM,MAAM,OAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,oBAAoB;AACtE,YAAM,UAAU,KAAK,KAAK,SAAS,cAAc;AACjD,UAAI,CAAC,OAAO,CAAC,SAAS;AACrB,YAAI,MAAM,2CAA2C;AACrD,mBAAW;AACX;AAAA,MACD;AACA,yBAAmB;AAAA,QAClB,GAAG;AAAA,QACH,GAAG;AAAA,MACJ;AACA,YAAM,cAAc,OAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,WAAW,uBAAuB,CAAC;AACzF,UAAI,eAAe,CAAC,iBAAiB,UAAU;AAG9C,yBAAiB,WAAW;AAAA,MAC7B;AACA,iBAAW,iBAAiB;AAAA,IAC7B;AAAA,IAEA,MAAM,UAAU,UAAkB,UAAU,SAAS;AACpD,UAAI,SAAS,OAAO,UAAU;AAC7B;AAAA,MACD;AACA,UAAI,SAAS,WAAW,kCAAkC,GAAG;AAC5D,eAAO;AAAA,MACR,WAAW,SAAS,WAAW,gCAAgC,GAAG;AACjE,cAAM,WAAW,SAAS,QAAQ,kCAAkC,aAAa;AACjF,YAAI,MAAM,WAAW,IAAI,MAAM,YAAY,iBAAiB,UAAU;AACtE,eAAO;AAAA,MACR;AAAA,IACD;AAAA,IAEA,MAAM,KAAK,IAAI,SAAS;AACvB,UAAI,SAAS,OAAO,UAAU;AAC7B;AAAA,MACD;AACA,UAAI,OAAO,oCAAoC;AAC9C,eAAO,kBAAkB,KAAK,UAAU,oBAAoB,CAAC,CAAC;AAAA,MAC/D,WAAW,GAAG,WAAW,aAAa,GAAG;AAExC,cAAM,OAAO,SAAS,EAAE;AACxB,YAAIC,IAAG,WAAW,IAAI,GAAG;AACxB,iBAAO,MAAMA,IAAG,SAAS,SAAS,MAAM,OAAO;AAAA,QAChD,OAAO;AACN,cAAI,MAAM,6CAA6C,0BAA0B,KAAK;AAAA,QACvF;AAAA,MACD;AAAA,IACD;AAAA,IAEA,UAAU,MAAc,IAAY,SAA6B;AAChE,UAAI,SAAS,OAAO,YAAY,CAAC,UAAU;AAC1C;AAAA,MACD;AACA,UAAI,GAAG,SAAS,QAAQ,GAAG;AAC1B,eAAO,EAAE,MAAM,GAAG;AAAA,0DAAiE;AAAA,MACpF;AAAA,IACD;AAAA,IACA,mBAAmB,MAAM;AACxB,UAAI,YAAY,UAAU;AACzB;AAAA,MACD;AACA,aAAO;AAAA,QACN;AAAA,QACA,MAAM;AAAA,UACL;AAAA,YACC,KAAK;AAAA,YACL,UAAU;AAAA,YACV,OAAO;AAAA,cACN,MAAM;AAAA;AAAA,cAEN,KAAK;AAAA,YACN;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;;;AE/GO,IAAM,wBAAN,MAA4B;AAAA,EAA5B;AACN,SAAQ,OAAO,oBAAI,IAAkB;AACrC,SAAQ,MAAM,oBAAI,IAAkB;AACpC,SAAQ,gBAAgB,oBAAI,IAAsB;AAClD,SAAQ,cAAc,oBAAI,IAAyB;AACnD,SAAQ,wBAAwB,oBAAI,IAAoB;AACxD,SAAQ,UAAU,oBAAI,IAAiB;AAAA;AAAA,EAEhC,OAAO,aAA0B;AACvC,SAAK,QAAQ,OAAO,YAAY,kBAAkB;AAClD,SAAK,UAAU,WAAW;AAC1B,SAAK,SAAS,WAAW;AACzB,SAAK,mBAAmB,WAAW;AAAA,EACpC;AAAA,EAEO,IAAI,eAA8B;AACxC,UAAM,KAAK,cAAc;AACzB,WAAO,KAAK,QAAQ,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE;AAAA,EACpE;AAAA,EAEO,SAAS,eAA8B,OAAY;AAGzD,SAAK,OAAO,eAAe,IAAI;AAC/B,SAAK,QAAQ,IAAI,cAAc,oBAAoB,KAAK;AAAA,EACzD;AAAA,EAEQ,UAAU,aAA0B;AAC3C,SAAK,KAAK,IAAI,YAAY,oBAAoB,YAAY,SAAS,GAAG;AAAA,EACvE;AAAA,EAEQ,SAAS,aAA0B;AAC1C,QAAI,CAAC,YAAY,KAAK;AAErB,WAAK,IAAI,IAAI,YAAY,oBAAoB,YAAY,SAAS,EAAE;AAAA,IACrE;AAAA,EACD;AAAA,EAEQ,mBAAmB,aAA0B;AACpD,UAAM,KAAK,YAAY;AACvB,UAAM,mBAAmB,KAAK,cAAc,IAAI,EAAE,KAAK,CAAC;AACxD,UAAM,eAAe,YAAY;AACjC,SAAK,cAAc,IAAI,IAAI,YAAY;AACvC,UAAM,UAAU,iBAAiB,OAAO,CAAC,MAAM,CAAC,aAAa,SAAS,CAAC,CAAC;AACxE,UAAM,QAAQ,aAAa,OAAO,CAAC,MAAM,CAAC,iBAAiB,SAAS,CAAC,CAAC;AACtE,UAAM,QAAQ,CAAC,MAAM;AACpB,UAAI,CAAC,KAAK,YAAY,IAAI,CAAC,GAAG;AAC7B,aAAK,YAAY,IAAI,GAAG,oBAAI,IAAY,CAAC;AAAA,MAC1C;AACA,WAAK,YAAY,IAAI,CAAC,EAAG,IAAI,YAAY,QAAQ;AAAA,IAClD,CAAC;AACD,YAAQ,QAAQ,CAAC,MAAM;AACtB,WAAK,YAAY,IAAI,CAAC,EAAG,OAAO,YAAY,QAAQ;AAAA,IACrD,CAAC;AAAA,EACF;AAAA,EAEO,OAAO,eAA8B,mBAA4B,OAAgB;AACvF,UAAM,KAAK,cAAc;AACzB,QAAI,UAAU;AACd,QAAI,KAAK,QAAQ,OAAO,EAAE,GAAG;AAC5B,gBAAU;AAAA,IACX;AACA,QAAI,KAAK,IAAI,OAAO,EAAE,GAAG;AACxB,gBAAU;AAAA,IACX;AACA,QAAI,KAAK,KAAK,OAAO,EAAE,GAAG;AACzB,gBAAU;AAAA,IACX;AACA,QAAI,CAAC,kBAAkB;AACtB,YAAM,eAAe,KAAK,cAAc,IAAI,EAAE;AAC9C,UAAI,cAAc;AACjB,kBAAU;AACV,qBAAa,QAAQ,CAAC,MAAM;AAC3B,gBAAM,aAAa,KAAK,YAAY,IAAI,CAAC;AACzC,cAAI,cAAc,WAAW,IAAI,cAAc,QAAQ,GAAG;AACzD,uBAAW,OAAO,cAAc,QAAQ;AAAA,UACzC;AAAA,QACD,CAAC;AACD,aAAK,cAAc,OAAO,EAAE;AAAA,MAC7B;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,eAA8B;AAC3C,WAAO,KAAK,KAAK,IAAI,cAAc,kBAAkB;AAAA,EACtD;AAAA,EAEO,MAAM,eAA8B;AAC1C,QAAI,CAAC,cAAc,KAAK;AAEvB,aAAO,KAAK,IAAI,IAAI,cAAc,kBAAkB;AAAA,IACrD;AAAA,EACD;AAAA,EAEO,SAAS,eAA8B;AAC7C,WAAO,KAAK,QAAQ,IAAI,cAAc,kBAAkB;AAAA,EACzD;AAAA,EAEO,cAAcC,QAAwB;AAC5C,UAAM,aAAa,KAAK,YAAY,IAAIA,MAAI;AAC5C,WAAO,aAAa,CAAC,GAAG,UAAU,IAAI,CAAC;AAAA,EACxC;AAAA,EAEO,uBAAuB,MAAc,UAAkC;AAC7E,WAAO,KAAK,sBAAsB,IAAI,KAAK,2BAA2B,MAAM,QAAQ,CAAC;AAAA,EACtF;AAAA,EAEO,uBACN,UACA,WAA+B,QAC/B,gBACC;AACD,SAAK,sBAAsB;AAAA,MAC1B,KAAK,2BAA2B,UAAU,QAAQ;AAAA,MAClD;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,2BAA2B,UAAkB,UAA2B;AAC/E,WAAO,WAAW,GAAG,cAAc,aAAa;AAAA,EACjD;AACD;;;AC7HA,OAAOC,SAAQ;AASf,eAAsB,QACrB,eACAC,gBACA,SACC;AACD,QAAM,EAAE,IAAI,UAAU,MAAM,IAAI;AAGhC,MAAI;AACJ,QAAM,SAASC,IAAG,aAAa,UAAU,OAAO;AAChD,MAAI;AAEH,kBAAc,MAAM,MAAM,iBAAiB,aAAa;AACxD,UAAM,OAAO,MAAM;AACnB,kBAAc,MAAMD,eAAc,eAAe,QAAQ;AAAA,MACxD,GAAG;AAAA;AAAA,MAEH,iBAAiB;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,YAAY;AAAA,QACZ,iBAAiB,MAAM,YACpB;AAAA,UACA,IAAI,SAAS,YAAY,SAAS;AAAA,UAClC,KAAK,SAAS,WAAW,SAAS;AAAA,QAClC,IACA;AAAA,QACH,GAAG,cAAc,MAAM;AAAA,MACxB;AAAA,MACA,KAAK;AAAA,MACL,SAAS;AAAA,IACV,CAAC;AAAA,EACF,SAAS,GAAP;AACD,UAAM,cAAc,GAAG,OAAO;AAAA,EAC/B;AACA,MAAI;AACJ,MAAI,MAAM,SAAS,SAAS;AAC3B,aAAS,YAAY,SAAS;AAAA,EAC/B,WAAW,MAAM,SAAS,UAAU;AACnC,aAAS,YAAY,SAAS;AAAA,EAC/B,WAAW,MAAM,SAAS,gBAAgB;AACzC,aAAS,YAAY;AAAA,EACtB,WAAW,MAAM,SAAS,SAAS,MAAM,KAAK;AAC7C,WAAO,gBAAgB,aAAa,MAAM;AAAA,EAC3C,OAAO;AACN,UAAM,IAAI;AAAA,MACT,iBAAiB,MAAM,YAAY;AAAA,IACpC;AAAA,EACD;AACA,MAAI,MAAM,QAAQ;AACjB,UAAM,uBAAuB,CAAC,UAAU,OAAO;AAC/C,QAAI,CAAC,qBAAqB,SAAS,MAAM,IAAI,GAAG;AAC/C,YAAM,IAAI;AAAA,QACT,iBACC,MAAM,iCACsB,sBAAsB,qBAAqB,KAAK,IAAI;AAAA,MAClF;AAAA,IACD;AACA,QAAI,MAAM,kCAAkC,IAAI;AAChD,QAAI,eAAe,OAAO;AAC1B,QAAI,MAAM,aAAa,OAAO,KAAK,OAAO;AACzC,YAAM,MAAM,oBAAoB,OAAO,IAAI,MAAM;AACjD,UAAI,MAAM,SAAS,SAAS;AAC3B,wBAAgB;AAAA;AAAA,MAAW;AAAA;AAAA,MAC5B,WAAW,MAAM,SAAS,UAAU;AACnC,wBAAgB;AAAA;AAAA,MAAW;AAAA;AAAA,MAC5B;AAAA,IACD;AACA,WAAO;AAAA,EACR,WAAW,MAAM,KAAK;AACrB,QAAI,MAAM,+BAA+B,IAAI;AAC7C,WAAO,aAAa,MAAM;AAAA,EAC3B,OAAO;AACN,UAAM,IAAI,MAAM,uBAAuB,+BAA+B;AAAA,EACvE;AACD;AAQA,SAAS,gBAAgB,aAA0B,QAAgB;AAElE,QAAM,UAAqD;AAAA,IAC1D,GAAG;AAAA,IACH,GAAG,YAAY;AAAA,IACf;AAAA,EACD;AACA,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,aAAa,OAAO;AAC5B;AAgBA,SAAS,aAAa,QAAgB;AACrC,MAAI,UACH,OAAO,QAAQ,MAAM,EAEnB,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,OAAO,UAAU,UAAU,EACpD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAE,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,gBAAgB,OAAO,KAAK,UAAU,KAAK,GAAG,EACpE,KAAK,IAAI,IAAI;AAChB,MAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,MAAM,GAAG;AACzD,eAAW;AAAA;AAAA,EACZ;AACA,SAAO;AACR;;;ACnIA,SAAS,eAAe,eAAe,4BAA4B;AAMnE,IAAM,sBAAsB,CAAC,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,UAAU,WAAW,KAAK;AAC9F,IAAM,uBAAuB,CAAC,IAAI;AAE3B,SAAS,eAAe,MAG5B;AACF,QAAM,eAAkC,CAAC;AACzC,MAAI,MAAM,WAAW,OAAO;AAC3B,iBAAa,SAAS,WAAW,EAAE;AAAA,EACpC;AACA,MAAI,MAAM,UAAU,OAAO;AAC1B,UAAM,YAAY,OAAO,MAAM,SAAS,WAAW,MAAM,QAAQ;AACjE,iBAAa,QAAQ,UAAU,SAAS,EAAE;AAAA,EAC3C;AACA,SAAO;AACR;AAEA,SAAS,aAAuC;AAC/C,SAAO;AAAA,IACN,MAAM,OAAO,EAAE,YAAY,SAAS,WAAW,GAAG,GAAG;AACpD,YAAM,OAAO,WAAW;AACxB,UAAI,CAAC,qBAAqB,SAAS,IAAI;AAAG;AAC1C,YAAM,EAAE,MAAM,IAAI,IAAI,MAAM,qBAAqB,SAAS,UAAU;AAAA,QACnE,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,aAAa;AAAA,UACZ,iBAAiB;AAAA;AAAA,YAEhB,wBAAwB;AAAA,YACxB,sBAAsB;AAAA,UACvB;AAAA,QACD;AAAA,MACD,CAAC;AAED,2BAAqB,KAAK,QAAQ;AAElC,aAAO;AAAA,QACN;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,UAAU,SAAwC,CAAC,GAE1D;AACD,MAAI;AACJ,QAAM,QAAsB,OAAO,EAAE,YAAY,SAAS,WAAW,GAAG,MAAM;AAC7E,UAAM,OAAO,WAAW;AACxB,QAAI,CAAC,oBAAoB,SAAS,IAAI;AAAG;AACzC,QAAI,CAAC,WAAW;AACf,UAAI;AAEJ,UAAI,MAAM,kBAAkB;AAE3B,yBAAiB,MAAM;AAAA,MACxB,WAAW,iBAAiB,MAAM,GAAG;AACpC,yBAAiB;AAAA,MAClB,OAAO;AACN,yBAAiB,MAAM;AAAA,UACtB;AAAA,UACA,QAAQ,IAAI,aAAa,eAAe,UAAU;AAAA,QACnD;AAAA,MACD;AACA,kBAAY,kBAAkB,cAAc;AAAA,IAC7C;AACA,UAAM,WAAW,GAAG,YAAY;AAChC,UAAM,EAAE,MAAM,IAAI,IAAI,MAAM,UAAU,SAAS,QAAQ;AAEvD,yBAAqB,KAAK,QAAQ;AAElC,WAAO;AAAA,MACN;AAAA,MACA,KAAK,OAAO;AAAA,IACb;AAAA,EACD;AAEA,QAAM,mBAAmB;AACzB,SAAO,EAAE,MAAM;AAChB;AAKA,SAAS,kBAAkB,QAAsC;AAChE,SAAO,OAAO,MAAM,aAAa;AAChC,WAAO,cAAc,MAAM,UAAU,MAAM;AAAA,EAC5C;AACD;AAEA,SAAS,iBAAiB,QAAuC;AAChE,SAAO,CAAC,CAAC,OAAO;AACjB;;;AtB/DO,SAAS,OAAO,eAA4C;AAClE,MAAI,QAAQ,IAAI,SAAS,MAAM;AAC9B,QAAI,SAAS,OAAO;AAAA,EACrB;AACA,wBAAsB,aAAa;AACnC,QAAM,QAAQ,IAAI,sBAAsB;AAExC,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAIE;AAGJ,MAAI;AACJ,QAAM,MAAiB,CAAC;AACxB,QAAM,UAAoB;AAAA,IACzB;AAAA,MACC,MAAM;AAAA;AAAA,MAEN,SAAS;AAAA,MACT;AAAA,MACA,MAAM,OAAO,QAAQ,WAAyC;AAE7D,YAAI,QAAQ,IAAI,OAAO;AACtB,cAAI,SAAS,OAAO;AAAA,QACrB,WAAW,OAAO,UAAU;AAC3B,cAAI,SAAS,OAAO,QAAQ;AAAA,QAC7B;AAEA,kBAAU,MAAM,kBAAkB,eAAe,QAAQ,SAAS;AAElE,cAAM,kBAAkB,MAAM,qBAAqB,SAAS,MAAM;AAClE,YAAI,MAAM,0BAA0B,eAAe;AACnD,eAAO;AAAA,MACR;AAAA,MAEA,MAAM,eAAe,QAAQ;AAC5B,kBAAU,eAAe,SAAS,MAAM;AACxC,gCAAwB,QAAQ,OAAO;AACvC,wBAAgB,cAAc,OAAO;AACrC,QAAAA,iBAAgB,oBAAoB,OAAO;AAC3C,qBAAa;AAEb,YAAI,UAAU;AACd,YAAI,MAAM,oBAAoB,OAAO;AAAA,MACtC;AAAA,MAEA,MAAM,aAAa;AAClB,YAAI,CAAC,QAAQ;AAA0B;AACvC,cAAM,0BAA0B,MAAM,mBAAmB,WAAW,UAAU,OAAO;AACrF,YAAI,yBAAyB;AAG5B,qBAAW,aAAa,QAAQ;AAAA,QACjC;AAAA,MACD;AAAA,MAEA,gBAAgB,QAAQ;AAEvB,gBAAQ,SAAS;AACjB,sBAAc,SAAS,OAAO,aAAa;AAAA,MAC5C;AAAA,MAEA,MAAM,KAAK,IAAI,MAAM;AACpB,cAAM,MAAM,CAAC,CAAC,MAAM;AACpB,cAAM,gBAAgB,cAAc,IAAI,CAAC,CAAC,GAAG;AAC7C,YAAI,eAAe;AAClB,gBAAM,EAAE,UAAU,OAAO,IAAI,IAAI;AACjC,cAAI,KAAK;AACR,mBAAO,QAAQ,eAAeA,gBAAe,OAAO;AAAA,UACrD,OAAO;AACN,gBAAI,MAAM,UAAU,MAAM,SAAS,SAAS;AAC3C,oBAAM,MAAM,MAAM,OAAO,aAAa;AACtC,kBAAI,KAAK;AACR,oBAAI,MAAM,wBAAwB,UAAU;AAC5C,uBAAO;AAAA,cACR;AAAA,YACD;AAEA,gBAAI,WAAW,cAAc,QAAQ,GAAG;AACvC,kBAAI,MAAM,gCAAgC,UAAU;AACpD,qBAAOC,IAAG,aAAa,UAAU,OAAO;AAAA,YACzC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MAEA,MAAM,UAAU,UAAU,UAAU,MAAM;AACzC,cAAM,MAAM,CAAC,CAAC,MAAM;AACpB,cAAM,gBAAgB,cAAc,UAAU,GAAG;AACjD,YAAI,eAAe,MAAM,QAAQ;AAChC,cAAI,cAAc,MAAM,SAAS,WAAW,CAAC,cAAc,KAAK;AAG/D,gBAAI,MAAM,yCAAyC,cAAc,OAAO;AACxE,mBAAO,cAAc;AAAA,UACtB;AAAA,QACD;AAEA,YAAI,OAAO,aAAa,UAAU;AACjC,cAAI,CAAC,mBAAmB;AACvB,gCAAoB,KAAK,QAAQ,cAAc,QAAW,EAAE,UAAU,KAAK,CAAC,EAAE;AAAA,cAC7E,CAAC,cAAc;AACd,oBAAI,MAAM,+BAA+B;AACzC,uBAAO;AAAA,cACR;AAAA,cACA,CAAC,QAAQ;AACR,oBAAI;AAAA,kBACH;AAAA,kBACA;AAAA,gBACD;AACA,uBAAO;AAAA,cACR;AAAA,YACD;AAAA,UACD;AACA,iBAAO;AAAA,QACR;AAEA,cAAM,OAAO,CAAC,CAAC,MAAM;AACrB,cAAM,eACL,QAAQ,4BACR,WAAW,cAAc,aAAa,QACtC,WAAW,cAAc,cAAc,QAAQ,UAAU,UAAU,UACnE,CAACC,eAAc,UAAU,WAAW,cAAc,WAAW,CAAC,CAAC;AAGhE,YAAI,OAAO,QAAQ,CAAC,cAAc;AACjC,cAAI;AACH,kBAAM,WAAW,MAAM,4BAA4B,UAAU,UAAU,KAAK;AAC5E,gBAAI,UAAU;AACb,kBAAI;AAAA,gBACH,sBAAsB,6CAA6C;AAAA,cACpE;AACA,qBAAO;AAAA,YACR;AAAA,UACD,SAAS,GAAP;AACD,gBAAI,MAAM;AAAA,cACT,2BAA2B,iBAAiB;AAAA,cAC5C;AAAA,YACD;AAAA,UAGD;AAAA,QACD;AAAA,MACD;AAAA,MAEA,MAAM,UAAU,MAAM,IAAI,MAAM;AAC/B,cAAM,MAAM,CAAC,CAAC,MAAM;AACpB,cAAM,gBAAgB,cAAc,IAAI,GAAG;AAC3C,YAAI,CAAC,iBAAiB,cAAc,MAAM,SAAS,WAAW,cAAc,KAAK;AAChF;AAAA,QACD;AACA,YAAI;AACJ,YAAI;AACH,wBAAc,MAAMF,eAAc,eAAe,MAAM,OAAO;AAAA,QAC/D,SAAS,GAAP;AACD,gBAAM,SAAS,eAAe,CAAC;AAC/B,gBAAM,cAAc,GAAG,OAAO;AAAA,QAC/B;AACA,4BAAoB,eAAe,YAAY,SAAS,UAAU,OAAO;AACzE,cAAM,OAAO,WAAW;AACxB,YAAI,YAAY,cAAc,UAAU,QAAQ,QAAQ;AACvD,sBAAY,aAAa,QAAQ,CAAC,MAAM;AACvC,8BAAkB,QAAQ,OAAQ,SAAS,GAAG,QAAQ,IAAI;AAAA,UAC3D,CAAC;AAAA,QACF;AACA,YAAI,MAAM,qCAAqC,cAAc,UAAU;AACvE,eAAO;AAAA,UACN,GAAG,YAAY,SAAS;AAAA,UACxB,MAAM;AAAA,YACL,MAAM;AAAA,cACL,MAAM,YAAY;AAAA,YACnB;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MAEA,gBAAgB,KAA2D;AAC1E,YAAI,CAAC,QAAQ,OAAO,CAAC,QAAQ,SAAS;AACrC;AAAA,QACD;AACA,cAAM,gBAAgB,cAAc,IAAI,MAAM,OAAO,IAAI,SAAS;AAClE,YAAI,eAAe;AAClB,iBAAO,gBAAgBA,gBAAe,KAAK,eAAe,OAAO,OAAO;AAAA,QACzE;AAAA,MACD;AAAA,MACA,MAAM,WAAW;AAChB,cAAM,QAAQ,OAAO,UAAU;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AACA,UAAQ,KAAK,gBAAgB,CAAC;AAC9B,SAAO,QAAQ,OAAO,OAAO;AAC9B;","names":["fs","isDepExcluded","compileSvelte","path","compileSvelte","normalizePath","path","fs","fs","path","path","compile","preprocess","preprocess","compile","path","fs","prefix","readFileSync","normalizePath","path","preResolveOptions","normalizePath","path","fs","path","fs","path","path","fs","path","normalizePath","path","fs","IS_WINDOWS","normalizePath","path","fs","path","fs","compileSvelte","fs","compileSvelte","fs","isDepExcluded"]}
|
|
1
|
+
{"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/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];\n\tplugins.push(svelteInspector());\n\treturn plugins.filter(Boolean);\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, ResolvedConfig, UserConfig, ViteDevServer, normalizePath } 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';\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'experimental'\n]);\n\nconst knownRootOptions = new Set(['extensions', 'compilerOptions', 'preprocess', 'onwarn']);\n\nconst allowedInlineOptions = new Set([\n\t'configFile',\n\t'kit', // only for internal use by sveltekit\n\t...allowedPluginOptions,\n\t...knownRootOptions\n]);\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\taddSvelteKitOptions(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\n// some SvelteKit options need compilerOptions to work, so set them here.\nfunction addSvelteKitOptions(options: ResolvedOptions) {\n\t// @ts-expect-error kit is not typed to avoid dependency on sveltekit\n\tif (options?.kit != null && options.compilerOptions.hydratable == null) {\n\t\tlog.debug(`Setting compilerOptions.hydratable = true for SvelteKit`);\n\t\toptions.compilerOptions.hydratable = true;\n\t}\n}\n\nfunction handleDeprecatedOptions(options: ResolvedOptions) {\n\tif ((options.experimental as any)?.prebundleSvelteLibraries) {\n\t\toptions.prebundleSvelteLibraries = (options.experimental as any)?.prebundleSvelteLibraries;\n\t\tlog.warn(\n\t\t\t'experimental.prebundleSvelteLibraries is no longer experimental and has moved to prebundleSvelteLibraries'\n\t\t);\n\t}\n\tif ((options.experimental as any)?.generateMissingPreprocessorSourcemaps) {\n\t\tlog.warn('experimental.generateMissingPreprocessorSourcemaps has been removed.');\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 * 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 * enable svelte inspector\n\t */\n\tinspector?: InspectorOptions | boolean;\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 InspectorOptions {\n\t/**\n\t * define a key combo to toggle inspector,\n\t * @default 'control-shift' on windows, 'meta-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 false\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 * append an import to the module id ending with `appendTo` instead of adding a script into body\n\t * useful for frameworks that do not support trannsformIndexHtml hook\n\t *\n\t * WARNING: only set this if you know exactly what it does.\n\t * Regular users of vite-plugin-svelte or SvelteKit do not need it\n\t */\n\tappendTo?: string;\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 { InspectorOptions } from '../../utils/options';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport fs from 'fs';\nimport { idToFile } from './utils';\n\nconst defaultInspectorOptions: InspectorOptions = {\n\ttoggleKeyCombo: process.platform === 'win32' ? 'control-shift' : 'meta-shift',\n\tnavKeys: { parent: 'ArrowUp', child: 'ArrowDown', next: 'ArrowRight', prev: 'ArrowLeft' },\n\topenKey: 'Enter',\n\tholdMode: false,\n\tshowToggleButton: 'active',\n\ttoggleButtonPos: 'top-right',\n\tcustomStyles: true\n};\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 appendTo: string | undefined;\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\tconst options = vps?.api?.options?.experimental?.inspector;\n\t\t\tif (!vps || !options) {\n\t\t\t\tlog.debug('inspector disabled, could not find config');\n\t\t\t\tdisabled = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinspectorOptions = {\n\t\t\t\t...defaultInspectorOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst isSvelteKit = config.plugins.some((p) => p.name.startsWith('vite-plugin-sveltekit'));\n\t\t\tif (isSvelteKit && !inspectorOptions.appendTo) {\n\t\t\t\t// this could append twice if a user had a file that ends with /generated/root.svelte\n\t\t\t\t// but that should be rare and inspector doesn't execute twice\n\t\t\t\tinspectorOptions.appendTo = `/generated/root.svelte`;\n\t\t\t}\n\t\t\tappendTo = inspectorOptions.appendTo;\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 && log.debug(`resolved ${importee} with ${resolved}`);\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(`failed to find file for svelte-inspector: ${file}, referenced by id ${id}.`);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\ttransform(code: string, id: string, options?: { ssr?: boolean }) {\n\t\t\tif (options?.ssr || disabled || !appendTo) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (id.endsWith(appendTo)) {\n\t\t\t\treturn { code: `${code}\\nimport 'virtual:svelte-inspector-path:load-inspector.js'` };\n\t\t\t}\n\t\t},\n\t\ttransformIndexHtml(html) {\n\t\t\tif (disabled || appendTo) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\ttags: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttag: 'script',\n\t\t\t\t\t\tinjectTo: 'body',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\ttype: 'module',\n\t\t\t\t\t\t\t// /@id/ is needed, otherwise the virtual: is seen as protocol by browser and cors error happens\n\t\t\t\t\t\t\tsrc: '/@id/virtual:svelte-inspector-path:load-inspector.js'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\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 { 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","normalizePath","path","fs","readFileSync","normalizePath","path","fs","compileSvelte","fs","compileSvelte","fs","isDepExcluded"]}
|