vize 0.474.0 → 0.476.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-BnQMtsWA.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 searchPaths = require.resolve.paths(\"vite\") ?? [];\n let candidate;\n for (const directory of searchPaths.filter((path) => !globalPaths.includes(path))) {\n const requested = join(directory, \"vite\");\n watchInputs.add(requested);\n await beforeRead?.([requested]);\n if (lstatSync(requested, { throwIfNoEntry: false }) !== undefined) {\n candidate = requested;\n watchInputs.add(join(candidate, \"package.json\"));\n break;\n }\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; installed Vite alone cannot track runtime imports.\",\n );\n }\n if (candidate === undefined && !withoutVite) {\n throw new Error(\n \"Loading a Vite config without project Vite requires Node.js 22.15 or newer to track imported configuration files. Upgrade Node.js or install 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 viteDirectory = realpathSync(candidate);\n watchInputs.add(join(viteDirectory, \"package.json\"));\n await beforeRead?.([join(candidate, \"package.json\"), join(viteDirectory, \"package.json\")]);\n const resolvedEntry = require.resolve(\"vite\");\n watchInputs.add(resolvedEntry);\n const viteEntry = realpathSync(resolvedEntry);\n watchInputs.add(viteEntry);\n const entryPath = relative(viteDirectory, viteEntry);\n if (entryPath === \"..\" || entryPath.startsWith(`..${sep}`) || isAbsolute(entryPath)) {\n throw new Error(\n `Resolved loader escapes selected project Vite: ${candidate} -> ${viteEntry}`,\n );\n }\n await beforeRead?.([resolvedEntry, viteEntry]);\n finishSelection();\n selectionFinished = true;\n const finishImport = beginConfigTiming(timings, \"engine_import\");\n let loadConfigFromFile;\n try {\n ({ loadConfigFromFile } = await import(pathToFileURL(viteEntry).href));\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) throw new Error(`Vite did not load the selected config: ${configPath}`);\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\"},\"version\":{\"$ref\":\"#/definitions/VueVersion\"},\"entries\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"basePath\":{\"type\":\"string\"},\"files\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ignores\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"},\"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-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/v-on-event-hyphenation\":{\"type\":\"string\",\"enum\":[\"always\",\"never\"]},\"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\":{\"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\"}},\"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 resolveSource(exported, env);\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 = vueConfigOptions(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) validateVueOption(selected, vueOptionSchema, \"vue\");\n return selected;\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 return overlayVueOptions(base, own);\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\", \"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 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 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 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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"}
@@ -4,7 +4,7 @@
4
4
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
5
  * and run json-schema-to-typescript to regenerate this file.
6
6
  */
7
- type LintPreset = "happy-path" | "opinionated" | "essential" | "incremental" | "ecosystem" | "nuxt";
7
+ type LintPreset = NonNullable<LinterConfig["preset"]>;
8
8
  type RuleSeverity = "off" | "warn" | "error";
9
9
  type RuleCategory = "correctness" | "suspicious" | "style" | "perf" | "a11y" | "security";
10
10
  /**
@@ -31,10 +31,6 @@ interface VizeConfig {
31
31
  * Glob patterns this config excludes
32
32
  */
33
33
  ignores?: string[];
34
- /**
35
- * Base config files or presets to compose
36
- */
37
- extends?: string | string[];
38
34
  /**
39
35
  * Vue dialect profile for standalone HTML documents; when absent the dialect is detected structurally per document
40
36
  */
