vize 0.429.2 → 0.430.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -193,6 +193,26 @@ interface LinterConfig {
193
193
  * Enable native type-aware lint rules from the active lint configuration
194
194
  */
195
195
  typeAware?: boolean;
196
+ /**
197
+ * Analyze relationships between input components
198
+ */
199
+ crossFile?: boolean;
200
+ /**
201
+ * Display the provide/inject tree; enables cross-file analysis
202
+ */
203
+ crossFileTree?: boolean;
204
+ /**
205
+ * Display cross-file complexity; enables cross-file analysis
206
+ */
207
+ crossFileComplexity?: boolean;
208
+ /**
209
+ * Enable the native reactivity-loss rule unless rules explicitly disable it
210
+ */
211
+ strictReactivity?: boolean;
212
+ /**
213
+ * Fail when warnings exceed this limit; absent means unlimited
214
+ */
215
+ maxWarnings?: number;
196
216
  /**
197
217
  * Rules to enable/disable
198
218
  */
@@ -213,6 +233,16 @@ interface LinterConfig {
213
233
  };
214
234
  }
215
235
  interface LintRuleOptions {
236
+ "type/strict-boolean-expressions"?: {
237
+ allowString?: boolean;
238
+ allowNumber?: boolean;
239
+ allowNullableObject?: boolean;
240
+ allowNullableBoolean?: boolean;
241
+ allowNullableString?: boolean;
242
+ allowNullableNumber?: boolean;
243
+ allowNullableEnum?: boolean;
244
+ allowAny?: boolean;
245
+ };
216
246
  "script/no-restricted-globals"?: NoRestrictedGlobalsOptions;
217
247
  "script/no-restricted-members"?: NoRestrictedMembersOptions;
218
248
  "vue/component-name-in-template-casing"?: {
@@ -350,6 +380,10 @@ interface TypeCheckerConfig {
350
380
  * Formatter options
351
381
  */
352
382
  interface FormatterConfig {
383
+ /**
384
+ * Oxfmt-compatible import sorting; false disables it
385
+ */
386
+ sortImports?: false | SortImportsConfig;
353
387
  /**
354
388
  * Max line width
355
389
  */
@@ -435,6 +469,25 @@ interface FormatterConfig {
435
469
  */
436
470
  sortBlocks?: boolean;
437
471
  }
472
+ interface SortImportsConfig {
473
+ partitionByNewline?: boolean;
474
+ partitionByComment?: boolean;
475
+ sortSideEffects?: boolean;
476
+ order?: "asc" | "desc";
477
+ ignoreCase?: boolean;
478
+ newlinesBetween?: boolean;
479
+ internalPattern?: string[];
480
+ groups?: (string | string[] | {
481
+ newlinesBetween: boolean;
482
+ })[];
483
+ customGroups?: ImportSortCustomGroup[];
484
+ }
485
+ interface ImportSortCustomGroup {
486
+ groupName: string;
487
+ elementNamePattern?: string[];
488
+ selector?: string;
489
+ modifiers?: string[];
490
+ }
438
491
  /**
439
492
  * Language server options
440
493
  */
@@ -727,7 +780,7 @@ interface VizeConfigEntry {
727
780
  }
728
781
  //#endregion
729
782
  //#region src/types/rules.d.ts
730
- declare const LINT_RULE_NAMES: readonly ["a11y/alt-text", "a11y/anchor-has-content", "a11y/anchor-is-valid", "a11y/aria-props", "a11y/aria-role", "a11y/aria-unsupported-elements", "a11y/click-events-have-key-events", "a11y/form-control-has-label", "a11y/heading-has-content", "a11y/heading-levels", "a11y/iframe-has-title", "a11y/img-alt", "a11y/interactive-supports-focus", "a11y/label-has-for", "a11y/landmark-roles", "a11y/media-has-caption", "a11y/mouse-events-have-key-events", "a11y/no-access-key", "a11y/no-aria-hidden-on-focusable", "a11y/no-autofocus", "a11y/no-distracting-elements", "a11y/no-i-for-icon", "a11y/no-redundant-roles", "a11y/no-refer-to-non-existent-id", "a11y/no-role-presentation-on-focusable", "a11y/no-static-element-interactions", "a11y/placeholder-label-option", "a11y/role-has-required-aria-props", "a11y/tabindex-no-positive", "a11y/use-list", "css/no-display-none", "css/no-hardcoded-values", "css/no-id-selectors", "css/no-important", "css/no-utility-classes", "css/no-v-bind-performance", "css/prefer-logical-properties", "css/prefer-nested-selectors", "css/prefer-slotted", "css/require-font-display", "ecosystem/nuxt-prefer-nuxt-link", "ecosystem/pinia-prefer-store-to-refs", "ecosystem/router-link-require-to", "ecosystem/void-link-require-href", "ecosystem/void-link-valid-method", "ecosystem/vue-i18n-no-missing-key", "ecosystem/vue-router-prefer-named-link", "ecosystem/vue-router-prefer-named-push", "ecosystem/vue-test-utils-no-html-snapshot", "html/deprecated-attr", "html/deprecated-element", "html/id-duplication", "html/no-consecutive-br", "html/no-dupe-style-properties", "html/no-duplicate-class", "html/no-duplicate-dt", "html/no-empty-palpable-content", "html/require-datetime", "musea/no-empty-variant", "musea/prefer-design-tokens", "musea/require-component", "musea/require-title", "musea/unique-variant-names", "musea/valid-variant", "nuxt/no-nuxt-config-test-key", "nuxt/no-page-meta-runtime-values", "nuxt/nuxt-config-keys-order", "nuxt/prefer-import-meta", "petite-vue/no-unsupported-directive", "petite-vue/valid-v-effect", "petite-vue/valid-v-scope", "script/component-options-name-casing", "script/custom-event-name-casing", "script/define-emits-declaration", "script/define-macros-order", "script/define-props-declaration", "script/define-props-destructuring", "script/no-arrow-functions-in-watch", "script/no-async-in-computed", "script/no-boolean-default", "script/no-deep-destructure-in-props", "script/no-deprecated-data-object-declaration", "script/no-deprecated-destroyed-lifecycle", "script/no-deprecated-dollar-listeners-api", "script/no-deprecated-dollar-scopedslots-api", "script/no-deprecated-events-api", "script/no-deprecated-props-default-this", "script/no-dupe-keys", "script/no-duplicate-attr-inheritance", "script/no-export-in-script-setup", "script/no-get-current-instance", "script/no-import-compiler-macros", "script/no-internal-imports", "script/no-multiple-slot-args", "script/no-options-api", "script/no-potential-component-option-typo", "script/no-reactive-destructure", "script/no-ref-as-operand", "script/no-required-prop-with-default", "script/no-reserved-identifiers", "script/no-reserved-keys", "script/no-reserved-props", "script/no-restricted-globals", "script/no-restricted-members", "script/no-side-effects-in-computed-properties", "script/no-top-level-ref-in-script", "script/no-unstable-nested-components", "script/no-unused-emit-declarations", "script/no-use-computed-property-like-method", "script/no-with-defaults", "script/prefer-computed", "script/prefer-define-options", "script/prefer-import-from-vue", "script/prefer-ref-over-reactive", "script/prefer-use-attrs", "script/prefer-use-id", "script/prefer-use-slots", "script/prefer-use-template-ref", "script/require-default-prop", "script/require-explicit-emits", "script/require-explicit-slots", "script/require-function-return-type", "script/require-prop-type-constructor", "script/require-prop-types", "script/require-symbol-provide", "script/require-typed-object-prop", "script/require-typed-ref", "script/require-valid-default-prop", "script/return-in-computed-property", "script/return-in-emits-validator", "script/valid-define-emits", "script/valid-define-options", "script/valid-define-props", "script/valid-next-tick", "ssr/no-browser-globals-in-ssr", "ssr/no-hydration-mismatch", "type/no-floating-promises", "type/no-reactivity-loss", "type/no-unsafe-template-binding", "type/require-typed-emits", "type/require-typed-props", "vapor/no-inline-template", "vapor/no-vue-lifecycle-events", "vapor/prefer-static-class", "vapor/require-vapor-attribute", "vue/a11y-img-alt", "vue/attribute-hyphenation", "vue/attribute-order", "vue/component-definition-name-casing", "vue/component-name-in-template-casing", "vue/html-button-has-type", "vue/html-quotes", "vue/html-self-closing", "vue/max-template-complexity", "vue/multi-word-component-names", "vue/mustache-interpolation-spacing", "vue/no-array-index-key", "vue/no-bare-strings-in-template", "vue/no-boolean-attr-value", "vue/no-child-content", "vue/no-deprecated-filter", "vue/no-deprecated-functional-template", "vue/no-deprecated-html-element-is", "vue/no-deprecated-inline-template", "vue/no-deprecated-router-link-tag-prop", "vue/no-deprecated-scope-attribute", "vue/no-deprecated-slot-attribute", "vue/no-deprecated-slot-scope-attribute", "vue/no-deprecated-v-bind-sync", "vue/no-deprecated-v-on-native-modifier", "vue/no-deprecated-v-on-number-modifiers", "vue/no-dupe-v-else-if", "vue/no-duplicate-attributes", "vue/no-empty-component-block", "vue/no-inline-style", "vue/no-invalid-html-attribute", "vue/no-lone-template", "vue/no-multi-spaces", "vue/no-multiple-objects-in-class", "vue/no-multiple-template-root", "vue/no-mutating-props", "vue/no-negated-v-if-condition", "vue/no-non-component-keep-alive-child", "vue/no-preprocessor-lang", "vue/no-reserved-component-names", "vue/no-root-v-if", "vue/no-script-non-standard-lang", "vue/no-src-attribute", "vue/no-static-inline-styles", "vue/no-template-key", "vue/no-template-lang", "vue/no-template-shadow", "vue/no-template-target-blank", "vue/no-textarea-mustache", "vue/no-undefined-refs", "vue/no-unsafe-url", "vue/no-unsandboxed-iframe", "vue/no-unused-components", "vue/no-unused-properties", "vue/no-unused-refs", "vue/no-unused-setup-bindings", "vue/no-unused-vars", "vue/no-use-v-else-with-v-for", "vue/no-use-v-if-with-v-for", "vue/no-useless-mustaches", "vue/no-useless-template-attributes", "vue/no-useless-v-bind", "vue/no-v-for-template-key-on-child", "vue/no-v-html", "vue/no-v-text", "vue/no-v-text-v-html-on-component", "vue/permitted-contents", "vue/prefer-props-shorthand", "vue/prefer-true-attribute-shorthand", "vue/prop-name-casing", "vue/require-component-is", "vue/require-component-registration", "vue/require-scoped-style", "vue/require-toggle-inside-transition", "vue/require-v-for-key", "vue/scoped-event-names", "vue/sfc-element-order", "vue/single-style-block", "vue/slot-name-casing", "vue/this-in-template", "vue/use-unique-element-ids", "vue/use-v-on-exact", "vue/v-bind-style", "vue/v-on-event-hyphenation", "vue/v-on-handler-style", "vue/v-on-style", "vue/v-slot-style", "vue/valid-attribute-name", "vue/valid-template-root", "vue/valid-v-bind", "vue/valid-v-cloak", "vue/valid-v-else", "vue/valid-v-for", "vue/valid-v-html", "vue/valid-v-if", "vue/valid-v-memo", "vue/valid-v-model", "vue/valid-v-on", "vue/valid-v-once", "vue/valid-v-show", "vue/valid-v-slot", "vue/valid-v-text", "vue/warn-custom-block", "vue/warn-custom-directive"];
783
+ declare const LINT_RULE_NAMES: readonly ["a11y/alt-text", "a11y/anchor-has-content", "a11y/anchor-is-valid", "a11y/aria-props", "a11y/aria-role", "a11y/aria-unsupported-elements", "a11y/click-events-have-key-events", "a11y/form-control-has-label", "a11y/heading-has-content", "a11y/heading-levels", "a11y/iframe-has-title", "a11y/img-alt", "a11y/interactive-supports-focus", "a11y/label-has-for", "a11y/landmark-roles", "a11y/media-has-caption", "a11y/mouse-events-have-key-events", "a11y/no-access-key", "a11y/no-aria-hidden-on-focusable", "a11y/no-autofocus", "a11y/no-distracting-elements", "a11y/no-i-for-icon", "a11y/no-redundant-roles", "a11y/no-refer-to-non-existent-id", "a11y/no-role-presentation-on-focusable", "a11y/no-static-element-interactions", "a11y/placeholder-label-option", "a11y/role-has-required-aria-props", "a11y/tabindex-no-positive", "a11y/use-list", "css/no-display-none", "css/no-hardcoded-values", "css/no-id-selectors", "css/no-important", "css/no-utility-classes", "css/no-v-bind-performance", "css/prefer-logical-properties", "css/prefer-nested-selectors", "css/prefer-slotted", "css/require-font-display", "ecosystem/nuxt-prefer-nuxt-link", "ecosystem/pinia-prefer-store-to-refs", "ecosystem/router-link-require-to", "ecosystem/void-link-require-href", "ecosystem/void-link-valid-method", "ecosystem/vue-i18n-no-missing-key", "ecosystem/vue-router-prefer-named-link", "ecosystem/vue-router-prefer-named-push", "ecosystem/vue-test-utils-no-html-snapshot", "html/deprecated-attr", "html/deprecated-element", "html/id-duplication", "html/no-consecutive-br", "html/no-dupe-style-properties", "html/no-duplicate-class", "html/no-duplicate-dt", "html/no-empty-palpable-content", "html/require-datetime", "musea/no-empty-variant", "musea/prefer-design-tokens", "musea/require-component", "musea/require-title", "musea/unique-variant-names", "musea/valid-variant", "nuxt/no-nuxt-config-test-key", "nuxt/no-page-meta-runtime-values", "nuxt/nuxt-config-keys-order", "nuxt/prefer-import-meta", "petite-vue/no-unsupported-directive", "petite-vue/valid-v-effect", "petite-vue/valid-v-scope", "script/component-options-name-casing", "script/custom-event-name-casing", "script/define-emits-declaration", "script/define-macros-order", "script/define-props-declaration", "script/define-props-destructuring", "script/no-arrow-functions-in-watch", "script/no-async-in-computed", "script/no-boolean-default", "script/no-deep-destructure-in-props", "script/no-deprecated-data-object-declaration", "script/no-deprecated-destroyed-lifecycle", "script/no-deprecated-dollar-listeners-api", "script/no-deprecated-dollar-scopedslots-api", "script/no-deprecated-events-api", "script/no-deprecated-props-default-this", "script/no-dupe-keys", "script/no-duplicate-attr-inheritance", "script/no-export-in-script-setup", "script/no-get-current-instance", "script/no-import-compiler-macros", "script/no-internal-imports", "script/no-multiple-slot-args", "script/no-options-api", "script/no-potential-component-option-typo", "script/no-reactive-destructure", "script/no-ref-as-operand", "script/no-required-prop-with-default", "script/no-reserved-identifiers", "script/no-reserved-keys", "script/no-reserved-props", "script/no-restricted-globals", "script/no-restricted-members", "script/no-side-effects-in-computed-properties", "script/no-top-level-ref-in-script", "script/no-unstable-nested-components", "script/no-unused-emit-declarations", "script/no-use-computed-property-like-method", "script/no-with-defaults", "script/prefer-computed", "script/prefer-define-options", "script/prefer-import-from-vue", "script/prefer-ref-over-reactive", "script/prefer-use-attrs", "script/prefer-use-id", "script/prefer-use-slots", "script/prefer-use-template-ref", "script/require-default-prop", "script/require-explicit-emits", "script/require-explicit-slots", "script/require-function-return-type", "script/require-prop-type-constructor", "script/require-prop-types", "script/require-symbol-provide", "script/require-typed-object-prop", "script/require-typed-ref", "script/require-valid-default-prop", "script/return-in-computed-property", "script/return-in-emits-validator", "script/valid-define-emits", "script/valid-define-options", "script/valid-define-props", "script/valid-next-tick", "ssr/no-browser-globals-in-ssr", "ssr/no-hydration-mismatch", "type/no-floating-promises", "type/no-reactivity-loss", "type/no-unsafe-template-binding", "type/require-typed-emits", "type/require-typed-props", "type/strict-boolean-expressions", "vapor/no-inline-template", "vapor/no-vue-lifecycle-events", "vapor/prefer-static-class", "vapor/require-vapor-attribute", "vue/a11y-img-alt", "vue/attribute-hyphenation", "vue/attribute-order", "vue/component-definition-name-casing", "vue/component-name-in-template-casing", "vue/html-button-has-type", "vue/html-quotes", "vue/html-self-closing", "vue/max-template-complexity", "vue/multi-word-component-names", "vue/mustache-interpolation-spacing", "vue/no-array-index-key", "vue/no-bare-strings-in-template", "vue/no-boolean-attr-value", "vue/no-child-content", "vue/no-deprecated-filter", "vue/no-deprecated-functional-template", "vue/no-deprecated-html-element-is", "vue/no-deprecated-inline-template", "vue/no-deprecated-router-link-tag-prop", "vue/no-deprecated-scope-attribute", "vue/no-deprecated-slot-attribute", "vue/no-deprecated-slot-scope-attribute", "vue/no-deprecated-v-bind-sync", "vue/no-deprecated-v-on-native-modifier", "vue/no-deprecated-v-on-number-modifiers", "vue/no-dupe-v-else-if", "vue/no-duplicate-attributes", "vue/no-empty-component-block", "vue/no-inline-style", "vue/no-invalid-html-attribute", "vue/no-lone-template", "vue/no-multi-spaces", "vue/no-multiple-objects-in-class", "vue/no-multiple-template-root", "vue/no-mutating-props", "vue/no-negated-v-if-condition", "vue/no-non-component-keep-alive-child", "vue/no-preprocessor-lang", "vue/no-reserved-component-names", "vue/no-root-v-if", "vue/no-script-non-standard-lang", "vue/no-src-attribute", "vue/no-static-inline-styles", "vue/no-template-key", "vue/no-template-lang", "vue/no-template-shadow", "vue/no-template-target-blank", "vue/no-textarea-mustache", "vue/no-undefined-refs", "vue/no-unsafe-url", "vue/no-unsandboxed-iframe", "vue/no-unused-components", "vue/no-unused-properties", "vue/no-unused-refs", "vue/no-unused-setup-bindings", "vue/no-unused-vars", "vue/no-use-v-else-with-v-for", "vue/no-use-v-if-with-v-for", "vue/no-useless-mustaches", "vue/no-useless-template-attributes", "vue/no-useless-v-bind", "vue/no-v-for-template-key-on-child", "vue/no-v-html", "vue/no-v-text", "vue/no-v-text-v-html-on-component", "vue/permitted-contents", "vue/prefer-props-shorthand", "vue/prefer-true-attribute-shorthand", "vue/prop-name-casing", "vue/require-component-is", "vue/require-component-registration", "vue/require-scoped-style", "vue/require-toggle-inside-transition", "vue/require-v-for-key", "vue/scoped-event-names", "vue/sfc-element-order", "vue/single-style-block", "vue/slot-name-casing", "vue/this-in-template", "vue/use-unique-element-ids", "vue/use-v-on-exact", "vue/v-bind-style", "vue/v-on-event-hyphenation", "vue/v-on-handler-style", "vue/v-on-style", "vue/v-slot-style", "vue/valid-attribute-name", "vue/valid-template-root", "vue/valid-v-bind", "vue/valid-v-cloak", "vue/valid-v-else", "vue/valid-v-for", "vue/valid-v-html", "vue/valid-v-if", "vue/valid-v-memo", "vue/valid-v-model", "vue/valid-v-on", "vue/valid-v-once", "vue/valid-v-show", "vue/valid-v-slot", "vue/valid-v-text", "vue/warn-custom-block", "vue/warn-custom-directive"];
731
784
  type LintRuleName = (typeof LINT_RULE_NAMES)[number];
732
785
  type LintRulesConfig = Partial<Record<LintRuleName, RuleSeverity>>;
733
786
  //#endregion
@@ -819,4 +872,4 @@ declare function resolveConfigExport(exported: UserConfigExport, env?: ConfigEnv
819
872
  declare function normalizeGlobalTypes(config: GlobalTypesConfig): Record<string, GlobalTypeDeclaration>;
820
873
  //#endregion
821
874
  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 };
822
- //# sourceMappingURL=config-DoZFwU3H.d.mts.map
875
+ //# sourceMappingURL=config-GxBRbNGY.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-GxBRbNGY.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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"}
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-DoZFwU3H.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-GxBRbNGY.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-DoZFwU3H.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-GxBRbNGY.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/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.429.2",
10
+ "@vizejs/native": "0.430.1",
11
11
  "oxc-transform": "0.144.0"
12
12
  },
13
13
  "description": "Vize - High-performance Vue.js toolchain in Rust",
@@ -106,7 +106,7 @@
106
106
  ]
107
107
  }
108
108
  },
