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.
@@ -3,14 +3,9 @@ module vize.jsonschema.generate
3
3
  import "@json_schema/JsonSchema.pkl"
4
4
  import "ConfigArtifactDefinitions.pkl"
5
5
  import "MuseaSchemaDefinitions.pkl"
6
- local ruleSeverityEnum: JsonSchema = new JsonSchema {
7
- type = "string"
8
- enum = new Listing { "off"; "warn"; "error" }
9
- }
10
- local lintPresetEnum: JsonSchema = new JsonSchema {
11
- type = "string"
12
- enum = new Listing { "happy-path"; "opinionated"; "essential"; "incremental"; "ecosystem"; "nuxt" }
13
- }
6
+ import "LinterSchemaDefinitions.pkl"
7
+ import "FormatterSchemaDefinitions.pkl"
8
+ import "ImportSortSchemaDefinitions.pkl"
14
9
  local stringListDef: JsonSchema = new JsonSchema {
15
10
  type = "array"
16
11
  items = new JsonSchema { type = "string" }
@@ -58,49 +53,6 @@ local vitePluginConfigDef: JsonSchema = new JsonSchema {
58
53
  }
59
54
  additionalProperties = false
60
55
  }
61
- local linterConfigDef: JsonSchema = new JsonSchema {
62
- type = "object"
63
- description = "Linter options"
64
- properties {
65
- ["enabled"] = new JsonSchema {
66
- type = "boolean"
67
- description = "Enable linting"
68
- }
69
- ["preset"] = new JsonSchema {
70
- type = lintPresetEnum.type
71
- enum = lintPresetEnum.enum
72
- description = "Built-in lint preset"
73
- default = "happy-path"
74
- }
75
- ["typeAware"] = new JsonSchema {
76
- type = "boolean"
77
- description = "Enable native type-aware lint rules from the active lint configuration"
78
- }
79
- ["rules"] = new JsonSchema {
80
- type = "object"
81
- description = "Rules to enable/disable"
82
- additionalProperties = ruleSeverityEnum
83
- }
84
- ["ruleOptions"] = new JsonSchema {
85
- `$ref` = "#/definitions/LintRuleOptions"
86
- }
87
- ["categories"] = new JsonSchema {
88
- type = "object"
89
- description = "Category-level severity overrides"
90
- properties {
91
- ["correctness"] = ruleSeverityEnum
92
- ["suspicious"] = ruleSeverityEnum
93
- ["style"] = ruleSeverityEnum
94
- ["perf"] = ruleSeverityEnum
95
- ["a11y"] = ruleSeverityEnum
96
- ["security"] = ruleSeverityEnum
97
- }
98
- additionalProperties = false
99
- }
100
- }
101
- additionalProperties = false
102
- }
103
-
104
56
  local typeCheckerConfigDef: JsonSchema = new JsonSchema {
105
57
  type = "object"
106
58
  properties {
@@ -188,126 +140,6 @@ local typeCheckerConfigDef: JsonSchema = new JsonSchema {
188
140
  }
189
141
  additionalProperties = false
190
142
  }
191
- local formatterConfigDef: JsonSchema = new JsonSchema {
192
- type = "object"
193
- description = "Formatter options"
194
- properties {
195
- ["printWidth"] = new JsonSchema {
196
- type = "integer"
197
- description = "Max line width"
198
- default = 100
199
- }
200
- ["tabWidth"] = new JsonSchema {
201
- type = "integer"
202
- description = "Indentation width"
203
- default = 2
204
- }
205
- ["useTabs"] = new JsonSchema {
206
- type = "boolean"
207
- description = "Use tabs for indentation"
208
- default = false
209
- }
210
- ["semi"] = new JsonSchema {
211
- type = "boolean"
212
- description = "Print semicolons"
213
- default = true
214
- }
215
- ["singleQuote"] = new JsonSchema {
216
- type = "boolean"
217
- description = "Use single quotes"
218
- default = false
219
- }
220
- ["jsxSingleQuote"] = new JsonSchema {
221
- type = "boolean"
222
- description = "Use single quotes in JSX"
223
- default = false
224
- }
225
- ["trailingComma"] = new JsonSchema {
226
- type = "string"
227
- enum = new Listing { "all"; "none"; "es5" }
228
- description = "Trailing commas"
229
- default = "all"
230
- }
231
- ["bracketSpacing"] = new JsonSchema {
232
- type = "boolean"
233
- description = "Print spaces between brackets in object literals"
234
- default = true
235
- }
236
- ["bracketSameLine"] = new JsonSchema {
237
- type = "boolean"
238
- description = "Keep > on the last line of multiline tags"
239
- default = false
240
- }
241
- ["arrowParens"] = new JsonSchema {
242
- type = "string"
243
- enum = new Listing { "always"; "avoid" }
244
- description = "Arrow parens mode"
245
- default = "always"
246
- }
247
- ["endOfLine"] = new JsonSchema {
248
- type = "string"
249
- enum = new Listing { "lf"; "crlf"; "cr"; "auto" }
250
- description = "End-of-line mode"
251
- default = "lf"
252
- }
253
- ["quoteProps"] = new JsonSchema {
254
- type = "string"
255
- enum = new Listing { "as-needed"; "consistent"; "preserve" }
256
- description = "Object property quoting mode"
257
- default = "as-needed"
258
- }
259
- ["singleAttributePerLine"] = new JsonSchema {
260
- type = "boolean"
261
- description = "Force one attribute per line"
262
- default = false
263
- }
264
- ["vueIndentScriptAndStyle"] = new JsonSchema {
265
- type = "boolean"
266
- description = "Indent script and style blocks"
267
- default = false
268
- }
269
- ["sortAttributes"] = new JsonSchema {
270
- type = "boolean"
271
- description = "Sort attributes"
272
- default = true
273
- }
274
- ["attributeSortOrder"] = new JsonSchema {
275
- type = "string"
276
- enum = new Listing { "alphabetical"; "as-written" }
277
- description = "Attribute ordering strategy"
278
- default = "alphabetical"
279
- }
280
- ["mergeBindAndNonBindAttrs"] = new JsonSchema {
281
- type = "boolean"
282
- description = "Merge bind and non-bind attrs for sorting"
283
- default = false
284
- }
285
- ["maxAttributesPerLine"] = new JsonSchema {
286
- type = "integer"
287
- description = "Maximum attributes per line before wrapping"
288
- }
289
- ["attributeGroups"] = new JsonSchema {
290
- type = "array"
291
- description = "Custom attribute groups"
292
- items = new JsonSchema {
293
- type = "array"
294
- items = new JsonSchema { type = "string" }
295
- }
296
- }
297
- ["normalizeDirectiveShorthands"] = new JsonSchema {
298
- type = "boolean"
299
- description = "Normalize directive shorthands"
300
- default = true
301
- }
302
- ["sortBlocks"] = new JsonSchema {
303
- type = "boolean"
304
- description = "Sort SFC blocks in canonical order"
305
- default = true
306
- }
307
- }
308
- additionalProperties = false
309
- }
310
-
311
143
  local languageServerConfigDef: JsonSchema = new JsonSchema {
312
144
  type = "object"
313
145
  description = "Language server options"
@@ -548,7 +380,9 @@ output {
548
380
  ["CompilerCompatibilityConfig"] = ConfigArtifactDefinitions.compilerCompatibilityConfigDef
549
381
  ["CompilerConfig"] = ConfigArtifactDefinitions.compilerConfigDef
550
382
  ["VitePluginConfig"] = vitePluginConfigDef
551
- ["LinterConfig"] = linterConfigDef
383
+ ["LinterConfig"] = LinterSchemaDefinitions.linterConfigDef
384
+ ["SortImportsConfig"] = ImportSortSchemaDefinitions.sortImportsConfigDef
385
+ ["ImportSortCustomGroup"] = ImportSortSchemaDefinitions.customGroupDef
552
386
  ["RestrictedGlobal"] = ConfigArtifactDefinitions.restrictedGlobalDef
553
387
  ["RestrictedMember"] = ConfigArtifactDefinitions.restrictedMemberDef
554
388
  ["NoRestrictedGlobalsOptions"] = ConfigArtifactDefinitions.noRestrictedGlobalsOptionsDef
@@ -557,7 +391,7 @@ output {
557
391
  ["MuseaPreferDesignTokensOptions"] = ConfigArtifactDefinitions.museaPreferDesignTokensOptionsDef
558
392
  ["LintRuleOptions"] = ConfigArtifactDefinitions.lintRuleOptionsDef
559
393
  ["TypeCheckerConfig"] = typeCheckerConfigDef
560
- ["FormatterConfig"] = formatterConfigDef
394
+ ["FormatterConfig"] = FormatterSchemaDefinitions.formatterConfigDef
561
395
  ["LanguageServerConfig"] = languageServerConfigDef
562
396
  ["MuseaViewport"] = MuseaSchemaDefinitions.viewportDef
563
397
  ["MuseaVrtConfig"] = MuseaSchemaDefinitions.museaVrtConfigDef
package/pkl/vize.pkl CHANGED
@@ -7,6 +7,7 @@
7
7
  /// sourceMap = true
8
8
  /// }
9
9
  module vize.Config
10
+ import "SortImportsConfig.pkl"
10
11
 
11
12
  typealias CompilerMode = "module" | "function"
12
13
  typealias TemplateSyntax = "standard" | "strict" | "quirks"
@@ -135,7 +136,19 @@ class MuseaPreferDesignTokensOptions {
135
136
  tokens: Listing<MuseaDesignToken>? = null
136
137
  }
137
138
 
139
+ class StrictBooleanExpressionsOptions {
140
+ allowString: Boolean = true
141
+ allowNumber: Boolean = true
142
+ allowNullableObject: Boolean = true
143
+ allowNullableBoolean: Boolean = false
144
+ allowNullableString: Boolean = false
145
+ allowNullableNumber: Boolean = false
146
+ allowNullableEnum: Boolean = false
147
+ allowAny: Boolean = false
148
+ }
149
+
138
150
  class LintRuleOptions {
151
+ `type/strict-boolean-expressions`: StrictBooleanExpressionsOptions? = null
139
152
  `script/no-restricted-globals`: NoRestrictedGlobalsOptions? = null
140
153
  `script/no-restricted-members`: NoRestrictedMembersOptions? = null
141
154
  `vue/component-name-in-template-casing`: ComponentNameInTemplateCasingOptions? = null
@@ -152,6 +165,21 @@ class LinterConfig {
152
165
  enabled: Boolean? = null
153
166
  preset: LintPreset? = null
154
167
  typeAware: Boolean? = null
168
+ /// Analyze relationships between input components.
169
+ crossFile: Boolean? = null
170
+
171
+ /// Display the provide/inject tree; enables cross-file analysis.
172
+ crossFileTree: Boolean? = null
173
+
174
+ /// Display cross-file complexity; enables cross-file analysis.
175
+ crossFileComplexity: Boolean? = null
176
+
177
+ /// Enable the native reactivity-loss rule unless rules explicitly disable it.
178
+ strictReactivity: Boolean? = null
179
+
180
+ /// Fail when warnings exceed this non-negative limit; absent means unlimited.
181
+ maxWarnings: Int(isBetween(0, 9007199254740991))? = null
182
+
155
183
  rules: Mapping<String, RuleSeverity>? = null
156
184
  ruleOptions: LintRuleOptions? = null
157
185
  categories: Mapping<String, RuleSeverity>? = null
@@ -179,12 +207,30 @@ class TypeCheckerConfig {
179
207
  }
180
208
 
181
209
  class FormatterConfig {
210
+ /// Oxfmt-compatible import sorting; false disables it.
211
+ sortImports: Boolean(this == false) | SortImportsConfig.SortImportsConfig? = null
212
+
182
213
  printWidth: Int? = null
183
214
  tabWidth: Int? = null
184
215
  useTabs: Boolean? = null
185
216
  semi: Boolean? = null
186
217
  singleQuote: Boolean? = null
187
218
  trailingComma: TrailingComma? = null
219
+ jsxSingleQuote: Boolean? = null
220
+ bracketSpacing: Boolean? = null
221
+ bracketSameLine: Boolean? = null
222
+ arrowParens: ("always"|"avoid")? = null
223
+ endOfLine: ("lf"|"crlf"|"cr"|"auto")? = null
224
+ quoteProps: ("as-needed"|"consistent"|"preserve")? = null
225
+ singleAttributePerLine: Boolean? = null
226
+ vueIndentScriptAndStyle: Boolean? = null
227
+ sortAttributes: Boolean? = null
228
+ attributeSortOrder: ("alphabetical"|"as-written")? = null
229
+ mergeBindAndNonBindAttrs: Boolean? = null
230
+ maxAttributesPerLine: Int? = null
231
+ attributeGroups: Listing<Listing<String>>? = null
232
+ normalizeDirectiveShorthands: Boolean? = null
233
+ sortBlocks: Boolean? = null
188
234
  }
189
235
 
190
236
  class LspConfig {
@@ -209,6 +209,27 @@
209
209
  "description": "Enable native type-aware lint rules from the active lint configuration",
210
210
  "type": "boolean"
211
211
  },
212
+ "crossFile": {
213
+ "description": "Analyze relationships between input components",
214
+ "type": "boolean"
215
+ },
216
+ "crossFileTree": {
217
+ "description": "Display the provide/inject tree; enables cross-file analysis",
218
+ "type": "boolean"
219
+ },
220
+ "crossFileComplexity": {
221
+ "description": "Display cross-file complexity; enables cross-file analysis",
222
+ "type": "boolean"
223
+ },
224
+ "strictReactivity": {
225
+ "description": "Enable the native reactivity-loss rule unless rules explicitly disable it",
226
+ "type": "boolean"
227
+ },
228
+ "maxWarnings": {
229
+ "description": "Fail when warnings exceed this limit; absent means unlimited",
230
+ "type": "integer",
231
+ "minimum": 0
232
+ },
212
233
  "rules": {
213
234
  "description": "Rules to enable/disable",
214
235
  "type": "object",
@@ -254,6 +275,94 @@
254
275
  },
255
276
  "additionalProperties": false
256
277
  },
278
+ "SortImportsConfig": {
279
+ "type": "object",
280
+ "properties": {
281
+ "partitionByNewline": {
282
+ "type": "boolean"
283
+ },
284
+ "partitionByComment": {
285
+ "type": "boolean"
286
+ },
287
+ "sortSideEffects": {
288
+ "type": "boolean"
289
+ },
290
+ "order": {
291
+ "type": "string",
292
+ "enum": ["asc", "desc"]
293
+ },
294
+ "ignoreCase": {
295
+ "type": "boolean"
296
+ },
297
+ "newlinesBetween": {
298
+ "type": "boolean"
299
+ },
300
+ "internalPattern": {
301
+ "type": "array",
302
+ "items": {
303
+ "type": "string"
304
+ }
305
+ },
306
+ "groups": {
307
+ "type": "array",
308
+ "items": {
309
+ "oneOf": [
310
+ {
311
+ "type": "string"
312
+ },
313
+ {
314
+ "type": "array",
315
+ "items": {
316
+ "type": "string"
317
+ }
318
+ },
319
+ {
320
+ "type": "object",
321
+ "properties": {
322
+ "newlinesBetween": {
323
+ "type": "boolean"
324
+ }
325
+ },
326
+ "additionalProperties": false,
327
+ "required": ["newlinesBetween"]
328
+ }
329
+ ]
330
+ }
331
+ },
332
+ "customGroups": {
333
+ "type": "array",
334
+ "items": {
335
+ "$ref": "#/definitions/ImportSortCustomGroup"
336
+ }
337
+ }
338
+ },
339
+ "additionalProperties": false
340
+ },
341
+ "ImportSortCustomGroup": {
342
+ "type": "object",
343
+ "properties": {
344
+ "groupName": {
345
+ "type": "string"
346
+ },
347
+ "elementNamePattern": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "string"
351
+ }
352
+ },
353
+ "selector": {
354
+ "type": "string"
355
+ },
356
+ "modifiers": {
357
+ "type": "array",
358
+ "items": {
359
+ "type": "string"
360
+ }
361
+ }
362
+ },
363
+ "additionalProperties": false,
364
+ "required": ["groupName"]
365
+ },
257
366
  "RestrictedGlobal": {
258
367
  "type": "object",
259
368
  "properties": {
@@ -342,6 +451,44 @@
342
451
  "LintRuleOptions": {
343
452
  "type": "object",
344
453
  "properties": {
454
+ "type/strict-boolean-expressions": {
455
+ "type": "object",
456
+ "properties": {
457
+ "allowString": {
458
+ "default": true,
459
+ "type": "boolean"
460
+ },
461
+ "allowNumber": {
462
+ "default": true,
463
+ "type": "boolean"
464
+ },
465
+ "allowNullableObject": {
466
+ "default": true,
467
+ "type": "boolean"
468
+ },
469
+ "allowNullableBoolean": {
470
+ "default": false,
471
+ "type": "boolean"
472
+ },
473
+ "allowNullableString": {
474
+ "default": false,
475
+ "type": "boolean"
476
+ },
477
+ "allowNullableNumber": {
478
+ "default": false,
479
+ "type": "boolean"
480
+ },
481
+ "allowNullableEnum": {
482
+ "default": false,
483
+ "type": "boolean"
484
+ },
485
+ "allowAny": {
486
+ "default": false,
487
+ "type": "boolean"
488
+ }
489
+ },
490
+ "additionalProperties": false
491
+ },
345
492
  "script/no-restricted-globals": {
346
493
  "$ref": "#/definitions/NoRestrictedGlobalsOptions"
347
494
  },
@@ -548,6 +695,18 @@
548
695
  "description": "Formatter options",
549
696
  "type": "object",
550
697
  "properties": {
698
+ "sortImports": {
699
+ "description": "Oxfmt-compatible import sorting; false disables it",
700
+ "oneOf": [
701
+ {
702
+ "type": "boolean",
703
+ "enum": [false]
704
+ },
705
+ {
706
+ "$ref": "#/definitions/SortImportsConfig"
707
+ }
708
+ ]
709
+ },
551
710
  "printWidth": {
552
711
  "description": "Max line width",
553
712
  "default": 100,
@@ -38,6 +38,7 @@ export interface ProjectDetection {
38
38
  readonly packageManager: PackageManager | null;
39
39
  readonly framework: Framework;
40
40
  readonly nuxtConfig: string | null;
41
+ readonly nuxtMajor: number | null;
41
42
  readonly viteConfigs: readonly string[];
42
43
  readonly usesVitePlus: boolean;
43
44
  readonly typescript: boolean;
@@ -138,6 +139,7 @@ export function detectProject(root: string): ProjectDetection {
138
139
  packageManager: detectPackageManager(root),
139
140
  framework: detectFramework(nuxtConfig, viteConfigs, dependencies),
140
141
  nuxtConfig,
142
+ nuxtMajor: declaredNuxtMajor(packageJson),
141
143
  viteConfigs,
142
144
  usesVitePlus: detectVitePlus(dependencies, viteSource, scripts),
143
145
  typescript: dependencies.has("typescript") || fs.existsSync(path.join(root, "tsconfig.json")),
@@ -153,6 +155,21 @@ export function detectProject(root: string): ProjectDetection {
153
155
  };
154
156
  }
155
157
 
158
+ function declaredNuxtMajor(packageJson: Record<string, unknown>): number | null {
159
+ for (const field of ["dependencies", "devDependencies", "optionalDependencies"]) {
160
+ const group = packageJson[field];
161
+ if (group === null || typeof group !== "object" || Array.isArray(group)) {
162
+ continue;
163
+ }
164
+ const version = (group as Record<string, unknown>).nuxt;
165
+ const major = typeof version === "string" ? /^[~^<>=\s]*(\d+)(?:\.|$)/u.exec(version) : null;
166
+ if (major) {
167
+ return Number(major[1]);
168
+ }
169
+ }
170
+ return null;
171
+ }
172
+
156
173
  function detectFramework(
157
174
  nuxtConfig: string | null,
158
175
  viteConfigs: readonly string[],
@@ -32,7 +32,10 @@ export function planVizeConfig(
32
32
  if (selection.typecheck && detection.tsconfig === null) {
33
33
  draft.files.push({
34
34
  filename: path.join(detection.root, "tsconfig.json"),
35
- source: renderTypecheckTsconfig(detection.typescript),
35
+ source: renderTypecheckTsconfig(
36
+ detection.typescript,
37
+ detection.framework === "nuxt" ? detection.nuxtMajor : undefined,
38
+ ),
36
39
  });
37
40
  draft.createdFiles.push("tsconfig.json");
38
41
  }
@@ -101,7 +104,10 @@ export function planScripts(
101
104
  const packageJson = parsePackageJson(packagePath, source);
102
105
  const scripts = { ...detection.scripts } as Record<string, string>;
103
106
  for (const name of missing) {
104
- scripts[name] = DEFAULT_SCRIPTS[name as keyof typeof DEFAULT_SCRIPTS];
107
+ scripts[name] =
108
+ name === "vize:check" && detection.framework === "nuxt"
109
+ ? "nuxt prepare && vize check"
110
+ : DEFAULT_SCRIPTS[name as keyof typeof DEFAULT_SCRIPTS];
105
111
  }
106
112
  packageJson.scripts = scripts;
107
113
  draft.files.push({
@@ -67,7 +67,19 @@ ${blocks.join("\n")}
67
67
  }
68
68
 
69
69
  /** Minimum project config written only when typechecking is selected and no config exists. */
70
- export function renderTypecheckTsconfig(typescript: boolean): string {
70
+ export function renderTypecheckTsconfig(typescript: boolean, nuxtMajor?: number | null): string {
71
+ if (nuxtMajor !== undefined) {
72
+ const config =
73
+ nuxtMajor !== null && nuxtMajor >= 4
74
+ ? {
75
+ files: [],
76
+ references: ["app", "server", "shared", "node"].map((part) => ({
77
+ path: `./.nuxt/tsconfig.${part}.json`,
78
+ })),
79
+ }
80
+ : { extends: "./.nuxt/tsconfig.json" };
81
+ return `${JSON.stringify(config, null, 2)}\n`;
82
+ }
71
83
  const compilerOptions: Record<string, boolean | string> = {
72
84
  strict: true,
73
85
  target: "ES2022",
@@ -207,6 +207,26 @@ export interface LinterConfig {
207
207
  * Enable native type-aware lint rules from the active lint configuration
208
208
  */
209
209
  typeAware?: boolean;
210
+ /**
211
+ * Analyze relationships between input components
212
+ */
213
+ crossFile?: boolean;
214
+ /**
215
+ * Display the provide/inject tree; enables cross-file analysis
216
+ */
217
+ crossFileTree?: boolean;
218
+ /**
219
+ * Display cross-file complexity; enables cross-file analysis
220
+ */
221
+ crossFileComplexity?: boolean;
222
+ /**
223
+ * Enable the native reactivity-loss rule unless rules explicitly disable it
224
+ */
225
+ strictReactivity?: boolean;
226
+ /**
227
+ * Fail when warnings exceed this limit; absent means unlimited
228
+ */
229
+ maxWarnings?: number;
210
230
  /**
211
231
  * Rules to enable/disable
212
232
  */
@@ -227,6 +247,16 @@ export interface LinterConfig {
227
247
  };
228
248
  }
229
249
  export interface LintRuleOptions {
250
+ "type/strict-boolean-expressions"?: {
251
+ allowString?: boolean;
252
+ allowNumber?: boolean;
253
+ allowNullableObject?: boolean;
254
+ allowNullableBoolean?: boolean;
255
+ allowNullableString?: boolean;
256
+ allowNullableNumber?: boolean;
257
+ allowNullableEnum?: boolean;
258
+ allowAny?: boolean;
259
+ };
230
260
  "script/no-restricted-globals"?: NoRestrictedGlobalsOptions;
231
261
  "script/no-restricted-members"?: NoRestrictedMembersOptions;
232
262
  "vue/component-name-in-template-casing"?: {
@@ -364,6 +394,10 @@ export interface TypeCheckerConfig {
364
394
  * Formatter options
365
395
  */
366
396
  export interface FormatterConfig {
397
+ /**
398
+ * Oxfmt-compatible import sorting; false disables it
399
+ */
400
+ sortImports?: false | SortImportsConfig;
367
401
  /**
368
402
  * Max line width
369
403
  */
@@ -449,6 +483,29 @@ export interface FormatterConfig {
449
483
  */
450
484
  sortBlocks?: boolean;
451
485
  }
486
+ export interface SortImportsConfig {
487
+ partitionByNewline?: boolean;
488
+ partitionByComment?: boolean;
489
+ sortSideEffects?: boolean;
490
+ order?: "asc" | "desc";
491
+ ignoreCase?: boolean;
492
+ newlinesBetween?: boolean;
493
+ internalPattern?: string[];
494
+ groups?: (
495
+ | string
496
+ | string[]
497
+ | {
498
+ newlinesBetween: boolean;
499
+ }
500
+ )[];
501
+ customGroups?: ImportSortCustomGroup[];
502
+ }
503
+ export interface ImportSortCustomGroup {
504
+ groupName: string;
505
+ elementNamePattern?: string[];
506
+ selector?: string;
507
+ modifiers?: string[];
508
+ }
452
509
  /**
453
510
  * Language server options
454
511
  */
@@ -11,6 +11,8 @@ export type {
11
11
  LinterConfig,
12
12
  TypeCheckerConfig,
13
13
  FormatterConfig,
14
+ SortImportsConfig,
15
+ ImportSortCustomGroup,
14
16
  LanguageServerConfig,
15
17
  MuseaVrtConfig,
16
18
  MuseaA11yConfig,
@@ -145,6 +145,7 @@ export const LINT_RULE_NAMES = [
145
145
  "type/no-unsafe-template-binding",
146
146
  "type/require-typed-emits",
147
147
  "type/require-typed-props",
148
+ "type/strict-boolean-expressions",
148
149
  "vapor/no-inline-template",
149
150
  "vapor/no-vue-lifecycle-events",
150
151
  "vapor/prefer-static-class",
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-DoZFwU3H.d.mts","names":[],"sources":["../src/types/generated.ts","../src/types/rules.ts","../src/types/runtime.ts","../src/types/index.ts","../src/config.ts"],"mappings":";;AAOA;;;;KAAY,UAAA;AAAA,KAQA,YAAA;AAAA,KAEA,YAAA;;;AAFY;KAOZ,UAAA;;;;UAKK,UAAA;EALL;;;EASV,IAAA;EAToB;AAKtB;;EAQE,QAAA;EAiBW;;;EAbX,KAAA;EAyBY;;;EArBZ,OAAA;EAyBc;;;EArBd,OAAA;EA0ByB;;;EAtBzB,OAAA;EACA,QAAA,GAAW,cAAA;EACX,aAAA;IAAA,CACG,CAAA;MAAA,CAGM,CAAA;IAAA;EAAA;EAIT,IAAA,GAAO,gBAAA;EACP,MAAA,GAAS,YAAA;EACT,WAAA,GAAc,iBAAA;EACd,SAAA,GAAY,eAAA;EACZ,cAAA,GAAiB,oBAAA;EACjB,GAAA,GAAM,oBAAA;EACN,KAAA,GAAQ,WAAA;EACR,WAAA,GAAc,iBAAA;EACd,GAAA,GAAM,SAAA;EALM;;;EASZ,OAAA,GAAU,eAAA;AAAA;;;;UAKK,cAAA;EATf;;;EAaA,IAAA;EATyB;AAAA;AAK3B;EAQE,KAAA;;;;EAIA,OAAA;EAAA;;;EAIA,SAAA;EAYA;;;EARA,cAAA;EAwBA;;;EApBA,cAAA;EAoCA;;;EAhCA,GAAA;EAyCgB;;AAA2B;EArC3C,cAAA;EA0C0C;;;EAtC1C,UAAA;EAuCa;;;EAnCb,SAAA;EAmDA;;;EA/CA,iBAAA;EAqDe;;;EAjDf,WAAA;EAqDsC;;;EAjDtC,aAAA;EAqD4C;;;EAjD5C,IAAA;EAiDA;;;EA7CA,SAAA;EAqDA;;AAAc;EAjDd,iBAAA;EAsD2B;;;EAlD3B,iBAAA;EACA,aAAA,GAAgB,2BAA2B;AAAA;;;;UAK5B,2BAAA;EACf,UAAA,GAAa,UAAU;EAmErB;;;EA/DF,YAAA;EAmEE;;;EA/DF,uBAAA;EAmEe;;;EA/Df,eAAA;EAiEiC;;;EA7DjC,WAAA;EA4DA;;;EAxDA,cAAA;AAAA;AAAA,UAEe,gBAAA;EA2Df;;;EAvDA,OAAA,YAAmB,MAAA,aAAmB,MAAA;EA6DtC;;;EAzDA,OAAA,YAAmB,MAAA,aAAmB,MAAA;EA8DlC;;;EA1DJ,YAAA;EA+DE;;;EA3DF,cAAA;AAAA;;AA+D6D;AAE/D;UA5DiB,YAAA;;;AA6DW;EAzD1B,OAAA;EA2D+B;;;EAvD/B,MAAA;EA2De;;;EAvDf,SAAA;EAwD0B;AAE5B;;EAtDE,KAAA;IAAA,CACG,CAAA;EAAA;EAEH,WAAA,GAAc,eAAe;EAsD7B;;AAAO;EAlDP,UAAA;IACE,WAAA;IACA,UAAA;IACA,KAAA;IACA,IAAA;IACA,IAAA;IACA,QAAA;EAAA;AAAA;AAAA,UAGa,eAAA;EACf,8BAAA,GAAiC,0BAAA;EACjC,8BAAA,GAAiC,0BAAA;EACjC,uCAAA;IACE,MAAA;EAAA;EAEF,iCAAA;IACE,MAAA;EAAA;EAEF,uBAAA;IACE,WAAA;EAAA;EAEF,uBAAA;IACE,KAAA;EAAA;EAEF,uBAAA;IACE,IAAA;MACE,IAAA;MACA,MAAA;MACA,SAAA;IAAA;IAEF,GAAA;IACA,IAAA;EAAA;EAEF,4BAAA;EACA,2BAAA;EACA,4BAAA,GAA+B,8BAAA;AAAA;AAAA,UAEhB,0BAAA;EACf,OAAA,GAAU,gBAAgB;AAAA;AAAA,UAEX,gBAAA;EACf,IAAA;EACA,OAAO;AAAA;AAAA,UAEQ,0BAAA;EACf,OAAA,GAAU,gBAAgB;AAAA;AAAA,UAEX,gBAAA;EACf,MAAA;EACA,QAAA;EACA,OAAA;AAAA;AAAA,UAEe,8BAAA;EACf,MAAA,GAAS,gBAAgB;AAAA;AAAA,UAEV,gBAAA;EAuJf;;;EAnJA,IAAA;EAmKA;;;EA/JA,KAAA;EAuKU;AAKZ;;EAxKE,IAAA;AAAA;AAAA,UAEe,iBAAA;EA8Kf;;;EA1KA,OAAA;EA0LA;;;EAtLA,MAAA;EAsMA;;;EAlMA,UAAA;EAkNA;;;EA9MA,UAAA;EA8NA;;;EA1NA,qBAAA;EA0OA;;;EAtOA,eAAA;EAkPI;AAAA;AAKN;EAnPE,iBAAA;;;;EAIA,mBAAA;EAsQ4B;;;EAlQ5B,qBAAA;EAuPA;;;EAnPA,UAAA;EA4PM;;;EAxPN,UAAA;EA0PU;;AAAkB;EAtP5B,YAAA;EA2P6B;;;EAvP7B,QAAA;EA+PA;;;EA3PA,SAAA;EA+PyB;AAE3B;;EA7PE,QAAA;EA6P4B;;;EAzP5B,WAAA;EAqQI;AAAA;AAKN;EAtQE,OAAA;;;;EAIA,mBAAA;AAAA;;AA2QY;AAMd;UA5QiB,eAAA;;;AAoRJ;EAhRX,UAAA;EAqRgC;;;EAjRhC,QAAA;EAuRe;;;EAnRf,OAAA;EA2RY;AAKd;;EA5RE,IAAA;EA4RwB;;;EAxRxB,WAAA;EAwSA;;;EApSA,cAAA;EAmTQ;;AAAG;EA/SX,aAAA;EAsT8B;;;EAlT9B,cAAA;EAqVS;;;EAjVT,eAAA;EAqVM;;;EAjVN,WAAA;EAmV+B;;;EA/U/B,SAAA;EAsTA;;;EAlTA,UAAA;EA2TW;;;EAvTX,sBAAA;EAgUA;;;EA5TA,uBAAA;EA8TA;;;EA1TA,cAAA;EA4TA;;;EAxTA,kBAAA;EA0TA;;;EAtTA,wBAAA;EAuT+B;AAAA;;EAnT/B,oBAAA;;AChbF;;EDobE,eAAA;EC1LQ;AAAA;AAEV;ED4LE,4BAAA;;;AC5LgD;EDgMhD,UAAA;AAAA;;;;UAKe,oBAAA;ECnMa;;;EDuM5B,OAAA;ECvMoC;;;ED2MpC,IAAA;EC3MqE;;;ED+MrE,WAAA;EE5cU;;;EFgdV,SAAA;EEhdwC;;;EFodxC,MAAA;EEpduB;;;EFwdvB,SAAA;EExdyC;AAAA;AAE3C;EF0dE,UAAA;;;;EAIA,UAAA;EE3dA;;AAAU;EF+dV,aAAA;EE5dmB;;;EFgenB,KAAA;EEzdU;;;EF6dV,UAAA;EE7d4B;;;EFie5B,UAAA;EE7de;AAGjB;;EF8dE,eAAA;EE9d4B;;;EFke5B,gBAAA;EErdU;;;EFydV,UAAA;EEte4B;;;EF0e5B,WAAA;EEjeM;;;EFqeN,MAAA;EEjeyB;AAG3B;;EFkeE,QAAA;EEle4B;AAA4B;AAE1D;EFoeE,cAAA;;;;EAIA,aAAA;EEneS;;AAAe;EFuexB,aAAA;EEpe0B;;;EFwe1B,UAAA;EEteoC;;;EF0epC,UAAA;EE3eE;;;EF+eF,KAAA;EE9eoC;;AAAe;EFkfnD,IAAA;AAAA;;;;UAKe,WAAA;EE/df;;;EFmeA,OAAA;;;;EAIA,OAAA;EG1hBmB;;;EH8hBnB,QAAA;;;;EAIA,eAAA;EIliBQ;;;EJsiBR,SAAA;EACA,GAAA,GAAM,cAAA;EACN,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,kBAAA;AAAA;AI5hBX;AAED;;AAFC,UJiiBgB,cAAA;EI/hBoE;AAAA;AAMrF;EJ6hBE,SAAA;;;;EAIA,MAAA;EIjiBsD;;AAAgB;EJqiBtE,SAAA,GAAY,aAAa;AAAA;AAAA,UAEV,aAAA;EI9hBN;;;EJkiBT,KAAA;EIjiBQ;;;EJqiBR,MAAA;EIriBC;;;EJyiBD,IAAA;AAAA;;;;UAKe,eAAA;EIjdN;;;EJqdT,OAAA;EIvdU;;;EJ2dV,KAAA;IAAA,CACG,CAAA;EAAA;AAAA;AI1dwB;AA4F7B;;AA5F6B,UJgeZ,kBAAA;EInYP;;;EJuYR,OAAA;EItYO;;;EJ0YP,WAAW;AAAA;;AI1Y0B;;UJ+YtB,iBAAA;EAAA,CACd,CAAA,oBAAqB,qBAAqB;AAAA;;;;UAK5B,qBAAA;;;;EAIf,IAAA;;;;EAIA,YAAY;AAAA;;;;UAKG,SAAA;;;;EAIf,GAAA;;;;EAIA,KAAA;;;;EAIA,aAAA;;;;EAIA,QAAA;;;;EAIA,UAAA;IAAA,CACG,CAAA;;;;MAMK,MAAA;;;;MAIA,GAAA;IAAA;EAAA;AAAA;;;;UAOO,eAAA;;;;EAIf,IAAA;;;;EAIA,QAAA;;;;EAIA,KAAA;;;;EAIA,OAAA;;;;EAIA,OAAA;;;;EAIA,OAAA;EACA,QAAA,GAAW,cAAA;EACX,aAAA;IAAA,CACG,CAAA;MAAA,CAGM,CAAA;IAAA;EAAA;EAIT,IAAA,GAAO,gBAAA;EACP,MAAA,GAAS,YAAA;EACT,WAAA,GAAc,iBAAA;EACd,SAAA,GAAY,eAAA;EACZ,cAAA,GAAiB,oBAAA;EACjB,GAAA,GAAM,oBAAA;EACN,KAAA,GAAQ,WAAA;EACR,WAAA,GAAc,iBAAA;AAAA;;;cCnuBH,eAAA;AAAA,KA4PD,YAAA,WAAuB,eAAe;AAAA,KAEtC,eAAA,GAAkB,OAAA,CAAQ,MAAA,CAAO,YAAA,EAAc,YAAA;;;KC7P/C,YAAA,MAAkB,CAAA,GAAI,OAAA,CAAQ,CAAA;AAAA,UAEzB,SAAA;EACf,IAAA;EACA,OAAA;EACA,UAAA;AAAA;AAAA,KAGU,SAAA;;;AFCY;EEGtB,OAAA,GAAU,UAAU;AAAA;AAAA,KAGV,eAAA,GAAkB,eAAA;EFJN;AAAA;AAKxB;EEGE,GAAA,GAAM,SAAS;AAAA;AAAA,KAGL,UAAA,GAAa,IAAA,CAAK,UAAA;EFNR;AAKtB;;EEKE,GAAA,GAAM,SAAA;EFoBK;;;;EEfX,GAAA,GAAM,oBAAA;EF4BW;;;EExBjB,OAAA,GAAU,eAAA;AAAA;AAAA,KAGA,eAAA,GAAkB,UAAA,GAAa,eAAe;AAAA,KAE9C,kBAAA,GAAqB,UAAA;EF2BN;;;;EEtBzB,OAAA,EAAS,eAAe;AAAA;AAAA,KAGd,gBAAA,GACR,eAAA,KACE,GAAA,EAAK,SAAA,KAAc,YAAA,CAAa,eAAA;AAAA,UAMrB,iBAAA;EFVJ;;;;;;;EEkBX,IAAA;EFPA;;;EEYA,UAAA;EFVA;;;EEeA,GAAA,GAAM,SAAS;AAAA;;;;;;KCnDL,SAAA,GAAS,oBAAgD;;;cCNxD,iBAAA;AAAA,cAeA,4BAAA;AAAA,cAMA,2BAAA;;AJrCS;AAQtB;;iBImCgB,YAAA,CAAa,MAAA,EAAQ,gBAAA,GAAmB,gBAAgB;;AJnChD;AAExB;iBIwCsB,UAAA,CACpB,IAAA,UACA,OAAA,GAAS,iBAAA,GACR,OAAA,CAAQ,kBAAA;AAAA,iBA0FW,mBAAA,CACpB,QAAA,EAAU,gBAAA,EACV,GAAA,GAAM,SAAA,GACL,OAAA,CAAQ,kBAAA;;AJxIa;AAKxB;iBI+NgB,oBAAA,CACd,MAAA,EAAQ,iBAAA,GACP,MAAA,SAAe,qBAAA"}