vize 0.435.0 → 0.440.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.
@@ -233,6 +233,9 @@ interface LinterConfig {
233
233
  };
234
234
  }
235
235
  interface LintRuleOptions {
236
+ "script/define-props-destructuring"?: {
237
+ destructure?: "only-when-assigned" | "always" | "never";
238
+ };
236
239
  "html/no-empty-palpable-content"?: {
237
240
  contentDirectives?: string[];
238
241
  };
@@ -250,6 +253,8 @@ interface LintRuleOptions {
250
253
  "script/no-restricted-members"?: NoRestrictedMembersOptions;
251
254
  "vue/component-name-in-template-casing"?: {
252
255
  casing?: "PascalCase" | "kebab-case";
256
+ registeredComponentsOnly?: boolean;
257
+ globals?: string[];
253
258
  };
254
259
  "script/custom-event-name-casing"?: {
255
260
  casing?: "camelCase" | "kebab-case";
@@ -257,6 +262,9 @@ interface LintRuleOptions {
257
262
  "vue/no-mutating-props"?: {
258
263
  shallowOnly?: boolean;
259
264
  };
265
+ "vue/require-component-registration"?: {
266
+ globals?: string[];
267
+ };
260
268
  "vue/sfc-element-order"?: {
261
269
  order?: (string | string[])[];
262
270
  };
@@ -875,4 +883,4 @@ declare function resolveConfigExport(exported: UserConfigExport, env?: ConfigEnv
875
883
  declare function normalizeGlobalTypes(config: GlobalTypesConfig): Record<string, GlobalTypeDeclaration>;
876
884
  //#endregion
877
885
  export { MuseaAutogenConfig as A, GlobalTypeDeclaration as C, LintPreset as D, LibConfig as E, TypeCheckerConfig as F, VitePluginConfig as I, VizeConfig as L, MuseaVrtConfig as M, RuleCategory as N, LinterConfig as O, RuleSeverity as P, VizeConfigEntry as R, FormatterConfig as S, LanguageServerConfig as T, VueConfig as _, loadConfig as a, CompilerCompatibilityConfig as b, LspConfig as c, MaybePromise as d, ResolvedVizeConfig as f, UserConfigInput as g, UserConfigExport as h, defineConfig as i, MuseaConfig as j, MuseaA11yConfig as k, ConfigEnv as l, UserConfigEntry as m, VIZE_CONFIG_JSON_SCHEMA_PATH as n, normalizeGlobalTypes as o, UserConfig as p, VIZE_CONFIG_PKL_SCHEMA_PATH as r, resolveConfigExport as s, CONFIG_FILE_NAMES as t, LoadConfigOptions as u, LintRuleName as v, GlobalTypesConfig as w, CompilerConfig as x, LintRulesConfig as y, VueVersion as z };
878
- //# sourceMappingURL=config-keTlGIYm.d.mts.map
886
+ //# sourceMappingURL=config-DsZyMA4S.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DsZyMA4S.d.mts","names":[],"sources":["../src/types/generated.ts","../src/types/rules.ts","../src/types/runtime.ts","../src/types/index.ts","../src/config.ts"],"mappings":"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"}
@@ -3,7 +3,6 @@ import * as fs$1 from "node:fs";
3
3
  import * as path$1 from "node:path";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { fileURLToPath, pathToFileURL } from "node:url";
6
- import * as oxcTransform from "oxc-transform";
7
6
  import { execFileSync } from "node:child_process";
8
7
  //#region src/config/pkl.js
9
8
  const PACKAGE_ROOT$1 = path$1.resolve(fileURLToPath(new URL(".", import.meta.url)), "../..");
@@ -98,7 +97,7 @@ function getErrorMessage$1(error) {
98
97
  }
99
98
  //#endregion
100
99
  //#region src/config.ts
101
- const native = createRequire(import.meta.url)("@vizejs/native");
100
+ const require = createRequire(import.meta.url);
102
101
  const CONFIG_FILE_NAMES = [
103
102
  "vize.config.pkl",
104
103
  "vize.config.ts",
@@ -172,7 +171,7 @@ async function resolveConfigExport(exported, env) {
172
171
  }
173
172
  async function loadTypeScriptConfig(filePath, env) {
174
173
  const source = fs$1.readFileSync(filePath, "utf-8");
175
- const code = rewriteSelfConfigImports((await oxcTransform.transform(filePath, source, { typescript: { onlyRemoveTypeImports: true } })).code);
174
+ const code = rewriteSelfConfigImports((await (await import("oxc-transform")).transform(filePath, source, { typescript: { onlyRemoveTypeImports: true } })).code);
176
175
  const tempFile = path$1.join(path$1.dirname(filePath), `.vize-config-${process.pid}-${Date.now()}-${randomUUID()}.mjs`);
177
176
  fs$1.writeFileSync(tempFile, code, {
178
177
  flag: "wx",
@@ -216,7 +215,7 @@ function parseJsonConfig(content, filePath) {
216
215
  }
217
216
  }
218
217
  function normalizeLoadedConfig(config) {
219
- return native.normalizeVizeConfig(config ?? null);
218
+ return require("@vizejs/native").normalizeVizeConfig(config ?? null);
220
219
  }
221
220
  function getErrorMessage(error) {
222
221
  if (error instanceof Error) return error.message;
@@ -235,4 +234,4 @@ function normalizeGlobalTypes(config) {
235
234
  //#endregion
236
235
  export { loadConfig as a, defineConfig as i, 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 };
237
236
 
238
- //# sourceMappingURL=config-CVVW18Qz.mjs.map
237
+ //# sourceMappingURL=config-ld0utx-D.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-ld0utx-D.mjs","names":["PACKAGE_ROOT","path","getErrorMessage","fs","path","fs"],"sources":["../src/config/pkl.js","../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","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\";\n\ntype NativeConfigHelpers = {\n normalizeVizeConfig(value: unknown): unknown;\n};\n\nconst require = createRequire(import.meta.url);\n\nexport const CONFIG_FILE_NAMES = [\n \"vize.config.pkl\",\n \"vize.config.ts\",\n \"vize.config.js\",\n \"vize.config.mjs\",\n \"vize.config.json\",\n] as const;\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/**\n * Load `vize.config.*` from the specified directory.\n */\nexport async function loadConfig(\n root: string,\n options: LoadConfigOptions = {},\n): Promise<ResolvedVizeConfig | null> {\n const { mode = \"root\", configFile, env } = 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);\n }\n\n return loadConfigFromDir(root, env);\n}\n\nasync function loadConfigFromDir(dir: string, env?: ConfigEnv): Promise<ResolvedVizeConfig | null> {\n for (const name of 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): Promise<ResolvedVizeConfig | null> {\n let currentDir = path.resolve(startDir);\n\n while (true) {\n const config = await loadConfigFromDir(currentDir, env);\n if (config !== null) {\n return config;\n }\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 (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n const ext = path.extname(absolutePath);\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\") {\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 resolveConfigExport(exported, 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 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 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.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as loadConfig, i as defineConfig, 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-keTlGIYm.mjs";
1
+ import { a as loadConfig, i as defineConfig, 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-DsZyMA4S.mjs";
2
2
  export { CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport };
package/dist/config.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as loadConfig, i as defineConfig, 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-CVVW18Qz.mjs";
1
+ import { a as loadConfig, i as defineConfig, 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-ld0utx-D.mjs";
2
2
  export { CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport };
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as MuseaAutogenConfig, C as GlobalTypeDeclaration, D as LintPreset, E as LibConfig, F as TypeCheckerConfig, I as VitePluginConfig, L as VizeConfig, M as MuseaVrtConfig, N as RuleCategory, O as LinterConfig, P as RuleSeverity, R as VizeConfigEntry, S as FormatterConfig, T as LanguageServerConfig, _ as VueConfig, a as loadConfig, b as CompilerCompatibilityConfig, c as LspConfig, d as MaybePromise, f as ResolvedVizeConfig, g as UserConfigInput, h as UserConfigExport, i as defineConfig, j as MuseaConfig, k as MuseaA11yConfig, l as ConfigEnv, m as UserConfigEntry, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, p as UserConfig, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES, u as LoadConfigOptions, v as LintRuleName, w as GlobalTypesConfig, x as CompilerConfig, y as LintRulesConfig, z as VueVersion } from "./config-keTlGIYm.mjs";
1
+ import { A as MuseaAutogenConfig, C as GlobalTypeDeclaration, D as LintPreset, E as LibConfig, F as TypeCheckerConfig, I as VitePluginConfig, L as VizeConfig, M as MuseaVrtConfig, N as RuleCategory, O as LinterConfig, P as RuleSeverity, R as VizeConfigEntry, S as FormatterConfig, T as LanguageServerConfig, _ as VueConfig, a as loadConfig, b as CompilerCompatibilityConfig, c as LspConfig, d as MaybePromise, f as ResolvedVizeConfig, g as UserConfigInput, h as UserConfigExport, i as defineConfig, j as MuseaConfig, k as MuseaA11yConfig, l as ConfigEnv, m as UserConfigEntry, n as VIZE_CONFIG_JSON_SCHEMA_PATH, o as normalizeGlobalTypes, p as UserConfig, r as VIZE_CONFIG_PKL_SCHEMA_PATH, s as resolveConfigExport, t as CONFIG_FILE_NAMES, u as LoadConfigOptions, v as LintRuleName, w as GlobalTypesConfig, x as CompilerConfig, y as LintRulesConfig, z as VueVersion } from "./config-DsZyMA4S.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, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, type VitePluginConfig, type VizeConfig, type VizeConfigEntry, type VueConfig, type VueVersion, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as loadConfig, i as defineConfig, 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-CVVW18Qz.mjs";
1
+ import { a as loadConfig, i as defineConfig, 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-ld0utx-D.mjs";
2
2
  export { CONFIG_FILE_NAMES, VIZE_CONFIG_JSON_SCHEMA_PATH, VIZE_CONFIG_PKL_SCHEMA_PATH, defineConfig, loadConfig, normalizeGlobalTypes, resolveConfigExport };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/ubugeeei-prod/vize/issues"
8
8
  },
9
9
  "dependencies": {
10
- "@vizejs/native": "0.435.0",
10
+ "@vizejs/native": "0.440.0",
11
11
  "oxc-transform": "0.144.0"
12
12
  },
13
13
  "description": "Vize - High-performance Vue.js toolchain in Rust",
@@ -106,13 +106,13 @@
106
106
  ]
107
107
  }
108
108
  },
109
- "version": "0.435.0",
109
+ "version": "0.440.0",
110
110
  "scripts": {
111
111
  "build": "vp run --workspace-root generate:rule-types && vp pack",
112
112
  "check": "vp check src tests vite.config.ts",
113
113
  "check:fix": "vp check --fix src tests vite.config.ts",
114
114
  "fmt": "vp fmt --write src tests vite.config.ts",
115
115
  "generate:rule-types": "vp run --workspace-root generate:rule-types",
116
- "test": "vp pack && vp test run tests/config.test.ts tests/corsa-runtime.test.ts tests/setup.test.ts tests/setup-oxlint-config.test.ts tests/init.test.ts tests/init-frameworks.test.ts tests/init-tsconfig.test.ts tests/init-prompt.test.ts"
116
+ "test": "vp pack && vp test run tests/config.test.ts tests/define-config.test.ts tests/corsa-runtime.test.ts tests/setup.test.ts tests/setup-oxlint-config.test.ts tests/init.test.ts tests/init-frameworks.test.ts tests/init-tsconfig.test.ts tests/init-prompt.test.ts"
117
117
  }
118
118
  }
@@ -47,6 +47,8 @@ class NoRestrictedMembersOptions {
47
47
  /// Options for `vue/component-name-in-template-casing`.
48
48
  class ComponentNameInTemplateCasingOptions {
49
49
  casing: TemplateComponentNameCasing = "PascalCase"
50
+ registeredComponentsOnly: Boolean = true
51
+ globals: Listing<String> = new Listing {}
50
52
  }
51
53
 
52
54
  /// Options for `script/custom-event-name-casing`.
@@ -54,6 +56,10 @@ class CustomEventNameCasingOptions {
54
56
  casing: CustomEventNameCasing = "camelCase"
55
57
  }
56
58
 
59
+ class RequireComponentRegistrationOptions {
60
+ globals: Listing<String> = new Listing {}
61
+ }
62
+
57
63
  /// Options for `vue/no-mutating-props`.
58
64
  class NoMutatingPropsOptions {
59
65
  shallowOnly: Boolean = false
@@ -110,13 +116,20 @@ class StrictBooleanExpressionsOptions {
110
116
  allowAny: Boolean = false
111
117
  }
112
118
 
119
+ /// Style for props destructuring; matches eslint-plugin-vue's default.
120
+ class DefinePropsDestructuringOptions {
121
+ destructure: "only-when-assigned"|"always"|"never" = "only-when-assigned"
122
+ }
123
+
113
124
  class LintRuleOptions {
125
+ `script/define-props-destructuring`: DefinePropsDestructuringOptions? = null
114
126
  `type/strict-boolean-expressions`: StrictBooleanExpressionsOptions? = null
115
127
  `script/no-restricted-globals`: NoRestrictedGlobalsOptions? = null
116
128
  `script/no-restricted-members`: NoRestrictedMembersOptions? = null
117
129
  `vue/component-name-in-template-casing`: ComponentNameInTemplateCasingOptions? = null
118
130
  `script/custom-event-name-casing`: CustomEventNameCasingOptions? = null
119
131
  `vue/no-mutating-props`: NoMutatingPropsOptions? = null
132
+ `vue/require-component-registration`: RequireComponentRegistrationOptions? = null
120
133
  `vue/sfc-element-order`: SfcElementOrderOptions? = null
121
134
  `vue/html-self-closing`: HtmlSelfClosingOptions? = null
122
135
  `vue/v-on-event-hyphenation`: HyphenationStyle? = null
@@ -206,17 +206,7 @@ noRestrictedMembersOptionsDef: JsonSchema = new JsonSchema {
206
206
  additionalProperties = false
207
207
  }
208
208
 
209
- componentNameInTemplateCasingOptionsDef: JsonSchema = new JsonSchema {
210
- type = "object"
211
- properties {
212
- ["casing"] = new JsonSchema {
213
- type = "string"
214
- enum = new Listing { "PascalCase"; "kebab-case" }
215
- default = "PascalCase"
216
- }
217
- }
218
- additionalProperties = false
219
- }
209
+ componentNameInTemplateCasingOptionsDef: JsonSchema = LintRuleOptionsSchemaDefinitions.componentNameInTemplateCasingOptionsDef
220
210
 
221
211
  customEventNameCasingOptionsDef: JsonSchema = new JsonSchema {
222
212
  type = "object"
@@ -338,4 +328,6 @@ museaPreferDesignTokensOptionsDef: JsonSchema = new JsonSchema {
338
328
  additionalProperties = false
339
329
  }
340
330
 
331
+ definePropsDestructuringOptionsDef: JsonSchema = LintRuleOptionsSchemaDefinitions.definePropsDestructuringOptionsDef
332
+
341
333
  lintRuleOptionsDef: JsonSchema = LintRuleOptionsSchemaDefinitions.lintRuleOptionsDef
@@ -4,9 +4,22 @@ module vize.jsonschema.LintRuleOptionsSchemaDefinitions
4
4
  import "@json_schema/JsonSchema.pkl"
5
5
  import "ConfigArtifactDefinitions.pkl"
6
6
 
7
+ definePropsDestructuringOptionsDef: JsonSchema = new JsonSchema {
8
+ type = "object"
9
+ properties {
10
+ ["destructure"] = new JsonSchema {
11
+ type = "string"
12
+ enum = new Listing { "only-when-assigned"; "always"; "never" }
13
+ default = "only-when-assigned"
14
+ }
15
+ }
16
+ additionalProperties = false
17
+ }
18
+
7
19
  lintRuleOptionsDef: JsonSchema = new JsonSchema {
8
20
  type = "object"
9
21
  properties {
22
+ ["script/define-props-destructuring"] = definePropsDestructuringOptionsDef
10
23
  ["html/no-empty-palpable-content"] = new JsonSchema {
11
24
  type = "object"
12
25
  properties {
@@ -20,9 +33,19 @@ lintRuleOptionsDef: JsonSchema = new JsonSchema {
20
33
  ["type/strict-boolean-expressions"] = strictBooleanExpressionsOptionsDef
21
34
  ["script/no-restricted-globals"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedGlobalsOptions" }
22
35
  ["script/no-restricted-members"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedMembersOptions" }
23
- ["vue/component-name-in-template-casing"] = ConfigArtifactDefinitions.componentNameInTemplateCasingOptionsDef
36
+ ["vue/component-name-in-template-casing"] = componentNameInTemplateCasingOptionsDef
24
37
  ["script/custom-event-name-casing"] = ConfigArtifactDefinitions.customEventNameCasingOptionsDef
25
38
  ["vue/no-mutating-props"] = ConfigArtifactDefinitions.noMutatingPropsOptionsDef
39
+ ["vue/require-component-registration"] = new JsonSchema {
40
+ type = "object"
41
+ properties {
42
+ ["globals"] = new JsonSchema {
43
+ type = "array"
44
+ items = new JsonSchema { type = "string" }
45
+ }
46
+ }
47
+ additionalProperties = false
48
+ }
26
49
  ["vue/sfc-element-order"] = ConfigArtifactDefinitions.sfcElementOrderOptionsDef
27
50
  ["vue/html-self-closing"] = ConfigArtifactDefinitions.htmlSelfClosingOptionsDef
28
51
  ["vue/v-on-event-hyphenation"] = ConfigArtifactDefinitions.hyphenationStyleDef
@@ -46,3 +69,24 @@ strictBooleanExpressionsOptionsDef: JsonSchema = new JsonSchema {
46
69
  }
47
70
  additionalProperties = false
48
71
  }
72
+
73
+ componentNameInTemplateCasingOptionsDef: JsonSchema = new JsonSchema {
74
+ type = "object"
75
+ properties {
76
+ ["casing"] = new JsonSchema {
77
+ type = "string"
78
+ enum = new Listing { "PascalCase"; "kebab-case" }
79
+ default = "PascalCase"
80
+ }
81
+ ["registeredComponentsOnly"] = new JsonSchema {
82
+ type = "boolean"
83
+ default = true
84
+ }
85
+ ["globals"] = new JsonSchema {
86
+ type = "array"
87
+ items = new JsonSchema { type = "string" }
88
+ default = new Listing {}
89
+ }
90
+ }
91
+ additionalProperties = false
92
+ }
package/pkl/vize.pkl CHANGED
@@ -8,7 +8,6 @@
8
8
  /// }
9
9
  module vize.Config
10
10
  import "SortImportsConfig.pkl"
11
-
12
11
  typealias CompilerMode = "module" | "function"
13
12
  typealias TemplateSyntax = "standard" | "strict" | "quirks"
14
13
  typealias Whitespace = "condense" | "preserve" | "vue2-line-breaks"
@@ -25,7 +24,6 @@ typealias TrailingComma = "all" | "none" | "es5"
25
24
  typealias FilterPattern = String | Listing<String>
26
25
  typealias GlobalTypeValue = String | GlobalTypeDeclaration
27
26
  typealias ConfigExtends = String | Listing<String>
28
-
29
27
  class CompilerCompatibilityConfig {
30
28
  vueVersion: ("3" | "2.7" | "2" | "1" | "0.11" | "0.10")? = null
31
29
  hostCompiler: Boolean? = null
@@ -34,7 +32,6 @@ class CompilerCompatibilityConfig {
34
32
  nuxtVersion: Number? = null
35
33
  webpackVersion: Number? = null
36
34
  }
37
-
38
35
  class CompilerConfig {
39
36
  mode: CompilerMode? = null
40
37
  vapor: Boolean? = null
@@ -55,7 +52,6 @@ class CompilerConfig {
55
52
  runtimeGlobalName: String? = null
56
53
  compatibility: CompilerCompatibilityConfig?
57
54
  }
58
-
59
55
  class ExperimentalsConfig {
60
56
  vapor: Boolean? = null
61
57
  jsxVapor: Boolean? = null
@@ -67,7 +63,6 @@ class ExperimentalsConfig {
67
63
  strictSlotChildren: Boolean? = null
68
64
  serverScript: Boolean? = null
69
65
  }
70
-
71
66
  class VitePluginConfig {
72
67
  include: FilterPattern? = null
73
68
  exclude: FilterPattern? = null
@@ -94,15 +89,19 @@ class NoRestrictedGlobalsOptions {
94
89
  class NoRestrictedMembersOptions {
95
90
  members: Listing<RestrictedMember>? = null
96
91
  }
97
-
98
92
  class ComponentNameInTemplateCasingOptions {
99
93
  casing: TemplateComponentNameCasing = "PascalCase"
94
+ registeredComponentsOnly: Boolean = true
95
+ globals: Listing<String> = new Listing {}
100
96
  }
101
-
102
97
  class CustomEventNameCasingOptions {
103
98
  casing: CustomEventNameCasing = "camelCase"
104
99
  }
105
100
 
101
+ class RequireComponentRegistrationOptions {
102
+ globals: Listing<String> = new Listing {}
103
+ }
104
+
106
105
  class NoMutatingPropsOptions {
107
106
  shallowOnly: Boolean = false
108
107
  }
@@ -151,7 +150,13 @@ class ContentDirectivesOptions {
151
150
  contentDirectives: Listing<String> = new Listing {}
152
151
  }
153
152
 
153
+ /// Style for props destructuring; matches eslint-plugin-vue's default.
154
+ class DefinePropsDestructuringOptions {
155
+ destructure: "only-when-assigned"|"always"|"never" = "only-when-assigned"
156
+ }
157
+
154
158
  class LintRuleOptions {
159
+ `script/define-props-destructuring`: DefinePropsDestructuringOptions? = null
155
160
  `html/no-empty-palpable-content`: ContentDirectivesOptions? = null
156
161
  `type/strict-boolean-expressions`: StrictBooleanExpressionsOptions? = null
157
162
  `script/no-restricted-globals`: NoRestrictedGlobalsOptions? = null
@@ -159,6 +164,7 @@ class LintRuleOptions {
159
164
  `vue/component-name-in-template-casing`: ComponentNameInTemplateCasingOptions? = null
160
165
  `script/custom-event-name-casing`: CustomEventNameCasingOptions? = null
161
166
  `vue/no-mutating-props`: NoMutatingPropsOptions? = null
167
+ `vue/require-component-registration`: RequireComponentRegistrationOptions? = null
162
168
  `vue/sfc-element-order`: SfcElementOrderOptions? = null
163
169
  `vue/html-self-closing`: HtmlSelfClosingOptions? = null
164
170
  `vue/v-on-event-hyphenation`: HyphenationStyle? = null
@@ -451,6 +451,17 @@
451
451
  "LintRuleOptions": {
452
452
  "type": "object",
453
453
  "properties": {
454
+ "script/define-props-destructuring": {
455
+ "type": "object",
456
+ "properties": {
457
+ "destructure": {
458
+ "default": "only-when-assigned",
459
+ "type": "string",
460
+ "enum": ["only-when-assigned", "always", "never"]
461
+ }
462
+ },
463
+ "additionalProperties": false
464
+ },
454
465
  "html/no-empty-palpable-content": {
455
466
  "type": "object",
456
467
  "properties": {
@@ -514,6 +525,17 @@
514
525
  "default": "PascalCase",
515
526
  "type": "string",
516
527
  "enum": ["PascalCase", "kebab-case"]
528
+ },
529
+ "registeredComponentsOnly": {
530
+ "default": true,
531
+ "type": "boolean"
532
+ },
533
+ "globals": {
534
+ "default": [],
535
+ "type": "array",
536
+ "items": {
537
+ "type": "string"
538
+ }
517
539
  }
518
540
  },
519
541
  "additionalProperties": false
@@ -539,6 +561,18 @@
539
561
  },
540
562
  "additionalProperties": false
541
563
  },
564
+ "vue/require-component-registration": {
565
+ "type": "object",
566
+ "properties": {
567
+ "globals": {
568
+ "type": "array",
569
+ "items": {
570
+ "type": "string"
571
+ }
572
+ }
573
+ },
574
+ "additionalProperties": false
575
+ },
542
576
  "vue/sfc-element-order": {
543
577
  "type": "object",
544
578
  "properties": {
package/src/config.ts CHANGED
@@ -3,7 +3,6 @@ import * as path from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { createRequire } from "node:module";
5
5
  import { fileURLToPath, pathToFileURL } from "node:url";
6
- import * as oxcTransform from "oxc-transform";
7
6
  import type {
8
7
  ResolvedVizeConfig,
9
8
  LoadConfigOptions,
@@ -19,7 +18,6 @@ type NativeConfigHelpers = {
19
18
  };
20
19
 
21
20
  const require = createRequire(import.meta.url);
22
- const native = require("@vizejs/native") as NativeConfigHelpers;
23
21
 
24
22
  export const CONFIG_FILE_NAMES = [
25
23
  "vize.config.pkl",
@@ -164,6 +162,7 @@ async function loadTypeScriptConfig(
164
162
  env?: ConfigEnv,
165
163
  ): Promise<ResolvedVizeConfig> {
166
164
  const source = fs.readFileSync(filePath, "utf-8");
165
+ const oxcTransform = await import("oxc-transform");
167
166
  const result = await oxcTransform.transform(filePath, source, {
168
167
  typescript: {
169
168
  onlyRemoveTypeImports: true,
@@ -229,6 +228,7 @@ function parseJsonConfig(content: string, filePath: string): ResolvedVizeConfig
229
228
  }
230
229
 
231
230
  function normalizeLoadedConfig(config: unknown): ResolvedVizeConfig {
231
+ const native = require("@vizejs/native") as NativeConfigHelpers;
232
232
  return native.normalizeVizeConfig(config ?? null) as ResolvedVizeConfig;
233
233
  }
234
234
 
@@ -247,6 +247,9 @@ export interface LinterConfig {
247
247
  };
248
248
  }
249
249
  export interface LintRuleOptions {
250
+ "script/define-props-destructuring"?: {
251
+ destructure?: "only-when-assigned" | "always" | "never";
252
+ };
250
253
  "html/no-empty-palpable-content"?: {
251
254
  contentDirectives?: string[];
252
255
  };
@@ -264,6 +267,8 @@ export interface LintRuleOptions {
264
267
  "script/no-restricted-members"?: NoRestrictedMembersOptions;
265
268
  "vue/component-name-in-template-casing"?: {
266
269
  casing?: "PascalCase" | "kebab-case";
270
+ registeredComponentsOnly?: boolean;
271
+ globals?: string[];
267
272
  };
268
273
  "script/custom-event-name-casing"?: {
269
274
  casing?: "camelCase" | "kebab-case";
@@ -271,6 +276,9 @@ export interface LintRuleOptions {
271
276
  "vue/no-mutating-props"?: {
272
277
  shallowOnly?: boolean;
273
278
  };
279
+ "vue/require-component-registration"?: {
280
+ globals?: string[];
281
+ };
274
282
  "vue/sfc-element-order"?: {
275
283
  order?: (string | string[])[];
276
284
  };
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-CVVW18Qz.mjs","names":["PACKAGE_ROOT","path","getErrorMessage","fs","path","fs"],"sources":["../src/config/pkl.js","../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","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 * as oxcTransform from \"oxc-transform\";\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\";\n\ntype NativeConfigHelpers = {\n normalizeVizeConfig(value: unknown): unknown;\n};\n\nconst require = createRequire(import.meta.url);\nconst native = require(\"@vizejs/native\") as NativeConfigHelpers;\n\nexport const CONFIG_FILE_NAMES = [\n \"vize.config.pkl\",\n \"vize.config.ts\",\n \"vize.config.js\",\n \"vize.config.mjs\",\n \"vize.config.json\",\n] as const;\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/**\n * Load `vize.config.*` from the specified directory.\n */\nexport async function loadConfig(\n root: string,\n options: LoadConfigOptions = {},\n): Promise<ResolvedVizeConfig | null> {\n const { mode = \"root\", configFile, env } = 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);\n }\n\n return loadConfigFromDir(root, env);\n}\n\nasync function loadConfigFromDir(dir: string, env?: ConfigEnv): Promise<ResolvedVizeConfig | null> {\n for (const name of 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): Promise<ResolvedVizeConfig | null> {\n let currentDir = path.resolve(startDir);\n\n while (true) {\n const config = await loadConfigFromDir(currentDir, env);\n if (config !== null) {\n return config;\n }\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 (!fs.existsSync(absolutePath)) {\n return null;\n }\n\n const ext = path.extname(absolutePath);\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\") {\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 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 resolveConfigExport(exported, 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 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 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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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-keTlGIYm.d.mts","names":[],"sources":["../src/types/generated.ts","../src/types/rules.ts","../src/types/runtime.ts","../src/types/index.ts","../src/config.ts"],"mappings":"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"}