109
- "version": "0.429.2",
109
+ "version": "0.430.1",
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",
@@ -1,7 +1,11 @@
1
1
  /// Formatter configuration for Vize.
2
2
  module vize.FormatterConfig
3
+ import "SortImportsConfig.pkl"
3
4
 
4
5
  class FormatterConfig {
6
+ /// Oxfmt-compatible import sorting; false disables it.
7
+ sortImports: Boolean(this == false) | SortImportsConfig.SortImportsConfig? = null
8
+
5
9
  /// Maximum line width.
6
10
  printWidth: Int = 100
7
11
 
@@ -99,7 +99,19 @@ class MuseaPreferDesignTokensOptions {
99
99
  }
100
100
 
101
101
  /// Typed per-rule options for rules that accept project-local configuration.
102
+ class StrictBooleanExpressionsOptions {
103
+ allowString: Boolean = true
104
+ allowNumber: Boolean = true
105
+ allowNullableObject: Boolean = true
106
+ allowNullableBoolean: Boolean = false
107
+ allowNullableString: Boolean = false
108
+ allowNullableNumber: Boolean = false
109
+ allowNullableEnum: Boolean = false
110
+ allowAny: Boolean = false
111
+ }
112
+
102
113
  class LintRuleOptions {
114
+ `type/strict-boolean-expressions`: StrictBooleanExpressionsOptions? = null
103
115
  `script/no-restricted-globals`: NoRestrictedGlobalsOptions? = null
104
116
  `script/no-restricted-members`: NoRestrictedMembersOptions? = null
105
117
  `vue/component-name-in-template-casing`: ComponentNameInTemplateCasingOptions? = null
@@ -122,6 +134,21 @@ class LinterConfig {
122
134
  /// Enable native type-aware lint rules from the active lint configuration.
123
135
  typeAware: Boolean = false
124
136
 
137
+ /// Analyze relationships between input components.
138
+ crossFile: Boolean = false
139
+
140
+ /// Display the provide/inject tree; enables cross-file analysis.
141
+ crossFileTree: Boolean = false
142
+
143
+ /// Display cross-file complexity; enables cross-file analysis.
144
+ crossFileComplexity: Boolean = false
145
+
146
+ /// Enable the native reactivity-loss rule unless rules explicitly disable it.
147
+ strictReactivity: Boolean = false
148
+
149
+ /// Fail when warnings exceed this non-negative limit; absent means unlimited.
150
+ maxWarnings: Int(isBetween(0, 9007199254740991))? = null
151
+
125
152
  /// Rules to enable/disable.
126
153
  rules: Mapping<String, RuleSeverity> = new Mapping {}
127
154
 
@@ -0,0 +1,27 @@
1
+ /// Oxfmt-compatible import sorting controls.
2
+ module vize.SortImportsConfig
3
+
4
+ typealias ImportSortOrder = "asc"|"desc"
5
+
6
+ class ImportSortBoundary {
7
+ newlinesBetween: Boolean
8
+ }
9
+
10
+ class ImportSortCustomGroup {
11
+ groupName: String
12
+ elementNamePattern: Listing<String>? = null
13
+ selector: String? = null
14
+ modifiers: Listing<String>? = null
15
+ }
16
+
17
+ class SortImportsConfig {
18
+ partitionByNewline: Boolean? = null
19
+ partitionByComment: Boolean? = null
20
+ sortSideEffects: Boolean? = null
21
+ order: ImportSortOrder? = null
22
+ ignoreCase: Boolean? = null
23
+ newlinesBetween: Boolean? = null
24
+ internalPattern: Listing<String>? = null
25
+ groups: Listing<String | Listing<String> | ImportSortBoundary>? = null
26
+ customGroups: Listing<ImportSortCustomGroup>? = null
27
+ }
@@ -2,6 +2,7 @@
2
2
  module vize.jsonschema.ConfigArtifactDefinitions
3
3
 
4
4
  import "@json_schema/JsonSchema.pkl"
5
+ import "LintRuleOptionsSchemaDefinitions.pkl"
5
6
 
6
7
  experimentalsConfigDef: JsonSchema = new JsonSchema {
7
8
  type = "object"
@@ -337,19 +338,4 @@ museaPreferDesignTokensOptionsDef: JsonSchema = new JsonSchema {
337
338
  additionalProperties = false
338
339
  }
339
340
 
340
- lintRuleOptionsDef: JsonSchema = new JsonSchema {
341
- type = "object"
342
- properties {
343
- ["script/no-restricted-globals"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedGlobalsOptions" }
344
- ["script/no-restricted-members"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedMembersOptions" }
345
- ["vue/component-name-in-template-casing"] = componentNameInTemplateCasingOptionsDef
346
- ["script/custom-event-name-casing"] = customEventNameCasingOptionsDef
347
- ["vue/no-mutating-props"] = noMutatingPropsOptionsDef
348
- ["vue/sfc-element-order"] = sfcElementOrderOptionsDef
349
- ["vue/html-self-closing"] = htmlSelfClosingOptionsDef
350
- ["vue/v-on-event-hyphenation"] = hyphenationStyleDef
351
- ["vue/attribute-hyphenation"] = hyphenationStyleDef
352
- ["musea/prefer-design-tokens"] = new JsonSchema { `$ref` = "#/definitions/MuseaPreferDesignTokensOptions" }
353
- }
354
- additionalProperties = false
355
- }
341
+ lintRuleOptionsDef: JsonSchema = LintRuleOptionsSchemaDefinitions.lintRuleOptionsDef
@@ -0,0 +1,124 @@
1
+ /// JSON Schema for native formatter configuration.
2
+ module vize.jsonschema.FormatterSchemaDefinitions
3
+ import "@json_schema/JsonSchema.pkl"
4
+ import "ImportSortSchemaDefinitions.pkl"
5
+ formatterConfigDef: JsonSchema = new JsonSchema {
6
+ type = "object"
7
+ description = "Formatter options"
8
+ properties {
9
+ ["sortImports"] = ImportSortSchemaDefinitions.sortImportsSettingDef
10
+ ["printWidth"] = new JsonSchema {
11
+ type = "integer"
12
+ description = "Max line width"
13
+ default = 100
14
+ }
15
+ ["tabWidth"] = new JsonSchema {
16
+ type = "integer"
17
+ description = "Indentation width"
18
+ default = 2
19
+ }
20
+ ["useTabs"] = new JsonSchema {
21
+ type = "boolean"
22
+ description = "Use tabs for indentation"
23
+ default = false
24
+ }
25
+ ["semi"] = new JsonSchema {
26
+ type = "boolean"
27
+ description = "Print semicolons"
28
+ default = true
29
+ }
30
+ ["singleQuote"] = new JsonSchema {
31
+ type = "boolean"
32
+ description = "Use single quotes"
33
+ default = false
34
+ }
35
+ ["jsxSingleQuote"] = new JsonSchema {
36
+ type = "boolean"
37
+ description = "Use single quotes in JSX"
38
+ default = false
39
+ }
40
+ ["trailingComma"] = new JsonSchema {
41
+ type = "string"
42
+ enum = new Listing { "all"; "none"; "es5" }
43
+ description = "Trailing commas"
44
+ default = "all"
45
+ }
46
+ ["bracketSpacing"] = new JsonSchema {
47
+ type = "boolean"
48
+ description = "Print spaces between brackets in object literals"
49
+ default = true
50
+ }
51
+ ["bracketSameLine"] = new JsonSchema {
52
+ type = "boolean"
53
+ description = "Keep > on the last line of multiline tags"
54
+ default = false
55
+ }
56
+ ["arrowParens"] = new JsonSchema {
57
+ type = "string"
58
+ enum = new Listing { "always"; "avoid" }
59
+ description = "Arrow parens mode"
60
+ default = "always"
61
+ }
62
+ ["endOfLine"] = new JsonSchema {
63
+ type = "string"
64
+ enum = new Listing { "lf"; "crlf"; "cr"; "auto" }
65
+ description = "End-of-line mode"
66
+ default = "lf"
67
+ }
68
+ ["quoteProps"] = new JsonSchema {
69
+ type = "string"
70
+ enum = new Listing { "as-needed"; "consistent"; "preserve" }
71
+ description = "Object property quoting mode"
72
+ default = "as-needed"
73
+ }
74
+ ["singleAttributePerLine"] = new JsonSchema {
75
+ type = "boolean"
76
+ description = "Force one attribute per line"
77
+ default = false
78
+ }
79
+ ["vueIndentScriptAndStyle"] = new JsonSchema {
80
+ type = "boolean"
81
+ description = "Indent script and style blocks"
82
+ default = false
83
+ }
84
+ ["sortAttributes"] = new JsonSchema {
85
+ type = "boolean"
86
+ description = "Sort attributes"
87
+ default = true
88
+ }
89
+ ["attributeSortOrder"] = new JsonSchema {
90
+ type = "string"
91
+ enum = new Listing { "alphabetical"; "as-written" }
92
+ description = "Attribute ordering strategy"
93
+ default = "alphabetical"
94
+ }
95
+ ["mergeBindAndNonBindAttrs"] = new JsonSchema {
96
+ type = "boolean"
97
+ description = "Merge bind and non-bind attrs for sorting"
98
+ default = false
99
+ }
100
+ ["maxAttributesPerLine"] = new JsonSchema {
101
+ type = "integer"
102
+ description = "Maximum attributes per line before wrapping"
103
+ }
104
+ ["attributeGroups"] = new JsonSchema {
105
+ type = "array"
106
+ description = "Custom attribute groups"
107
+ items = new JsonSchema {
108
+ type = "array"
109
+ items = new JsonSchema { type = "string" }
110
+ }
111
+ }
112
+ ["normalizeDirectiveShorthands"] = new JsonSchema {
113
+ type = "boolean"
114
+ description = "Normalize directive shorthands"
115
+ default = true
116
+ }
117
+ ["sortBlocks"] = new JsonSchema {
118
+ type = "boolean"
119
+ description = "Sort SFC blocks in canonical order"
120
+ default = true
121
+ }
122
+ }
123
+ additionalProperties = false
124
+ }
@@ -0,0 +1,56 @@
1
+ /// Import sorting schemas shared by the generated config artifact.
2
+ module vize.jsonschema.ImportSortSchemaDefinitions
3
+ import "@json_schema/JsonSchema.pkl"
4
+
5
+ local booleanDef: JsonSchema = new JsonSchema { type = "boolean" }
6
+ local stringList: JsonSchema = new JsonSchema { type = "array"; items = new JsonSchema { type = "string" } }
7
+
8
+ customGroupDef: JsonSchema = new JsonSchema {
9
+ type = "object"
10
+ properties {
11
+ ["groupName"] = new JsonSchema { type = "string" }
12
+ ["elementNamePattern"] = stringList
13
+ ["selector"] = new JsonSchema { type = "string" }
14
+ ["modifiers"] = stringList
15
+ }
16
+ required = new Listing { "groupName" }
17
+ additionalProperties = false
18
+ }
19
+
20
+ sortImportsConfigDef: JsonSchema = new JsonSchema {
21
+ type = "object"
22
+ properties {
23
+ ["partitionByNewline"] = booleanDef
24
+ ["partitionByComment"] = booleanDef
25
+ ["sortSideEffects"] = booleanDef
26
+ ["order"] = new JsonSchema { type = "string"; enum = new Listing { "asc"; "desc" } }
27
+ ["ignoreCase"] = booleanDef
28
+ ["newlinesBetween"] = booleanDef
29
+ ["internalPattern"] = stringList
30
+ ["groups"] = new JsonSchema {
31
+ type = "array"
32
+ items = new JsonSchema {
33
+ oneOf = new Listing {
34
+ new JsonSchema { type = "string" }
35
+ stringList
36
+ new JsonSchema {
37
+ type = "object"
38
+ properties { ["newlinesBetween"] = booleanDef }
39
+ required = new Listing { "newlinesBetween" }
40
+ additionalProperties = false
41
+ }
42
+ }
43
+ }
44
+ }
45
+ ["customGroups"] = new JsonSchema { type = "array"; items = new JsonSchema { `$ref` = "#/definitions/ImportSortCustomGroup" } }
46
+ }
47
+ additionalProperties = false
48
+ }
49
+
50
+ sortImportsSettingDef: JsonSchema = new JsonSchema {
51
+ description = "Oxfmt-compatible import sorting; false disables it"
52
+ oneOf = new Listing {
53
+ new JsonSchema { type = "boolean"; enum = new Listing { false } }
54
+ new JsonSchema { `$ref` = "#/definitions/SortImportsConfig" }
55
+ }
56
+ }
@@ -0,0 +1,38 @@
1
+ /// Typed lint rule options schema.
2
+ module vize.jsonschema.LintRuleOptionsSchemaDefinitions
3
+
4
+ import "@json_schema/JsonSchema.pkl"
5
+ import "ConfigArtifactDefinitions.pkl"
6
+
7
+ lintRuleOptionsDef: JsonSchema = new JsonSchema {
8
+ type = "object"
9
+ properties {
10
+ ["type/strict-boolean-expressions"] = strictBooleanExpressionsOptionsDef
11
+ ["script/no-restricted-globals"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedGlobalsOptions" }
12
+ ["script/no-restricted-members"] = new JsonSchema { `$ref` = "#/definitions/NoRestrictedMembersOptions" }
13
+ ["vue/component-name-in-template-casing"] = ConfigArtifactDefinitions.componentNameInTemplateCasingOptionsDef
14
+ ["script/custom-event-name-casing"] = ConfigArtifactDefinitions.customEventNameCasingOptionsDef
15
+ ["vue/no-mutating-props"] = ConfigArtifactDefinitions.noMutatingPropsOptionsDef
16
+ ["vue/sfc-element-order"] = ConfigArtifactDefinitions.sfcElementOrderOptionsDef
17
+ ["vue/html-self-closing"] = ConfigArtifactDefinitions.htmlSelfClosingOptionsDef
18
+ ["vue/v-on-event-hyphenation"] = ConfigArtifactDefinitions.hyphenationStyleDef
19
+ ["vue/attribute-hyphenation"] = ConfigArtifactDefinitions.hyphenationStyleDef
20
+ ["musea/prefer-design-tokens"] = new JsonSchema { `$ref` = "#/definitions/MuseaPreferDesignTokensOptions" }
21
+ }
22
+ additionalProperties = false
23
+ }
24
+
25
+ strictBooleanExpressionsOptionsDef: JsonSchema = new JsonSchema {
26
+ type = "object"
27
+ properties {
28
+ ["allowString"] = new JsonSchema { type = "boolean"; default = true }
29
+ ["allowNumber"] = new JsonSchema { type = "boolean"; default = true }
30
+ ["allowNullableObject"] = new JsonSchema { type = "boolean"; default = true }
31
+ ["allowNullableBoolean"] = new JsonSchema { type = "boolean"; default = false }
32
+ ["allowNullableString"] = new JsonSchema { type = "boolean"; default = false }
33
+ ["allowNullableNumber"] = new JsonSchema { type = "boolean"; default = false }
34
+ ["allowNullableEnum"] = new JsonSchema { type = "boolean"; default = false }
35
+ ["allowAny"] = new JsonSchema { type = "boolean"; default = false }
36
+ }
37
+ additionalProperties = false
38
+ }
@@ -0,0 +1,74 @@
1
+ /// JSON Schema for native linter configuration.
2
+ module vize.jsonschema.LinterSchemaDefinitions
3
+ import "@json_schema/JsonSchema.pkl"
4
+ local ruleSeverityEnum: JsonSchema = new JsonSchema {
5
+ type = "string"
6
+ enum = new Listing { "off"; "warn"; "error" }
7
+ }
8
+ local lintPresetEnum: JsonSchema = new JsonSchema {
9
+ type = "string"
10
+ enum = new Listing { "happy-path"; "opinionated"; "essential"; "incremental"; "ecosystem"; "nuxt" }
11
+ }
12
+ linterConfigDef: JsonSchema = new JsonSchema {
13
+ type = "object"
14
+ description = "Linter options"
15
+ properties {
16
+ ["enabled"] = new JsonSchema {
17
+ type = "boolean"
18
+ description = "Enable linting"
19
+ }
20
+ ["preset"] = new JsonSchema {
21
+ type = lintPresetEnum.type
22
+ enum = lintPresetEnum.enum
23
+ description = "Built-in lint preset"
24
+ default = "happy-path"
25
+ }
26
+ ["typeAware"] = new JsonSchema {
27
+ type = "boolean"
28
+ description = "Enable native type-aware lint rules from the active lint configuration"
29
+ }
30
+ ["crossFile"] = new JsonSchema {
31
+ type = "boolean"
32
+ description = "Analyze relationships between input components"
33
+ }
34
+ ["crossFileTree"] = new JsonSchema {
35
+ type = "boolean"
36
+ description = "Display the provide/inject tree; enables cross-file analysis"
37
+ }
38
+ ["crossFileComplexity"] = new JsonSchema {
39
+ type = "boolean"
40
+ description = "Display cross-file complexity; enables cross-file analysis"
41
+ }
42
+ ["strictReactivity"] = new JsonSchema {
43
+ type = "boolean"
44
+ description = "Enable the native reactivity-loss rule unless rules explicitly disable it"
45
+ }
46
+ ["maxWarnings"] = new JsonSchema {
47
+ type = "integer"
48
+ minimum = 0
49
+ description = "Fail when warnings exceed this limit; absent means unlimited"
50
+ }
51
+ ["rules"] = new JsonSchema {
52
+ type = "object"
53
+ description = "Rules to enable/disable"
54
+ additionalProperties = ruleSeverityEnum
55
+ }
56
+ ["ruleOptions"] = new JsonSchema {
57
+ `$ref` = "#/definitions/LintRuleOptions"
58
+ }
59
+ ["categories"] = new JsonSchema {
60
+ type = "object"
61
+ description = "Category-level severity overrides"
62
+ properties {
63
+ ["correctness"] = ruleSeverityEnum
64
+ ["suspicious"] = ruleSeverityEnum
65
+ ["style"] = ruleSeverityEnum
66
+ ["perf"] = ruleSeverityEnum
67
+ ["a11y"] = ruleSeverityEnum
68
+ ["security"] = ruleSeverityEnum
69
+ }
70
+ additionalProperties = false
71
+ }
72
+ }
73
+ additionalProperties = false
74
+ }