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.
- package/dist/cli.mjs +30 -3
- package/dist/cli.mjs.map +1 -1
- package/dist/{config-DoZFwU3H.d.mts → config-GxBRbNGY.d.mts} +55 -2
- package/dist/config-GxBRbNGY.d.mts.map +1 -0
- package/dist/config.d.mts +1 -1
- package/dist/index.d.mts +1 -1
- package/package.json +2 -2
- package/pkl/FormatterConfig.pkl +4 -0
- package/pkl/LinterConfig.pkl +27 -0
- package/pkl/SortImportsConfig.pkl +27 -0
- package/pkl/jsonschema/ConfigArtifactDefinitions.pkl +2 -16
- package/pkl/jsonschema/FormatterSchemaDefinitions.pkl +124 -0
- package/pkl/jsonschema/ImportSortSchemaDefinitions.pkl +56 -0
- package/pkl/jsonschema/LintRuleOptionsSchemaDefinitions.pkl +38 -0
- package/pkl/jsonschema/LinterSchemaDefinitions.pkl +74 -0
- package/pkl/jsonschema/generate.pkl +7 -173
- package/pkl/vize.pkl +46 -0
- package/schemas/vize.config.schema.json +159 -0
- package/src/init/detect.ts +17 -0
- package/src/init/plan-project.ts +8 -2
- package/src/init/templates.ts +13 -1
- package/src/types/generated.ts +57 -0
- package/src/types/index.ts +2 -0
- package/src/types/rules.ts +1 -0
- package/dist/config-DoZFwU3H.d.mts.map +0 -1
|
@@ -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-
|
|
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-
|
|
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-
|
|
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.
|
|
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.
|
|
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",
|
package/pkl/FormatterConfig.pkl
CHANGED
|
@@ -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
|
|
package/pkl/LinterConfig.pkl
CHANGED
|
@@ -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 =
|
|
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
|
+
}
|