vize 0.537.0 → 0.538.0

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.
@@ -465,7 +465,7 @@ function rejectLegacyConfig(source) {
465
465
  "lint",
466
466
  "fmt",
467
467
  "pack"
468
- ]) if ((Array.isArray(source[key]) ? source[key] : [source[key]]).some((value) => object(value) && Object.hasOwn(value, "vize"))) throw new Error(`${key}.vize is no longer supported; use ${key}.vue or the shared vue: settings`);
468
+ ]) if ((Array.isArray(source[key]) ? source[key] : [source[key]]).some((value) => object(value) && Object.hasOwn(value, "vize"))) throw new Error(key === "lint" ? "lint.vize is no longer supported; pass { lint: false } as defineConfig's integration options to disable the Vite+ native lint task while keeping CLI lint enabled, and put shared lint settings in vue.linter" : `${key}.vize: configuration is no longer supported; move Vue settings to vue: in vite.config.*`);
469
469
  }
470
470
  const VITE_CONFIG_FILE_NAMES = [
471
471
  "vite.config.ts",
@@ -864,4 +864,4 @@ function normalizeGlobalTypes(config) {
864
864
  //#endregion
865
865
  export { loadConfig as a, resolveViteConfigExport as c, defineConfig as i, VITE_CONFIG_FILE_NAMES as l, VIZE_CONFIG_JSON_SCHEMA_PATH as n, normalizeGlobalTypes as o, VIZE_CONFIG_PKL_SCHEMA_PATH as r, resolveConfigExport as s, CONFIG_FILE_NAMES as t };
866
866
 
867
- //# sourceMappingURL=config-D0v8pKVG.mjs.map
867
+ //# sourceMappingURL=config-DNHb9N9Y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DNHb9N9Y.mjs","names":["PACKAGE_ROOT","path","getErrorMessage","fs","moduleConfigDirectory","resolveViteConfigExport","path","projectViteConfigExport","fs"],"sources":["../src/config/pkl.js","../../../crates/vize_carton/src/config/loader/module-runtime.mjs","../../../crates/vize_carton/src/config/loader/vite-runtime.mjs","../src/config.ts"],"sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nconst PACKAGE_ROOT = path.resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"../..\");\n\nconst DOCUMENTED_PKL_SCHEMA_IMPORT_RE =\n /^(\\s*(?:amends|import)\\s+)([\"'])node_modules\\/vize\\/pkl\\/(VizeConfig\\.pkl|vize\\.pkl)\\2/gm;\n\n/**\n * Evaluate a `vize.config.pkl` file and return its JSON representation.\n *\n * The npm-facing loader keeps PKL execution in Node because it needs package\n * resolution for `@pkl-community/pkl`, but all structural config normalization\n * happens in Rust after this function returns. A missing PKL runtime returns\n * `null` so config discovery can fall through to lower-priority formats; an\n * evaluation failure throws because a present PKL config should not silently be\n * ignored.\n */\nexport function loadPklConfigJson(filePath) {\n const pklBin = findPklBinary();\n if (!pklBin) {\n console.warn(\n \"[vize] pkl CLI not found. Install @pkl-community/pkl or add pkl to PATH. \" +\n \"Falling back to the next config format.\",\n );\n return null;\n }\n\n const patchedFilePath = createPklConfigWithBundledSchemaImports(filePath);\n const evalFilePath = patchedFilePath ?? filePath;\n try {\n return execFileSync(pklBin, [\"eval\", \"-f\", \"json\", evalFilePath], {\n cwd: path.dirname(filePath),\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 30_000,\n });\n } catch (error) {\n throw new Error(`Failed to evaluate vize PKL config at ${filePath}: ${getErrorMessage(error)}`);\n } finally {\n if (patchedFilePath) {\n fs.rmSync(patchedFilePath, { force: true });\n }\n }\n}\n\nfunction findPklBinary() {\n try {\n const pklPkgPath = import.meta.resolve?.(\"@pkl-community/pkl\");\n if (pklPkgPath) {\n const pklLibDir = path.dirname(fileURLToPath(pklPkgPath));\n const pklPackageDir = path.dirname(pklLibDir);\n const candidates = [\n path.join(pklLibDir, \"main.js\"),\n path.join(pklPackageDir, \"pkl\"),\n path.join(pklPackageDir, \"pkl.exe\"),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n try {\n execFileSync(candidate, [\"--version\"], { stdio: \"ignore\" });\n return candidate;\n } catch {\n // Keep looking: the shim can exist when its runtime is unavailable.\n }\n }\n }\n }\n } catch {\n // Fall back to PATH below.\n }\n\n try {\n execFileSync(\"pkl\", [\"--version\"], { stdio: \"ignore\" });\n return \"pkl\";\n } catch {\n return null;\n }\n}\n\nfunction createPklConfigWithBundledSchemaImports(filePath) {\n const configDir = path.dirname(filePath);\n const source = fs.readFileSync(filePath, \"utf-8\");\n let patched = false;\n\n const content = source.replace(\n DOCUMENTED_PKL_SCHEMA_IMPORT_RE,\n (match, prefix, quote, schemaFile) => {\n const projectSchemaPath = path.join(configDir, \"node_modules\", \"vize\", \"pkl\", schemaFile);\n if (fs.existsSync(projectSchemaPath)) {\n return match;\n }\n\n const bundledSchemaPath = path.join(PACKAGE_ROOT, \"pkl\", schemaFile);\n if (!fs.existsSync(bundledSchemaPath)) {\n return match;\n }\n\n patched = true;\n return `${prefix}${quote}${pathToFileURL(bundledSchemaPath).href}${quote}`;\n },\n );\n\n if (!patched) {\n return null;\n }\n\n const tempFile = path.join(\n configDir,\n `.vize-config-${process.pid}-${Date.now()}-${randomUUID()}.pkl`,\n );\n fs.writeFileSync(tempFile, content, { flag: \"wx\", mode: 0o600 });\n return tempFile;\n}\n\nfunction getErrorMessage(error) {\n if (error instanceof Error) {\n return error.message;\n }\n\n return String(error);\n}\n","// Embedded by the native loader. The nearest installed project Vite owns loading.\nimport { lstatSync, realpathSync } from \"node:fs\";\nimport { mkdtemp, realpath, rm, writeFile } from \"node:fs/promises\";\nimport { createRequire, globalPaths } from \"node:module\";\nimport * as nodeModule from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport {\n dirname as moduleConfigDirectory,\n extname,\n isAbsolute,\n join,\n relative,\n sep,\n} from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\n// Optional compiled artifacts only; no imported namespace or evaluated config is retained.\nexport function enableConfigCompileCache(directory) {\n if (!directory || typeof nodeModule.enableCompileCache !== \"function\") return;\n if (\n [\n \"NODE_COMPILE_CACHE\",\n \"NODE_DISABLE_COMPILE_CACHE\",\n \"NODE_COMPILE_CACHE_PORTABLE\",\n \"NODE_V8_COVERAGE\",\n ].some((name) => Object.hasOwn(process.env, name)) ||\n process.env.NODE_OPTIONS?.includes(\"coverage\")\n )\n return;\n // The parent owns this private directory until every fresh child has exited.\n // Uses Node's standard source-checksum/version contract, not Canon input identity.\n // Normal process exit flushes compiled code before the parent releases its lease.\n return nodeModule.enableCompileCache(directory);\n}\n\n// Failure identity is host metadata; never attach it to authored exports/errors.\nconst configFailureArtifacts = new WeakMap();\nconst configEvaluationTimings = new WeakMap();\n\n// Private host diagnostics, never attached to authored values or exceptions.\nexport function configModuleEvaluationTimings(value) {\n return configEvaluationTimings.get(value)?.map((row) => ({ ...row }));\n}\n\nfunction beginConfigTiming(rows, phase, boundary) {\n const start = rows ? performance.now() : undefined;\n let finished = false;\n if (boundary) boundary.active = true;\n return () => {\n if (start !== undefined && !finished) {\n const end = performance.now();\n rows.push({ phase, elapsedMs: end - start, processId: process.pid });\n if (boundary) {\n boundary.active = false;\n // No observed resolution means UNKNOWN: never fabricate zero or guess\n // an SDK-generated path outside our already-owned private directory.\n if (boundary.resolvedAt !== undefined) {\n rows.push({\n phase: \"public_load_until_owned_resolve\",\n elapsedMs: boundary.resolvedAt - start,\n processId: process.pid,\n });\n rows.push({\n phase: \"public_load_after_owned_resolve\",\n elapsedMs: end - boundary.resolvedAt,\n processId: process.pid,\n });\n }\n }\n finished = true;\n }\n };\n}\n\n// Diagnostic only: retain the complete sampling packet, never an evaluated value.\n// Setup/stop costs are separate; samples also include the adjacent host call edges.\nasync function beginPublicLoadProfile() {\n const started = performance.now();\n let session;\n const close = () => {\n try {\n session?.disconnect();\n } catch {}\n };\n try {\n const { Session } = await import(\"node:inspector/promises\");\n session = new Session();\n session.connect();\n await session.post(\"Profiler.enable\");\n await session.post(\"Profiler.start\");\n const setupMs = performance.now() - started;\n return async () => {\n const stopping = performance.now();\n try {\n const { profile } = await session.post(\"Profiler.stop\");\n return { status: \"recorded\", setupMs, stopMs: performance.now() - stopping, profile };\n } catch (error) {\n return { status: \"unavailable\", setupMs, reason: String(error) };\n } finally {\n close();\n }\n };\n } catch (error) {\n close();\n return async () => ({ status: \"unavailable\", reason: String(error) });\n }\n}\n\nexport function configModuleFailureArtifacts(error) {\n return configFailureArtifacts.get(error)?.map(([owned, source]) => [owned, source]) ?? [];\n}\n\nexport function configModuleImportPath(configURL, windows = process.platform === \"win32\") {\n return fileURLToPath(configURL, { windows });\n}\n\nexport async function importConfigModule(configPath, withoutVite) {\n return (\n await importConfigModuleWithDependencies(configPath, nodeModule.registerHooks, withoutVite)\n ).namespace;\n}\n\n/** Observe real failed requests, without choosing a replacement resolution. */\nexport function failedConfigModuleRequests(error) {\n return failedConfigModuleObservation(error).paths;\n}\n\nfunction failedConfigModuleObservation(error) {\n const paths = new Set();\n let complete = false;\n if (error?.code === \"ERR_MODULE_NOT_FOUND\" && typeof error.url === \"string\") {\n try {\n const url = new URL(error.url);\n if (url.protocol === \"file:\") {\n paths.add(fileURLToPath(url));\n complete = true;\n }\n } catch {}\n }\n const diagnostics = Array.isArray(error?.errors) ? error.errors : [];\n if (diagnostics.length) complete = true;\n for (const diagnostic of diagnostics) {\n let requested = false;\n if (\n diagnostic?.code !== \"UNRESOLVED_IMPORT\" ||\n typeof diagnostic.id !== \"string\" ||\n !isAbsolute(diagnostic.id) ||\n typeof diagnostic.exporter !== \"string\"\n ) {\n complete = false;\n continue;\n }\n paths.add(diagnostic.id);\n const request = diagnostic.exporter;\n // Public bundle diagnostics expose the requested importer/specifier, not\n // extension or package search candidates. Observe only explicit file paths.\n if (!(isAbsolute(request) || request.startsWith(\"./\") || request.startsWith(\"../\"))) {\n complete = false;\n continue;\n }\n // Bundle specifiers may treat these characters as literal filenames or URL\n // syntax. Its diagnostic does not expose which interpretation won.\n if (/[%#?]/.test(request)) {\n complete = false;\n continue;\n }\n try {\n const url = isAbsolute(request)\n ? pathToFileURL(request)\n : new URL(request, pathToFileURL(diagnostic.id));\n if (url.protocol === \"file:\" && extname(url.pathname)) {\n paths.add(fileURLToPath(url));\n requested = true;\n }\n } catch {}\n complete &&= requested;\n }\n return { paths: [...paths], complete };\n}\n\n/** Keep runtime imports observable until the optional export evaluator settles. */\nasync function captureConfigEvaluation(\n load,\n configPath,\n registerModuleHooks,\n evaluate,\n privateDirectory,\n observeDependencies,\n ownedAdapter,\n timings,\n boundary,\n) {\n const files = new Set([configPath]);\n const requestedFiles = new Set();\n let complete = true;\n let moduleGraphLoaded = false;\n const owners = new Set([pathToFileURL(configPath).href]);\n const isPrivate = (path) => {\n if (!privateDirectory) return false;\n const inside = relative(privateDirectory, path);\n return inside !== \"..\" && !inside.startsWith(`..${sep}`) && !isAbsolute(inside);\n };\n const hooks =\n typeof registerModuleHooks === \"function\"\n ? registerModuleHooks({\n resolve(specifier, context, nextResolve) {\n const result = nextResolve(specifier, context);\n if (result.url.startsWith(\"file:\")) {\n const path = fileURLToPath(result.url);\n if (boundary?.active && boundary.resolvedAt === undefined && isPrivate(path)) {\n // Diagnostic only, after the same successful nextResolve. No\n // extra resolution/read and no change to dependency ownership.\n boundary.resolvedAt = performance.now();\n }\n // Vite's generated module owns config execution, but its build engine\n // and private adapters are not authored configuration dependencies.\n if (owners.has(result.url) || owners.has(context.parentURL) || isPrivate(path)) {\n owners.add(result.url);\n if (!isPrivate(path)) files.add(path);\n // Node reports the real target, but the actual explicit request\n // also owns a symlink route whose retargeting must be observed.\n // Keep this watch-only: it does not replace Node's resolution.\n if (\n owners.has(context.parentURL) &&\n (specifier.startsWith(\"./\") ||\n specifier.startsWith(\"../\") ||\n specifier.startsWith(\"/\") ||\n specifier.startsWith(\"file:\"))\n ) {\n try {\n const requested = new URL(specifier, context.parentURL);\n if (requested.protocol === \"file:\") {\n const requestedPath = fileURLToPath(requested);\n if (extname(requestedPath) && !isPrivate(requestedPath)) {\n requestedFiles.add(requestedPath);\n }\n }\n } catch {}\n }\n }\n }\n return result;\n },\n })\n : undefined;\n try {\n const { namespace, dependencies = [] } = await load();\n for (const path of dependencies) if (!isPrivate(path)) files.add(path);\n moduleGraphLoaded = true;\n const finish = beginConfigTiming(timings, \"export_evaluation\");\n let value;\n try {\n value = evaluate ? await evaluate(namespace) : namespace;\n } finally {\n finish();\n }\n return { namespace, value, dependencies: [...files] };\n } catch (error) {\n if (\n ownedAdapter &&\n error !== null &&\n (typeof error === \"object\" || typeof error === \"function\")\n ) {\n configFailureArtifacts.set(error, [\n [ownedAdapter, configPath],\n [pathToFileURL(ownedAdapter).href, pathToFileURL(configPath).href],\n [\n relative(moduleConfigDirectory(configPath), ownedAdapter),\n relative(moduleConfigDirectory(configPath), configPath),\n ],\n ]);\n }\n complete = false;\n // User code may throw arbitrary objects, including getters that throw.\n // Observation must never replace the loader's original exception.\n try {\n const observed = failedConfigModuleObservation(error);\n // A failed bundle reports its failing importer/request, but can omit\n // intermediate modules read by the build engine. Keep useful targets\n // without treating that partial graph as enough to suppress repair.\n complete = observed.complete && (privateDirectory === undefined || moduleGraphLoaded);\n for (const path of observed.paths) if (!isPrivate(path)) files.add(path);\n } catch {}\n throw error;\n } finally {\n hooks?.deregister();\n observeDependencies?.([...files, ...requestedFiles], complete);\n }\n}\n\n/** Await evaluate(namespace) once before sealing its graph; retain the namespace unchanged. */\nexport async function importConfigModuleWithDependencies(\n configPath,\n registerModuleHooks = nodeModule.registerHooks,\n withoutVite,\n evaluate,\n observeDependencies,\n beforeRead,\n) {\n const timings = process.env.VIZE_TRACE_EDITOR_PREPARATION === \"1\" ? [] : undefined;\n const boundary = timings ? { active: false, resolvedAt: undefined } : undefined;\n const finishTotal = beginConfigTiming(timings, \"module_total\");\n const finishSelection = beginConfigTiming(timings, \"engine_selection_with_ack\");\n let selectionFinished = false;\n let result;\n const watchInputs = new Set([configPath]);\n let complete = false;\n const observe = (paths, observedComplete) => {\n for (const path of paths) watchInputs.add(path);\n complete = observedComplete;\n };\n try {\n const configURL = pathToFileURL(configPath);\n const require = createRequire(configURL);\n const engineNames = [\"vite\", \"vite-plus\"];\n let candidate;\n for (const engineName of engineNames) {\n const searchPaths = require.resolve.paths(engineName) ?? [];\n for (const directory of searchPaths.filter((path) => !globalPaths.includes(path))) {\n const requested = join(directory, engineName);\n watchInputs.add(requested);\n await beforeRead?.([requested]);\n if (lstatSync(requested, { throwIfNoEntry: false }) !== undefined) {\n candidate = { engineName, directory: requested };\n watchInputs.add(join(candidate.directory, \"package.json\"));\n break;\n }\n }\n if (candidate !== undefined) break;\n }\n // The public CLI can retain its explicit TypeScript transform fallback. Native\n // editor snapshots always request the complete real import graph instead.\n if (typeof registerModuleHooks !== \"function\") {\n if (evaluate) {\n throw new Error(\n \"Tracking imports while evaluating a Vite config requires Node.js 22.15 or newer. Upgrade Node.js; an installed config bundler alone cannot track runtime imports.\",\n );\n }\n if (candidate === undefined && !withoutVite) {\n throw new Error(\n \"Loading a Vite config without project Vite or Vite+ requires Node.js 22.15 or newer to track imported configuration files. Upgrade Node.js or install Vite or Vite+ in the project.\",\n );\n }\n }\n if (candidate === undefined) {\n finishSelection();\n selectionFinished = true;\n await beforeRead?.([configPath]);\n result = await captureConfigEvaluation(\n async () => ({\n namespace: await (withoutVite ? withoutVite(configURL) : import(configURL.href)),\n }),\n configPath,\n registerModuleHooks,\n evaluate,\n undefined,\n observe,\n undefined,\n timings,\n );\n return result;\n }\n const engineDirectory = realpathSync(candidate.directory);\n watchInputs.add(join(engineDirectory, \"package.json\"));\n await beforeRead?.([\n join(candidate.directory, \"package.json\"),\n join(engineDirectory, \"package.json\"),\n ]);\n const resolvedEntry = require.resolve(candidate.engineName);\n watchInputs.add(resolvedEntry);\n const engineEntry = realpathSync(resolvedEntry);\n watchInputs.add(engineEntry);\n const entryPath = relative(engineDirectory, engineEntry);\n if (entryPath === \"..\" || entryPath.startsWith(`..${sep}`) || isAbsolute(entryPath)) {\n const engineLabel = candidate.engineName === \"vite\" ? \"Vite\" : \"Vite+\";\n throw new Error(\n `Resolved loader escapes selected project ${engineLabel}: ${candidate.directory} -> ${engineEntry}`,\n );\n }\n await beforeRead?.([resolvedEntry, engineEntry]);\n finishSelection();\n selectionFinished = true;\n const finishImport = beginConfigTiming(timings, \"engine_import\");\n let loadConfigFromFile;\n try {\n const engine = await import(pathToFileURL(engineEntry).href);\n loadConfigFromFile = engine.loadConfigFromFile ?? engine.default?.loadConfigFromFile;\n if (typeof loadConfigFromFile !== \"function\") {\n throw new Error(`${candidate.engineName} does not export loadConfigFromFile`);\n }\n } finally {\n finishImport();\n }\n const finishAdapter = beginConfigTiming(timings, \"adapter_prepare\");\n let temporary;\n try {\n temporary = await realpath(await mkdtemp(join(tmpdir(), \"vize-config-module-\")));\n } catch (error) {\n finishAdapter();\n throw error;\n }\n try {\n const adapter = join(temporary, \"config.mjs\");\n await writeFile(\n adapter,\n `import * as original from ${JSON.stringify(configModuleImportPath(configURL))};\\nexport default { namespace: original };\\n`,\n { flag: \"wx\", mode: 0o600 },\n );\n finishAdapter();\n result = await captureConfigEvaluation(\n async () => {\n const finishAck = beginConfigTiming(timings, \"selected_before_read_ack\");\n try {\n await beforeRead?.([configPath]);\n } finally {\n finishAck();\n }\n const finishProfile = timings ? await beginPublicLoadProfile() : undefined;\n const finishLoad = beginConfigTiming(timings, \"public_load\", boundary);\n let loaded;\n try {\n loaded = await loadConfigFromFile(\n { mode: \"development\", command: \"serve\" },\n adapter,\n moduleConfigDirectory(configPath),\n \"silent\",\n undefined,\n \"bundle\",\n );\n } finally {\n finishLoad();\n if (finishProfile) {\n timings.find((row) => row.phase === \"public_load\").cpuProfile = await finishProfile();\n }\n }\n if (!loaded) {\n throw new Error(\n `${candidate.engineName} did not load the selected config: ${configPath}`,\n );\n }\n return {\n namespace: loaded.config.namespace,\n dependencies: loaded.dependencies,\n };\n },\n configPath,\n registerModuleHooks,\n evaluate,\n temporary,\n observe,\n adapter,\n timings,\n boundary,\n );\n return result;\n } catch (error) {\n finishAdapter();\n throw error;\n } finally {\n const finishCleanup = beginConfigTiming(timings, \"adapter_cleanup\");\n try {\n await rm(temporary, { recursive: true, force: true });\n } finally {\n finishCleanup();\n }\n }\n } catch (error) {\n if (timings && error !== null && (typeof error === \"object\" || typeof error === \"function\")) {\n configEvaluationTimings.set(error, timings);\n }\n throw error;\n } finally {\n if (!selectionFinished) finishSelection();\n finishTotal();\n if (timings && result) configEvaluationTimings.set(result, timings);\n observeDependencies?.([...watchInputs], complete);\n }\n}\n","// This dependency-free projection is also embedded by the native config loader.\nimport { resolve } from \"node:path\";\n\n// Generated validation subset of npm/cli/schemas/vize.config.schema.json.\n// The canonical Vue options reuse every existing native section except retired config inheritance.\n// The source law compares every retained schema rule with the authoritative native schema.\nconst vueOptionSchema = JSON.parse(\n '{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"compiler\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"experimentals\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\",\"additionalProperties\":true},{\"type\":\"null\"}]}},\"dialect\":{\"type\":\"string\",\"enum\":[\"vue\",\"petite-vue\"]},\"vite\":{\"$ref\":\"#/definitions/VitePluginConfig\"},\"musea\":{\"$ref\":\"#/definitions/MuseaConfig\"},\"typeChecker\":{\"$ref\":\"#/definitions/TypeCheckerConfig\"},\"linter\":{\"$ref\":\"#/definitions/LinterConfig\"},\"formatter\":{\"$ref\":\"#/definitions/FormatterConfig\"},\"languageServer\":{\"$ref\":\"#/definitions/LanguageServerConfig\"},\"globalTypes\":{\"$ref\":\"#/definitions/GlobalTypesConfig\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignores\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"basePath\":{\"type\":\"string\"},\"lib\":{\"$ref\":\"#/definitions/LibConfig\"},\"compile\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"typeCheck\":{\"$ref\":\"#/definitions/TypeCheckerConfig\"},\"fmt\":{\"$ref\":\"#/definitions/FormatterConfig\"},\"lint\":{\"type\":\"object\",\"required\":[\"jsPlugins\",\"plugins\",\"rules\",\"settings\"],\"properties\":{\"jsPlugins\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"plugins\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"rules\":{\"type\":\"object\",\"additionalProperties\":true},\"settings\":{\"type\":\"object\",\"additionalProperties\":true},\"ignorePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"overrides\":{\"type\":\"array\"}},\"additionalProperties\":true},\"version\":{\"$ref\":\"#/definitions/VueVersion\"},\"entries\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"basePath\":{\"type\":\"string\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignores\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"compiler\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"linter\":{\"$ref\":\"#/definitions/LinterConfig\"}},\"additionalProperties\":false}}},\"additionalProperties\":false,\"definitions\":{\"CompilerConfig\":{\"type\":\"object\",\"properties\":{\"mode\":{\"type\":\"string\",\"enum\":[\"module\",\"function\"]},\"vapor\":{\"type\":\"boolean\"},\"jsxMode\":{\"type\":\"string\",\"enum\":[\"vdom\",\"vapor\"]},\"jsxCompat\":{\"type\":\"string\",\"enum\":[\"native\",\"babel\"]},\"customRenderer\":{\"type\":\"boolean\"},\"customElements\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ssr\":{\"type\":\"boolean\"},\"templateSyntax\":{\"type\":\"string\",\"enum\":[\"standard\",\"strict\",\"quirks\"]},\"whitespace\":{\"type\":\"string\",\"enum\":[\"condense\",\"preserve\",\"vue2-line-breaks\",\"vue2-preserve\"]},\"sourceMap\":{\"type\":\"boolean\"},\"prefixIdentifiers\":{\"type\":\"boolean\"},\"hoistStatic\":{\"type\":\"boolean\"},\"cacheHandlers\":{\"type\":\"boolean\"},\"isTs\":{\"type\":\"boolean\"},\"scriptExt\":{\"type\":\"string\",\"enum\":[\"ts\",\"js\"]},\"runtimeModuleName\":{\"type\":\"string\"},\"runtimeGlobalName\":{\"type\":\"string\"},\"compatibility\":{\"$ref\":\"#/definitions/CompilerCompatibilityConfig\"}},\"additionalProperties\":false},\"CompilerCompatibilityConfig\":{\"type\":\"object\",\"properties\":{\"vueVersion\":{\"$ref\":\"#/definitions/VueVersion\"},\"hostCompiler\":{\"type\":\"boolean\"},\"scriptSetupInStandalone\":{\"type\":\"boolean\"},\"optionsApiVapor\":{\"type\":\"boolean\"},\"nuxtVersion\":{\"type\":\"integer\",\"enum\":[2,3,4]},\"webpackVersion\":{\"type\":\"integer\",\"enum\":[4,5]}},\"additionalProperties\":false},\"VueVersion\":{\"type\":\"string\",\"enum\":[\"3\",\"2.7\",\"2\",\"1\",\"0.11\",\"0.10\"]},\"VitePluginConfig\":{\"type\":\"object\",\"properties\":{\"include\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]},\"exclude\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]},\"scanPatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignorePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"MuseaConfig\":{\"type\":\"object\",\"properties\":{\"include\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"exclude\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"basePath\":{\"type\":\"string\"},\"storybookCompat\":{\"type\":\"boolean\"},\"inlineArt\":{\"type\":\"boolean\"},\"vrt\":{\"$ref\":\"#/definitions/MuseaVrtConfig\"},\"a11y\":{\"$ref\":\"#/definitions/MuseaA11yConfig\"},\"autogen\":{\"$ref\":\"#/definitions/MuseaAutogenConfig\"}},\"additionalProperties\":false},\"MuseaVrtConfig\":{\"type\":\"object\",\"properties\":{\"threshold\":{\"type\":\"number\"},\"outDir\":{\"type\":\"string\"},\"viewports\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/MuseaViewport\"}}},\"additionalProperties\":false},\"MuseaViewport\":{\"type\":\"object\",\"properties\":{\"width\":{\"type\":\"integer\"},\"height\":{\"type\":\"integer\"},\"name\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"width\",\"height\"]},\"MuseaA11yConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"rules\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"boolean\"}}},\"additionalProperties\":false},\"MuseaAutogenConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"maxVariants\":{\"type\":\"integer\"}},\"additionalProperties\":false},\"TypeCheckerConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"strict\":{\"type\":\"boolean\"},\"checkProps\":{\"type\":\"boolean\"},\"checkEmits\":{\"type\":\"boolean\"},\"checkTemplateBindings\":{\"type\":\"boolean\"},\"checkReactivity\":{\"type\":\"boolean\"},\"checkSetupContext\":{\"type\":\"boolean\"},\"checkInvalidExports\":{\"type\":\"boolean\"},\"checkFallthroughAttrs\":{\"type\":\"boolean\"},\"optionsApi\":{\"type\":\"boolean\"},\"legacyVue2\":{\"type\":\"boolean\"},\"jsxTypecheck\":{\"type\":\"boolean\"},\"tsconfig\":{\"type\":\"string\"},\"corsaPath\":{\"type\":\"string\"},\"tsgoPath\":{\"type\":\"string\"},\"tsrsPath\":{\"type\":\"string\"},\"globalsFile\":{\"type\":\"string\"},\"servers\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":32},\"lspRequestTimeoutMs\":{\"type\":\"integer\",\"minimum\":1}},\"additionalProperties\":false},\"LinterConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"preset\":{\"type\":\"string\",\"enum\":[\"general-recommended\",\"general_recommended\",\"generalRecommended\",\"happy-path\",\"happy_path\",\"happy\",\"default\",\"recommended\",\"opinionated\",\"strict\",\"all\",\"essential\",\"incremental\",\"ecosystem\",\"nuxt\"]},\"typeAware\":{\"type\":\"boolean\"},\"crossFile\":{\"type\":\"boolean\"},\"crossFileTree\":{\"type\":\"boolean\"},\"crossFileComplexity\":{\"type\":\"boolean\"},\"strictReactivity\":{\"type\":\"boolean\"},\"maxWarnings\":{\"type\":\"integer\",\"minimum\":0},\"rules\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]}},\"ruleOptions\":{\"$ref\":\"#/definitions/LintRuleOptions\"},\"categories\":{\"type\":\"object\",\"properties\":{\"correctness\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"suspicious\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"style\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"perf\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"a11y\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"security\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]}},\"additionalProperties\":false}},\"additionalProperties\":false},\"LintRuleOptions\":{\"type\":\"object\",\"properties\":{\"script/define-macros-order\":{\"type\":\"object\",\"properties\":{\"order\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1},\"uniqueItems\":true}},\"additionalProperties\":false},\"script/define-props-destructuring\":{\"type\":\"object\",\"properties\":{\"destructure\":{\"type\":\"string\",\"enum\":[\"only-when-assigned\",\"always\",\"never\"]}},\"additionalProperties\":false},\"html/no-empty-palpable-content\":{\"type\":\"object\",\"properties\":{\"contentDirectives\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"type/strict-boolean-expressions\":{\"type\":\"object\",\"properties\":{\"allowString\":{\"type\":\"boolean\"},\"allowNumber\":{\"type\":\"boolean\"},\"allowNullableObject\":{\"type\":\"boolean\"},\"allowNullableBoolean\":{\"type\":\"boolean\"},\"allowNullableString\":{\"type\":\"boolean\"},\"allowNullableNumber\":{\"type\":\"boolean\"},\"allowNullableEnum\":{\"type\":\"boolean\"},\"allowAny\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"script/no-restricted-globals\":{\"$ref\":\"#/definitions/NoRestrictedGlobalsOptions\"},\"script/no-restricted-members\":{\"$ref\":\"#/definitions/NoRestrictedMembersOptions\"},\"vue/component-name-in-template-casing\":{\"type\":\"object\",\"properties\":{\"casing\":{\"type\":\"string\",\"enum\":[\"PascalCase\",\"kebab-case\"]},\"registeredComponentsOnly\":{\"type\":\"boolean\"},\"globals\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"script/custom-event-name-casing\":{\"type\":\"object\",\"properties\":{\"casing\":{\"type\":\"string\",\"enum\":[\"camelCase\",\"kebab-case\"]}},\"additionalProperties\":false},\"vue/no-mutating-props\":{\"type\":\"object\",\"properties\":{\"shallowOnly\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"vue/require-component-registration\":{\"type\":\"object\",\"properties\":{\"globals\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"vue/sfc-element-order\":{\"type\":\"object\",\"properties\":{\"order\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]}}},\"additionalProperties\":false},\"vue/html-self-closing\":{\"type\":\"object\",\"properties\":{\"html\":{\"type\":\"object\",\"properties\":{\"void\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"normal\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"component\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]}},\"additionalProperties\":false},\"svg\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"math\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]}},\"additionalProperties\":false},\"vue/html-quotes\":{\"oneOf\":[{\"type\":\"string\",\"enum\":[\"double\",\"single\"]},{\"type\":\"object\",\"properties\":{\"style\":{\"type\":\"string\",\"enum\":[\"double\",\"single\"]},\"avoidEscape\":{\"type\":\"boolean\"}},\"additionalProperties\":false}]},\"vue/mustache-interpolation-spacing\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/v-on-event-hyphenation\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/v-bind-style\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},\"vue/v-on-style\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},\"vue/v-slot-style\":{\"oneOf\":[{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},{\"type\":\"object\",\"properties\":{\"atComponent\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\",\"v-slot\"]},\"default\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\",\"v-slot\"]},\"named\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]}},\"additionalProperties\":false}]},\"vue/attribute-hyphenation\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/valid-v-on\":{\"type\":\"object\",\"properties\":{\"modifiers\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"vue/valid-v-slot\":{\"type\":\"object\",\"properties\":{\"allowModifiers\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"musea/prefer-design-tokens\":{\"$ref\":\"#/definitions/MuseaPreferDesignTokensOptions\"}},\"additionalProperties\":false},\"NoRestrictedGlobalsOptions\":{\"type\":\"object\",\"properties\":{\"globals\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/RestrictedGlobal\"}}},\"additionalProperties\":false},\"RestrictedGlobal\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"name\"]},\"NoRestrictedMembersOptions\":{\"type\":\"object\",\"properties\":{\"members\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/RestrictedMember\"}}},\"additionalProperties\":false},\"RestrictedMember\":{\"type\":\"object\",\"properties\":{\"object\":{\"type\":\"string\"},\"property\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"object\",\"property\"]},\"MuseaPreferDesignTokensOptions\":{\"type\":\"object\",\"properties\":{\"tokens\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/MuseaDesignToken\"}}},\"additionalProperties\":false},\"MuseaDesignToken\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"tier\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"path\",\"value\"]},\"FormatterConfig\":{\"type\":\"object\",\"properties\":{\"preset\":{\"type\":\"string\",\"enum\":[\"vize\",\"prettier\",\"compact\",\"documentation\"]},\"sortImports\":{\"oneOf\":[{\"type\":\"boolean\",\"enum\":[false]},{\"$ref\":\"#/definitions/SortImportsConfig\"}]},\"printWidth\":{\"type\":\"integer\"},\"tabWidth\":{\"type\":\"integer\"},\"useTabs\":{\"type\":\"boolean\"},\"semi\":{\"type\":\"boolean\"},\"singleQuote\":{\"type\":\"boolean\"},\"jsxSingleQuote\":{\"type\":\"boolean\"},\"trailingComma\":{\"type\":\"string\",\"enum\":[\"all\",\"none\",\"es5\"]},\"bracketSpacing\":{\"type\":\"boolean\"},\"bracketSameLine\":{\"type\":\"boolean\"},\"arrowParens\":{\"type\":\"string\",\"enum\":[\"always\",\"avoid\"]},\"endOfLine\":{\"type\":\"string\",\"enum\":[\"lf\",\"crlf\",\"cr\",\"auto\"]},\"quoteProps\":{\"type\":\"string\",\"enum\":[\"as-needed\",\"consistent\",\"preserve\"]},\"singleAttributePerLine\":{\"type\":\"boolean\"},\"vueIndentScriptAndStyle\":{\"type\":\"boolean\"},\"sortAttributes\":{\"type\":\"boolean\"},\"attributeSortOrder\":{\"type\":\"string\",\"enum\":[\"alphabetical\",\"as-written\"]},\"mergeBindAndNonBindAttrs\":{\"type\":\"boolean\"},\"maxAttributesPerLine\":{\"type\":\"integer\"},\"attributeGroups\":{\"type\":\"array\",\"items\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"normalizeDirectiveShorthands\":{\"type\":\"boolean\"},\"sortBlocks\":{\"type\":\"boolean\"},\"normalizeCssQuotes\":{\"type\":\"boolean\"},\"normalizeInlineStyles\":{\"type\":\"boolean\"},\"normalizeVForParens\":{\"type\":\"boolean\"},\"selfCloseVoidElements\":{\"type\":\"boolean\"},\"reindentPreprocessorStyles\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"SortImportsConfig\":{\"type\":\"object\",\"properties\":{\"partitionByNewline\":{\"type\":\"boolean\"},\"partitionByComment\":{\"type\":\"boolean\"},\"sortSideEffects\":{\"type\":\"boolean\"},\"order\":{\"type\":\"string\",\"enum\":[\"asc\",\"desc\"]},\"ignoreCase\":{\"type\":\"boolean\"},\"newlinesBetween\":{\"type\":\"boolean\"},\"internalPattern\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"groups\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object\",\"properties\":{\"newlinesBetween\":{\"type\":\"boolean\"}},\"additionalProperties\":false,\"required\":[\"newlinesBetween\"]}]}},\"customGroups\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ImportSortCustomGroup\"}}},\"additionalProperties\":false},\"ImportSortCustomGroup\":{\"type\":\"object\",\"properties\":{\"groupName\":{\"type\":\"string\"},\"elementNamePattern\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"selector\":{\"type\":\"string\"},\"modifiers\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false,\"required\":[\"groupName\"]},\"LanguageServerConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"lint\":{\"type\":\"boolean\"},\"diagnostics\":{\"type\":\"boolean\"},\"typecheck\":{\"type\":\"boolean\"},\"editor\":{\"type\":\"boolean\"},\"ecosystem\":{\"type\":\"boolean\"},\"crossFile\":{\"type\":\"boolean\"},\"legacyVue2\":{\"type\":\"boolean\"},\"completion\":{\"type\":\"boolean\"},\"signatureHelp\":{\"type\":\"boolean\"},\"hover\":{\"type\":\"boolean\"},\"definition\":{\"type\":\"boolean\"},\"references\":{\"type\":\"boolean\"},\"documentSymbols\":{\"type\":\"boolean\"},\"workspaceSymbols\":{\"type\":\"boolean\"},\"formatting\":{\"type\":\"boolean\"},\"codeActions\":{\"type\":\"boolean\"},\"rename\":{\"type\":\"boolean\"},\"codeLens\":{\"type\":\"boolean\"},\"semanticTokens\":{\"type\":\"boolean\"},\"documentLinks\":{\"type\":\"boolean\"},\"foldingRanges\":{\"type\":\"boolean\"},\"inlayHints\":{\"type\":\"boolean\"},\"fileRename\":{\"type\":\"boolean\"},\"corsa\":{\"type\":\"boolean\"},\"tsgo\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"GlobalTypesConfig\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"string\"},{\"$ref\":\"#/definitions/GlobalTypeDeclaration\"}]}},\"GlobalTypeDeclaration\":{\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\"},\"defaultValue\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"type\"]},\"LibConfig\":{\"type\":\"object\",\"properties\":{\"dir\":{\"type\":\"string\"},\"uiDir\":{\"type\":\"string\"},\"composableDir\":{\"type\":\"string\"},\"lockfile\":{\"type\":\"string\"},\"registries\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"dir\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"source\"]}]},\"propertyNames\":{\"pattern\":\"^@[a-z0-9][a-z0-9._-]*$\"}}},\"additionalProperties\":false}}}',\n);\n\n// Read the source of our Vite+ factory without starting Vite, plugins or tasks.\nconst sourceConfigKey = Symbol.for(\"@vizejs/vite-plugin/vite-plus/source\");\n\nfunction object(value) {\n if (value === null || typeof value !== \"object\") return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction merge(base, own) {\n const result = { ...base };\n for (const [key, value] of Object.entries(own)) {\n result[key] = object(value) && object(result[key]) ? merge(result[key], value) : value;\n }\n return result;\n}\n\nasync function resolveSource(value, env, parents = new Set()) {\n value = await value;\n if (parents.has(value)) throw new Error(\"Circular Vue configuration source\");\n parents.add(value);\n try {\n if ((typeof value === \"function\" || object(value)) && sourceConfigKey in value) {\n return await resolveSource(value[sourceConfigKey], env, parents);\n }\n const config = await (typeof value === \"function\" ? value(env) : value);\n if (!object(config)) throw new Error(\"Vite config must export an object or a config function\");\n rejectLegacyConfig(config);\n return config;\n } finally {\n parents.delete(value);\n }\n}\n\nfunction rejectLegacyConfig(source) {\n if (Object.hasOwn(source, \"extends\")) {\n throw new Error(\n \"Custom config extends is no longer supported; use defineConfig(vpConfig).withVue(vueConfig)\",\n );\n }\n if (Object.hasOwn(source, \"vize\")) {\n throw new Error(\n \"vize: configuration is no longer supported; move Vue settings to vue: in vite.config.*\",\n );\n }\n for (const key of [\"lint\", \"fmt\", \"pack\"]) {\n const values = Array.isArray(source[key]) ? source[key] : [source[key]];\n if (values.some((value) => object(value) && Object.hasOwn(value, \"vize\"))) {\n throw new Error(\n key === \"lint\"\n ? \"lint.vize is no longer supported; pass { lint: false } as defineConfig's integration options to disable the Vite+ native lint task while keeping CLI lint enabled, and put shared lint settings in vue.linter\"\n : `${key}.vize: configuration is no longer supported; move Vue settings to vue: in vite.config.*`,\n );\n }\n }\n}\n\nexport const VITE_CONFIG_FILE_NAMES = [\n \"vite.config.ts\",\n \"vite.config.js\",\n \"vite.config.mjs\",\n \"vite.config.cjs\",\n \"vite.config.mts\",\n \"vite.config.cts\",\n];\n\nexport function isViteConfigFile(filePath) {\n return /(?:^|[/\\\\])vite\\.config\\.(?:[cm]?[jt]s)$/.test(filePath);\n}\n\n/** Project workflows support JSX without an extra feature flag. Legacy config stays unchanged. */\nexport function projectConfigDefaults() {\n return { typeChecker: { jsxTypecheck: true } };\n}\n\n/** Resolve just the native settings from an ordinary Vite or Vite+ export. */\nexport async function resolveViteConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n // Dedicated Vize workflows also use commands such as lint and check. A Vite\n // function receives only Vite's serve/build discriminator, without mutation.\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n return projectViteConfigSource(source, env, configDir);\n}\n\n/** Resolve an authored Vite export without projecting away Vite-owned task settings. */\nexport async function resolveViteConfigSource(exported, env) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n return resolveSource(exported, env);\n}\n\n/** Resolve an explicitly selected CLI config as Vite config independent of its basename. */\nexport async function resolveExplicitViteConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n return projectExplicitViteConfigSource(source, env, configDir);\n}\n\n/** Preserve an archived native export only when its shape proves that role. */\nexport async function resolveExplicitSerializedConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n if (\n [\n \"compiler\",\n \"typeChecker\",\n \"linter\",\n \"formatter\",\n \"languageServer\",\n \"globalTypes\",\n \"files\",\n \"ignores\",\n \"entries\",\n ].some((key) => Object.hasOwn(source, key))\n ) {\n return source;\n }\n return projectExplicitViteConfigSource(source, env, configDir);\n}\n\nfunction projectExplicitViteConfigSource(source, env, configDir) {\n if (\n [\"linter\", \"formatter\", \"languageServer\", \"globalTypes\", \"files\", \"ignores\", \"entries\"].some(\n (key) => Object.hasOwn(source, key),\n )\n ) {\n throw new Error(\n \"vize.config.* is no longer supported; move Vue settings to vue: in vite.config.* and TypeScript settings to tsconfig.json\",\n );\n }\n return projectViteConfigSource(source, env, configDir);\n}\n\n/** Project already evaluated settings; the owning adapter evaluates its Vite export once. */\nexport async function projectViteConfigSource(source, env, configDir) {\n if (!object(source)) throw new TypeError(\"Vite config source must be an object\");\n env ??= { mode: \"development\", command: \"serve\" };\n // Adapters may pass a native task environment after evaluating the Vite source.\n // Its legacy native callback shares the same idempotent Vite command mapping.\n if (env.command !== \"build\" && env.command !== \"serve\") env = { ...env, command: \"serve\" };\n rejectLegacyConfig(source);\n const selected = normalizeVueConfigOptions(source);\n const canonical = selected === undefined ? {} : flatVueOptions(selected);\n const overrides = {};\n if (object(source.compiler)) {\n const { vueVersion, ...compiler } = source.compiler;\n const version = vueVersion ?? compiler.compatibility?.vueVersion;\n overrides.compiler = merge(\n compiler,\n version === undefined\n ? {}\n : {\n // Numeric 0.1 is the newly public spelling of Vue 0.10.\n compatibility: {\n vueVersion: String(version === 0.1 ? \"0.10\" : version === \"legacy\" ? 2 : version),\n },\n },\n );\n }\n if (typeof source.typecheck === \"boolean\") overrides.typeChecker = { enabled: source.typecheck };\n else if (object(source.typecheck)) overrides.typeChecker = source.typecheck;\n const lint = source.lint?.vue;\n if (typeof lint === \"boolean\") overrides.linter = { enabled: lint };\n else if (object(lint)) {\n const { typecheck: _typecheck, locale: _locale, helpLevel: _helpLevel, ...native } = lint;\n overrides.linter = native;\n }\n if (object(source.fmt)) {\n const { vue, sortImports } = source.fmt;\n const common = sortImports === undefined ? {} : { sortImports };\n overrides.formatter = merge(common, object(vue) ? vue : {});\n }\n const root = typeof source.root === \"string\" ? resolve(configDir ?? \".\", source.root) : configDir;\n const config = overlayVueOptions(merge(projectConfigDefaults(), overrides), canonical);\n return root ? { ...projectPaths(config, root, false), __vizeProjectRoot: root } : config;\n}\n\n/** Validate only canonical settings; selecting them never evaluates a legacy callback. */\nexport function vueConfigOptions(source) {\n const selected = source.vue;\n if (selected !== undefined) {\n validateVueOption(selected, vueOptionSchema, \"vue\");\n assertVueActionAliases(selected, \"vue\");\n }\n return selected;\n}\n\n/** Resolve preferred action names to the native section names without mutating authored input. */\nfunction normalizeVueConfigOptions(source) {\n const selected = vueConfigOptions(source);\n return selected === undefined ? undefined : normalizeVueActionAliases(selected, \"vue\");\n}\n\n/** Share canonical composition with adapters while their other Vite fields keep Vite merging. */\nexport function mergeVueConfigOptions(base, own) {\n vueConfigOptions({ vue: base });\n vueConfigOptions({ vue: own });\n if (base === undefined) return own;\n if (own === undefined) return base;\n const result = overlayVueOptions(base, own);\n vueConfigOptions({ vue: result });\n return result;\n}\n\nconst vueActionAliases = [\n [\"compile\", \"compiler\"],\n [\"typeCheck\", \"typeChecker\"],\n [\"fmt\", \"formatter\"],\n];\n\nfunction assertVueActionAliases(value, label) {\n for (const [action, compatibility] of vueActionAliases) {\n if (value[action] !== undefined && value[compatibility] !== undefined) {\n throw new TypeError(\n `${label}.${action}: conflicts with compatibility alias ${label}.${compatibility}; remove ${label}.${compatibility} and use ${label}.${action}`,\n );\n }\n }\n if (value.lint !== undefined && value.linter !== undefined) {\n throw new TypeError(\n `${label}.lint: conflicts with compatibility alias ${label}.linter; remove ${label}.linter and use ${label}.lint, with native rules under settings.vize`,\n );\n }\n for (let index = 0; index < (value.entries?.length ?? 0); index++) {\n assertVueActionAliases(value.entries[index], `${label}.entries[${index}]`);\n }\n}\n\nfunction normalizeVueActionAliases(value, label) {\n assertVueActionAliases(value, label);\n const result = { ...value };\n for (const [action, compatibility] of vueActionAliases) {\n if (result[action] === undefined) continue;\n result[compatibility] = result[action];\n delete result[action];\n }\n if (result.lint !== undefined) {\n const lint = result.lint;\n const linter = projectVitePlusLintConfig(lint);\n validateVueOption(linter, { $ref: \"#/definitions/LinterConfig\" }, `${label}.lint`);\n result.linter = linter;\n delete result.lint;\n const projectedEntries = projectVitePlusLintOverrides(lint, `${label}.lint`);\n if (projectedEntries.length !== 0) {\n result.entries = [...projectedEntries, ...(result.entries ?? [])];\n }\n }\n if (Array.isArray(result.entries)) {\n result.entries = result.entries.map((entry, index) =>\n normalizeVueActionAliases(entry, `${label}.entries[${index}]`),\n );\n }\n return result;\n}\n\nfunction projectVitePlusLintConfig(lint) {\n const settings = object(lint.settings?.vize) ? lint.settings.vize : {};\n const linter = {};\n for (const key of [\"preset\", \"typeAware\"]) {\n if (settings[key] !== undefined) linter[key] = settings[key];\n }\n const rules = {};\n const ruleOptions = {};\n for (const [id, entry] of Object.entries(object(lint.rules) ? lint.rules : {})) {\n if (!id.startsWith(\"vize/\")) continue;\n const name = id.slice(\"vize/\".length);\n const rawSeverity = Array.isArray(entry) ? entry[0] : entry;\n const severity = rawSeverity === 1 ? \"warn\" : rawSeverity === 2 ? \"error\" : rawSeverity;\n if (severity === \"off\" || severity === \"warn\" || severity === \"error\") {\n rules[name] = severity;\n }\n if (Array.isArray(entry) && entry[1] !== undefined) {\n ruleOptions[name] = entry[1];\n }\n }\n if (Object.keys(rules).length !== 0) linter.rules = rules;\n if (Object.keys(ruleOptions).length !== 0) linter.ruleOptions = ruleOptions;\n return linter;\n}\n\nfunction projectVitePlusLintOverrides(lint, label) {\n if (!Array.isArray(lint.overrides)) return [];\n return lint.overrides.flatMap((override, index) => {\n if (!object(override)) return [];\n const linter = projectVitePlusLintConfig(override);\n if (linter.rules === undefined && linter.ruleOptions === undefined) return [];\n validateVueOption(\n linter,\n { $ref: \"#/definitions/LinterConfig\" },\n `${label}.overrides[${index}]`,\n );\n const files = stringArray(override.files, `${label}.overrides[${index}].files`);\n const ignores =\n override.excludeFiles === undefined\n ? undefined\n : stringArray(override.excludeFiles, `${label}.overrides[${index}].excludeFiles`);\n return [{ files, ...(ignores === undefined ? {} : { ignores }), linter }];\n });\n}\n\nfunction stringArray(value, label) {\n if (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n throw new TypeError(`${label}: must be an array of strings to project vize/* rules`);\n }\n return [...value];\n}\n\nfunction flatVueOptions(selected) {\n const { version, entries, ...sections } = selected;\n return {\n ...sections,\n ...(version === undefined ? {} : { vue: { version } }),\n ...(entries === undefined ? {} : { entries: entries.map(flatVueOptions) }),\n };\n}\n\n// Native arrays replace; authored false leaves win and undefined remains absent.\nfunction overlayVueOptions(base, own) {\n const result = { ...base };\n for (const [key, value] of Object.entries(own)) {\n if (value === undefined) continue;\n const previous = Object.hasOwn(result, key) ? result[key] : undefined;\n Object.defineProperty(result, key, {\n value: object(value) && object(previous) ? overlayVueOptions(previous, value) : value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n return result;\n}\n\nfunction validateVueOption(value, schema, label) {\n const refuse = (reason) => {\n throw new TypeError(`${label}: ${reason}`);\n };\n if (schema.$ref) {\n return validateVueOption(\n value,\n vueOptionSchema.definitions[schema.$ref.split(\"/\").at(-1)],\n label,\n );\n }\n if (schema.oneOf) {\n const matches = schema.oneOf.filter((candidate) => {\n try {\n validateVueOption(value, candidate, label);\n return true;\n } catch (error) {\n if (!(error instanceof TypeError)) throw error;\n return false;\n }\n });\n if (matches.length !== 1) refuse(\"must match one documented native option type\");\n return;\n }\n if (schema.enum && !schema.enum.includes(value)) refuse(\"unsupported native option value\");\n const valid = {\n object: object(value),\n array: Array.isArray(value),\n string: typeof value === \"string\",\n boolean: typeof value === \"boolean\",\n integer: Number.isInteger(value),\n number: typeof value === \"number\" && Number.isFinite(value),\n null: value === null,\n };\n if (schema.type && !valid[schema.type]) refuse(`must be ${schema.type}`);\n if (schema.minimum !== undefined && value < schema.minimum)\n refuse(`must be >= ${schema.minimum}`);\n if (schema.maximum !== undefined && value > schema.maximum)\n refuse(`must be <= ${schema.maximum}`);\n if (Array.isArray(value) && schema.items) {\n for (let index = 0; index < value.length; index++) {\n validateVueOption(value[index], schema.items, `${label}[${index}]`);\n }\n }\n if (object(value)) {\n for (const required of schema.required ?? []) {\n if (!Object.hasOwn(value, required) || value[required] === undefined)\n refuse(`missing ${required}`);\n }\n for (const [key, item] of Object.entries(value)) {\n const documented = Object.hasOwn(schema.properties ?? {}, key);\n if (!documented && schema.additionalProperties === false) refuse(`unknown option \"${key}\"`);\n if (schema.propertyNames?.pattern && !new RegExp(schema.propertyNames.pattern).test(key)) {\n refuse(`invalid native option name ${key}`);\n }\n const rule = documented ? schema.properties[key] : schema.additionalProperties;\n if (item !== undefined && object(rule)) validateVueOption(item, rule, `${label}.${key}`);\n }\n }\n}\n\n// Vite-owned settings use its root. Dedicated Vize files keep their established\n// config-directory path contract, and CLI arguments never pass through here.\nfunction projectPaths(config, root, entry) {\n if (!root || !object(config)) return config;\n const result = { ...config };\n if (\n typeof config.basePath === \"string\" ||\n config.files !== undefined ||\n (entry && config.ignores !== undefined)\n ) {\n result.basePath = resolve(root, config.basePath ?? \".\");\n }\n if (Array.isArray(config.entries)) {\n result.entries = config.entries.map((value) => projectPaths(value, root, true));\n }\n if (object(config.typeChecker)) {\n result.typeChecker = { ...config.typeChecker };\n for (const key of [\"tsconfig\", \"corsaPath\", \"tsgoPath\", \"tsrsPath\", \"globalsFile\"]) {\n if (typeof config.typeChecker[key] === \"string\") {\n result.typeChecker[key] = resolve(root, config.typeChecker[key]);\n }\n }\n }\n return result;\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { createRequire } from \"node:module\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport type {\n ResolvedVizeConfig,\n LoadConfigOptions,\n UserConfigExport,\n ConfigEnv,\n GlobalTypesConfig,\n GlobalTypeDeclaration,\n} from \"./types/index.js\";\nimport { loadPklConfigJson } from \"./config/pkl.js\";\nimport { importConfigModule } from \"./config/module-runtime.mjs\";\nimport {\n VITE_CONFIG_FILE_NAMES,\n isViteConfigFile,\n resolveViteConfigExport as projectViteConfigExport,\n} from \"./config/vite-runtime.mjs\";\n\nexport { VITE_CONFIG_FILE_NAMES } from \"./config/vite-runtime.mjs\";\n\ntype NativeConfigHelpers = {\n normalizeVizeConfig(value: unknown): unknown;\n};\n\nconst require = createRequire(import.meta.url);\n\nexport const CONFIG_FILE_NAMES = VITE_CONFIG_FILE_NAMES;\nconst RETIRED_CONFIG = /^vize\\.config\\.(?:pkl|[cm]?[jt]s|json)$/;\nconst CONFIG_MIGRATION =\n \"vize.config.* is no longer supported; move Vue settings to vue: in vite.config.* and TypeScript settings to tsconfig.json\";\n\nconst DEFAULT_CONFIG_ENV: ConfigEnv = {\n mode: \"development\",\n command: \"serve\",\n};\n\nconst PACKAGE_ROOT = path.resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"..\");\n\nexport const VIZE_CONFIG_JSON_SCHEMA_PATH = path.join(\n PACKAGE_ROOT,\n \"schemas\",\n \"vize.config.schema.json\",\n);\n\nexport const VIZE_CONFIG_PKL_SCHEMA_PATH = path.join(PACKAGE_ROOT, \"pkl\", \"vize.pkl\");\n\n/**\n * Define a Vize configuration with type checking.\n * Accepts a plain object or a function that receives ConfigEnv.\n */\nexport function defineConfig(config: UserConfigExport): UserConfigExport {\n return config;\n}\n\n/** Resolve native settings from an already loaded Vite/Vite+ export, without starting its plugins. */\nexport async function resolveViteConfigExport(\n exported: unknown,\n env?: ConfigEnv,\n configDir?: string,\n): Promise<ResolvedVizeConfig> {\n return normalizeLoadedConfig(await projectViteConfigExport(exported, env, configDir));\n}\n\n/**\n * Load project settings from `vite.config.*`; TypeScript settings stay in tsconfig.json.\n */\nexport async function loadConfig(\n root: string,\n options: LoadConfigOptions = {},\n): Promise<ResolvedVizeConfig | null> {\n const { mode = \"root\", configFile, env, viteConfig = true } = options;\n\n if (mode === \"none\") {\n return null;\n }\n\n if (configFile) {\n const absolutePath = path.isAbsolute(configFile) ? configFile : path.resolve(root, configFile);\n if (fs.existsSync(absolutePath)) {\n return loadConfigFile(absolutePath, env);\n }\n return null;\n }\n\n if (mode === \"auto\") {\n return loadConfigFromDirAuto(root, env, viteConfig);\n }\n\n return loadConfigFromDir(root, env, viteConfig);\n}\n\nasync function loadConfigFromDir(\n dir: string,\n env?: ConfigEnv,\n viteConfig = true,\n): Promise<ResolvedVizeConfig | null> {\n // Reject before reading Vite. A leftover dedicated file is an error, not an override.\n if (\n viteConfig &&\n fs.existsSync(dir) &&\n fs.readdirSync(dir).some((name) => RETIRED_CONFIG.test(name))\n ) {\n throw new Error(CONFIG_MIGRATION);\n }\n for (const name of viteConfig ? CONFIG_FILE_NAMES : []) {\n const filePath = path.join(dir, name);\n if (!fs.existsSync(filePath)) {\n continue;\n }\n\n const config = await loadConfigFile(filePath, env);\n if (config !== null) {\n return config;\n }\n }\n return null;\n}\n\nasync function loadConfigFromDirAuto(\n startDir: string,\n env?: ConfigEnv,\n viteConfig = true,\n): Promise<ResolvedVizeConfig | null> {\n let currentDir = path.resolve(startDir);\n\n while (true) {\n const config = await loadConfigFromDir(currentDir, env, viteConfig);\n if (config !== null) {\n return config;\n }\n\n if (\n [\"package.json\", \"tsconfig.json\", \"jsconfig.json\"].some((name) =>\n fs.existsSync(path.join(currentDir, name)),\n )\n ) {\n return null;\n }\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return null;\n }\n\n currentDir = parentDir;\n }\n}\n\nasync function loadConfigFile(\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig | null> {\n const absolutePath = path.resolve(filePath);\n if (RETIRED_CONFIG.test(path.basename(absolutePath))) throw new Error(CONFIG_MIGRATION);\n if (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n const ext = path.extname(absolutePath);\n\n if (isViteConfigFile(absolutePath)) {\n // A project's installed Vite owns its module graph. Without Vite, retain\n // the existing TypeScript transform and fresh native import below.\n const module = await importConfigModule(absolutePath, () => null);\n if (module !== null) {\n return resolveFileExport((module.default ?? module) as UserConfigExport, absolutePath, env);\n }\n }\n\n if (ext === \".pkl\") {\n return loadPklConfig(absolutePath);\n }\n\n if (ext === \".json\") {\n const content = fs.readFileSync(absolutePath, \"utf-8\");\n return parseJsonConfig(content, absolutePath);\n }\n\n if (ext === \".ts\" || ext === \".mts\") {\n return loadTypeScriptConfig(absolutePath, env);\n }\n\n return loadESMConfig(absolutePath, env);\n}\n\nfunction loadPklConfig(filePath: string): ResolvedVizeConfig | null {\n const output = loadPklConfigJson(filePath);\n return output === null ? null : parseJsonConfig(output, filePath);\n}\n\nexport async function resolveConfigExport(\n exported: UserConfigExport,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n if (typeof exported === \"function\") {\n return normalizeLoadedConfig(await exported(env ?? DEFAULT_CONFIG_ENV));\n }\n\n return normalizeLoadedConfig(exported);\n}\n\nasync function loadTypeScriptConfig(\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n const source = fs.readFileSync(filePath, \"utf-8\");\n const oxcTransform = await import(\"oxc-transform\");\n const result = await oxcTransform.transform(filePath, source, {\n typescript: {\n onlyRemoveTypeImports: true,\n },\n });\n const code = rewriteSelfConfigImports(result.code);\n\n const tempFile = path.join(\n path.dirname(filePath),\n `.vize-config-${process.pid}-${Date.now()}-${randomUUID()}.mjs`,\n );\n fs.writeFileSync(tempFile, code, { flag: \"wx\", mode: 0o600 });\n\n try {\n const module = await importFresh(tempFile);\n const exported: UserConfigExport = module.default || module;\n return resolveFileExport(exported, filePath, env);\n } finally {\n fs.rmSync(tempFile, { force: true });\n }\n}\n\nasync function loadESMConfig(filePath: string, env?: ConfigEnv): Promise<ResolvedVizeConfig> {\n const module = await importFresh(filePath);\n const exported: UserConfigExport = module.default || module;\n return resolveFileExport(exported, filePath, env);\n}\n\nasync function resolveFileExport(\n exported: UserConfigExport,\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n return isViteConfigFile(filePath)\n ? resolveViteConfigExport(exported, env, path.dirname(filePath))\n : resolveConfigExport(exported, env);\n}\n\nasync function importFresh(filePath: string): Promise<Record<string, unknown>> {\n const fileUrl = pathToFileURL(filePath);\n fileUrl.searchParams.set(\"t\", String(fs.statSync(filePath).mtimeMs));\n return import(fileUrl.href);\n}\n\nfunction rewriteSelfConfigImports(code: string): string {\n return code\n .replace(/\\bfrom\\s+([\"'])(vize(?:\\/config)?)\\1/gu, (_match, quote, specifier) => {\n return `from ${quote}${resolveSelfConfigImportUrl(specifier)}${quote}`;\n })\n .replace(/\\bimport\\s+([\"'])(vize(?:\\/config)?)\\1/gu, (_match, quote, specifier) => {\n return `import ${quote}${resolveSelfConfigImportUrl(specifier)}${quote}`;\n })\n .replace(/\\bimport\\s*\\(\\s*([\"'])(vize(?:\\/config)?)\\1\\s*\\)/gu, (_match, quote, specifier) => {\n return `import(${quote}${resolveSelfConfigImportUrl(specifier)}${quote})`;\n });\n}\n\nfunction resolveSelfConfigImportUrl(specifier: string): string {\n const distTarget =\n specifier === \"vize\"\n ? path.join(PACKAGE_ROOT, \"dist\", \"index.mjs\")\n : path.join(PACKAGE_ROOT, \"dist\", \"config.mjs\");\n const sourceTarget = path.join(PACKAGE_ROOT, \"src\", \"config.ts\");\n return pathToFileURL(fs.existsSync(distTarget) ? distTarget : sourceTarget).href;\n}\n\nfunction parseJsonConfig(content: string, filePath: string): ResolvedVizeConfig {\n try {\n return normalizeLoadedConfig(JSON.parse(content));\n } catch (error) {\n throw new Error(`Failed to parse vize config JSON at ${filePath}: ${getErrorMessage(error)}`);\n }\n}\n\nfunction normalizeLoadedConfig(config: unknown): ResolvedVizeConfig {\n const hasExtends = (value: unknown) =>\n value !== null && typeof value === \"object\" && Object.hasOwn(value, \"extends\");\n const entries = Array.isArray(config)\n ? config\n : config && typeof config === \"object\" && \"entries\" in config\n ? (config as { entries?: unknown }).entries\n : undefined;\n if (hasExtends(config) || (Array.isArray(entries) && entries.some(hasExtends))) {\n throw new Error(\n \"Custom config extends is no longer supported; use defineConfig(vpConfig).withVue(vueConfig); standard tsconfig extends remains supported\",\n );\n }\n const native = require(\"@vizejs/native\") as NativeConfigHelpers;\n return native.normalizeVizeConfig(config ?? null) as ResolvedVizeConfig;\n}\n\nfunction getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n return String(error);\n}\n\n/**\n * Normalize GlobalTypesConfig shorthand strings to GlobalTypeDeclaration objects\n */\nexport function normalizeGlobalTypes(\n config: GlobalTypesConfig,\n): Record<string, GlobalTypeDeclaration> {\n const resolvedConfig =\n \"types\" in config &&\n typeof config.types === \"object\" &&\n config.types !== null &&\n !Array.isArray(config.types)\n ? config.types\n : config;\n\n const result: Record<string, GlobalTypeDeclaration> = {};\n for (const [key, value] of Object.entries(resolvedConfig)) {\n if (typeof value === \"string\") {\n result[key] = { type: value };\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n"],"mappings":"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"}
package/dist/config.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as loadConfig, c as resolveViteConfigExport, i as defineConfig, l as VITE_CONFIG_FILE_NAMES, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES } from "./config-D0v8pKVG.mjs";
1
+ import { a as loadConfig, c as resolveViteConfigExport, i as defineConfig, l as VITE_CONFIG_FILE_NAMES, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES } from "./config-DNHb9N9Y.mjs";
2
2
  export { CONFIG_FILE_NAMES, VITE_CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport, resolveViteConfigExport };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as loadConfig, c as resolveViteConfigExport, i as defineConfig, l as VITE_CONFIG_FILE_NAMES, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES } from "./config-D0v8pKVG.mjs";