@@ -186,9 +182,9 @@ interface LinterConfig {
186
182
  */
187
183
  enabled?: boolean;
188
184
  /**
189
- * Built-in lint preset
185
+ * Built-in lint preset (happy-path is the recommended canonical name; native aliases are accepted)
190
186
  */
191
- preset?: "happy-path" | "opinionated" | "essential" | "incremental" | "ecosystem" | "nuxt";
187
+ preset?: "general-recommended" | "general_recommended" | "generalRecommended" | "happy-path" | "happy_path" | "happy" | "default" | "recommended" | "opinionated" | "strict" | "all" | "essential" | "incremental" | "ecosystem" | "nuxt";
192
188
  /**
193
189
  * Enable native type-aware lint rules from the active lint configuration
194
190
  */
@@ -533,6 +529,10 @@ interface LanguageServerConfig {
533
529
  * Enable Vue ecosystem lint and editor helpers
534
530
  */
535
531
  ecosystem?: boolean;
532
+ /**
533
+ * Enable workspace-wide cross-file diagnostic groups (disabled by default)
534
+ */
535
+ crossFile?: boolean;
536
536
  /**
537
537
  * Enable Vue 2.7 / Nuxt 2 editor and type-checking compatibility
538
538
  */
@@ -772,10 +772,6 @@ interface VizeConfigEntry {
772
772
  * Glob patterns this entry excludes
773
773
  */
774
774
  ignores?: string[];
775
- /**
776
- * Base config files or presets to compose
777
- */
778
- extends?: string | string[];
779
775
  /**
780
776
  * Vue dialect profile for standalone HTML documents; when absent the dialect is detected structurally per document
781
777
  */
@@ -816,8 +812,8 @@ type VueConfig = {
816
812
  version?: VueVersion;
817
813
  };
818
814
  /** Native Vue settings shared by Vite, Vite+, the CLI projection and the editor. */
819
- type VueOptionKeys = "compiler" | "typeChecker" | "linter" | "formatter" | "languageServer" | "globalTypes" | "files" | "ignores" | "basePath" | "lib";
820
- /** Scoped policy currently supported by the native configuration model. */
815
+ type VueOptionKeys = "name" | "compiler" | "experimentals" | "dialect" | "vite" | "musea" | "typeChecker" | "linter" | "formatter" | "languageServer" | "globalTypes" | "files" | "ignores" | "basePath" | "lib";
816
+ /** Native scopes retain the same authored options inside the Vue namespace. */
821
817
  type VueOptionsEntry = Pick<VizeConfigEntry, "basePath" | "files" | "ignores" | "linter">;
822
818
  /** Section option values reuse the native types rather than a second schema. */
823
819
  type VueOptions = Pick<VizeConfig, VueOptionKeys> & {
@@ -885,7 +881,7 @@ type LspConfig = LanguageServerConfig;
885
881
  declare const VITE_CONFIG_FILE_NAMES: readonly string[];
886
882
  //#endregion
887
883
  //#region src/config.d.ts
888
- declare const CONFIG_FILE_NAMES: readonly ["vize.config.pkl", "vize.config.ts", "vize.config.js", "vize.config.mjs", "vize.config.json"];
884
+ declare const CONFIG_FILE_NAMES: readonly string[];
889
885
  declare const VIZE_CONFIG_JSON_SCHEMA_PATH: any;
890
886
  declare const VIZE_CONFIG_PKL_SCHEMA_PATH: any;
891
887
  /**
@@ -896,7 +892,7 @@ declare function defineConfig(config: UserConfigExport): UserConfigExport;
896
892
  /** Resolve native settings from an already loaded Vite/Vite+ export, without starting its plugins. */
897
893
  declare function resolveViteConfigExport(exported: unknown, env?: ConfigEnv, configDir?: string): Promise<ResolvedVizeConfig>;
898
894
  /**
899
- * Load project settings from a compatible dedicated config or `vite.config.*`.
895
+ * Load project settings from `vite.config.*`; TypeScript settings stay in tsconfig.json.
900
896
  */
901
897
  declare function loadConfig(root: string, options?: LoadConfigOptions): Promise<ResolvedVizeConfig | null>;
902
898
  declare function resolveConfigExport(exported: UserConfigExport, env?: ConfigEnv): Promise<ResolvedVizeConfig>;
@@ -906,4 +902,4 @@ declare function resolveConfigExport(exported: UserConfigExport, env?: ConfigEnv
906
902
  declare function normalizeGlobalTypes(config: GlobalTypesConfig): Record<string, GlobalTypeDeclaration>;
907
903
  //#endregion
908
904
  export { LibConfig as A, VitePluginConfig as B, LintRulesConfig as C, GlobalTypeDeclaration as D, FormatterConfig as E, MuseaConfig as F, VizeConfigEntry as H, MuseaVrtConfig as I, RuleCategory as L, LinterConfig as M, MuseaA11yConfig as N, GlobalTypesConfig as O, MuseaAutogenConfig as P, RuleSeverity as R, LintRuleName as S, CompilerConfig as T, VueVersion as U, VizeConfig as V, UserConfigExport as _, loadConfig as a, VueOptions as b, resolveViteConfigExport as c, ConfigEnv as d, LoadConfigOptions as f, UserConfigEntry as g, UserConfig as h, defineConfig as i, LintPreset as j, LanguageServerConfig as k, VITE_CONFIG_FILE_NAMES as l, ResolvedVizeConfig as m, VIZE_CONFIG_JSON_SCHEMA_PATH as n, normalizeGlobalTypes as o, MaybePromise as p, VIZE_CONFIG_PKL_SCHEMA_PATH as r, resolveConfigExport as s, CONFIG_FILE_NAMES as t, LspConfig as u, UserConfigInput as v, CompilerCompatibilityConfig as w, VueOptionsEntry as x, VueConfig as y, TypeCheckerConfig as z };
909
- //# sourceMappingURL=config-DIyA9raO.d.mts.map
905
+ //# sourceMappingURL=config-DkTqtxYs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DkTqtxYs.d.mts","names":["mode","command","isSsrBuild","isPreview","filePath","typeChecker","jsxTypecheck","T","vue","source","base","own","ConfigEnv","env","configDir","Promise","exported"],"sources":["../src/types/generated.ts","../src/types/rules.ts","../src/types/runtime.ts","../src/types/index.ts","../../../crates/vize_carton/src/config/loader/vite-runtime.d.mts","../src/config.ts"],"mappings":"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"}
package/dist/config.d.mts 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-DIyA9raO.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-DkTqtxYs.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/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-C5DKms5s.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-BnQMtsWA.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.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as LibConfig, B as VitePluginConfig, C as LintRulesConfig, D as GlobalTypeDeclaration, E as FormatterConfig, F as MuseaConfig, H as VizeConfigEntry, I as MuseaVrtConfig, L as RuleCategory, M as LinterConfig, N as MuseaA11yConfig, O as GlobalTypesConfig, P as MuseaAutogenConfig, R as RuleSeverity, S as LintRuleName, T as CompilerConfig, U as VueVersion, V as VizeConfig, _ as UserConfigExport, a as loadConfig, b as VueOptions, c as resolveViteConfigExport, d as ConfigEnv, f as LoadConfigOptions, g as UserConfigEntry, h as UserConfig, i as defineConfig, j as LintPreset, k as LanguageServerConfig, l as VITE_CONFIG_FILE_NAMES, m as ResolvedVizeConfig, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, p as MaybePromise, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES, u as LspConfig, v as UserConfigInput, w as CompilerCompatibilityConfig, x as VueOptionsEntry, y as VueConfig, z as TypeCheckerConfig } from "./config-DIyA9raO.mjs";
1
+ import { A as LibConfig, B as VitePluginConfig, C as LintRulesConfig, D as GlobalTypeDeclaration, E as FormatterConfig, F as MuseaConfig, H as VizeConfigEntry, I as MuseaVrtConfig, L as RuleCategory, M as LinterConfig, N as MuseaA11yConfig, O as GlobalTypesConfig, P as MuseaAutogenConfig, R as RuleSeverity, S as LintRuleName, T as CompilerConfig, U as VueVersion, V as VizeConfig, _ as UserConfigExport, a as loadConfig, b as VueOptions, c as resolveViteConfigExport, d as ConfigEnv, f as LoadConfigOptions, g as UserConfigEntry, h as UserConfig, i as defineConfig, j as LintPreset, k as LanguageServerConfig, l as VITE_CONFIG_FILE_NAMES, m as ResolvedVizeConfig, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, p as MaybePromise, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES, u as LspConfig, v as UserConfigInput, w as CompilerCompatibilityConfig, x as VueOptionsEntry, y as VueConfig, z as TypeCheckerConfig } from "./config-DkTqtxYs.mjs";
2
2
  export { CONFIG_FILE_NAMES, type CompilerCompatibilityConfig, type CompilerConfig, type ConfigEnv, type FormatterConfig, type GlobalTypeDeclaration, type GlobalTypesConfig, type LanguageServerConfig, type LibConfig, type LintPreset, type LintRuleName, type LintRulesConfig, type LinterConfig, type LoadConfigOptions, type LspConfig, type MaybePromise, type MuseaA11yConfig, type MuseaAutogenConfig, type MuseaConfig, type MuseaVrtConfig, type ResolvedVizeConfig, type RuleCategory, type RuleSeverity, type TypeCheckerConfig, type UserConfig, type UserConfigEntry, type UserConfigExport, type UserConfigInput, VITE_CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, type VitePluginConfig, type VizeConfig, type VizeConfigEntry, type VueConfig, type VueOptions, type VueOptionsEntry, type VueVersion, 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-C5DKms5s.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-BnQMtsWA.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,16 +1,61 @@
1
1
  {
2
+ "name": "vize",
3
+ "version": "0.476.0",
4
+ "description": "Vize - High-performance Vue.js toolchain in Rust",
5
+ "keywords": [
6
+ "cli",
7
+ "compiler",
8
+ "formatter",
9
+ "linter",
10
+ "rust",
11
+ "vize",
12
+ "vue"
13
+ ],
14
+ "homepage": "https://github.com/ubugeeei-prod/vize",
15
+ "bugs": {
16
+ "url": "https://github.com/ubugeeei-prod/vize/issues"
17
+ },
18
+ "license": "MIT",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/ubugeeei-prod/vize",
22
+ "directory": "npm/cli"
23
+ },
2
24
  "bin": {
3
25
  "vize": "bin/vize",
4
26
  "vz": "bin/vize"
5
27
  },
6
- "bugs": {
7
- "url": "https://github.com/ubugeeei-prod/vize/issues"
28
+ "files": [
29
+ "bin",
30
+ "dist",
31
+ "src",
32
+ "schemas",
33
+ "pkl"
34
+ ],
35
+ "type": "module",
36
+ "main": "./dist/index.mjs",
37
+ "types": "./dist/index.d.mts",
38
+ "exports": {
39
+ ".": {
40
+ "import": "./dist/index.mjs",
41
+ "default": "./dist/index.mjs",
42
+ "types": "./dist/index.d.mts"
43
+ },
44
+ "./config": {
45
+ "import": "./dist/config.mjs",
46
+ "default": "./dist/config.mjs",
47
+ "types": "./dist/config.d.mts"
48
+ },
49
+ "./schemas/vize.config.schema.json": "./schemas/vize.config.schema.json",
50
+ "./pkl/vize.pkl": "./pkl/vize.pkl"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
8
54
  },
9
55
  "dependencies": {
10
- "@vizejs/native": "0.474.0",
56
+ "@vizejs/native": "0.476.0",
11
57
  "oxc-transform": "0.144.0"
12
58
  },
13
- "description": "Vize - High-performance Vue.js toolchain in Rust",
14
59
  "devDependencies": {
15
60
  "@pkl-community/pkl": "0.30.2",
16
61
  "@tsdown/css": "0.22.14",
@@ -21,57 +66,6 @@
21
66
  "vite-plus": "0.1.24",
22
67
  "vue": "3.5.35"
23
68
  },
24
- "engines": {
25
- "node": ">=22"
26
- },
27
- "exports": {
28
- ".": {
29
- "default": "./dist/index.mjs",
30
- "import": "./dist/index.mjs",
31
- "types": "./dist/index.d.mts"
32
- },
33
- "./config": {
34
- "default": "./dist/config.mjs",
35
- "import": "./dist/config.mjs",
36
- "types": "./dist/config.d.mts"
37
- },
38
- "./pkl/vize.pkl": "./pkl/vize.pkl",
39
- "./schemas/vize.config.schema.json": "./schemas/vize.config.schema.json"
40
- },
41
- "files": [
42
- "bin",
43
- "dist",
44
- "src",
45
- "schemas",
46
- "pkl"
47
- ],
48
- "homepage": "https://github.com/ubugeeei-prod/vize",
49
- "keywords": [
50
- "cli",
51
- "compiler",
52
- "formatter",
53
- "linter",
54
- "rust",
55
- "vize",
56
- "vue"
57
- ],
58
- "license": "MIT",
59
- "main": "./dist/index.mjs",
60
- "metadata": {
61
- "vize": {
62
- "stability": "alpha-supported",
63
- "stabilityDocs": "https://github.com/ubugeeei-prod/vize/blob/main/docs/content/stability.md#package-support-tiers"
64
- }
65
- },
66
- "name": "vize",
67
- "optionalDependencies": {
68
- "@typescript/typescript-darwin-arm64": "7.0.2",
69
- "@typescript/typescript-darwin-x64": "7.0.2",
70
- "@typescript/typescript-linux-arm64": "7.0.2",
71
- "@typescript/typescript-linux-x64": "7.0.2",
72
- "@typescript/typescript-win32-arm64": "7.0.2",
73
- "@typescript/typescript-win32-x64": "7.0.2"
74
- },
75
69
  "peerDependencies": {
76
70
  "@pkl-community/pkl": "0.30.2",
77
71
  "vue": ">=2.6.0 || >=3.6.0-0"
@@ -84,16 +78,14 @@
84
78
  "optional": true
85
79
  }
86
80
  },
87
- "publishConfig": {
88
- "access": "public"
89
- },
90
- "repository": {
91
- "directory": "npm/cli",
92
- "type": "git",
93
- "url": "https://github.com/ubugeeei-prod/vize"
81
+ "optionalDependencies": {
82
+ "@typescript/typescript-darwin-arm64": "7.0.2",
83
+ "@typescript/typescript-darwin-x64": "7.0.2",
84
+ "@typescript/typescript-linux-arm64": "7.0.2",
85
+ "@typescript/typescript-linux-x64": "7.0.2",
86
+ "@typescript/typescript-win32-arm64": "7.0.2",
87
+ "@typescript/typescript-win32-x64": "7.0.2"
94
88
  },
95
- "type": "module",
96
- "types": "./dist/index.d.mts",
97
89
  "typescript": {
98
90
  "contentMapper": {
99
91
  "compilerOptions": [
@@ -107,7 +99,15 @@
107
99
  ]
108
100
  }
109
101
  },
110
- "version": "0.474.0",
102
+ "engines": {
103
+ "node": ">=22"
104
+ },
105
+ "metadata": {
106
+ "vize": {
107
+ "stability": "alpha-supported",
108
+ "stabilityDocs": "https://github.com/ubugeeei-prod/vize/blob/main/docs/content/stability.md#package-support-tiers"
109
+ }
110
+ },
111
111
  "scripts": {
112
112
  "build": "vp run --workspace-root generate:rule-types && vp pack",
113
113
  "check": "vp check src tests vite.config.ts",
@@ -17,6 +17,12 @@ class LanguageServerConfig {
17
17
  /// Enable editor-oriented IDE features.
18
18
  editor: Boolean? = null
19
19
 
20
+ /// Enable Vue ecosystem lint and editor helpers.
21
+ ecosystem: Boolean? = null
22
+
23
+ /// Enable workspace-wide cross-file diagnostic groups (disabled by default).
24
+ crossFile: Boolean? = null
25
+
20
26
  /// Enable Vue 2.7 / Nuxt 2 editor and type-checking compatibility.
21
27
  legacyVue2: Boolean? = null
22
28
 
@@ -5,7 +5,7 @@ typealias RuleSeverity = "off"|"warn"|"error"
5
5
 
6
6
  typealias RuleCategory = "correctness"|"suspicious"|"style"|"perf"|"a11y"|"security"
7
7
 
8
- typealias LintPreset = "happy-path"|"opinionated"|"essential"|"incremental"|"ecosystem"|"nuxt"
8
+ typealias LintPreset = "general-recommended" | "general_recommended" | "generalRecommended" | "happy-path" | "happy_path" | "happy" | "default" | "recommended" | "opinionated" | "strict" | "all" | "essential" | "incremental" | "ecosystem" | "nuxt"
9
9
  typealias TemplateComponentNameCasing = "PascalCase"|"kebab-case"
10
10
  typealias CustomEventNameCasing = "camelCase"|"kebab-case"
11
11
  typealias HtmlSelfClosingStyle = "always"|"never"|"any"
@@ -24,8 +24,6 @@ import "MuseaConfig.pkl"
24
24
  import "GlobalTypesConfig.pkl"
25
25
  import "LibConfig.pkl"
26
26
 
27
- typealias ConfigExtends = String | Listing<String>
28
-
29
27
  /// Vue dialect profile for standalone HTML documents.
30
28
  /// When absent, the dialect is detected structurally per document.
31
29
  typealias VueDialect = "vue" | "petite-vue"
@@ -55,9 +53,6 @@ class ConfigEntry {
55
53
  /// Glob patterns this entry excludes.
56
54
  ignores: Listing<String>? = null
57
55
 
58
- /// Base config files or presets amended by this entry.
59
- `extends`: ConfigExtends? = null
60
-
61
56
  /// Vue dialect profile for standalone HTML documents (`"vue"` or `"petite-vue"`).
62
57
  /// When absent, the dialect is detected structurally per document.
63
58
  dialect: VueDialect? = null
@@ -109,9 +104,6 @@ files: Listing<String>? = null
109
104
  /// Glob patterns this config excludes.
110
105
  ignores: Listing<String>? = null
111
106
 
112
- /// Base config files or presets amended by this config.
113
- `extends`: ConfigExtends? = null
114
-
115
107
  /// Vue dialect profile for standalone HTML documents (`"vue"` or `"petite-vue"`).
116
108
  /// When absent, the dialect is detected structurally per document.
117
109
  dialect: VueDialect? = null
@@ -7,7 +7,7 @@ local ruleSeverityEnum: JsonSchema = new JsonSchema {
7
7
  }
8
8
  local lintPresetEnum: JsonSchema = new JsonSchema {
9
9
  type = "string"
10
- enum = new Listing { "happy-path"; "opinionated"; "essential"; "incremental"; "ecosystem"; "nuxt" }
10
+ enum = new Listing { "general-recommended"; "general_recommended"; "generalRecommended"; "happy-path"; "happy_path"; "happy"; "default"; "recommended"; "opinionated"; "strict"; "all"; "essential"; "incremental"; "ecosystem"; "nuxt" }
11
11
  }
12
12
  linterConfigDef: JsonSchema = new JsonSchema {
13
13
  type = "object"
@@ -20,7 +20,7 @@ linterConfigDef: JsonSchema = new JsonSchema {
20
20
  ["preset"] = new JsonSchema {
21
21
  type = lintPresetEnum.type
22
22
  enum = lintPresetEnum.enum
23
- description = "Built-in lint preset"
23
+ description = "Built-in lint preset (happy-path is the recommended canonical name; native aliases are accepted)"
24
24
  default = "happy-path"
25
25
  }
26
26
  ["typeAware"] = new JsonSchema {
@@ -10,13 +10,6 @@ local stringListDef: JsonSchema = new JsonSchema {
10
10
  type = "array"
11
11
  items = new JsonSchema { type = "string" }
12
12
  }
13
- local configExtendsDef: JsonSchema = new JsonSchema {
14
- description = "Base config files or presets to compose"
15
- oneOf = new Listing {
16
- new JsonSchema { type = "string" }
17
- stringListDef
18
- }
19
- }
20
13
  local vitePluginConfigDef: JsonSchema = new JsonSchema {
21
14
  type = "object"
22
15
  properties {
@@ -170,6 +163,10 @@ local languageServerConfigDef: JsonSchema = new JsonSchema {
170
163
  type = "boolean"
171
164
  description = "Enable Vue ecosystem lint and editor helpers"
172
165
  }
166
+ ["crossFile"] = new JsonSchema {
167
+ type = "boolean"
168
+ description = "Enable workspace-wide cross-file diagnostic groups (disabled by default)"
169
+ }
173
170
  ["legacyVue2"] = new JsonSchema {
174
171
  type = "boolean"
175
172
  description = "Enable Vue 2.7 / Nuxt 2 editor and type-checking compatibility"
@@ -352,7 +349,6 @@ local configEntryDef: JsonSchema = new JsonSchema {
352
349
  items = new JsonSchema { type = "string" }
353
350
  description = "Glob patterns this entry excludes"
354
351
  }
355
- ["extends"] = configExtendsDef
356
352
  ["dialect"] = new JsonSchema {
357
353
  type = "string"
358
354
  enum = new Listing { "vue"; "petite-vue" }
@@ -428,7 +424,6 @@ output {
428
424
  items = new JsonSchema { type = "string" }
429
425
  description = "Glob patterns this config excludes"
430
426
  }
431
- ["extends"] = configExtendsDef
432
427
  ["dialect"] = new JsonSchema {
433
428
  type = "string"
434
429
  enum = new Listing { "vue"; "petite-vue" }