1
+ import { a as loadConfig, c as resolveViteConfigExport, i as defineConfig, l as VITE_CONFIG_FILE_NAMES, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES } from "./config-DNHb9N9Y.mjs";
2
2
  export { CONFIG_FILE_NAMES, VITE_CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport, resolveViteConfigExport };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vize",
3
- "version": "0.537.0",
3
+ "version": "0.538.0",
4
4
  "description": "Vize - High-performance Vue.js toolchain in Rust",
5
5
  "keywords": [
6
6
  "cli",
@@ -53,7 +53,7 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@vizejs/native": "0.537.0",
56
+ "@vizejs/native": "0.538.0",
57
57
  "oxc-transform": "0.144.0"
58
58
  },
59
59
  "devDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-D0v8pKVG.mjs","names":["PACKAGE_ROOT","path","getErrorMessage","fs","moduleConfigDirectory","resolveViteConfigExport","path","projectViteConfigExport","fs"],"sources":["../src/config/pkl.js","../../../crates/vize_carton/src/config/loader/module-runtime.mjs","../../../crates/vize_carton/src/config/loader/vite-runtime.mjs","../src/config.ts"],"sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { execFileSync } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nconst PACKAGE_ROOT = path.resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"../..\");\n\nconst DOCUMENTED_PKL_SCHEMA_IMPORT_RE =\n /^(\\s*(?:amends|import)\\s+)([\"'])node_modules\\/vize\\/pkl\\/(VizeConfig\\.pkl|vize\\.pkl)\\2/gm;\n\n/**\n * Evaluate a `vize.config.pkl` file and return its JSON representation.\n *\n * The npm-facing loader keeps PKL execution in Node because it needs package\n * resolution for `@pkl-community/pkl`, but all structural config normalization\n * happens in Rust after this function returns. A missing PKL runtime returns\n * `null` so config discovery can fall through to lower-priority formats; an\n * evaluation failure throws because a present PKL config should not silently be\n * ignored.\n */\nexport function loadPklConfigJson(filePath) {\n const pklBin = findPklBinary();\n if (!pklBin) {\n console.warn(\n \"[vize] pkl CLI not found. Install @pkl-community/pkl or add pkl to PATH. \" +\n \"Falling back to the next config format.\",\n );\n return null;\n }\n\n const patchedFilePath = createPklConfigWithBundledSchemaImports(filePath);\n const evalFilePath = patchedFilePath ?? filePath;\n try {\n return execFileSync(pklBin, [\"eval\", \"-f\", \"json\", evalFilePath], {\n cwd: path.dirname(filePath),\n encoding: \"utf-8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n timeout: 30_000,\n });\n } catch (error) {\n throw new Error(`Failed to evaluate vize PKL config at ${filePath}: ${getErrorMessage(error)}`);\n } finally {\n if (patchedFilePath) {\n fs.rmSync(patchedFilePath, { force: true });\n }\n }\n}\n\nfunction findPklBinary() {\n try {\n const pklPkgPath = import.meta.resolve?.(\"@pkl-community/pkl\");\n if (pklPkgPath) {\n const pklLibDir = path.dirname(fileURLToPath(pklPkgPath));\n const pklPackageDir = path.dirname(pklLibDir);\n const candidates = [\n path.join(pklLibDir, \"main.js\"),\n path.join(pklPackageDir, \"pkl\"),\n path.join(pklPackageDir, \"pkl.exe\"),\n ];\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) {\n try {\n execFileSync(candidate, [\"--version\"], { stdio: \"ignore\" });\n return candidate;\n } catch {\n // Keep looking: the shim can exist when its runtime is unavailable.\n }\n }\n }\n }\n } catch {\n // Fall back to PATH below.\n }\n\n try {\n execFileSync(\"pkl\", [\"--version\"], { stdio: \"ignore\" });\n return \"pkl\";\n } catch {\n return null;\n }\n}\n\nfunction createPklConfigWithBundledSchemaImports(filePath) {\n const configDir = path.dirname(filePath);\n const source = fs.readFileSync(filePath, \"utf-8\");\n let patched = false;\n\n const content = source.replace(\n DOCUMENTED_PKL_SCHEMA_IMPORT_RE,\n (match, prefix, quote, schemaFile) => {\n const projectSchemaPath = path.join(configDir, \"node_modules\", \"vize\", \"pkl\", schemaFile);\n if (fs.existsSync(projectSchemaPath)) {\n return match;\n }\n\n const bundledSchemaPath = path.join(PACKAGE_ROOT, \"pkl\", schemaFile);\n if (!fs.existsSync(bundledSchemaPath)) {\n return match;\n }\n\n patched = true;\n return `${prefix}${quote}${pathToFileURL(bundledSchemaPath).href}${quote}`;\n },\n );\n\n if (!patched) {\n return null;\n }\n\n const tempFile = path.join(\n configDir,\n `.vize-config-${process.pid}-${Date.now()}-${randomUUID()}.pkl`,\n );\n fs.writeFileSync(tempFile, content, { flag: \"wx\", mode: 0o600 });\n return tempFile;\n}\n\nfunction getErrorMessage(error) {\n if (error instanceof Error) {\n return error.message;\n }\n\n return String(error);\n}\n","// Embedded by the native loader. The nearest installed project Vite owns loading.\nimport { lstatSync, realpathSync } from \"node:fs\";\nimport { mkdtemp, realpath, rm, writeFile } from \"node:fs/promises\";\nimport { createRequire, globalPaths } from \"node:module\";\nimport * as nodeModule from \"node:module\";\nimport { tmpdir } from \"node:os\";\nimport {\n dirname as moduleConfigDirectory,\n extname,\n isAbsolute,\n join,\n relative,\n sep,\n} from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\n// Optional compiled artifacts only; no imported namespace or evaluated config is retained.\nexport function enableConfigCompileCache(directory) {\n if (!directory || typeof nodeModule.enableCompileCache !== \"function\") return;\n if (\n [\n \"NODE_COMPILE_CACHE\",\n \"NODE_DISABLE_COMPILE_CACHE\",\n \"NODE_COMPILE_CACHE_PORTABLE\",\n \"NODE_V8_COVERAGE\",\n ].some((name) => Object.hasOwn(process.env, name)) ||\n process.env.NODE_OPTIONS?.includes(\"coverage\")\n )\n return;\n // The parent owns this private directory until every fresh child has exited.\n // Uses Node's standard source-checksum/version contract, not Canon input identity.\n // Normal process exit flushes compiled code before the parent releases its lease.\n return nodeModule.enableCompileCache(directory);\n}\n\n// Failure identity is host metadata; never attach it to authored exports/errors.\nconst configFailureArtifacts = new WeakMap();\nconst configEvaluationTimings = new WeakMap();\n\n// Private host diagnostics, never attached to authored values or exceptions.\nexport function configModuleEvaluationTimings(value) {\n return configEvaluationTimings.get(value)?.map((row) => ({ ...row }));\n}\n\nfunction beginConfigTiming(rows, phase, boundary) {\n const start = rows ? performance.now() : undefined;\n let finished = false;\n if (boundary) boundary.active = true;\n return () => {\n if (start !== undefined && !finished) {\n const end = performance.now();\n rows.push({ phase, elapsedMs: end - start, processId: process.pid });\n if (boundary) {\n boundary.active = false;\n // No observed resolution means UNKNOWN: never fabricate zero or guess\n // an SDK-generated path outside our already-owned private directory.\n if (boundary.resolvedAt !== undefined) {\n rows.push({\n phase: \"public_load_until_owned_resolve\",\n elapsedMs: boundary.resolvedAt - start,\n processId: process.pid,\n });\n rows.push({\n phase: \"public_load_after_owned_resolve\",\n elapsedMs: end - boundary.resolvedAt,\n processId: process.pid,\n });\n }\n }\n finished = true;\n }\n };\n}\n\n// Diagnostic only: retain the complete sampling packet, never an evaluated value.\n// Setup/stop costs are separate; samples also include the adjacent host call edges.\nasync function beginPublicLoadProfile() {\n const started = performance.now();\n let session;\n const close = () => {\n try {\n session?.disconnect();\n } catch {}\n };\n try {\n const { Session } = await import(\"node:inspector/promises\");\n session = new Session();\n session.connect();\n await session.post(\"Profiler.enable\");\n await session.post(\"Profiler.start\");\n const setupMs = performance.now() - started;\n return async () => {\n const stopping = performance.now();\n try {\n const { profile } = await session.post(\"Profiler.stop\");\n return { status: \"recorded\", setupMs, stopMs: performance.now() - stopping, profile };\n } catch (error) {\n return { status: \"unavailable\", setupMs, reason: String(error) };\n } finally {\n close();\n }\n };\n } catch (error) {\n close();\n return async () => ({ status: \"unavailable\", reason: String(error) });\n }\n}\n\nexport function configModuleFailureArtifacts(error) {\n return configFailureArtifacts.get(error)?.map(([owned, source]) => [owned, source]) ?? [];\n}\n\nexport function configModuleImportPath(configURL, windows = process.platform === \"win32\") {\n return fileURLToPath(configURL, { windows });\n}\n\nexport async function importConfigModule(configPath, withoutVite) {\n return (\n await importConfigModuleWithDependencies(configPath, nodeModule.registerHooks, withoutVite)\n ).namespace;\n}\n\n/** Observe real failed requests, without choosing a replacement resolution. */\nexport function failedConfigModuleRequests(error) {\n return failedConfigModuleObservation(error).paths;\n}\n\nfunction failedConfigModuleObservation(error) {\n const paths = new Set();\n let complete = false;\n if (error?.code === \"ERR_MODULE_NOT_FOUND\" && typeof error.url === \"string\") {\n try {\n const url = new URL(error.url);\n if (url.protocol === \"file:\") {\n paths.add(fileURLToPath(url));\n complete = true;\n }\n } catch {}\n }\n const diagnostics = Array.isArray(error?.errors) ? error.errors : [];\n if (diagnostics.length) complete = true;\n for (const diagnostic of diagnostics) {\n let requested = false;\n if (\n diagnostic?.code !== \"UNRESOLVED_IMPORT\" ||\n typeof diagnostic.id !== \"string\" ||\n !isAbsolute(diagnostic.id) ||\n typeof diagnostic.exporter !== \"string\"\n ) {\n complete = false;\n continue;\n }\n paths.add(diagnostic.id);\n const request = diagnostic.exporter;\n // Public bundle diagnostics expose the requested importer/specifier, not\n // extension or package search candidates. Observe only explicit file paths.\n if (!(isAbsolute(request) || request.startsWith(\"./\") || request.startsWith(\"../\"))) {\n complete = false;\n continue;\n }\n // Bundle specifiers may treat these characters as literal filenames or URL\n // syntax. Its diagnostic does not expose which interpretation won.\n if (/[%#?]/.test(request)) {\n complete = false;\n continue;\n }\n try {\n const url = isAbsolute(request)\n ? pathToFileURL(request)\n : new URL(request, pathToFileURL(diagnostic.id));\n if (url.protocol === \"file:\" && extname(url.pathname)) {\n paths.add(fileURLToPath(url));\n requested = true;\n }\n } catch {}\n complete &&= requested;\n }\n return { paths: [...paths], complete };\n}\n\n/** Keep runtime imports observable until the optional export evaluator settles. */\nasync function captureConfigEvaluation(\n load,\n configPath,\n registerModuleHooks,\n evaluate,\n privateDirectory,\n observeDependencies,\n ownedAdapter,\n timings,\n boundary,\n) {\n const files = new Set([configPath]);\n const requestedFiles = new Set();\n let complete = true;\n let moduleGraphLoaded = false;\n const owners = new Set([pathToFileURL(configPath).href]);\n const isPrivate = (path) => {\n if (!privateDirectory) return false;\n const inside = relative(privateDirectory, path);\n return inside !== \"..\" && !inside.startsWith(`..${sep}`) && !isAbsolute(inside);\n };\n const hooks =\n typeof registerModuleHooks === \"function\"\n ? registerModuleHooks({\n resolve(specifier, context, nextResolve) {\n const result = nextResolve(specifier, context);\n if (result.url.startsWith(\"file:\")) {\n const path = fileURLToPath(result.url);\n if (boundary?.active && boundary.resolvedAt === undefined && isPrivate(path)) {\n // Diagnostic only, after the same successful nextResolve. No\n // extra resolution/read and no change to dependency ownership.\n boundary.resolvedAt = performance.now();\n }\n // Vite's generated module owns config execution, but its build engine\n // and private adapters are not authored configuration dependencies.\n if (owners.has(result.url) || owners.has(context.parentURL) || isPrivate(path)) {\n owners.add(result.url);\n if (!isPrivate(path)) files.add(path);\n // Node reports the real target, but the actual explicit request\n // also owns a symlink route whose retargeting must be observed.\n // Keep this watch-only: it does not replace Node's resolution.\n if (\n owners.has(context.parentURL) &&\n (specifier.startsWith(\"./\") ||\n specifier.startsWith(\"../\") ||\n specifier.startsWith(\"/\") ||\n specifier.startsWith(\"file:\"))\n ) {\n try {\n const requested = new URL(specifier, context.parentURL);\n if (requested.protocol === \"file:\") {\n const requestedPath = fileURLToPath(requested);\n if (extname(requestedPath) && !isPrivate(requestedPath)) {\n requestedFiles.add(requestedPath);\n }\n }\n } catch {}\n }\n }\n }\n return result;\n },\n })\n : undefined;\n try {\n const { namespace, dependencies = [] } = await load();\n for (const path of dependencies) if (!isPrivate(path)) files.add(path);\n moduleGraphLoaded = true;\n const finish = beginConfigTiming(timings, \"export_evaluation\");\n let value;\n try {\n value = evaluate ? await evaluate(namespace) : namespace;\n } finally {\n finish();\n }\n return { namespace, value, dependencies: [...files] };\n } catch (error) {\n if (\n ownedAdapter &&\n error !== null &&\n (typeof error === \"object\" || typeof error === \"function\")\n ) {\n configFailureArtifacts.set(error, [\n [ownedAdapter, configPath],\n [pathToFileURL(ownedAdapter).href, pathToFileURL(configPath).href],\n [\n relative(moduleConfigDirectory(configPath), ownedAdapter),\n relative(moduleConfigDirectory(configPath), configPath),\n ],\n ]);\n }\n complete = false;\n // User code may throw arbitrary objects, including getters that throw.\n // Observation must never replace the loader's original exception.\n try {\n const observed = failedConfigModuleObservation(error);\n // A failed bundle reports its failing importer/request, but can omit\n // intermediate modules read by the build engine. Keep useful targets\n // without treating that partial graph as enough to suppress repair.\n complete = observed.complete && (privateDirectory === undefined || moduleGraphLoaded);\n for (const path of observed.paths) if (!isPrivate(path)) files.add(path);\n } catch {}\n throw error;\n } finally {\n hooks?.deregister();\n observeDependencies?.([...files, ...requestedFiles], complete);\n }\n}\n\n/** Await evaluate(namespace) once before sealing its graph; retain the namespace unchanged. */\nexport async function importConfigModuleWithDependencies(\n configPath,\n registerModuleHooks = nodeModule.registerHooks,\n withoutVite,\n evaluate,\n observeDependencies,\n beforeRead,\n) {\n const timings = process.env.VIZE_TRACE_EDITOR_PREPARATION === \"1\" ? [] : undefined;\n const boundary = timings ? { active: false, resolvedAt: undefined } : undefined;\n const finishTotal = beginConfigTiming(timings, \"module_total\");\n const finishSelection = beginConfigTiming(timings, \"engine_selection_with_ack\");\n let selectionFinished = false;\n let result;\n const watchInputs = new Set([configPath]);\n let complete = false;\n const observe = (paths, observedComplete) => {\n for (const path of paths) watchInputs.add(path);\n complete = observedComplete;\n };\n try {\n const configURL = pathToFileURL(configPath);\n const require = createRequire(configURL);\n const engineNames = [\"vite\", \"vite-plus\"];\n let candidate;\n for (const engineName of engineNames) {\n const searchPaths = require.resolve.paths(engineName) ?? [];\n for (const directory of searchPaths.filter((path) => !globalPaths.includes(path))) {\n const requested = join(directory, engineName);\n watchInputs.add(requested);\n await beforeRead?.([requested]);\n if (lstatSync(requested, { throwIfNoEntry: false }) !== undefined) {\n candidate = { engineName, directory: requested };\n watchInputs.add(join(candidate.directory, \"package.json\"));\n break;\n }\n }\n if (candidate !== undefined) break;\n }\n // The public CLI can retain its explicit TypeScript transform fallback. Native\n // editor snapshots always request the complete real import graph instead.\n if (typeof registerModuleHooks !== \"function\") {\n if (evaluate) {\n throw new Error(\n \"Tracking imports while evaluating a Vite config requires Node.js 22.15 or newer. Upgrade Node.js; an installed config bundler alone cannot track runtime imports.\",\n );\n }\n if (candidate === undefined && !withoutVite) {\n throw new Error(\n \"Loading a Vite config without project Vite or Vite+ requires Node.js 22.15 or newer to track imported configuration files. Upgrade Node.js or install Vite or Vite+ in the project.\",\n );\n }\n }\n if (candidate === undefined) {\n finishSelection();\n selectionFinished = true;\n await beforeRead?.([configPath]);\n result = await captureConfigEvaluation(\n async () => ({\n namespace: await (withoutVite ? withoutVite(configURL) : import(configURL.href)),\n }),\n configPath,\n registerModuleHooks,\n evaluate,\n undefined,\n observe,\n undefined,\n timings,\n );\n return result;\n }\n const engineDirectory = realpathSync(candidate.directory);\n watchInputs.add(join(engineDirectory, \"package.json\"));\n await beforeRead?.([\n join(candidate.directory, \"package.json\"),\n join(engineDirectory, \"package.json\"),\n ]);\n const resolvedEntry = require.resolve(candidate.engineName);\n watchInputs.add(resolvedEntry);\n const engineEntry = realpathSync(resolvedEntry);\n watchInputs.add(engineEntry);\n const entryPath = relative(engineDirectory, engineEntry);\n if (entryPath === \"..\" || entryPath.startsWith(`..${sep}`) || isAbsolute(entryPath)) {\n const engineLabel = candidate.engineName === \"vite\" ? \"Vite\" : \"Vite+\";\n throw new Error(\n `Resolved loader escapes selected project ${engineLabel}: ${candidate.directory} -> ${engineEntry}`,\n );\n }\n await beforeRead?.([resolvedEntry, engineEntry]);\n finishSelection();\n selectionFinished = true;\n const finishImport = beginConfigTiming(timings, \"engine_import\");\n let loadConfigFromFile;\n try {\n const engine = await import(pathToFileURL(engineEntry).href);\n loadConfigFromFile = engine.loadConfigFromFile ?? engine.default?.loadConfigFromFile;\n if (typeof loadConfigFromFile !== \"function\") {\n throw new Error(`${candidate.engineName} does not export loadConfigFromFile`);\n }\n } finally {\n finishImport();\n }\n const finishAdapter = beginConfigTiming(timings, \"adapter_prepare\");\n let temporary;\n try {\n temporary = await realpath(await mkdtemp(join(tmpdir(), \"vize-config-module-\")));\n } catch (error) {\n finishAdapter();\n throw error;\n }\n try {\n const adapter = join(temporary, \"config.mjs\");\n await writeFile(\n adapter,\n `import * as original from ${JSON.stringify(configModuleImportPath(configURL))};\\nexport default { namespace: original };\\n`,\n { flag: \"wx\", mode: 0o600 },\n );\n finishAdapter();\n result = await captureConfigEvaluation(\n async () => {\n const finishAck = beginConfigTiming(timings, \"selected_before_read_ack\");\n try {\n await beforeRead?.([configPath]);\n } finally {\n finishAck();\n }\n const finishProfile = timings ? await beginPublicLoadProfile() : undefined;\n const finishLoad = beginConfigTiming(timings, \"public_load\", boundary);\n let loaded;\n try {\n loaded = await loadConfigFromFile(\n { mode: \"development\", command: \"serve\" },\n adapter,\n moduleConfigDirectory(configPath),\n \"silent\",\n undefined,\n \"bundle\",\n );\n } finally {\n finishLoad();\n if (finishProfile) {\n timings.find((row) => row.phase === \"public_load\").cpuProfile = await finishProfile();\n }\n }\n if (!loaded) {\n throw new Error(\n `${candidate.engineName} did not load the selected config: ${configPath}`,\n );\n }\n return {\n namespace: loaded.config.namespace,\n dependencies: loaded.dependencies,\n };\n },\n configPath,\n registerModuleHooks,\n evaluate,\n temporary,\n observe,\n adapter,\n timings,\n boundary,\n );\n return result;\n } catch (error) {\n finishAdapter();\n throw error;\n } finally {\n const finishCleanup = beginConfigTiming(timings, \"adapter_cleanup\");\n try {\n await rm(temporary, { recursive: true, force: true });\n } finally {\n finishCleanup();\n }\n }\n } catch (error) {\n if (timings && error !== null && (typeof error === \"object\" || typeof error === \"function\")) {\n configEvaluationTimings.set(error, timings);\n }\n throw error;\n } finally {\n if (!selectionFinished) finishSelection();\n finishTotal();\n if (timings && result) configEvaluationTimings.set(result, timings);\n observeDependencies?.([...watchInputs], complete);\n }\n}\n","// This dependency-free projection is also embedded by the native config loader.\nimport { resolve } from \"node:path\";\n\n// Generated validation subset of npm/cli/schemas/vize.config.schema.json.\n// The canonical Vue options reuse every existing native section except retired config inheritance.\n// The source law compares every retained schema rule with the authoritative native schema.\nconst vueOptionSchema = JSON.parse(\n '{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"compiler\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"experimentals\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"boolean\"},{\"type\":\"object\",\"additionalProperties\":true},{\"type\":\"null\"}]}},\"dialect\":{\"type\":\"string\",\"enum\":[\"vue\",\"petite-vue\"]},\"vite\":{\"$ref\":\"#/definitions/VitePluginConfig\"},\"musea\":{\"$ref\":\"#/definitions/MuseaConfig\"},\"typeChecker\":{\"$ref\":\"#/definitions/TypeCheckerConfig\"},\"linter\":{\"$ref\":\"#/definitions/LinterConfig\"},\"formatter\":{\"$ref\":\"#/definitions/FormatterConfig\"},\"languageServer\":{\"$ref\":\"#/definitions/LanguageServerConfig\"},\"globalTypes\":{\"$ref\":\"#/definitions/GlobalTypesConfig\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignores\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"basePath\":{\"type\":\"string\"},\"lib\":{\"$ref\":\"#/definitions/LibConfig\"},\"compile\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"typeCheck\":{\"$ref\":\"#/definitions/TypeCheckerConfig\"},\"fmt\":{\"$ref\":\"#/definitions/FormatterConfig\"},\"lint\":{\"type\":\"object\",\"required\":[\"jsPlugins\",\"plugins\",\"rules\",\"settings\"],\"properties\":{\"jsPlugins\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"plugins\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"rules\":{\"type\":\"object\",\"additionalProperties\":true},\"settings\":{\"type\":\"object\",\"additionalProperties\":true},\"ignorePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"overrides\":{\"type\":\"array\"}},\"additionalProperties\":true},\"version\":{\"$ref\":\"#/definitions/VueVersion\"},\"entries\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"basePath\":{\"type\":\"string\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignores\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"compiler\":{\"$ref\":\"#/definitions/CompilerConfig\"},\"linter\":{\"$ref\":\"#/definitions/LinterConfig\"}},\"additionalProperties\":false}}},\"additionalProperties\":false,\"definitions\":{\"CompilerConfig\":{\"type\":\"object\",\"properties\":{\"mode\":{\"type\":\"string\",\"enum\":[\"module\",\"function\"]},\"vapor\":{\"type\":\"boolean\"},\"jsxMode\":{\"type\":\"string\",\"enum\":[\"vdom\",\"vapor\"]},\"jsxCompat\":{\"type\":\"string\",\"enum\":[\"native\",\"babel\"]},\"customRenderer\":{\"type\":\"boolean\"},\"customElements\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ssr\":{\"type\":\"boolean\"},\"templateSyntax\":{\"type\":\"string\",\"enum\":[\"standard\",\"strict\",\"quirks\"]},\"whitespace\":{\"type\":\"string\",\"enum\":[\"condense\",\"preserve\",\"vue2-line-breaks\",\"vue2-preserve\"]},\"sourceMap\":{\"type\":\"boolean\"},\"prefixIdentifiers\":{\"type\":\"boolean\"},\"hoistStatic\":{\"type\":\"boolean\"},\"cacheHandlers\":{\"type\":\"boolean\"},\"isTs\":{\"type\":\"boolean\"},\"scriptExt\":{\"type\":\"string\",\"enum\":[\"ts\",\"js\"]},\"runtimeModuleName\":{\"type\":\"string\"},\"runtimeGlobalName\":{\"type\":\"string\"},\"compatibility\":{\"$ref\":\"#/definitions/CompilerCompatibilityConfig\"}},\"additionalProperties\":false},\"CompilerCompatibilityConfig\":{\"type\":\"object\",\"properties\":{\"vueVersion\":{\"$ref\":\"#/definitions/VueVersion\"},\"hostCompiler\":{\"type\":\"boolean\"},\"scriptSetupInStandalone\":{\"type\":\"boolean\"},\"optionsApiVapor\":{\"type\":\"boolean\"},\"nuxtVersion\":{\"type\":\"integer\",\"enum\":[2,3,4]},\"webpackVersion\":{\"type\":\"integer\",\"enum\":[4,5]}},\"additionalProperties\":false},\"VueVersion\":{\"type\":\"string\",\"enum\":[\"3\",\"2.7\",\"2\",\"1\",\"0.11\",\"0.10\"]},\"VitePluginConfig\":{\"type\":\"object\",\"properties\":{\"include\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]},\"exclude\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]},\"scanPatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignorePatterns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"MuseaConfig\":{\"type\":\"object\",\"properties\":{\"include\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"exclude\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"basePath\":{\"type\":\"string\"},\"storybookCompat\":{\"type\":\"boolean\"},\"inlineArt\":{\"type\":\"boolean\"},\"vrt\":{\"$ref\":\"#/definitions/MuseaVrtConfig\"},\"a11y\":{\"$ref\":\"#/definitions/MuseaA11yConfig\"},\"autogen\":{\"$ref\":\"#/definitions/MuseaAutogenConfig\"}},\"additionalProperties\":false},\"MuseaVrtConfig\":{\"type\":\"object\",\"properties\":{\"threshold\":{\"type\":\"number\"},\"outDir\":{\"type\":\"string\"},\"viewports\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/MuseaViewport\"}}},\"additionalProperties\":false},\"MuseaViewport\":{\"type\":\"object\",\"properties\":{\"width\":{\"type\":\"integer\"},\"height\":{\"type\":\"integer\"},\"name\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"width\",\"height\"]},\"MuseaA11yConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"rules\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"boolean\"}}},\"additionalProperties\":false},\"MuseaAutogenConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"maxVariants\":{\"type\":\"integer\"}},\"additionalProperties\":false},\"TypeCheckerConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"strict\":{\"type\":\"boolean\"},\"checkProps\":{\"type\":\"boolean\"},\"checkEmits\":{\"type\":\"boolean\"},\"checkTemplateBindings\":{\"type\":\"boolean\"},\"checkReactivity\":{\"type\":\"boolean\"},\"checkSetupContext\":{\"type\":\"boolean\"},\"checkInvalidExports\":{\"type\":\"boolean\"},\"checkFallthroughAttrs\":{\"type\":\"boolean\"},\"optionsApi\":{\"type\":\"boolean\"},\"legacyVue2\":{\"type\":\"boolean\"},\"jsxTypecheck\":{\"type\":\"boolean\"},\"tsconfig\":{\"type\":\"string\"},\"corsaPath\":{\"type\":\"string\"},\"tsgoPath\":{\"type\":\"string\"},\"tsrsPath\":{\"type\":\"string\"},\"globalsFile\":{\"type\":\"string\"},\"servers\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":32},\"lspRequestTimeoutMs\":{\"type\":\"integer\",\"minimum\":1}},\"additionalProperties\":false},\"LinterConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"preset\":{\"type\":\"string\",\"enum\":[\"general-recommended\",\"general_recommended\",\"generalRecommended\",\"happy-path\",\"happy_path\",\"happy\",\"default\",\"recommended\",\"opinionated\",\"strict\",\"all\",\"essential\",\"incremental\",\"ecosystem\",\"nuxt\"]},\"typeAware\":{\"type\":\"boolean\"},\"crossFile\":{\"type\":\"boolean\"},\"crossFileTree\":{\"type\":\"boolean\"},\"crossFileComplexity\":{\"type\":\"boolean\"},\"strictReactivity\":{\"type\":\"boolean\"},\"maxWarnings\":{\"type\":\"integer\",\"minimum\":0},\"rules\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]}},\"ruleOptions\":{\"$ref\":\"#/definitions/LintRuleOptions\"},\"categories\":{\"type\":\"object\",\"properties\":{\"correctness\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"suspicious\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"style\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"perf\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"a11y\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]},\"security\":{\"type\":\"string\",\"enum\":[\"off\",\"warn\",\"error\"]}},\"additionalProperties\":false}},\"additionalProperties\":false},\"LintRuleOptions\":{\"type\":\"object\",\"properties\":{\"script/define-macros-order\":{\"type\":\"object\",\"properties\":{\"order\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"minLength\":1},\"uniqueItems\":true}},\"additionalProperties\":false},\"script/define-props-destructuring\":{\"type\":\"object\",\"properties\":{\"destructure\":{\"type\":\"string\",\"enum\":[\"only-when-assigned\",\"always\",\"never\"]}},\"additionalProperties\":false},\"html/no-empty-palpable-content\":{\"type\":\"object\",\"properties\":{\"contentDirectives\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"type/strict-boolean-expressions\":{\"type\":\"object\",\"properties\":{\"allowString\":{\"type\":\"boolean\"},\"allowNumber\":{\"type\":\"boolean\"},\"allowNullableObject\":{\"type\":\"boolean\"},\"allowNullableBoolean\":{\"type\":\"boolean\"},\"allowNullableString\":{\"type\":\"boolean\"},\"allowNullableNumber\":{\"type\":\"boolean\"},\"allowNullableEnum\":{\"type\":\"boolean\"},\"allowAny\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"script/no-restricted-globals\":{\"$ref\":\"#/definitions/NoRestrictedGlobalsOptions\"},\"script/no-restricted-members\":{\"$ref\":\"#/definitions/NoRestrictedMembersOptions\"},\"vue/component-name-in-template-casing\":{\"type\":\"object\",\"properties\":{\"casing\":{\"type\":\"string\",\"enum\":[\"PascalCase\",\"kebab-case\"]},\"registeredComponentsOnly\":{\"type\":\"boolean\"},\"globals\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"script/custom-event-name-casing\":{\"type\":\"object\",\"properties\":{\"casing\":{\"type\":\"string\",\"enum\":[\"camelCase\",\"kebab-case\"]}},\"additionalProperties\":false},\"vue/no-mutating-props\":{\"type\":\"object\",\"properties\":{\"shallowOnly\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"vue/require-component-registration\":{\"type\":\"object\",\"properties\":{\"globals\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"vue/sfc-element-order\":{\"type\":\"object\",\"properties\":{\"order\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}]}}},\"additionalProperties\":false},\"vue/html-self-closing\":{\"type\":\"object\",\"properties\":{\"html\":{\"type\":\"object\",\"properties\":{\"void\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"normal\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"component\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]}},\"additionalProperties\":false},\"svg\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]},\"math\":{\"type\":\"string\",\"enum\":[\"always\",\"never\",\"any\"]}},\"additionalProperties\":false},\"vue/html-quotes\":{\"oneOf\":[{\"type\":\"string\",\"enum\":[\"double\",\"single\"]},{\"type\":\"object\",\"properties\":{\"style\":{\"type\":\"string\",\"enum\":[\"double\",\"single\"]},\"avoidEscape\":{\"type\":\"boolean\"}},\"additionalProperties\":false}]},\"vue/mustache-interpolation-spacing\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/v-on-event-hyphenation\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/v-bind-style\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},\"vue/v-on-style\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},\"vue/v-slot-style\":{\"oneOf\":[{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]},{\"type\":\"object\",\"properties\":{\"atComponent\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\",\"v-slot\"]},\"default\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\",\"v-slot\"]},\"named\":{\"type\":\"string\",\"enum\":[\"shorthand\",\"longform\"]}},\"additionalProperties\":false}]},\"vue/attribute-hyphenation\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"vue/valid-v-on\":{\"type\":\"object\",\"properties\":{\"modifiers\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false},\"vue/valid-v-slot\":{\"type\":\"object\",\"properties\":{\"allowModifiers\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"musea/prefer-design-tokens\":{\"$ref\":\"#/definitions/MuseaPreferDesignTokensOptions\"}},\"additionalProperties\":false},\"NoRestrictedGlobalsOptions\":{\"type\":\"object\",\"properties\":{\"globals\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/RestrictedGlobal\"}}},\"additionalProperties\":false},\"RestrictedGlobal\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"name\"]},\"NoRestrictedMembersOptions\":{\"type\":\"object\",\"properties\":{\"members\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/RestrictedMember\"}}},\"additionalProperties\":false},\"RestrictedMember\":{\"type\":\"object\",\"properties\":{\"object\":{\"type\":\"string\"},\"property\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"object\",\"property\"]},\"MuseaPreferDesignTokensOptions\":{\"type\":\"object\",\"properties\":{\"tokens\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/MuseaDesignToken\"}}},\"additionalProperties\":false},\"MuseaDesignToken\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"tier\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"path\",\"value\"]},\"FormatterConfig\":{\"type\":\"object\",\"properties\":{\"preset\":{\"type\":\"string\",\"enum\":[\"vize\",\"prettier\",\"compact\",\"documentation\"]},\"sortImports\":{\"oneOf\":[{\"type\":\"boolean\",\"enum\":[false]},{\"$ref\":\"#/definitions/SortImportsConfig\"}]},\"printWidth\":{\"type\":\"integer\"},\"tabWidth\":{\"type\":\"integer\"},\"useTabs\":{\"type\":\"boolean\"},\"semi\":{\"type\":\"boolean\"},\"singleQuote\":{\"type\":\"boolean\"},\"jsxSingleQuote\":{\"type\":\"boolean\"},\"trailingComma\":{\"type\":\"string\",\"enum\":[\"all\",\"none\",\"es5\"]},\"bracketSpacing\":{\"type\":\"boolean\"},\"bracketSameLine\":{\"type\":\"boolean\"},\"arrowParens\":{\"type\":\"string\",\"enum\":[\"always\",\"avoid\"]},\"endOfLine\":{\"type\":\"string\",\"enum\":[\"lf\",\"crlf\",\"cr\",\"auto\"]},\"quoteProps\":{\"type\":\"string\",\"enum\":[\"as-needed\",\"consistent\",\"preserve\"]},\"singleAttributePerLine\":{\"type\":\"boolean\"},\"vueIndentScriptAndStyle\":{\"type\":\"boolean\"},\"sortAttributes\":{\"type\":\"boolean\"},\"attributeSortOrder\":{\"type\":\"string\",\"enum\":[\"alphabetical\",\"as-written\"]},\"mergeBindAndNonBindAttrs\":{\"type\":\"boolean\"},\"maxAttributesPerLine\":{\"type\":\"integer\"},\"attributeGroups\":{\"type\":\"array\",\"items\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"normalizeDirectiveShorthands\":{\"type\":\"boolean\"},\"sortBlocks\":{\"type\":\"boolean\"},\"normalizeCssQuotes\":{\"type\":\"boolean\"},\"normalizeInlineStyles\":{\"type\":\"boolean\"},\"normalizeVForParens\":{\"type\":\"boolean\"},\"selfCloseVoidElements\":{\"type\":\"boolean\"},\"reindentPreprocessorStyles\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"SortImportsConfig\":{\"type\":\"object\",\"properties\":{\"partitionByNewline\":{\"type\":\"boolean\"},\"partitionByComment\":{\"type\":\"boolean\"},\"sortSideEffects\":{\"type\":\"boolean\"},\"order\":{\"type\":\"string\",\"enum\":[\"asc\",\"desc\"]},\"ignoreCase\":{\"type\":\"boolean\"},\"newlinesBetween\":{\"type\":\"boolean\"},\"internalPattern\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"groups\":{\"type\":\"array\",\"items\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object\",\"properties\":{\"newlinesBetween\":{\"type\":\"boolean\"}},\"additionalProperties\":false,\"required\":[\"newlinesBetween\"]}]}},\"customGroups\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/ImportSortCustomGroup\"}}},\"additionalProperties\":false},\"ImportSortCustomGroup\":{\"type\":\"object\",\"properties\":{\"groupName\":{\"type\":\"string\"},\"elementNamePattern\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"selector\":{\"type\":\"string\"},\"modifiers\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"additionalProperties\":false,\"required\":[\"groupName\"]},\"LanguageServerConfig\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"lint\":{\"type\":\"boolean\"},\"diagnostics\":{\"type\":\"boolean\"},\"typecheck\":{\"type\":\"boolean\"},\"editor\":{\"type\":\"boolean\"},\"ecosystem\":{\"type\":\"boolean\"},\"crossFile\":{\"type\":\"boolean\"},\"legacyVue2\":{\"type\":\"boolean\"},\"completion\":{\"type\":\"boolean\"},\"signatureHelp\":{\"type\":\"boolean\"},\"hover\":{\"type\":\"boolean\"},\"definition\":{\"type\":\"boolean\"},\"references\":{\"type\":\"boolean\"},\"documentSymbols\":{\"type\":\"boolean\"},\"workspaceSymbols\":{\"type\":\"boolean\"},\"formatting\":{\"type\":\"boolean\"},\"codeActions\":{\"type\":\"boolean\"},\"rename\":{\"type\":\"boolean\"},\"codeLens\":{\"type\":\"boolean\"},\"semanticTokens\":{\"type\":\"boolean\"},\"documentLinks\":{\"type\":\"boolean\"},\"foldingRanges\":{\"type\":\"boolean\"},\"inlayHints\":{\"type\":\"boolean\"},\"fileRename\":{\"type\":\"boolean\"},\"corsa\":{\"type\":\"boolean\"},\"tsgo\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"GlobalTypesConfig\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"string\"},{\"$ref\":\"#/definitions/GlobalTypeDeclaration\"}]}},\"GlobalTypeDeclaration\":{\"type\":\"object\",\"properties\":{\"type\":{\"type\":\"string\"},\"defaultValue\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"type\"]},\"LibConfig\":{\"type\":\"object\",\"properties\":{\"dir\":{\"type\":\"string\"},\"uiDir\":{\"type\":\"string\"},\"composableDir\":{\"type\":\"string\"},\"lockfile\":{\"type\":\"string\"},\"registries\":{\"type\":\"object\",\"additionalProperties\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"object\",\"properties\":{\"source\":{\"type\":\"string\"},\"dir\":{\"type\":\"string\"}},\"additionalProperties\":false,\"required\":[\"source\"]}]},\"propertyNames\":{\"pattern\":\"^@[a-z0-9][a-z0-9._-]*$\"}}},\"additionalProperties\":false}}}',\n);\n\n// Read the source of our Vite+ factory without starting Vite, plugins or tasks.\nconst sourceConfigKey = Symbol.for(\"@vizejs/vite-plugin/vite-plus/source\");\n\nfunction object(value) {\n if (value === null || typeof value !== \"object\") return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction merge(base, own) {\n const result = { ...base };\n for (const [key, value] of Object.entries(own)) {\n result[key] = object(value) && object(result[key]) ? merge(result[key], value) : value;\n }\n return result;\n}\n\nasync function resolveSource(value, env, parents = new Set()) {\n value = await value;\n if (parents.has(value)) throw new Error(\"Circular Vue configuration source\");\n parents.add(value);\n try {\n if ((typeof value === \"function\" || object(value)) && sourceConfigKey in value) {\n return await resolveSource(value[sourceConfigKey], env, parents);\n }\n const config = await (typeof value === \"function\" ? value(env) : value);\n if (!object(config)) throw new Error(\"Vite config must export an object or a config function\");\n rejectLegacyConfig(config);\n return config;\n } finally {\n parents.delete(value);\n }\n}\n\nfunction rejectLegacyConfig(source) {\n if (Object.hasOwn(source, \"extends\")) {\n throw new Error(\n \"Custom config extends is no longer supported; use defineConfig(vpConfig).withVue(vueConfig)\",\n );\n }\n if (Object.hasOwn(source, \"vize\")) {\n throw new Error(\n \"vize: configuration is no longer supported; move Vue settings to vue: in vite.config.*\",\n );\n }\n for (const key of [\"lint\", \"fmt\", \"pack\"]) {\n const values = Array.isArray(source[key]) ? source[key] : [source[key]];\n if (values.some((value) => object(value) && Object.hasOwn(value, \"vize\"))) {\n throw new Error(\n `${key}.vize is no longer supported; use ${key}.vue or the shared vue: settings`,\n );\n }\n }\n}\n\nexport const VITE_CONFIG_FILE_NAMES = [\n \"vite.config.ts\",\n \"vite.config.js\",\n \"vite.config.mjs\",\n \"vite.config.cjs\",\n \"vite.config.mts\",\n \"vite.config.cts\",\n];\n\nexport function isViteConfigFile(filePath) {\n return /(?:^|[/\\\\])vite\\.config\\.(?:[cm]?[jt]s)$/.test(filePath);\n}\n\n/** Project workflows support JSX without an extra feature flag. Legacy config stays unchanged. */\nexport function projectConfigDefaults() {\n return { typeChecker: { jsxTypecheck: true } };\n}\n\n/** Resolve just the native settings from an ordinary Vite or Vite+ export. */\nexport async function resolveViteConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n // Dedicated Vize workflows also use commands such as lint and check. A Vite\n // function receives only Vite's serve/build discriminator, without mutation.\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n return projectViteConfigSource(source, env, configDir);\n}\n\n/** Resolve an authored Vite export without projecting away Vite-owned task settings. */\nexport async function resolveViteConfigSource(exported, env) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n return resolveSource(exported, env);\n}\n\n/** Resolve an explicitly selected CLI config as Vite config independent of its basename. */\nexport async function resolveExplicitViteConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n return projectExplicitViteConfigSource(source, env, configDir);\n}\n\n/** Preserve an archived native export only when its shape proves that role. */\nexport async function resolveExplicitSerializedConfigExport(exported, env, configDir) {\n env ??= { mode: \"development\", command: \"serve\" };\n if (env.command !== \"build\" && env.command !== \"serve\") {\n env = { ...env, command: \"serve\" };\n }\n const source = await resolveViteConfigSource(exported, env);\n if (\n [\n \"compiler\",\n \"typeChecker\",\n \"linter\",\n \"formatter\",\n \"languageServer\",\n \"globalTypes\",\n \"files\",\n \"ignores\",\n \"entries\",\n ].some((key) => Object.hasOwn(source, key))\n ) {\n return source;\n }\n return projectExplicitViteConfigSource(source, env, configDir);\n}\n\nfunction projectExplicitViteConfigSource(source, env, configDir) {\n if (\n [\"linter\", \"formatter\", \"languageServer\", \"globalTypes\", \"files\", \"ignores\", \"entries\"].some(\n (key) => Object.hasOwn(source, key),\n )\n ) {\n throw new Error(\n \"vize.config.* is no longer supported; move Vue settings to vue: in vite.config.* and TypeScript settings to tsconfig.json\",\n );\n }\n return projectViteConfigSource(source, env, configDir);\n}\n\n/** Project already evaluated settings; the owning adapter evaluates its Vite export once. */\nexport async function projectViteConfigSource(source, env, configDir) {\n if (!object(source)) throw new TypeError(\"Vite config source must be an object\");\n env ??= { mode: \"development\", command: \"serve\" };\n // Adapters may pass a native task environment after evaluating the Vite source.\n // Its legacy native callback shares the same idempotent Vite command mapping.\n if (env.command !== \"build\" && env.command !== \"serve\") env = { ...env, command: \"serve\" };\n rejectLegacyConfig(source);\n const selected = normalizeVueConfigOptions(source);\n const canonical = selected === undefined ? {} : flatVueOptions(selected);\n const overrides = {};\n if (object(source.compiler)) {\n const { vueVersion, ...compiler } = source.compiler;\n const version = vueVersion ?? compiler.compatibility?.vueVersion;\n overrides.compiler = merge(\n compiler,\n version === undefined\n ? {}\n : {\n // Numeric 0.1 is the newly public spelling of Vue 0.10.\n compatibility: {\n vueVersion: String(version === 0.1 ? \"0.10\" : version === \"legacy\" ? 2 : version),\n },\n },\n );\n }\n if (typeof source.typecheck === \"boolean\") overrides.typeChecker = { enabled: source.typecheck };\n else if (object(source.typecheck)) overrides.typeChecker = source.typecheck;\n const lint = source.lint?.vue;\n if (typeof lint === \"boolean\") overrides.linter = { enabled: lint };\n else if (object(lint)) {\n const { typecheck: _typecheck, locale: _locale, helpLevel: _helpLevel, ...native } = lint;\n overrides.linter = native;\n }\n if (object(source.fmt)) {\n const { vue, sortImports } = source.fmt;\n const common = sortImports === undefined ? {} : { sortImports };\n overrides.formatter = merge(common, object(vue) ? vue : {});\n }\n const root = typeof source.root === \"string\" ? resolve(configDir ?? \".\", source.root) : configDir;\n const config = overlayVueOptions(merge(projectConfigDefaults(), overrides), canonical);\n return root ? { ...projectPaths(config, root, false), __vizeProjectRoot: root } : config;\n}\n\n/** Validate only canonical settings; selecting them never evaluates a legacy callback. */\nexport function vueConfigOptions(source) {\n const selected = source.vue;\n if (selected !== undefined) {\n validateVueOption(selected, vueOptionSchema, \"vue\");\n assertVueActionAliases(selected, \"vue\");\n }\n return selected;\n}\n\n/** Resolve preferred action names to the native section names without mutating authored input. */\nfunction normalizeVueConfigOptions(source) {\n const selected = vueConfigOptions(source);\n return selected === undefined ? undefined : normalizeVueActionAliases(selected, \"vue\");\n}\n\n/** Share canonical composition with adapters while their other Vite fields keep Vite merging. */\nexport function mergeVueConfigOptions(base, own) {\n vueConfigOptions({ vue: base });\n vueConfigOptions({ vue: own });\n if (base === undefined) return own;\n if (own === undefined) return base;\n const result = overlayVueOptions(base, own);\n vueConfigOptions({ vue: result });\n return result;\n}\n\nconst vueActionAliases = [\n [\"compile\", \"compiler\"],\n [\"typeCheck\", \"typeChecker\"],\n [\"fmt\", \"formatter\"],\n];\n\nfunction assertVueActionAliases(value, label) {\n for (const [action, compatibility] of vueActionAliases) {\n if (value[action] !== undefined && value[compatibility] !== undefined) {\n throw new TypeError(\n `${label}.${action}: conflicts with compatibility alias ${label}.${compatibility}; remove ${label}.${compatibility} and use ${label}.${action}`,\n );\n }\n }\n if (value.lint !== undefined && value.linter !== undefined) {\n throw new TypeError(\n `${label}.lint: conflicts with compatibility alias ${label}.linter; remove ${label}.linter and use ${label}.lint, with native rules under settings.vize`,\n );\n }\n for (let index = 0; index < (value.entries?.length ?? 0); index++) {\n assertVueActionAliases(value.entries[index], `${label}.entries[${index}]`);\n }\n}\n\nfunction normalizeVueActionAliases(value, label) {\n assertVueActionAliases(value, label);\n const result = { ...value };\n for (const [action, compatibility] of vueActionAliases) {\n if (result[action] === undefined) continue;\n result[compatibility] = result[action];\n delete result[action];\n }\n if (result.lint !== undefined) {\n const lint = result.lint;\n const linter = projectVitePlusLintConfig(lint);\n validateVueOption(linter, { $ref: \"#/definitions/LinterConfig\" }, `${label}.lint`);\n result.linter = linter;\n delete result.lint;\n const projectedEntries = projectVitePlusLintOverrides(lint, `${label}.lint`);\n if (projectedEntries.length !== 0) {\n result.entries = [...projectedEntries, ...(result.entries ?? [])];\n }\n }\n if (Array.isArray(result.entries)) {\n result.entries = result.entries.map((entry, index) =>\n normalizeVueActionAliases(entry, `${label}.entries[${index}]`),\n );\n }\n return result;\n}\n\nfunction projectVitePlusLintConfig(lint) {\n const settings = object(lint.settings?.vize) ? lint.settings.vize : {};\n const linter = {};\n for (const key of [\"preset\", \"typeAware\"]) {\n if (settings[key] !== undefined) linter[key] = settings[key];\n }\n const rules = {};\n const ruleOptions = {};\n for (const [id, entry] of Object.entries(object(lint.rules) ? lint.rules : {})) {\n if (!id.startsWith(\"vize/\")) continue;\n const name = id.slice(\"vize/\".length);\n const rawSeverity = Array.isArray(entry) ? entry[0] : entry;\n const severity = rawSeverity === 1 ? \"warn\" : rawSeverity === 2 ? \"error\" : rawSeverity;\n if (severity === \"off\" || severity === \"warn\" || severity === \"error\") {\n rules[name] = severity;\n }\n if (Array.isArray(entry) && entry[1] !== undefined) {\n ruleOptions[name] = entry[1];\n }\n }\n if (Object.keys(rules).length !== 0) linter.rules = rules;\n if (Object.keys(ruleOptions).length !== 0) linter.ruleOptions = ruleOptions;\n return linter;\n}\n\nfunction projectVitePlusLintOverrides(lint, label) {\n if (!Array.isArray(lint.overrides)) return [];\n return lint.overrides.flatMap((override, index) => {\n if (!object(override)) return [];\n const linter = projectVitePlusLintConfig(override);\n if (linter.rules === undefined && linter.ruleOptions === undefined) return [];\n validateVueOption(\n linter,\n { $ref: \"#/definitions/LinterConfig\" },\n `${label}.overrides[${index}]`,\n );\n const files = stringArray(override.files, `${label}.overrides[${index}].files`);\n const ignores =\n override.excludeFiles === undefined\n ? undefined\n : stringArray(override.excludeFiles, `${label}.overrides[${index}].excludeFiles`);\n return [{ files, ...(ignores === undefined ? {} : { ignores }), linter }];\n });\n}\n\nfunction stringArray(value, label) {\n if (!Array.isArray(value) || !value.every((entry) => typeof entry === \"string\")) {\n throw new TypeError(`${label}: must be an array of strings to project vize/* rules`);\n }\n return [...value];\n}\n\nfunction flatVueOptions(selected) {\n const { version, entries, ...sections } = selected;\n return {\n ...sections,\n ...(version === undefined ? {} : { vue: { version } }),\n ...(entries === undefined ? {} : { entries: entries.map(flatVueOptions) }),\n };\n}\n\n// Native arrays replace; authored false leaves win and undefined remains absent.\nfunction overlayVueOptions(base, own) {\n const result = { ...base };\n for (const [key, value] of Object.entries(own)) {\n if (value === undefined) continue;\n const previous = Object.hasOwn(result, key) ? result[key] : undefined;\n Object.defineProperty(result, key, {\n value: object(value) && object(previous) ? overlayVueOptions(previous, value) : value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n return result;\n}\n\nfunction validateVueOption(value, schema, label) {\n const refuse = (reason) => {\n throw new TypeError(`${label}: ${reason}`);\n };\n if (schema.$ref) {\n return validateVueOption(\n value,\n vueOptionSchema.definitions[schema.$ref.split(\"/\").at(-1)],\n label,\n );\n }\n if (schema.oneOf) {\n const matches = schema.oneOf.filter((candidate) => {\n try {\n validateVueOption(value, candidate, label);\n return true;\n } catch (error) {\n if (!(error instanceof TypeError)) throw error;\n return false;\n }\n });\n if (matches.length !== 1) refuse(\"must match one documented native option type\");\n return;\n }\n if (schema.enum && !schema.enum.includes(value)) refuse(\"unsupported native option value\");\n const valid = {\n object: object(value),\n array: Array.isArray(value),\n string: typeof value === \"string\",\n boolean: typeof value === \"boolean\",\n integer: Number.isInteger(value),\n number: typeof value === \"number\" && Number.isFinite(value),\n null: value === null,\n };\n if (schema.type && !valid[schema.type]) refuse(`must be ${schema.type}`);\n if (schema.minimum !== undefined && value < schema.minimum)\n refuse(`must be >= ${schema.minimum}`);\n if (schema.maximum !== undefined && value > schema.maximum)\n refuse(`must be <= ${schema.maximum}`);\n if (Array.isArray(value) && schema.items) {\n for (let index = 0; index < value.length; index++) {\n validateVueOption(value[index], schema.items, `${label}[${index}]`);\n }\n }\n if (object(value)) {\n for (const required of schema.required ?? []) {\n if (!Object.hasOwn(value, required) || value[required] === undefined)\n refuse(`missing ${required}`);\n }\n for (const [key, item] of Object.entries(value)) {\n const documented = Object.hasOwn(schema.properties ?? {}, key);\n if (!documented && schema.additionalProperties === false) refuse(`unknown option \"${key}\"`);\n if (schema.propertyNames?.pattern && !new RegExp(schema.propertyNames.pattern).test(key)) {\n refuse(`invalid native option name ${key}`);\n }\n const rule = documented ? schema.properties[key] : schema.additionalProperties;\n if (item !== undefined && object(rule)) validateVueOption(item, rule, `${label}.${key}`);\n }\n }\n}\n\n// Vite-owned settings use its root. Dedicated Vize files keep their established\n// config-directory path contract, and CLI arguments never pass through here.\nfunction projectPaths(config, root, entry) {\n if (!root || !object(config)) return config;\n const result = { ...config };\n if (\n typeof config.basePath === \"string\" ||\n config.files !== undefined ||\n (entry && config.ignores !== undefined)\n ) {\n result.basePath = resolve(root, config.basePath ?? \".\");\n }\n if (Array.isArray(config.entries)) {\n result.entries = config.entries.map((value) => projectPaths(value, root, true));\n }\n if (object(config.typeChecker)) {\n result.typeChecker = { ...config.typeChecker };\n for (const key of [\"tsconfig\", \"corsaPath\", \"tsgoPath\", \"tsrsPath\", \"globalsFile\"]) {\n if (typeof config.typeChecker[key] === \"string\") {\n result.typeChecker[key] = resolve(root, config.typeChecker[key]);\n }\n }\n }\n return result;\n}\n","import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { createRequire } from \"node:module\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport type {\n ResolvedVizeConfig,\n LoadConfigOptions,\n UserConfigExport,\n ConfigEnv,\n GlobalTypesConfig,\n GlobalTypeDeclaration,\n} from \"./types/index.js\";\nimport { loadPklConfigJson } from \"./config/pkl.js\";\nimport { importConfigModule } from \"./config/module-runtime.mjs\";\nimport {\n VITE_CONFIG_FILE_NAMES,\n isViteConfigFile,\n resolveViteConfigExport as projectViteConfigExport,\n} from \"./config/vite-runtime.mjs\";\n\nexport { VITE_CONFIG_FILE_NAMES } from \"./config/vite-runtime.mjs\";\n\ntype NativeConfigHelpers = {\n normalizeVizeConfig(value: unknown): unknown;\n};\n\nconst require = createRequire(import.meta.url);\n\nexport const CONFIG_FILE_NAMES = VITE_CONFIG_FILE_NAMES;\nconst RETIRED_CONFIG = /^vize\\.config\\.(?:pkl|[cm]?[jt]s|json)$/;\nconst CONFIG_MIGRATION =\n \"vize.config.* is no longer supported; move Vue settings to vue: in vite.config.* and TypeScript settings to tsconfig.json\";\n\nconst DEFAULT_CONFIG_ENV: ConfigEnv = {\n mode: \"development\",\n command: \"serve\",\n};\n\nconst PACKAGE_ROOT = path.resolve(fileURLToPath(new URL(\".\", import.meta.url)), \"..\");\n\nexport const VIZE_CONFIG_JSON_SCHEMA_PATH = path.join(\n PACKAGE_ROOT,\n \"schemas\",\n \"vize.config.schema.json\",\n);\n\nexport const VIZE_CONFIG_PKL_SCHEMA_PATH = path.join(PACKAGE_ROOT, \"pkl\", \"vize.pkl\");\n\n/**\n * Define a Vize configuration with type checking.\n * Accepts a plain object or a function that receives ConfigEnv.\n */\nexport function defineConfig(config: UserConfigExport): UserConfigExport {\n return config;\n}\n\n/** Resolve native settings from an already loaded Vite/Vite+ export, without starting its plugins. */\nexport async function resolveViteConfigExport(\n exported: unknown,\n env?: ConfigEnv,\n configDir?: string,\n): Promise<ResolvedVizeConfig> {\n return normalizeLoadedConfig(await projectViteConfigExport(exported, env, configDir));\n}\n\n/**\n * Load project settings from `vite.config.*`; TypeScript settings stay in tsconfig.json.\n */\nexport async function loadConfig(\n root: string,\n options: LoadConfigOptions = {},\n): Promise<ResolvedVizeConfig | null> {\n const { mode = \"root\", configFile, env, viteConfig = true } = options;\n\n if (mode === \"none\") {\n return null;\n }\n\n if (configFile) {\n const absolutePath = path.isAbsolute(configFile) ? configFile : path.resolve(root, configFile);\n if (fs.existsSync(absolutePath)) {\n return loadConfigFile(absolutePath, env);\n }\n return null;\n }\n\n if (mode === \"auto\") {\n return loadConfigFromDirAuto(root, env, viteConfig);\n }\n\n return loadConfigFromDir(root, env, viteConfig);\n}\n\nasync function loadConfigFromDir(\n dir: string,\n env?: ConfigEnv,\n viteConfig = true,\n): Promise<ResolvedVizeConfig | null> {\n // Reject before reading Vite. A leftover dedicated file is an error, not an override.\n if (\n viteConfig &&\n fs.existsSync(dir) &&\n fs.readdirSync(dir).some((name) => RETIRED_CONFIG.test(name))\n ) {\n throw new Error(CONFIG_MIGRATION);\n }\n for (const name of viteConfig ? CONFIG_FILE_NAMES : []) {\n const filePath = path.join(dir, name);\n if (!fs.existsSync(filePath)) {\n continue;\n }\n\n const config = await loadConfigFile(filePath, env);\n if (config !== null) {\n return config;\n }\n }\n return null;\n}\n\nasync function loadConfigFromDirAuto(\n startDir: string,\n env?: ConfigEnv,\n viteConfig = true,\n): Promise<ResolvedVizeConfig | null> {\n let currentDir = path.resolve(startDir);\n\n while (true) {\n const config = await loadConfigFromDir(currentDir, env, viteConfig);\n if (config !== null) {\n return config;\n }\n\n if (\n [\"package.json\", \"tsconfig.json\", \"jsconfig.json\"].some((name) =>\n fs.existsSync(path.join(currentDir, name)),\n )\n ) {\n return null;\n }\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) {\n return null;\n }\n\n currentDir = parentDir;\n }\n}\n\nasync function loadConfigFile(\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig | null> {\n const absolutePath = path.resolve(filePath);\n if (RETIRED_CONFIG.test(path.basename(absolutePath))) throw new Error(CONFIG_MIGRATION);\n if (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n const ext = path.extname(absolutePath);\n\n if (isViteConfigFile(absolutePath)) {\n // A project's installed Vite owns its module graph. Without Vite, retain\n // the existing TypeScript transform and fresh native import below.\n const module = await importConfigModule(absolutePath, () => null);\n if (module !== null) {\n return resolveFileExport((module.default ?? module) as UserConfigExport, absolutePath, env);\n }\n }\n\n if (ext === \".pkl\") {\n return loadPklConfig(absolutePath);\n }\n\n if (ext === \".json\") {\n const content = fs.readFileSync(absolutePath, \"utf-8\");\n return parseJsonConfig(content, absolutePath);\n }\n\n if (ext === \".ts\" || ext === \".mts\") {\n return loadTypeScriptConfig(absolutePath, env);\n }\n\n return loadESMConfig(absolutePath, env);\n}\n\nfunction loadPklConfig(filePath: string): ResolvedVizeConfig | null {\n const output = loadPklConfigJson(filePath);\n return output === null ? null : parseJsonConfig(output, filePath);\n}\n\nexport async function resolveConfigExport(\n exported: UserConfigExport,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n if (typeof exported === \"function\") {\n return normalizeLoadedConfig(await exported(env ?? DEFAULT_CONFIG_ENV));\n }\n\n return normalizeLoadedConfig(exported);\n}\n\nasync function loadTypeScriptConfig(\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n const source = fs.readFileSync(filePath, \"utf-8\");\n const oxcTransform = await import(\"oxc-transform\");\n const result = await oxcTransform.transform(filePath, source, {\n typescript: {\n onlyRemoveTypeImports: true,\n },\n });\n const code = rewriteSelfConfigImports(result.code);\n\n const tempFile = path.join(\n path.dirname(filePath),\n `.vize-config-${process.pid}-${Date.now()}-${randomUUID()}.mjs`,\n );\n fs.writeFileSync(tempFile, code, { flag: \"wx\", mode: 0o600 });\n\n try {\n const module = await importFresh(tempFile);\n const exported: UserConfigExport = module.default || module;\n return resolveFileExport(exported, filePath, env);\n } finally {\n fs.rmSync(tempFile, { force: true });\n }\n}\n\nasync function loadESMConfig(filePath: string, env?: ConfigEnv): Promise<ResolvedVizeConfig> {\n const module = await importFresh(filePath);\n const exported: UserConfigExport = module.default || module;\n return resolveFileExport(exported, filePath, env);\n}\n\nasync function resolveFileExport(\n exported: UserConfigExport,\n filePath: string,\n env?: ConfigEnv,\n): Promise<ResolvedVizeConfig> {\n return isViteConfigFile(filePath)\n ? resolveViteConfigExport(exported, env, path.dirname(filePath))\n : resolveConfigExport(exported, env);\n}\n\nasync function importFresh(filePath: string): Promise<Record<string, unknown>> {\n const fileUrl = pathToFileURL(filePath);\n fileUrl.searchParams.set(\"t\", String(fs.statSync(filePath).mtimeMs));\n return import(fileUrl.href);\n}\n\nfunction rewriteSelfConfigImports(code: string): string {\n return code\n .replace(/\\bfrom\\s+([\"'])(vize(?:\\/config)?)\\1/gu, (_match, quote, specifier) => {\n return `from ${quote}${resolveSelfConfigImportUrl(specifier)}${quote}`;\n })\n .replace(/\\bimport\\s+([\"'])(vize(?:\\/config)?)\\1/gu, (_match, quote, specifier) => {\n return `import ${quote}${resolveSelfConfigImportUrl(specifier)}${quote}`;\n })\n .replace(/\\bimport\\s*\\(\\s*([\"'])(vize(?:\\/config)?)\\1\\s*\\)/gu, (_match, quote, specifier) => {\n return `import(${quote}${resolveSelfConfigImportUrl(specifier)}${quote})`;\n });\n}\n\nfunction resolveSelfConfigImportUrl(specifier: string): string {\n const distTarget =\n specifier === \"vize\"\n ? path.join(PACKAGE_ROOT, \"dist\", \"index.mjs\")\n : path.join(PACKAGE_ROOT, \"dist\", \"config.mjs\");\n const sourceTarget = path.join(PACKAGE_ROOT, \"src\", \"config.ts\");\n return pathToFileURL(fs.existsSync(distTarget) ? distTarget : sourceTarget).href;\n}\n\nfunction parseJsonConfig(content: string, filePath: string): ResolvedVizeConfig {\n try {\n return normalizeLoadedConfig(JSON.parse(content));\n } catch (error) {\n throw new Error(`Failed to parse vize config JSON at ${filePath}: ${getErrorMessage(error)}`);\n }\n}\n\nfunction normalizeLoadedConfig(config: unknown): ResolvedVizeConfig {\n const hasExtends = (value: unknown) =>\n value !== null && typeof value === \"object\" && Object.hasOwn(value, \"extends\");\n const entries = Array.isArray(config)\n ? config\n : config && typeof config === \"object\" && \"entries\" in config\n ? (config as { entries?: unknown }).entries\n : undefined;\n if (hasExtends(config) || (Array.isArray(entries) && entries.some(hasExtends))) {\n throw new Error(\n \"Custom config extends is no longer supported; use defineConfig(vpConfig).withVue(vueConfig); standard tsconfig extends remains supported\",\n );\n }\n const native = require(\"@vizejs/native\") as NativeConfigHelpers;\n return native.normalizeVizeConfig(config ?? null) as ResolvedVizeConfig;\n}\n\nfunction getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n return String(error);\n}\n\n/**\n * Normalize GlobalTypesConfig shorthand strings to GlobalTypeDeclaration objects\n */\nexport function normalizeGlobalTypes(\n config: GlobalTypesConfig,\n): Record<string, GlobalTypeDeclaration> {\n const resolvedConfig =\n \"types\" in config &&\n typeof config.types === \"object\" &&\n config.types !== null &&\n !Array.isArray(config.types)\n ? config.types\n : config;\n\n const result: Record<string, GlobalTypeDeclaration> = {};\n for (const [key, value] of Object.entries(resolvedConfig)) {\n if (typeof value === \"string\") {\n result[key] = { type: value };\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n"],"mappings":"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"}