@biomejs/biome 2.4.16 → 2.5.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.
@@ -5,7 +5,7 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "$schema": {
8
- "description": "A field for the [JSON schema](https://json-schema.org/) specification",
8
+ "description": "A field for the JSON schema specification: https://json-schema.org/",
9
9
  "anyOf": [{ "$ref": "#/$defs/Schema" }, { "type": "null" }]
10
10
  },
11
11
  "assist": {
@@ -73,6 +73,7 @@
73
73
  }
74
74
  },
75
75
  "additionalProperties": false,
76
+ "allowTrailingCommas": true,
76
77
  "$defs": {
77
78
  "A11y": {
78
79
  "description": "A list of rules that belong to this group",
@@ -85,6 +86,13 @@
85
86
  { "type": "null" }
86
87
  ]
87
88
  },
89
+ "noAmbiguousAnchorText": {
90
+ "description": "Disallow ambiguous anchor descriptions.\nSee https://biomejs.dev/linter/rules/no-ambiguous-anchor-text",
91
+ "anyOf": [
92
+ { "$ref": "#/$defs/NoAmbiguousAnchorTextConfiguration" },
93
+ { "type": "null" }
94
+ ]
95
+ },
88
96
  "noAriaHiddenOnFocusable": {
89
97
  "description": "Enforce that aria-hidden=\"true\" is not set on focusable elements.\nSee https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable",
90
98
  "anyOf": [
@@ -155,7 +163,7 @@
155
163
  ]
156
164
  },
157
165
  "noNoninteractiveTabindex": {
158
- "description": "Enforce that tabIndex is not assigned to non-interactive HTML elements.\nSee https://biomejs.dev/linter/rules/no-noninteractive-tabindex",
166
+ "description": "Enforce that tabindex is not assigned to non-interactive HTML elements.\nSee https://biomejs.dev/linter/rules/no-noninteractive-tabindex",
159
167
  "anyOf": [
160
168
  { "$ref": "#/$defs/NoNoninteractiveTabindexConfiguration" },
161
169
  { "type": "null" }
@@ -196,6 +204,10 @@
196
204
  { "type": "null" }
197
205
  ]
198
206
  },
207
+ "preset": {
208
+ "description": "Enables a particular rule preset",
209
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
210
+ },
199
211
  "recommended": {
200
212
  "description": "Enables the recommended rules for this group",
201
213
  "type": ["boolean", "null"]
@@ -215,7 +227,7 @@
215
227
  ]
216
228
  },
217
229
  "useAriaActivedescendantWithTabindex": {
218
- "description": "Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant.\nSee https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex",
230
+ "description": "Enforce that tabindex is assigned to non-interactive HTML elements with aria-activedescendant.\nSee https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex",
219
231
  "anyOf": [
220
232
  {
221
233
  "$ref": "#/$defs/UseAriaActivedescendantWithTabindexConfiguration"
@@ -259,7 +271,7 @@
259
271
  ]
260
272
  },
261
273
  "useHeadingContent": {
262
- "description": "Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the aria-hidden prop.\nSee https://biomejs.dev/linter/rules/use-heading-content",
274
+ "description": "Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers.\nSee https://biomejs.dev/linter/rules/use-heading-content",
263
275
  "anyOf": [
264
276
  { "$ref": "#/$defs/UseHeadingContentConfiguration" },
265
277
  { "type": "null" }
@@ -280,14 +292,14 @@
280
292
  ]
281
293
  },
282
294
  "useKeyWithClickEvents": {
283
- "description": "Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress.\nSee https://biomejs.dev/linter/rules/use-key-with-click-events",
295
+ "description": "Enforce elements with a click event handler to also have at least one keyboard event handler.\nSee https://biomejs.dev/linter/rules/use-key-with-click-events",
284
296
  "anyOf": [
285
297
  { "$ref": "#/$defs/UseKeyWithClickEventsConfiguration" },
286
298
  { "type": "null" }
287
299
  ]
288
300
  },
289
301
  "useKeyWithMouseEvents": {
290
- "description": "Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur.\nSee https://biomejs.dev/linter/rules/use-key-with-mouse-events",
302
+ "description": "Enforce that onmouseover is accompanied by onfocus and onmouseout by onblur.\nSee https://biomejs.dev/linter/rules/use-key-with-mouse-events",
291
303
  "anyOf": [
292
304
  { "$ref": "#/$defs/UseKeyWithMouseEventsConfiguration" },
293
305
  { "type": "null" }
@@ -301,7 +313,7 @@
301
313
  ]
302
314
  },
303
315
  "useSemanticElements": {
304
- "description": "It detects the use of role attributes in JSX elements and suggests using semantic elements instead.\nSee https://biomejs.dev/linter/rules/use-semantic-elements",
316
+ "description": "Enforces using semantic DOM elements over the ARIA role property.\nSee https://biomejs.dev/linter/rules/use-semantic-elements",
305
317
  "anyOf": [
306
318
  { "$ref": "#/$defs/UseSemanticElementsConfiguration" },
307
319
  { "type": "null" }
@@ -359,6 +371,10 @@
359
371
  "Actions": {
360
372
  "type": "object",
361
373
  "properties": {
374
+ "preset": {
375
+ "description": "The actions preset to use.",
376
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
377
+ },
362
378
  "recommended": {
363
379
  "description": "It enables the assist actions recommended by Biome. `true` by default.",
364
380
  "type": ["boolean", "null"]
@@ -478,6 +494,13 @@
478
494
  { "type": "null" }
479
495
  ]
480
496
  },
497
+ "noDivRegex": {
498
+ "description": "Disallow equal signs explicitly at the beginning of regular expressions.\nSee https://biomejs.dev/linter/rules/no-div-regex",
499
+ "anyOf": [
500
+ { "$ref": "#/$defs/NoDivRegexConfiguration" },
501
+ { "type": "null" }
502
+ ]
503
+ },
481
504
  "noEmptyTypeParameters": {
482
505
  "description": "Disallow empty type parameters in type aliases and interfaces.\nSee https://biomejs.dev/linter/rules/no-empty-type-parameters",
483
506
  "anyOf": [
@@ -528,7 +551,7 @@
528
551
  ]
529
552
  },
530
553
  "noImplicitCoercions": {
531
- "description": "Disallow shorthand type conversions.\nSee https://biomejs.dev/linter/rules/no-implicit-coercions",
554
+ "description": "Encourage use of explicit type conversion functions over their shorthand counterparts.\nSee https://biomejs.dev/linter/rules/no-implicit-coercions",
532
555
  "anyOf": [
533
556
  { "$ref": "#/$defs/NoImplicitCoercionsConfiguration" },
534
557
  { "type": "null" }
@@ -541,6 +564,13 @@
541
564
  { "type": "null" }
542
565
  ]
543
566
  },
567
+ "noRedundantDefaultExport": {
568
+ "description": "Checks if a default export exports the same symbol as a named export.\nSee https://biomejs.dev/linter/rules/no-redundant-default-export",
569
+ "anyOf": [
570
+ { "$ref": "#/$defs/NoRedundantDefaultExportConfiguration" },
571
+ { "type": "null" }
572
+ ]
573
+ },
544
574
  "noStaticOnlyClass": {
545
575
  "description": "This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace.\nSee https://biomejs.dev/linter/rules/no-static-only-class",
546
576
  "anyOf": [
@@ -625,6 +655,13 @@
625
655
  { "type": "null" }
626
656
  ]
627
657
  },
658
+ "noUselessReturn": {
659
+ "description": "Disallow redundant return statements.\nSee https://biomejs.dev/linter/rules/no-useless-return",
660
+ "anyOf": [
661
+ { "$ref": "#/$defs/NoUselessReturnConfiguration" },
662
+ { "type": "null" }
663
+ ]
664
+ },
628
665
  "noUselessStringConcat": {
629
666
  "description": "Disallow unnecessary concatenation of string or template literals.\nSee https://biomejs.dev/linter/rules/no-useless-string-concat",
630
667
  "anyOf": [
@@ -688,10 +725,21 @@
688
725
  { "type": "null" }
689
726
  ]
690
727
  },
728
+ "preset": {
729
+ "description": "Enables a particular rule preset",
730
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
731
+ },
691
732
  "recommended": {
692
733
  "description": "Enables the recommended rules for this group",
693
734
  "type": ["boolean", "null"]
694
735
  },
736
+ "useArrayFind": {
737
+ "description": "Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result.\nSee https://biomejs.dev/linter/rules/use-array-find",
738
+ "anyOf": [
739
+ { "$ref": "#/$defs/UseArrayFindConfiguration" },
740
+ { "type": "null" }
741
+ ]
742
+ },
695
743
  "useArrowFunction": {
696
744
  "description": "Use arrow functions over function expressions.\nSee https://biomejs.dev/linter/rules/use-arrow-function",
697
745
  "anyOf": [
@@ -779,6 +827,25 @@
779
827
  },
780
828
  "additionalProperties": false
781
829
  },
830
+ "ComponentDefinitionStyle": {
831
+ "oneOf": [
832
+ {
833
+ "description": "Enforce function declarations.",
834
+ "type": "string",
835
+ "const": "functionDeclaration"
836
+ },
837
+ {
838
+ "description": "Enforce function expressions assigned to a component binding.",
839
+ "type": "string",
840
+ "const": "functionExpression"
841
+ },
842
+ {
843
+ "description": "Enforce arrow functions assigned to a component binding.",
844
+ "type": "string",
845
+ "const": "arrowFunction"
846
+ }
847
+ ]
848
+ },
782
849
  "ConsistentArrayType": {
783
850
  "oneOf": [
784
851
  {
@@ -829,6 +896,15 @@
829
896
  "description": "A list of rules that belong to this group",
830
897
  "type": "object",
831
898
  "properties": {
899
+ "noBeforeInteractiveScriptOutsideDocument": {
900
+ "description": "Prevent usage of next/script's beforeInteractive strategy outside of pages/_document.js in a Next.js project.\nSee https://biomejs.dev/linter/rules/no-before-interactive-script-outside-document",
901
+ "anyOf": [
902
+ {
903
+ "$ref": "#/$defs/NoBeforeInteractiveScriptOutsideDocumentConfiguration"
904
+ },
905
+ { "type": "null" }
906
+ ]
907
+ },
832
908
  "noChildrenProp": {
833
909
  "description": "Prevent passing of children as props.\nSee https://biomejs.dev/linter/rules/no-children-prop",
834
910
  "anyOf": [
@@ -864,6 +940,41 @@
864
940
  { "type": "null" }
865
941
  ]
866
942
  },
943
+ "noDuplicateArgumentNames": {
944
+ "description": "Require all argument names for fields & directives to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-argument-names",
945
+ "anyOf": [
946
+ { "$ref": "#/$defs/NoDuplicateArgumentNamesConfiguration" },
947
+ { "type": "null" }
948
+ ]
949
+ },
950
+ "noDuplicateAttributes": {
951
+ "description": "Disallow duplication of attributes.\nSee https://biomejs.dev/linter/rules/no-duplicate-attributes",
952
+ "anyOf": [
953
+ { "$ref": "#/$defs/NoDuplicateAttributesConfiguration" },
954
+ { "type": "null" }
955
+ ]
956
+ },
957
+ "noDuplicateEnumValueNames": {
958
+ "description": "Require all enum value names to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-enum-value-names",
959
+ "anyOf": [
960
+ { "$ref": "#/$defs/NoDuplicateEnumValueNamesConfiguration" },
961
+ { "type": "null" }
962
+ ]
963
+ },
964
+ "noDuplicateInputFieldNames": {
965
+ "description": "Require fields within an input object to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-input-field-names",
966
+ "anyOf": [
967
+ { "$ref": "#/$defs/NoDuplicateInputFieldNamesConfiguration" },
968
+ { "type": "null" }
969
+ ]
970
+ },
971
+ "noDuplicateVariableNames": {
972
+ "description": "Require all variable definitions to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-variable-names",
973
+ "anyOf": [
974
+ { "$ref": "#/$defs/NoDuplicateVariableNamesConfiguration" },
975
+ { "type": "null" }
976
+ ]
977
+ },
867
978
  "noEmptyCharacterClassInRegex": {
868
979
  "description": "Disallow empty character classes in regular expression literals.\nSee https://biomejs.dev/linter/rules/no-empty-character-class-in-regex",
869
980
  "anyOf": [
@@ -1181,6 +1292,13 @@
1181
1292
  { "type": "null" }
1182
1293
  ]
1183
1294
  },
1295
+ "noUnusedInstantiation": {
1296
+ "description": "Disallow new operators outside of assignments or comparisons.\nSee https://biomejs.dev/linter/rules/no-unused-instantiation",
1297
+ "anyOf": [
1298
+ { "$ref": "#/$defs/NoUnusedInstantiationConfiguration" },
1299
+ { "type": "null" }
1300
+ ]
1301
+ },
1184
1302
  "noUnusedLabels": {
1185
1303
  "description": "Disallow unused labels.\nSee https://biomejs.dev/linter/rules/no-unused-labels",
1186
1304
  "anyOf": [
@@ -1251,6 +1369,17 @@
1251
1369
  { "type": "null" }
1252
1370
  ]
1253
1371
  },
1372
+ "noVueVIfWithVFor": {
1373
+ "description": "Disallow using v-if and v-for directives on the same element.\nSee https://biomejs.dev/linter/rules/no-vue-v-if-with-v-for",
1374
+ "anyOf": [
1375
+ { "$ref": "#/$defs/NoVueVIfWithVForConfiguration" },
1376
+ { "type": "null" }
1377
+ ]
1378
+ },
1379
+ "preset": {
1380
+ "description": "Enables a particular rule preset",
1381
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
1382
+ },
1254
1383
  "recommended": {
1255
1384
  "description": "Enables the recommended rules for this group",
1256
1385
  "type": ["boolean", "null"]
@@ -1290,6 +1419,13 @@
1290
1419
  { "type": "null" }
1291
1420
  ]
1292
1421
  },
1422
+ "useInlineScriptId": {
1423
+ "description": "Enforce id attribute on next/script components with inline content or dangerouslySetInnerHTML.\nSee https://biomejs.dev/linter/rules/use-inline-script-id",
1424
+ "anyOf": [
1425
+ { "$ref": "#/$defs/UseInlineScriptIdConfiguration" },
1426
+ { "type": "null" }
1427
+ ]
1428
+ },
1293
1429
  "useIsNan": {
1294
1430
  "description": "Require calls to isNaN() when checking for NaN.\nSee https://biomejs.dev/linter/rules/use-is-nan",
1295
1431
  "anyOf": [
@@ -1311,6 +1447,13 @@
1311
1447
  { "type": "null" }
1312
1448
  ]
1313
1449
  },
1450
+ "useLoneAnonymousOperation": {
1451
+ "description": "Disallow anonymous operations when more than one operation specified in document.\nSee https://biomejs.dev/linter/rules/use-lone-anonymous-operation",
1452
+ "anyOf": [
1453
+ { "$ref": "#/$defs/UseLoneAnonymousOperationConfiguration" },
1454
+ { "type": "null" }
1455
+ ]
1456
+ },
1314
1457
  "useParseIntRadix": {
1315
1458
  "description": "Enforce the consistent use of the radix argument when using parseInt().\nSee https://biomejs.dev/linter/rules/use-parse-int-radix",
1316
1459
  "anyOf": [
@@ -1367,6 +1510,90 @@
1367
1510
  { "type": "null" }
1368
1511
  ]
1369
1512
  },
1513
+ "useVueVForKey": {
1514
+ "description": "Enforce that elements using v-for also specify a unique key.\nSee https://biomejs.dev/linter/rules/use-vue-v-for-key",
1515
+ "anyOf": [
1516
+ { "$ref": "#/$defs/UseVueVForKeyConfiguration" },
1517
+ { "type": "null" }
1518
+ ]
1519
+ },
1520
+ "useVueValidTemplateRoot": {
1521
+ "description": "Enforce valid Vue \\<template> root usage.\nSee https://biomejs.dev/linter/rules/use-vue-valid-template-root",
1522
+ "anyOf": [
1523
+ { "$ref": "#/$defs/UseVueValidTemplateRootConfiguration" },
1524
+ { "type": "null" }
1525
+ ]
1526
+ },
1527
+ "useVueValidVBind": {
1528
+ "description": "Forbids v-bind directives with missing values or invalid modifiers.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-bind",
1529
+ "anyOf": [
1530
+ { "$ref": "#/$defs/UseVueValidVBindConfiguration" },
1531
+ { "type": "null" }
1532
+ ]
1533
+ },
1534
+ "useVueValidVCloak": {
1535
+ "description": "Enforce valid v-cloak Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-cloak",
1536
+ "anyOf": [
1537
+ { "$ref": "#/$defs/UseVueValidVCloakConfiguration" },
1538
+ { "type": "null" }
1539
+ ]
1540
+ },
1541
+ "useVueValidVElse": {
1542
+ "description": "Enforce valid usage of v-else.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-else",
1543
+ "anyOf": [
1544
+ { "$ref": "#/$defs/UseVueValidVElseConfiguration" },
1545
+ { "type": "null" }
1546
+ ]
1547
+ },
1548
+ "useVueValidVElseIf": {
1549
+ "description": "Enforce valid v-else-if directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-else-if",
1550
+ "anyOf": [
1551
+ { "$ref": "#/$defs/UseVueValidVElseIfConfiguration" },
1552
+ { "type": "null" }
1553
+ ]
1554
+ },
1555
+ "useVueValidVHtml": {
1556
+ "description": "Enforce valid v-html directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-html",
1557
+ "anyOf": [
1558
+ { "$ref": "#/$defs/UseVueValidVHtmlConfiguration" },
1559
+ { "type": "null" }
1560
+ ]
1561
+ },
1562
+ "useVueValidVIf": {
1563
+ "description": "Enforces valid v-if usage for Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-if",
1564
+ "anyOf": [
1565
+ { "$ref": "#/$defs/UseVueValidVIfConfiguration" },
1566
+ { "type": "null" }
1567
+ ]
1568
+ },
1569
+ "useVueValidVOn": {
1570
+ "description": "Enforce valid v-on directives with proper arguments, modifiers, and handlers.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-on",
1571
+ "anyOf": [
1572
+ { "$ref": "#/$defs/UseVueValidVOnConfiguration" },
1573
+ { "type": "null" }
1574
+ ]
1575
+ },
1576
+ "useVueValidVOnce": {
1577
+ "description": "Enforce valid v-once Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-once",
1578
+ "anyOf": [
1579
+ { "$ref": "#/$defs/UseVueValidVOnceConfiguration" },
1580
+ { "type": "null" }
1581
+ ]
1582
+ },
1583
+ "useVueValidVPre": {
1584
+ "description": "Enforce valid v-pre Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-pre",
1585
+ "anyOf": [
1586
+ { "$ref": "#/$defs/UseVueValidVPreConfiguration" },
1587
+ { "type": "null" }
1588
+ ]
1589
+ },
1590
+ "useVueValidVText": {
1591
+ "description": "Enforce valid v-text Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-text",
1592
+ "anyOf": [
1593
+ { "$ref": "#/$defs/UseVueValidVTextConfiguration" },
1594
+ { "type": "null" }
1595
+ ]
1596
+ },
1370
1597
  "useYield": {
1371
1598
  "description": "Require generator functions to contain yield.\nSee https://biomejs.dev/linter/rules/use-yield",
1372
1599
  "anyOf": [
@@ -1437,6 +1664,10 @@
1437
1664
  "description": "Options that changes how the CSS formatter behaves",
1438
1665
  "type": "object",
1439
1666
  "properties": {
1667
+ "delimiterSpacing": {
1668
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the\nclosing delimiter). Only applies when the content fits on a single line, and empty\ndelimiters are not affected. For CSS, affects parentheses (e.g., `rgb( 0, 0, 0 )`) and\nsquare brackets (e.g., `[ data-attr ]`). Defaults to false.",
1669
+ "anyOf": [{ "$ref": "#/$defs/DelimiterSpacing" }, { "type": "null" }]
1670
+ },
1440
1671
  "enabled": {
1441
1672
  "description": "Control the formatter for CSS (and its super languages) files.",
1442
1673
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
@@ -1533,6 +1764,10 @@
1533
1764
  }
1534
1765
  ]
1535
1766
  },
1767
+ "DelimiterSpacing": {
1768
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the closing\ndelimiter), such as parentheses, brackets, angle brackets, and template literal interpolations.\nSpaces are not added before the opening delimiter, and empty delimiters are not affected.\nOnly applies when the content fits on a single line; when content breaks across multiple lines,\nno extra spaces are added. The specific delimiters affected depend on the language.",
1769
+ "type": "boolean"
1770
+ },
1536
1771
  "DependencyAvailability": {
1537
1772
  "oneOf": [
1538
1773
  {
@@ -1678,6 +1913,10 @@
1678
1913
  "description": "Whether to insert spaces around brackets in object literals. Defaults to true.",
1679
1914
  "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }]
1680
1915
  },
1916
+ "delimiterSpacing": {
1917
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the\nclosing delimiter), such as parentheses, brackets, angle brackets, and template literal\ninterpolations. Spaces are not added before the opening delimiter, and empty delimiters\nare not affected. Only applies when the content fits on a single line. The specific\ndelimiters affected depend on the language. Defaults to false.",
1918
+ "anyOf": [{ "$ref": "#/$defs/DelimiterSpacing" }, { "type": "null" }]
1919
+ },
1681
1920
  "enabled": {
1682
1921
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
1683
1922
  },
@@ -2091,6 +2330,10 @@
2091
2330
  "interpolation": {
2092
2331
  "description": "Enables the parsing of double text expressions such as `{{ expression }}` inside `.html` files",
2093
2332
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
2333
+ },
2334
+ "vue": {
2335
+ "description": "Enables parsing of Vue syntax (v-if, v-bind, etc.) in `.html` files. If this option is enabled, it also enables `interpolation` implicitly.\n\nBiome will already automatically enable Vue parsing in `.vue` files, so you probably don't need\nto enable this option. This only affects `.html` files, and does not change how `.vue`, `.svelte`,\nor `.astro` files are parsed.",
2336
+ "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
2094
2337
  }
2095
2338
  },
2096
2339
  "additionalProperties": false
@@ -2129,6 +2372,12 @@
2129
2372
  "ImportMatcher": {
2130
2373
  "type": "object",
2131
2374
  "properties": {
2375
+ "kind": {
2376
+ "anyOf": [
2377
+ { "$ref": "#/$defs/NegatableImportKindMatcher" },
2378
+ { "type": "null" }
2379
+ ]
2380
+ },
2132
2381
  "source": {
2133
2382
  "anyOf": [{ "$ref": "#/$defs/SourcesMatcher" }, { "type": "null" }]
2134
2383
  },
@@ -2215,6 +2464,13 @@
2215
2464
  { "$ref": "#/$defs/JsParserConfiguration" },
2216
2465
  { "type": "null" }
2217
2466
  ]
2467
+ },
2468
+ "resolver": {
2469
+ "description": "Module/dependency resolver options",
2470
+ "anyOf": [
2471
+ { "$ref": "#/$defs/JsResolverConfiguration" },
2472
+ { "type": "null" }
2473
+ ]
2218
2474
  }
2219
2475
  },
2220
2476
  "additionalProperties": false
@@ -2239,6 +2495,10 @@
2239
2495
  "description": "Whether to insert spaces around brackets in object literals. Defaults to true.",
2240
2496
  "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }]
2241
2497
  },
2498
+ "delimiterSpacing": {
2499
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the\nclosing delimiter). Only applies when the content fits on a single line. Spaces are not\nadded before the opening delimiter (e.g., `function f()` stays `function f()`, not\n`function f ()`), and empty delimiters are not affected (e.g., `fn()` stays `fn()`).\nFor JavaScript and TypeScript, affects parentheses (e.g., `foo( a, b )`), square brackets\n(e.g., `[ a, b ]`), template literal interpolations (e.g., `${ expr }`), TypeScript angle\nbrackets (e.g., `foo< T >()`), JSX expression braces (e.g., `{ value }`), and the logical\nNOT operator (e.g., `! x`, but in chains only after the last one: `!! x`). Defaults to\nfalse.",
2500
+ "anyOf": [{ "$ref": "#/$defs/DelimiterSpacing" }, { "type": "null" }]
2501
+ },
2242
2502
  "enabled": {
2243
2503
  "description": "Control the formatter for JavaScript (and its super languages) files.",
2244
2504
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
@@ -2324,6 +2584,17 @@
2324
2584
  },
2325
2585
  "additionalProperties": false
2326
2586
  },
2587
+ "JsResolverConfiguration": {
2588
+ "description": "Resolver options specific to JavaScript files",
2589
+ "type": "object",
2590
+ "properties": {
2591
+ "experimentalPnpmCatalogs": {
2592
+ "description": "Enables pnpm workspace catalog resolution for JavaScript package manifests.\n\nOpt-in:\n- Set `javascript.resolver.experimentalPnpmCatalogs` to `true`.\n\nScope:\n- Resolves `catalog:` and `catalog:<name>` dependency versions from\n `package.json`.\n- Applies to `dependencies`, `devDependencies`, and `peerDependencies`.\n\nFail-safe behavior:\n- If `pnpm-workspace.yaml` is missing, unreadable, or cannot be parsed,\n Biome silently falls back to the default behavior (as if this option\n were disabled).\n- Unknown keys and unsupported value shapes in `pnpm-workspace.yaml` are\n ignored.\n\nLimitations:\n- Only `pnpm-workspace.yaml` is read.\n- Biome only reads top-level `catalog` / `catalogs` mappings and scalar\n string entries.\n\nDefault: `false`.",
2593
+ "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
2594
+ }
2595
+ },
2596
+ "additionalProperties": false
2597
+ },
2327
2598
  "JsTrailingCommas": {
2328
2599
  "description": "Print trailing commas wherever possible in multi-line comma-separated syntactic structures for JavaScript/TypeScript files.",
2329
2600
  "type": "string",
@@ -2382,6 +2653,10 @@
2382
2653
  "description": "Whether to insert spaces around brackets in object literals. Defaults to true.",
2383
2654
  "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }]
2384
2655
  },
2656
+ "delimiterSpacing": {
2657
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the\nclosing delimiter). Only applies when the content fits on a single line, and empty\nbrackets are not affected. For JSON, affects square brackets (e.g., `[ 1, 2, 3 ]`).\nDefaults to false.",
2658
+ "anyOf": [{ "$ref": "#/$defs/DelimiterSpacing" }, { "type": "null" }]
2659
+ },
2385
2660
  "enabled": {
2386
2661
  "description": "Control the formatter for JSON (and its super languages) files.",
2387
2662
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
@@ -2643,6 +2918,10 @@
2643
2918
  "items": { "$ref": "#/$defs/RestrictedModifier" },
2644
2919
  "uniqueItems": true
2645
2920
  },
2921
+ "NegatableImportKindMatcher": {
2922
+ "type": "string",
2923
+ "enum": ["bare", "!bare"]
2924
+ },
2646
2925
  "NegatablePredefinedSourceMatcher": {
2647
2926
  "type": "string",
2648
2927
  "enum": [
@@ -2652,6 +2931,7 @@
2652
2931
  ":PACKAGE:",
2653
2932
  ":PACKAGE_WITH_PROTOCOL:",
2654
2933
  ":PATH:",
2934
+ ":STYLE:",
2655
2935
  ":URL:",
2656
2936
  "!:ALIAS:",
2657
2937
  "!:BUN:",
@@ -2659,6 +2939,7 @@
2659
2939
  "!:PACKAGE:",
2660
2940
  "!:PACKAGE_WITH_PROTOCOL:",
2661
2941
  "!:PATH:",
2942
+ "!:STYLE:",
2662
2943
  "!:URL:"
2663
2944
  ]
2664
2945
  },
@@ -3846,16 +4127,6 @@
3846
4127
  "type": "object",
3847
4128
  "additionalProperties": false
3848
4129
  },
3849
- "NoFloatingClassesConfiguration": {
3850
- "oneOf": [
3851
- { "$ref": "#/$defs/RulePlainConfiguration" },
3852
- { "$ref": "#/$defs/RuleWithNoFloatingClassesOptions" }
3853
- ]
3854
- },
3855
- "NoFloatingClassesOptions": {
3856
- "type": "object",
3857
- "additionalProperties": false
3858
- },
3859
4130
  "NoFloatingPromisesConfiguration": {
3860
4131
  "oneOf": [
3861
4132
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -4040,6 +4311,12 @@
4040
4311
  },
4041
4312
  "NoImplicitCoercionsOptions": {
4042
4313
  "type": "object",
4314
+ "properties": {
4315
+ "allowDoubleNegation": {
4316
+ "description": "Whether to allow implicitly coercing values to booleans via `!!value`.",
4317
+ "type": ["boolean", "null"]
4318
+ }
4319
+ },
4043
4320
  "additionalProperties": false
4044
4321
  },
4045
4322
  "NoImpliedEvalConfiguration": {
@@ -4413,13 +4690,16 @@
4413
4690
  ]
4414
4691
  },
4415
4692
  "NoMultiAssignOptions": { "type": "object", "additionalProperties": false },
4416
- "NoMultiStrConfiguration": {
4693
+ "NoMultilineStringConfiguration": {
4417
4694
  "oneOf": [
4418
4695
  { "$ref": "#/$defs/RulePlainConfiguration" },
4419
- { "$ref": "#/$defs/RuleWithNoMultiStrOptions" }
4696
+ { "$ref": "#/$defs/RuleWithNoMultilineStringOptions" }
4420
4697
  ]
4421
4698
  },
4422
- "NoMultiStrOptions": { "type": "object", "additionalProperties": false },
4699
+ "NoMultilineStringOptions": {
4700
+ "type": "object",
4701
+ "additionalProperties": false
4702
+ },
4423
4703
  "NoNamespaceConfiguration": {
4424
4704
  "oneOf": [
4425
4705
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -4944,6 +5224,16 @@
4944
5224
  "type": "object",
4945
5225
  "additionalProperties": false
4946
5226
  },
5227
+ "NoRestrictedDependenciesConfiguration": {
5228
+ "oneOf": [
5229
+ { "$ref": "#/$defs/RulePlainConfiguration" },
5230
+ { "$ref": "#/$defs/RuleWithNoRestrictedDependenciesOptions" }
5231
+ ]
5232
+ },
5233
+ "NoRestrictedDependenciesOptions": {
5234
+ "type": "object",
5235
+ "additionalProperties": false
5236
+ },
4947
5237
  "NoRestrictedElementsConfiguration": {
4948
5238
  "oneOf": [
4949
5239
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -5310,6 +5600,17 @@
5310
5600
  "type": "object",
5311
5601
  "additionalProperties": false
5312
5602
  },
5603
+ "NoUndeclaredClassesConfiguration": {
5604
+ "oneOf": [
5605
+ { "$ref": "#/$defs/RulePlainConfiguration" },
5606
+ { "$ref": "#/$defs/RuleWithNoUndeclaredClassesOptions" }
5607
+ ]
5608
+ },
5609
+ "NoUndeclaredClassesOptions": {
5610
+ "description": "Options for the `noUndeclaredClasses` rule.",
5611
+ "type": "object",
5612
+ "additionalProperties": false
5613
+ },
5313
5614
  "NoUndeclaredDependenciesConfiguration": {
5314
5615
  "oneOf": [
5315
5616
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -5319,8 +5620,15 @@
5319
5620
  "NoUndeclaredDependenciesOptions": {
5320
5621
  "type": "object",
5321
5622
  "properties": {
5322
- "devDependencies": {
5323
- "description": "If set to `false`, then the rule will show an error when `devDependencies` are imported. Defaults to `true`.",
5623
+ "bundleDependencies": {
5624
+ "description": "If set to `false`, then the rule will show an error when `bundleDependencies` are imported. Defaults to `true`.",
5625
+ "anyOf": [
5626
+ { "$ref": "#/$defs/DependencyAvailability" },
5627
+ { "type": "null" }
5628
+ ]
5629
+ },
5630
+ "devDependencies": {
5631
+ "description": "If set to `false`, then the rule will show an error when `devDependencies` are imported. Defaults to `true`.",
5324
5632
  "anyOf": [
5325
5633
  { "$ref": "#/$defs/DependencyAvailability" },
5326
5634
  { "type": "null" }
@@ -5642,6 +5950,16 @@
5642
5950
  },
5643
5951
  "additionalProperties": false
5644
5952
  },
5953
+ "NoUnusedClassesConfiguration": {
5954
+ "oneOf": [
5955
+ { "$ref": "#/$defs/RulePlainConfiguration" },
5956
+ { "$ref": "#/$defs/RuleWithNoUnusedClassesOptions" }
5957
+ ]
5958
+ },
5959
+ "NoUnusedClassesOptions": {
5960
+ "type": "object",
5961
+ "additionalProperties": false
5962
+ },
5645
5963
  "NoUnusedExpressionsConfiguration": {
5646
5964
  "oneOf": [
5647
5965
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -5678,6 +5996,16 @@
5678
5996
  "type": "object",
5679
5997
  "additionalProperties": false
5680
5998
  },
5999
+ "NoUnusedInstantiationConfiguration": {
6000
+ "oneOf": [
6001
+ { "$ref": "#/$defs/RulePlainConfiguration" },
6002
+ { "$ref": "#/$defs/RuleWithNoUnusedInstantiationOptions" }
6003
+ ]
6004
+ },
6005
+ "NoUnusedInstantiationOptions": {
6006
+ "type": "object",
6007
+ "additionalProperties": false
6008
+ },
5681
6009
  "NoUnusedLabelsConfiguration": {
5682
6010
  "oneOf": [
5683
6011
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -5717,6 +6045,13 @@
5717
6045
  "NoUnusedVariablesOptions": {
5718
6046
  "type": "object",
5719
6047
  "properties": {
6048
+ "ignore": {
6049
+ "description": "An object defining ignored identifiers for different language constructs.",
6050
+ "anyOf": [
6051
+ { "$ref": "#/$defs/NoUnusedVariablesOptionsIgnore" },
6052
+ { "type": "null" }
6053
+ ]
6054
+ },
5720
6055
  "ignoreRestSiblings": {
5721
6056
  "description": "Whether to ignore unused variables from an object destructuring with a spread.",
5722
6057
  "type": ["boolean", "null"]
@@ -5724,6 +6059,47 @@
5724
6059
  },
5725
6060
  "additionalProperties": false
5726
6061
  },
6062
+ "NoUnusedVariablesOptionsIgnore": {
6063
+ "type": "object",
6064
+ "properties": {
6065
+ "*": {
6066
+ "description": "An array of identifiers to ignore. Use \"*\" to ignore all identifiers.",
6067
+ "type": ["array", "null"],
6068
+ "items": { "type": "string" }
6069
+ },
6070
+ "class": {
6071
+ "description": "An array of class names to ignore. Use \"*\" to ignore all identifiers.",
6072
+ "type": ["array", "null"],
6073
+ "items": { "type": "string" }
6074
+ },
6075
+ "function": {
6076
+ "description": "An array of function names to ignore. Use \"*\" to ignore all identifiers.",
6077
+ "type": ["array", "null"],
6078
+ "items": { "type": "string" }
6079
+ },
6080
+ "interface": {
6081
+ "description": "An array of interface names to ignore. Use \"*\" to ignore all identifiers.",
6082
+ "type": ["array", "null"],
6083
+ "items": { "type": "string" }
6084
+ },
6085
+ "typeAlias": {
6086
+ "description": "An array of type aliases to ignore. Use \"*\" to ignore all identifiers.",
6087
+ "type": ["array", "null"],
6088
+ "items": { "type": "string" }
6089
+ },
6090
+ "typeParameter": {
6091
+ "description": "An array of type parameters to ignore. Use \"*\" to ignore all identifiers.",
6092
+ "type": ["array", "null"],
6093
+ "items": { "type": "string" }
6094
+ },
6095
+ "variable": {
6096
+ "description": "An array of variable names to ignore. Use \"*\" to ignore all identifiers.",
6097
+ "type": ["array", "null"],
6098
+ "items": { "type": "string" }
6099
+ }
6100
+ },
6101
+ "additionalProperties": false
6102
+ },
5727
6103
  "NoUnwantedPolyfillioConfiguration": {
5728
6104
  "oneOf": [
5729
6105
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -6134,17 +6510,30 @@
6134
6510
  "description": "Normalized Biome glob pattern that strips `./` from the pattern.",
6135
6511
  "type": "string"
6136
6512
  },
6513
+ "NumericLiteralSeparatorOptions": {
6514
+ "type": "object",
6515
+ "properties": {
6516
+ "groupLength": {
6517
+ "description": "Number of digits between separators.",
6518
+ "type": ["integer", "null"],
6519
+ "format": "uint8",
6520
+ "maximum": 255,
6521
+ "minimum": 1
6522
+ },
6523
+ "minimumDigits": {
6524
+ "description": "Minimum number of digits required before adding separators.",
6525
+ "type": ["integer", "null"],
6526
+ "format": "uint8",
6527
+ "maximum": 255,
6528
+ "minimum": 0
6529
+ }
6530
+ },
6531
+ "additionalProperties": false
6532
+ },
6137
6533
  "Nursery": {
6138
6534
  "description": "A list of rules that belong to this group",
6139
6535
  "type": "object",
6140
6536
  "properties": {
6141
- "noAmbiguousAnchorText": {
6142
- "description": "Disallow ambiguous anchor descriptions.\nSee https://biomejs.dev/linter/rules/no-ambiguous-anchor-text",
6143
- "anyOf": [
6144
- { "$ref": "#/$defs/NoAmbiguousAnchorTextConfiguration" },
6145
- { "type": "null" }
6146
- ]
6147
- },
6148
6537
  "noBaseToString": {
6149
6538
  "description": "Require stringification to avoid values that only use the default object representation.\nSee https://biomejs.dev/linter/rules/no-base-to-string",
6150
6539
  "anyOf": [
@@ -6152,15 +6541,6 @@
6152
6541
  { "type": "null" }
6153
6542
  ]
6154
6543
  },
6155
- "noBeforeInteractiveScriptOutsideDocument": {
6156
- "description": "Prevent usage of next/script's beforeInteractive strategy outside of pages/_document.js in a Next.js project.\nSee https://biomejs.dev/linter/rules/no-before-interactive-script-outside-document",
6157
- "anyOf": [
6158
- {
6159
- "$ref": "#/$defs/NoBeforeInteractiveScriptOutsideDocumentConfiguration"
6160
- },
6161
- { "type": "null" }
6162
- ]
6163
- },
6164
6544
  "noComponentHookFactories": {
6165
6545
  "description": "Disallows defining React components or custom hooks inside other functions.\nSee https://biomejs.dev/linter/rules/no-component-hook-factories",
6166
6546
  "anyOf": [
@@ -6175,27 +6555,6 @@
6175
6555
  { "type": "null" }
6176
6556
  ]
6177
6557
  },
6178
- "noContinue": {
6179
- "description": "Disallow continue statements.\nSee https://biomejs.dev/linter/rules/no-continue",
6180
- "anyOf": [
6181
- { "$ref": "#/$defs/NoContinueConfiguration" },
6182
- { "type": "null" }
6183
- ]
6184
- },
6185
- "noDeprecatedMediaType": {
6186
- "description": "Disallow deprecated media types.\nSee https://biomejs.dev/linter/rules/no-deprecated-media-type",
6187
- "anyOf": [
6188
- { "$ref": "#/$defs/NoDeprecatedMediaTypeConfiguration" },
6189
- { "type": "null" }
6190
- ]
6191
- },
6192
- "noDivRegex": {
6193
- "description": "Disallow equal signs explicitly at the beginning of regular expressions.\nSee https://biomejs.dev/linter/rules/no-div-regex",
6194
- "anyOf": [
6195
- { "$ref": "#/$defs/NoDivRegexConfiguration" },
6196
- { "type": "null" }
6197
- ]
6198
- },
6199
6558
  "noDrizzleDeleteWithoutWhere": {
6200
6559
  "description": "Require .where() to be called when using .delete() with Drizzle ORM.\nSee https://biomejs.dev/linter/rules/no-drizzle-delete-without-where",
6201
6560
  "anyOf": [
@@ -6210,34 +6569,6 @@
6210
6569
  { "type": "null" }
6211
6570
  ]
6212
6571
  },
6213
- "noDuplicateArgumentNames": {
6214
- "description": "Require all argument names for fields & directives to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-argument-names",
6215
- "anyOf": [
6216
- { "$ref": "#/$defs/NoDuplicateArgumentNamesConfiguration" },
6217
- { "type": "null" }
6218
- ]
6219
- },
6220
- "noDuplicateAttributes": {
6221
- "description": "Disallow duplication of attributes.\nSee https://biomejs.dev/linter/rules/no-duplicate-attributes",
6222
- "anyOf": [
6223
- { "$ref": "#/$defs/NoDuplicateAttributesConfiguration" },
6224
- { "type": "null" }
6225
- ]
6226
- },
6227
- "noDuplicateEnumValueNames": {
6228
- "description": "Require all enum value names to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-enum-value-names",
6229
- "anyOf": [
6230
- { "$ref": "#/$defs/NoDuplicateEnumValueNamesConfiguration" },
6231
- { "type": "null" }
6232
- ]
6233
- },
6234
- "noDuplicateEnumValues": {
6235
- "description": "Disallow duplicate enum member values.\nSee https://biomejs.dev/linter/rules/no-duplicate-enum-values",
6236
- "anyOf": [
6237
- { "$ref": "#/$defs/NoDuplicateEnumValuesConfiguration" },
6238
- { "type": "null" }
6239
- ]
6240
- },
6241
6572
  "noDuplicateFieldDefinitionNames": {
6242
6573
  "description": "Require all fields of a type to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-field-definition-names",
6243
6574
  "anyOf": [
@@ -6245,20 +6576,6 @@
6245
6576
  { "type": "null" }
6246
6577
  ]
6247
6578
  },
6248
- "noDuplicateGraphqlOperationName": {
6249
- "description": "Enforce unique operation names across a GraphQL document.\nSee https://biomejs.dev/linter/rules/no-duplicate-graphql-operation-name",
6250
- "anyOf": [
6251
- { "$ref": "#/$defs/NoDuplicateGraphqlOperationNameConfiguration" },
6252
- { "type": "null" }
6253
- ]
6254
- },
6255
- "noDuplicateInputFieldNames": {
6256
- "description": "Require fields within an input object to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-input-field-names",
6257
- "anyOf": [
6258
- { "$ref": "#/$defs/NoDuplicateInputFieldNamesConfiguration" },
6259
- { "type": "null" }
6260
- ]
6261
- },
6262
6579
  "noDuplicateSelectors": {
6263
6580
  "description": "Disallow duplicate selectors.\nSee https://biomejs.dev/linter/rules/no-duplicate-selectors",
6264
6581
  "anyOf": [
@@ -6266,20 +6583,6 @@
6266
6583
  { "type": "null" }
6267
6584
  ]
6268
6585
  },
6269
- "noDuplicateVariableNames": {
6270
- "description": "Require all variable definitions to be unique.\nSee https://biomejs.dev/linter/rules/no-duplicate-variable-names",
6271
- "anyOf": [
6272
- { "$ref": "#/$defs/NoDuplicateVariableNamesConfiguration" },
6273
- { "type": "null" }
6274
- ]
6275
- },
6276
- "noDuplicatedSpreadProps": {
6277
- "description": "Disallow JSX prop spreading the same identifier multiple times.\nSee https://biomejs.dev/linter/rules/no-duplicated-spread-props",
6278
- "anyOf": [
6279
- { "$ref": "#/$defs/NoDuplicatedSpreadPropsConfiguration" },
6280
- { "type": "null" }
6281
- ]
6282
- },
6283
6586
  "noEmptyObjectKeys": {
6284
6587
  "description": "Disallow empty keys in JSON objects.\nSee https://biomejs.dev/linter/rules/no-empty-object-keys",
6285
6588
  "anyOf": [
@@ -6287,27 +6590,6 @@
6287
6590
  { "type": "null" }
6288
6591
  ]
6289
6592
  },
6290
- "noEqualsToNull": {
6291
- "description": "Require the use of === or !== for comparison with null.\nSee https://biomejs.dev/linter/rules/no-equals-to-null",
6292
- "anyOf": [
6293
- { "$ref": "#/$defs/NoEqualsToNullConfiguration" },
6294
- { "type": "null" }
6295
- ]
6296
- },
6297
- "noExcessiveClassesPerFile": {
6298
- "description": "Enforce a maximum number of classes per file.\nSee https://biomejs.dev/linter/rules/no-excessive-classes-per-file",
6299
- "anyOf": [
6300
- { "$ref": "#/$defs/NoExcessiveClassesPerFileConfiguration" },
6301
- { "type": "null" }
6302
- ]
6303
- },
6304
- "noExcessiveLinesPerFile": {
6305
- "description": "Restrict the number of lines in a file.\nSee https://biomejs.dev/linter/rules/no-excessive-lines-per-file",
6306
- "anyOf": [
6307
- { "$ref": "#/$defs/NoExcessiveLinesPerFileConfiguration" },
6308
- { "type": "null" }
6309
- ]
6310
- },
6311
6593
  "noExcessiveNestedCallbacks": {
6312
6594
  "description": "Enforce a maximum depth that callbacks can be nested.\nSee https://biomejs.dev/linter/rules/no-excessive-nested-callbacks",
6313
6595
  "anyOf": [
@@ -6322,13 +6604,6 @@
6322
6604
  { "type": "null" }
6323
6605
  ]
6324
6606
  },
6325
- "noFloatingClasses": {
6326
- "description": "Disallow new operators outside of assignments or comparisons.\nSee https://biomejs.dev/linter/rules/no-floating-classes",
6327
- "anyOf": [
6328
- { "$ref": "#/$defs/NoFloatingClassesConfiguration" },
6329
- { "type": "null" }
6330
- ]
6331
- },
6332
6607
  "noFloatingPromises": {
6333
6608
  "description": "Require Promise-like statements to be handled appropriately.\nSee https://biomejs.dev/linter/rules/no-floating-promises",
6334
6609
  "anyOf": [
@@ -6336,20 +6611,6 @@
6336
6611
  { "type": "null" }
6337
6612
  ]
6338
6613
  },
6339
- "noForIn": {
6340
- "description": "Disallow iterating using a for-in loop.\nSee https://biomejs.dev/linter/rules/no-for-in",
6341
- "anyOf": [
6342
- { "$ref": "#/$defs/NoForInConfiguration" },
6343
- { "type": "null" }
6344
- ]
6345
- },
6346
- "noHexColors": {
6347
- "description": "Disallow hex colors.\nSee https://biomejs.dev/linter/rules/no-hex-colors",
6348
- "anyOf": [
6349
- { "$ref": "#/$defs/NoHexColorsConfiguration" },
6350
- { "type": "null" }
6351
- ]
6352
- },
6353
6614
  "noIdenticalTestTitle": {
6354
6615
  "description": "Disallow identical titles in test suites and test cases.\nSee https://biomejs.dev/linter/rules/no-identical-test-title",
6355
6616
  "anyOf": [
@@ -6364,13 +6625,6 @@
6364
6625
  { "type": "null" }
6365
6626
  ]
6366
6627
  },
6367
- "noIncrementDecrement": {
6368
- "description": "Disallows the usage of the unary operators ++ and --.\nSee https://biomejs.dev/linter/rules/no-increment-decrement",
6369
- "anyOf": [
6370
- { "$ref": "#/$defs/NoIncrementDecrementConfiguration" },
6371
- { "type": "null" }
6372
- ]
6373
- },
6374
6628
  "noInlineStyles": {
6375
6629
  "description": "Disallow the use of inline styles.\nSee https://biomejs.dev/linter/rules/no-inline-styles",
6376
6630
  "anyOf": [
@@ -6392,20 +6646,6 @@
6392
6646
  { "type": "null" }
6393
6647
  ]
6394
6648
  },
6395
- "noJsxPropsBind": {
6396
- "description": "Disallow .bind(), arrow functions, or function expressions in JSX props.\nSee https://biomejs.dev/linter/rules/no-jsx-props-bind",
6397
- "anyOf": [
6398
- { "$ref": "#/$defs/NoJsxPropsBindConfiguration" },
6399
- { "type": "null" }
6400
- ]
6401
- },
6402
- "noLeakedRender": {
6403
- "description": "Prevent problematic leaked values from being rendered.\nSee https://biomejs.dev/linter/rules/no-leaked-render",
6404
- "anyOf": [
6405
- { "$ref": "#/$defs/NoLeakedRenderConfiguration" },
6406
- { "type": "null" }
6407
- ]
6408
- },
6409
6649
  "noLoopFunc": {
6410
6650
  "description": "Disallow functions declared inside loops that capture unsafe outer variables.\nSee https://biomejs.dev/linter/rules/no-loop-func",
6411
6651
  "anyOf": [
@@ -6427,34 +6667,6 @@
6427
6667
  { "type": "null" }
6428
6668
  ]
6429
6669
  },
6430
- "noMultiAssign": {
6431
- "description": "Disallow use of chained assignment expressions.\nSee https://biomejs.dev/linter/rules/no-multi-assign",
6432
- "anyOf": [
6433
- { "$ref": "#/$defs/NoMultiAssignConfiguration" },
6434
- { "type": "null" }
6435
- ]
6436
- },
6437
- "noMultiStr": {
6438
- "description": "Disallow creating multiline strings by escaping newlines.\nSee https://biomejs.dev/linter/rules/no-multi-str",
6439
- "anyOf": [
6440
- { "$ref": "#/$defs/NoMultiStrConfiguration" },
6441
- { "type": "null" }
6442
- ]
6443
- },
6444
- "noNestedPromises": {
6445
- "description": "Disallow nested .then() or .catch() promise calls.\nSee https://biomejs.dev/linter/rules/no-nested-promises",
6446
- "anyOf": [
6447
- { "$ref": "#/$defs/NoNestedPromisesConfiguration" },
6448
- { "type": "null" }
6449
- ]
6450
- },
6451
- "noParametersOnlyUsedInRecursion": {
6452
- "description": "Disallow function parameters that are only used in recursive calls.\nSee https://biomejs.dev/linter/rules/no-parameters-only-used-in-recursion",
6453
- "anyOf": [
6454
- { "$ref": "#/$defs/NoParametersOnlyUsedInRecursionConfiguration" },
6455
- { "type": "null" }
6456
- ]
6457
- },
6458
6670
  "noPlaywrightElementHandle": {
6459
6671
  "description": "Disallow usage of element handles (page.$() and page.$$()).\nSee https://biomejs.dev/linter/rules/no-playwright-element-handle",
6460
6672
  "anyOf": [
@@ -6525,13 +6737,6 @@
6525
6737
  { "type": "null" }
6526
6738
  ]
6527
6739
  },
6528
- "noProto": {
6529
- "description": "Disallow the use of the deprecated __proto__ object property.\nSee https://biomejs.dev/linter/rules/no-proto",
6530
- "anyOf": [
6531
- { "$ref": "#/$defs/NoProtoConfiguration" },
6532
- { "type": "null" }
6533
- ]
6534
- },
6535
6740
  "noReactNativeDeepImports": {
6536
6741
  "description": "Disallow deep imports from the react-native package.\nSee https://biomejs.dev/linter/rules/no-react-native-deep-imports",
6537
6742
  "anyOf": [
@@ -6560,52 +6765,10 @@
6560
6765
  { "type": "null" }
6561
6766
  ]
6562
6767
  },
6563
- "noRedundantDefaultExport": {
6564
- "description": "Checks if a default export exports the same symbol as a named export.\nSee https://biomejs.dev/linter/rules/no-redundant-default-export",
6565
- "anyOf": [
6566
- { "$ref": "#/$defs/NoRedundantDefaultExportConfiguration" },
6567
- { "type": "null" }
6568
- ]
6569
- },
6570
- "noReturnAssign": {
6571
- "description": "Disallow assignments in return statements.\nSee https://biomejs.dev/linter/rules/no-return-assign",
6572
- "anyOf": [
6573
- { "$ref": "#/$defs/NoReturnAssignConfiguration" },
6574
- { "type": "null" }
6575
- ]
6576
- },
6577
- "noRootType": {
6578
- "description": "Disallow the usage of specified root types.\nSee https://biomejs.dev/linter/rules/no-root-type",
6579
- "anyOf": [
6580
- { "$ref": "#/$defs/NoRootTypeConfiguration" },
6581
- { "type": "null" }
6582
- ]
6583
- },
6584
- "noScriptUrl": {
6585
- "description": "Disallow javascript: URLs in HTML.\nSee https://biomejs.dev/linter/rules/no-script-url",
6586
- "anyOf": [
6587
- { "$ref": "#/$defs/NoScriptUrlConfiguration" },
6588
- { "type": "null" }
6589
- ]
6590
- },
6591
- "noShadow": {
6592
- "description": "Disallow variable declarations from shadowing variables declared in the outer scope.\nSee https://biomejs.dev/linter/rules/no-shadow",
6593
- "anyOf": [
6594
- { "$ref": "#/$defs/NoShadowConfiguration" },
6595
- { "type": "null" }
6596
- ]
6597
- },
6598
- "noSyncScripts": {
6599
- "description": "Prevent the usage of synchronous scripts.\nSee https://biomejs.dev/linter/rules/no-sync-scripts",
6600
- "anyOf": [
6601
- { "$ref": "#/$defs/NoSyncScriptsConfiguration" },
6602
- { "type": "null" }
6603
- ]
6604
- },
6605
- "noTernary": {
6606
- "description": "Disallow ternary operators.\nSee https://biomejs.dev/linter/rules/no-ternary",
6768
+ "noRestrictedDependencies": {
6769
+ "description": "Disallow dependencies that are known to have better alternatives.\nSee https://biomejs.dev/linter/rules/no-restricted-dependencies",
6607
6770
  "anyOf": [
6608
- { "$ref": "#/$defs/NoTernaryConfiguration" },
6771
+ { "$ref": "#/$defs/NoRestrictedDependenciesConfiguration" },
6609
6772
  { "type": "null" }
6610
6773
  ]
6611
6774
  },
@@ -6616,24 +6779,10 @@
6616
6779
  { "type": "null" }
6617
6780
  ]
6618
6781
  },
6619
- "noUndeclaredEnvVars": {
6620
- "description": "Disallow the use of undeclared environment variables.\nSee https://biomejs.dev/linter/rules/no-undeclared-env-vars",
6782
+ "noUndeclaredClasses": {
6783
+ "description": "Reports CSS class names in HTML class attributes that are not defined in any \\<style> block or linked stylesheet available to the file.\nSee https://biomejs.dev/linter/rules/no-undeclared-classes",
6621
6784
  "anyOf": [
6622
- { "$ref": "#/$defs/NoUndeclaredEnvVarsConfiguration" },
6623
- { "type": "null" }
6624
- ]
6625
- },
6626
- "noUnknownAttribute": {
6627
- "description": "Disallow unknown DOM properties.\nSee https://biomejs.dev/linter/rules/no-unknown-attribute",
6628
- "anyOf": [
6629
- { "$ref": "#/$defs/NoUnknownAttributeConfiguration" },
6630
- { "type": "null" }
6631
- ]
6632
- },
6633
- "noUnnecessaryConditions": {
6634
- "description": "Disallow unnecessary type-based conditions that can be statically determined as redundant.\nSee https://biomejs.dev/linter/rules/no-unnecessary-conditions",
6635
- "anyOf": [
6636
- { "$ref": "#/$defs/NoUnnecessaryConditionsConfiguration" },
6785
+ { "$ref": "#/$defs/NoUndeclaredClassesConfiguration" },
6637
6786
  { "type": "null" }
6638
6787
  ]
6639
6788
  },
@@ -6658,10 +6807,10 @@
6658
6807
  { "type": "null" }
6659
6808
  ]
6660
6809
  },
6661
- "noUselessReturn": {
6662
- "description": "Disallow redundant return statements.\nSee https://biomejs.dev/linter/rules/no-useless-return",
6810
+ "noUnusedClasses": {
6811
+ "description": "Reports CSS class selectors that are never referenced in any JSX or HTML file.\nSee https://biomejs.dev/linter/rules/no-unused-classes",
6663
6812
  "anyOf": [
6664
- { "$ref": "#/$defs/NoUselessReturnConfiguration" },
6813
+ { "$ref": "#/$defs/NoUnusedClassesConfiguration" },
6665
6814
  { "type": "null" }
6666
6815
  ]
6667
6816
  },
@@ -6672,13 +6821,6 @@
6672
6821
  { "type": "null" }
6673
6822
  ]
6674
6823
  },
6675
- "noVueArrowFuncInWatch": {
6676
- "description": "Disallows using arrow functions when defining a watcher.\nSee https://biomejs.dev/linter/rules/no-vue-arrow-func-in-watch",
6677
- "anyOf": [
6678
- { "$ref": "#/$defs/NoVueArrowFuncInWatchConfiguration" },
6679
- { "type": "null" }
6680
- ]
6681
- },
6682
6824
  "noVueImportCompilerMacros": {
6683
6825
  "description": "Disallow importing Vue compiler macros.\nSee https://biomejs.dev/linter/rules/no-vue-import-compiler-macros",
6684
6826
  "anyOf": [
@@ -6686,13 +6828,6 @@
6686
6828
  { "type": "null" }
6687
6829
  ]
6688
6830
  },
6689
- "noVueOptionsApi": {
6690
- "description": "Disallow the use of Vue Options API.\nSee https://biomejs.dev/linter/rules/no-vue-options-api",
6691
- "anyOf": [
6692
- { "$ref": "#/$defs/NoVueOptionsApiConfiguration" },
6693
- { "type": "null" }
6694
- ]
6695
- },
6696
6831
  "noVueRefAsOperand": {
6697
6832
  "description": "Disallow the use of value wrapped by ref()(Composition API) as operand.\nSee https://biomejs.dev/linter/rules/no-vue-ref-as-operand",
6698
6833
  "anyOf": [
@@ -6700,13 +6835,6 @@
6700
6835
  { "type": "null" }
6701
6836
  ]
6702
6837
  },
6703
- "noVueVIfWithVFor": {
6704
- "description": "Disallow using v-if and v-for directives on the same element.\nSee https://biomejs.dev/linter/rules/no-vue-v-if-with-v-for",
6705
- "anyOf": [
6706
- { "$ref": "#/$defs/NoVueVIfWithVForConfiguration" },
6707
- { "type": "null" }
6708
- ]
6709
- },
6710
6838
  "noVueVOnNumberValues": {
6711
6839
  "description": "Disallow deprecated number modifiers on Vue v-on directives.\nSee https://biomejs.dev/linter/rules/no-vue-v-on-number-values",
6712
6840
  "anyOf": [
@@ -6714,6 +6842,10 @@
6714
6842
  { "type": "null" }
6715
6843
  ]
6716
6844
  },
6845
+ "preset": {
6846
+ "description": "Enables a particular rule preset",
6847
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
6848
+ },
6717
6849
  "recommended": {
6718
6850
  "description": "Enables the recommended rules for this group",
6719
6851
  "type": ["boolean", "null"]
@@ -6725,13 +6857,6 @@
6725
6857
  { "type": "null" }
6726
6858
  ]
6727
6859
  },
6728
- "useArraySortCompare": {
6729
- "description": "Require Array#sort and Array#toSorted calls to always provide a compareFunction.\nSee https://biomejs.dev/linter/rules/use-array-sort-compare",
6730
- "anyOf": [
6731
- { "$ref": "#/$defs/UseArraySortCompareConfiguration" },
6732
- { "type": "null" }
6733
- ]
6734
- },
6735
6860
  "useAwaitThenable": {
6736
6861
  "description": "Enforce that await is only used on Promise values.\nSee https://biomejs.dev/linter/rules/use-await-thenable",
6737
6862
  "anyOf": [
@@ -6746,27 +6871,6 @@
6746
6871
  { "type": "null" }
6747
6872
  ]
6748
6873
  },
6749
- "useConsistentEnumValueType": {
6750
- "description": "Disallow enums from having both number and string members.\nSee https://biomejs.dev/linter/rules/use-consistent-enum-value-type",
6751
- "anyOf": [
6752
- { "$ref": "#/$defs/UseConsistentEnumValueTypeConfiguration" },
6753
- { "type": "null" }
6754
- ]
6755
- },
6756
- "useConsistentGraphqlDescriptions": {
6757
- "description": "Require all descriptions to follow the same style (either block or inline) to maintain consistency and improve readability across the schema.\nSee https://biomejs.dev/linter/rules/use-consistent-graphql-descriptions",
6758
- "anyOf": [
6759
- { "$ref": "#/$defs/UseConsistentGraphqlDescriptionsConfiguration" },
6760
- { "type": "null" }
6761
- ]
6762
- },
6763
- "useConsistentMethodSignatures": {
6764
- "description": "Enforce consistent use of either method signatures or function properties within interfaces and type aliases.\nSee https://biomejs.dev/linter/rules/use-consistent-method-signatures",
6765
- "anyOf": [
6766
- { "$ref": "#/$defs/UseConsistentMethodSignaturesConfiguration" },
6767
- { "type": "null" }
6768
- ]
6769
- },
6770
6874
  "useConsistentTestIt": {
6771
6875
  "description": "Enforce consistent use of it or test for test functions.\nSee https://biomejs.dev/linter/rules/use-consistent-test-it",
6772
6876
  "anyOf": [
@@ -6774,13 +6878,6 @@
6774
6878
  { "type": "null" }
6775
6879
  ]
6776
6880
  },
6777
- "useDestructuring": {
6778
- "description": "Require destructuring from arrays and/or objects.\nSee https://biomejs.dev/linter/rules/use-destructuring",
6779
- "anyOf": [
6780
- { "$ref": "#/$defs/UseDestructuringConfiguration" },
6781
- { "type": "null" }
6782
- ]
6783
- },
6784
6881
  "useDisposables": {
6785
6882
  "description": "Detects a disposable object assigned to a variable without using or await using syntax.\nSee https://biomejs.dev/linter/rules/use-disposables",
6786
6883
  "anyOf": [
@@ -6802,13 +6899,6 @@
6802
6899
  { "type": "null" }
6803
6900
  ]
6804
6901
  },
6805
- "useErrorCause": {
6806
- "description": "Enforce that new Error() is thrown with the original error as cause.\nSee https://biomejs.dev/linter/rules/use-error-cause",
6807
- "anyOf": [
6808
- { "$ref": "#/$defs/UseErrorCauseConfiguration" },
6809
- { "type": "null" }
6810
- ]
6811
- },
6812
6902
  "useExhaustiveSwitchCases": {
6813
6903
  "description": "Require switch-case statements to be exhaustive.\nSee https://biomejs.dev/linter/rules/use-exhaustive-switch-cases",
6814
6904
  "anyOf": [
@@ -6819,35 +6909,21 @@
6819
6909
  "useExpect": {
6820
6910
  "description": "Ensure that test functions contain at least one expect() or similar assertion.\nSee https://biomejs.dev/linter/rules/use-expect",
6821
6911
  "anyOf": [
6822
- { "$ref": "#/$defs/UseExpectConfiguration" },
6823
- { "type": "null" }
6824
- ]
6825
- },
6826
- "useExplicitReturnType": {
6827
- "description": "Require explicit return types on functions and class methods.\nSee https://biomejs.dev/linter/rules/use-explicit-return-type",
6828
- "anyOf": [
6829
- { "$ref": "#/$defs/UseExplicitReturnTypeConfiguration" },
6830
- { "type": "null" }
6831
- ]
6832
- },
6833
- "useExplicitType": {
6834
- "description": "Enforce types in functions, methods, variables, and parameters.\nSee https://biomejs.dev/linter/rules/use-explicit-type",
6835
- "anyOf": [
6836
- { "$ref": "#/$defs/UseExplicitTypeConfiguration" },
6912
+ { "$ref": "#/$defs/UseExpectConfiguration" },
6837
6913
  { "type": "null" }
6838
6914
  ]
6839
6915
  },
6840
- "useFind": {
6841
- "description": "Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result.\nSee https://biomejs.dev/linter/rules/use-find",
6916
+ "useExplicitReturnType": {
6917
+ "description": "Require explicit return types on functions and class methods.\nSee https://biomejs.dev/linter/rules/use-explicit-return-type",
6842
6918
  "anyOf": [
6843
- { "$ref": "#/$defs/UseFindConfiguration" },
6919
+ { "$ref": "#/$defs/UseExplicitReturnTypeConfiguration" },
6844
6920
  { "type": "null" }
6845
6921
  ]
6846
6922
  },
6847
- "useGlobalThis": {
6848
- "description": "Enforce the use of globalThis over window, self, and global.\nSee https://biomejs.dev/linter/rules/use-global-this",
6923
+ "useExplicitType": {
6924
+ "description": "Enforce types in functions, methods, variables, and parameters.\nSee https://biomejs.dev/linter/rules/use-explicit-type",
6849
6925
  "anyOf": [
6850
- { "$ref": "#/$defs/UseGlobalThisConfiguration" },
6926
+ { "$ref": "#/$defs/UseExplicitTypeConfiguration" },
6851
6927
  { "type": "null" }
6852
6928
  ]
6853
6929
  },
@@ -6865,31 +6941,10 @@
6865
6941
  { "type": "null" }
6866
6942
  ]
6867
6943
  },
6868
- "useInlineScriptId": {
6869
- "description": "Enforce id attribute on next/script components with inline content or dangerouslySetInnerHTML.\nSee https://biomejs.dev/linter/rules/use-inline-script-id",
6870
- "anyOf": [
6871
- { "$ref": "#/$defs/UseInlineScriptIdConfiguration" },
6872
- { "type": "null" }
6873
- ]
6874
- },
6875
- "useInputName": {
6876
- "description": "Require mutation argument to be always called \"input\".\nSee https://biomejs.dev/linter/rules/use-input-name",
6877
- "anyOf": [
6878
- { "$ref": "#/$defs/UseInputNameConfiguration" },
6879
- { "type": "null" }
6880
- ]
6881
- },
6882
- "useLoneAnonymousOperation": {
6883
- "description": "Disallow anonymous operations when more than one operation specified in document.\nSee https://biomejs.dev/linter/rules/use-lone-anonymous-operation",
6884
- "anyOf": [
6885
- { "$ref": "#/$defs/UseLoneAnonymousOperationConfiguration" },
6886
- { "type": "null" }
6887
- ]
6888
- },
6889
- "useLoneExecutableDefinition": {
6890
- "description": "Require queries, mutations, subscriptions or fragments each to be located in separate files.\nSee https://biomejs.dev/linter/rules/use-lone-executable-definition",
6944
+ "useIncludes": {
6945
+ "description": "Prefer Array#includes() over Array#indexOf() checks.\nSee https://biomejs.dev/linter/rules/use-includes",
6891
6946
  "anyOf": [
6892
- { "$ref": "#/$defs/UseLoneExecutableDefinitionConfiguration" },
6947
+ { "$ref": "#/$defs/UseIncludesConfiguration" },
6893
6948
  { "type": "null" }
6894
6949
  ]
6895
6950
  },
@@ -6937,6 +6992,15 @@
6937
6992
  { "type": "null" }
6938
6993
  ]
6939
6994
  },
6995
+ "useReactFunctionComponentDefinition": {
6996
+ "description": "Enforce a specific function type for React function components.\nSee https://biomejs.dev/linter/rules/use-react-function-component-definition",
6997
+ "anyOf": [
6998
+ {
6999
+ "$ref": "#/$defs/UseReactFunctionComponentDefinitionConfiguration"
7000
+ },
7001
+ { "type": "null" }
7002
+ ]
7003
+ },
6940
7004
  "useReactNativePlatformComponents": {
6941
7005
  "description": "Ensure that platform-specific React Native components are only imported in files named for that platform.\nSee https://biomejs.dev/linter/rules/use-react-native-platform-components",
6942
7006
  "anyOf": [
@@ -6965,13 +7029,6 @@
6965
7029
  { "type": "null" }
6966
7030
  ]
6967
7031
  },
6968
- "useRequiredScripts": {
6969
- "description": "Enforce the presence of required scripts in package.json.\nSee https://biomejs.dev/linter/rules/use-required-scripts",
6970
- "anyOf": [
6971
- { "$ref": "#/$defs/UseRequiredScriptsConfiguration" },
6972
- { "type": "null" }
6973
- ]
6974
- },
6975
7032
  "useScopedStyles": {
6976
7033
  "description": "Enforce that \\<style> blocks in Vue SFCs have the scoped attribute and that \\<style> blocks in Astro components do not have the is:global directive.\nSee https://biomejs.dev/linter/rules/use-scoped-styles",
6977
7034
  "anyOf": [
@@ -6986,17 +7043,17 @@
6986
7043
  { "type": "null" }
6987
7044
  ]
6988
7045
  },
6989
- "useSpread": {
6990
- "description": "Enforce the use of the spread operator over .apply().\nSee https://biomejs.dev/linter/rules/use-spread",
7046
+ "useStringStartsEndsWith": {
7047
+ "description": "Prefer String#startsWith() and String#endsWith() over verbose prefix and suffix checks.\nSee https://biomejs.dev/linter/rules/use-string-starts-ends-with",
6991
7048
  "anyOf": [
6992
- { "$ref": "#/$defs/UseSpreadConfiguration" },
7049
+ { "$ref": "#/$defs/UseStringStartsEndsWithConfiguration" },
6993
7050
  { "type": "null" }
6994
7051
  ]
6995
7052
  },
6996
- "useStringStartsEndsWith": {
6997
- "description": "Prefer String#startsWith() and String#endsWith() over verbose prefix and suffix checks.\nSee https://biomejs.dev/linter/rules/use-string-starts-ends-with",
7053
+ "useSvelteRequireEachKey": {
7054
+ "description": "Require keyed {#each} blocks in Svelte templates.\nSee https://biomejs.dev/linter/rules/use-svelte-require-each-key",
6998
7055
  "anyOf": [
6999
- { "$ref": "#/$defs/UseStringStartsEndsWithConfiguration" },
7056
+ { "$ref": "#/$defs/UseSvelteRequireEachKeyConfiguration" },
7000
7057
  { "type": "null" }
7001
7058
  ]
7002
7059
  },
@@ -7044,41 +7101,6 @@
7044
7101
  { "type": "null" }
7045
7102
  ]
7046
7103
  },
7047
- "useVueConsistentVBindStyle": {
7048
- "description": "Enforce a consistent style for v-bind in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-consistent-v-bind-style",
7049
- "anyOf": [
7050
- { "$ref": "#/$defs/UseVueConsistentVBindStyleConfiguration" },
7051
- { "type": "null" }
7052
- ]
7053
- },
7054
- "useVueConsistentVOnStyle": {
7055
- "description": "Enforce a consistent style for v-on in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-consistent-v-on-style",
7056
- "anyOf": [
7057
- { "$ref": "#/$defs/UseVueConsistentVOnStyleConfiguration" },
7058
- { "type": "null" }
7059
- ]
7060
- },
7061
- "useVueDefineMacrosOrder": {
7062
- "description": "Enforce specific order of Vue compiler macros.\nSee https://biomejs.dev/linter/rules/use-vue-define-macros-order",
7063
- "anyOf": [
7064
- { "$ref": "#/$defs/UseVueDefineMacrosOrderConfiguration" },
7065
- { "type": "null" }
7066
- ]
7067
- },
7068
- "useVueHyphenatedAttributes": {
7069
- "description": "Enforce hyphenated (kebab-case) attribute names in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes",
7070
- "anyOf": [
7071
- { "$ref": "#/$defs/UseVueHyphenatedAttributesConfiguration" },
7072
- { "type": "null" }
7073
- ]
7074
- },
7075
- "useVueMultiWordComponentNames": {
7076
- "description": "Enforce multi-word component names in Vue components.\nSee https://biomejs.dev/linter/rules/use-vue-multi-word-component-names",
7077
- "anyOf": [
7078
- { "$ref": "#/$defs/UseVueMultiWordComponentNamesConfiguration" },
7079
- { "type": "null" }
7080
- ]
7081
- },
7082
7104
  "useVueNextTickPromise": {
7083
7105
  "description": "Enforces Promise syntax when using Vue nextTick.\nSee https://biomejs.dev/linter/rules/use-vue-next-tick-promise",
7084
7106
  "anyOf": [
@@ -7086,103 +7108,12 @@
7086
7108
  { "type": "null" }
7087
7109
  ]
7088
7110
  },
7089
- "useVueVForKey": {
7090
- "description": "Enforce that elements using v-for also specify a unique key.\nSee https://biomejs.dev/linter/rules/use-vue-v-for-key",
7091
- "anyOf": [
7092
- { "$ref": "#/$defs/UseVueVForKeyConfiguration" },
7093
- { "type": "null" }
7094
- ]
7095
- },
7096
- "useVueValidTemplateRoot": {
7097
- "description": "Enforce valid Vue \\<template> root usage.\nSee https://biomejs.dev/linter/rules/use-vue-valid-template-root",
7098
- "anyOf": [
7099
- { "$ref": "#/$defs/UseVueValidTemplateRootConfiguration" },
7100
- { "type": "null" }
7101
- ]
7102
- },
7103
- "useVueValidVBind": {
7104
- "description": "Forbids v-bind directives with missing values or invalid modifiers.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-bind",
7105
- "anyOf": [
7106
- { "$ref": "#/$defs/UseVueValidVBindConfiguration" },
7107
- { "type": "null" }
7108
- ]
7109
- },
7110
- "useVueValidVCloak": {
7111
- "description": "Enforce valid v-cloak Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-cloak",
7112
- "anyOf": [
7113
- { "$ref": "#/$defs/UseVueValidVCloakConfiguration" },
7114
- { "type": "null" }
7115
- ]
7116
- },
7117
- "useVueValidVElse": {
7118
- "description": "Enforce valid usage of v-else.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-else",
7119
- "anyOf": [
7120
- { "$ref": "#/$defs/UseVueValidVElseConfiguration" },
7121
- { "type": "null" }
7122
- ]
7123
- },
7124
- "useVueValidVElseIf": {
7125
- "description": "Enforce valid v-else-if directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-else-if",
7126
- "anyOf": [
7127
- { "$ref": "#/$defs/UseVueValidVElseIfConfiguration" },
7128
- { "type": "null" }
7129
- ]
7130
- },
7131
7111
  "useVueValidVFor": {
7132
7112
  "description": "Enforces valid v-for directives in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-for",
7133
7113
  "anyOf": [
7134
7114
  { "$ref": "#/$defs/UseVueValidVForConfiguration" },
7135
7115
  { "type": "null" }
7136
7116
  ]
7137
- },
7138
- "useVueValidVHtml": {
7139
- "description": "Enforce valid v-html directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-html",
7140
- "anyOf": [
7141
- { "$ref": "#/$defs/UseVueValidVHtmlConfiguration" },
7142
- { "type": "null" }
7143
- ]
7144
- },
7145
- "useVueValidVIf": {
7146
- "description": "Enforces valid v-if usage for Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-if",
7147
- "anyOf": [
7148
- { "$ref": "#/$defs/UseVueValidVIfConfiguration" },
7149
- { "type": "null" }
7150
- ]
7151
- },
7152
- "useVueValidVOn": {
7153
- "description": "Enforce valid v-on directives with proper arguments, modifiers, and handlers.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-on",
7154
- "anyOf": [
7155
- { "$ref": "#/$defs/UseVueValidVOnConfiguration" },
7156
- { "type": "null" }
7157
- ]
7158
- },
7159
- "useVueValidVOnce": {
7160
- "description": "Enforce valid v-once Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-once",
7161
- "anyOf": [
7162
- { "$ref": "#/$defs/UseVueValidVOnceConfiguration" },
7163
- { "type": "null" }
7164
- ]
7165
- },
7166
- "useVueValidVPre": {
7167
- "description": "Enforce valid v-pre Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-pre",
7168
- "anyOf": [
7169
- { "$ref": "#/$defs/UseVueValidVPreConfiguration" },
7170
- { "type": "null" }
7171
- ]
7172
- },
7173
- "useVueValidVText": {
7174
- "description": "Enforce valid v-text Vue directives.\nSee https://biomejs.dev/linter/rules/use-vue-valid-v-text",
7175
- "anyOf": [
7176
- { "$ref": "#/$defs/UseVueValidVTextConfiguration" },
7177
- { "type": "null" }
7178
- ]
7179
- },
7180
- "useVueVapor": {
7181
- "description": "Enforce opting in to Vue Vapor mode in \\<script setup> blocks.\nSee https://biomejs.dev/linter/rules/use-vue-vapor",
7182
- "anyOf": [
7183
- { "$ref": "#/$defs/UseVueVaporConfiguration" },
7184
- { "type": "null" }
7185
- ]
7186
7117
  }
7187
7118
  },
7188
7119
  "additionalProperties": false
@@ -7221,10 +7152,16 @@
7221
7152
  "type": "object",
7222
7153
  "properties": {
7223
7154
  "groups": {
7155
+ "description": "Groups to change how imports and exports are sorted.",
7224
7156
  "anyOf": [{ "$ref": "#/$defs/ImportGroups" }, { "type": "null" }]
7225
7157
  },
7226
7158
  "identifierOrder": {
7159
+ "description": "Order used for sorting identifiers within imports and exports.\n\nDefault: `natural`.",
7227
7160
  "anyOf": [{ "$ref": "#/$defs/SortOrder" }, { "type": "null" }]
7161
+ },
7162
+ "sortBareImports": {
7163
+ "description": "If `true`, bare imports such as `import \"module\"` are sorted with other imports.",
7164
+ "type": ["boolean", "null"]
7228
7165
  }
7229
7166
  },
7230
7167
  "additionalProperties": false
@@ -7268,6 +7205,10 @@
7268
7205
  "description": "Whether to insert spaces around brackets in object literals. Defaults to true.",
7269
7206
  "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }]
7270
7207
  },
7208
+ "delimiterSpacing": {
7209
+ "description": "Whether to insert spaces inside delimiters (after the opening delimiter and before the\nclosing delimiter), such as parentheses, brackets, angle brackets, and template literal\ninterpolations. Spaces are not added before the opening delimiter, and empty delimiters\nare not affected. Only applies when the content fits on a single line. The specific\ndelimiters affected depend on the language. Defaults to false.",
7210
+ "anyOf": [{ "$ref": "#/$defs/DelimiterSpacing" }, { "type": "null" }]
7211
+ },
7271
7212
  "enabled": {
7272
7213
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
7273
7214
  },
@@ -7504,6 +7445,13 @@
7504
7445
  { "type": "null" }
7505
7446
  ]
7506
7447
  },
7448
+ "noJsxPropsBind": {
7449
+ "description": "Disallow .bind(), arrow functions, or function expressions in JSX props.\nSee https://biomejs.dev/linter/rules/no-jsx-props-bind",
7450
+ "anyOf": [
7451
+ { "$ref": "#/$defs/NoJsxPropsBindConfiguration" },
7452
+ { "type": "null" }
7453
+ ]
7454
+ },
7507
7455
  "noNamespaceImport": {
7508
7456
  "description": "Disallow the use of namespace imports.\nSee https://biomejs.dev/linter/rules/no-namespace-import",
7509
7457
  "anyOf": [
@@ -7518,6 +7466,13 @@
7518
7466
  { "type": "null" }
7519
7467
  ]
7520
7468
  },
7469
+ "noSyncScripts": {
7470
+ "description": "Prevent the usage of synchronous scripts.\nSee https://biomejs.dev/linter/rules/no-sync-scripts",
7471
+ "anyOf": [
7472
+ { "$ref": "#/$defs/NoSyncScriptsConfiguration" },
7473
+ { "type": "null" }
7474
+ ]
7475
+ },
7521
7476
  "noUnwantedPolyfillio": {
7522
7477
  "description": "Prevent duplicate polyfills from Polyfill.io.\nSee https://biomejs.dev/linter/rules/no-unwanted-polyfillio",
7523
7478
  "anyOf": [
@@ -7525,6 +7480,10 @@
7525
7480
  { "type": "null" }
7526
7481
  ]
7527
7482
  },
7483
+ "preset": {
7484
+ "description": "Enables a particular rule preset",
7485
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
7486
+ },
7528
7487
  "recommended": {
7529
7488
  "description": "Enables the recommended rules for this group",
7530
7489
  "type": ["boolean", "null"]
@@ -7549,15 +7508,50 @@
7549
7508
  { "$ref": "#/$defs/UseTopLevelRegexConfiguration" },
7550
7509
  { "type": "null" }
7551
7510
  ]
7511
+ },
7512
+ "useVueVapor": {
7513
+ "description": "Enforce opting in to Vue Vapor mode in \\<script setup> blocks.\nSee https://biomejs.dev/linter/rules/use-vue-vapor",
7514
+ "anyOf": [
7515
+ { "$ref": "#/$defs/UseVueVaporConfiguration" },
7516
+ { "type": "null" }
7517
+ ]
7552
7518
  }
7553
7519
  },
7554
7520
  "additionalProperties": false
7555
7521
  },
7556
- "PluginConfiguration": { "anyOf": [{ "type": "string" }] },
7522
+ "PluginConfiguration": {
7523
+ "description": "Configuration for a single plugin entry.\n\nCan be either a plain path string or an object with path and options:\n\n```json\n{\n \"plugins\": [\n \"simple-plugin.grit\",\n { \"path\": \"scoped-plugin.grit\", \"includes\": [\"src/**/*.ts\"] }\n ]\n}\n```",
7524
+ "anyOf": [
7525
+ { "description": "A plain path to the plugin.", "type": "string" },
7526
+ {
7527
+ "description": "A path with additional options.",
7528
+ "$ref": "#/$defs/PluginWithOptions"
7529
+ }
7530
+ ]
7531
+ },
7532
+ "PluginWithOptions": {
7533
+ "description": "Plugin path with additional options.",
7534
+ "type": "object",
7535
+ "properties": {
7536
+ "includes": {
7537
+ "description": "A list of glob patterns. The plugin will only run on files matching\nthese patterns. Use negated globs (e.g., `!**/*.test.ts`) for exclusions.",
7538
+ "type": ["array", "null"],
7539
+ "items": { "$ref": "#/$defs/NormalizedGlob" }
7540
+ },
7541
+ "path": { "description": "The path to the plugin.", "type": "string" }
7542
+ },
7543
+ "additionalProperties": false,
7544
+ "required": ["path"]
7545
+ },
7557
7546
  "Plugins": {
7558
7547
  "type": "array",
7559
7548
  "items": { "$ref": "#/$defs/PluginConfiguration" }
7560
7549
  },
7550
+ "PresetConfig": {
7551
+ "description": "A preset configuration for enabling a set of rules.",
7552
+ "type": "string",
7553
+ "enum": ["recommended", "all", "none"]
7554
+ },
7561
7555
  "PropertyAssignmentMode": {
7562
7556
  "description": "Specifies whether property assignments on function parameters are allowed or denied.",
7563
7557
  "oneOf": [
@@ -7605,6 +7599,14 @@
7605
7599
  },
7606
7600
  "required": ["level", "options"]
7607
7601
  },
7602
+ "RuleAssistWithUseSortedEnumMembersOptions": {
7603
+ "type": "object",
7604
+ "properties": {
7605
+ "level": { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
7606
+ "options": { "$ref": "#/$defs/UseSortedEnumMembersOptions" }
7607
+ },
7608
+ "required": ["level", "options"]
7609
+ },
7608
7610
  "RuleAssistWithUseSortedInterfaceMembersOptions": {
7609
7611
  "type": "object",
7610
7612
  "properties": {
@@ -7621,6 +7623,14 @@
7621
7623
  },
7622
7624
  "required": ["level", "options"]
7623
7625
  },
7626
+ "RuleAssistWithUseSortedPackageJsonOptions": {
7627
+ "type": "object",
7628
+ "properties": {
7629
+ "level": { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
7630
+ "options": { "$ref": "#/$defs/UseSortedPackageJsonOptions" }
7631
+ },
7632
+ "required": ["level", "options"]
7633
+ },
7624
7634
  "RuleAssistWithUseSortedPropertiesOptions": {
7625
7635
  "type": "object",
7626
7636
  "properties": {
@@ -7629,6 +7639,22 @@
7629
7639
  },
7630
7640
  "required": ["level", "options"]
7631
7641
  },
7642
+ "RuleAssistWithUseSortedSelectionSetOptions": {
7643
+ "type": "object",
7644
+ "properties": {
7645
+ "level": { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
7646
+ "options": { "$ref": "#/$defs/UseSortedSelectionSetOptions" }
7647
+ },
7648
+ "required": ["level", "options"]
7649
+ },
7650
+ "RuleAssistWithUseSortedTypeFieldsOptions": {
7651
+ "type": "object",
7652
+ "properties": {
7653
+ "level": { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
7654
+ "options": { "$ref": "#/$defs/UseSortedTypeFieldsOptions" }
7655
+ },
7656
+ "required": ["level", "options"]
7657
+ },
7632
7658
  "RuleDomain": {
7633
7659
  "description": "Rule domains",
7634
7660
  "oneOf": [
@@ -7663,6 +7689,11 @@
7663
7689
  "type": "string",
7664
7690
  "const": "qwik"
7665
7691
  },
7692
+ {
7693
+ "description": "Svelte framework rules",
7694
+ "type": "string",
7695
+ "const": "svelte"
7696
+ },
7666
7697
  {
7667
7698
  "description": "Vue.js framework rules",
7668
7699
  "type": "string",
@@ -8732,18 +8763,9 @@
8732
8763
  "RuleWithNoFlatMapIdentityOptions": {
8733
8764
  "type": "object",
8734
8765
  "properties": {
8735
- "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
8736
- "level": { "$ref": "#/$defs/RulePlainConfiguration" },
8737
- "options": { "$ref": "#/$defs/NoFlatMapIdentityOptions" }
8738
- },
8739
- "additionalProperties": false,
8740
- "required": ["level"]
8741
- },
8742
- "RuleWithNoFloatingClassesOptions": {
8743
- "type": "object",
8744
- "properties": {
8766
+ "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
8745
8767
  "level": { "$ref": "#/$defs/RulePlainConfiguration" },
8746
- "options": { "$ref": "#/$defs/NoFloatingClassesOptions" }
8768
+ "options": { "$ref": "#/$defs/NoFlatMapIdentityOptions" }
8747
8769
  },
8748
8770
  "additionalProperties": false,
8749
8771
  "required": ["level"]
@@ -9255,11 +9277,11 @@
9255
9277
  "additionalProperties": false,
9256
9278
  "required": ["level"]
9257
9279
  },
9258
- "RuleWithNoMultiStrOptions": {
9280
+ "RuleWithNoMultilineStringOptions": {
9259
9281
  "type": "object",
9260
9282
  "properties": {
9261
9283
  "level": { "$ref": "#/$defs/RulePlainConfiguration" },
9262
- "options": { "$ref": "#/$defs/NoMultiStrOptions" }
9284
+ "options": { "$ref": "#/$defs/NoMultilineStringOptions" }
9263
9285
  },
9264
9286
  "additionalProperties": false,
9265
9287
  "required": ["level"]
@@ -9746,6 +9768,15 @@
9746
9768
  "additionalProperties": false,
9747
9769
  "required": ["level"]
9748
9770
  },
9771
+ "RuleWithNoRestrictedDependenciesOptions": {
9772
+ "type": "object",
9773
+ "properties": {
9774
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
9775
+ "options": { "$ref": "#/$defs/NoRestrictedDependenciesOptions" }
9776
+ },
9777
+ "additionalProperties": false,
9778
+ "required": ["level"]
9779
+ },
9749
9780
  "RuleWithNoRestrictedElementsOptions": {
9750
9781
  "type": "object",
9751
9782
  "properties": {
@@ -10052,6 +10083,15 @@
10052
10083
  "additionalProperties": false,
10053
10084
  "required": ["level"]
10054
10085
  },
10086
+ "RuleWithNoUndeclaredClassesOptions": {
10087
+ "type": "object",
10088
+ "properties": {
10089
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
10090
+ "options": { "$ref": "#/$defs/NoUndeclaredClassesOptions" }
10091
+ },
10092
+ "additionalProperties": false,
10093
+ "required": ["level"]
10094
+ },
10055
10095
  "RuleWithNoUndeclaredDependenciesOptions": {
10056
10096
  "type": "object",
10057
10097
  "properties": {
@@ -10270,6 +10310,15 @@
10270
10310
  "additionalProperties": false,
10271
10311
  "required": ["level"]
10272
10312
  },
10313
+ "RuleWithNoUnusedClassesOptions": {
10314
+ "type": "object",
10315
+ "properties": {
10316
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
10317
+ "options": { "$ref": "#/$defs/NoUnusedClassesOptions" }
10318
+ },
10319
+ "additionalProperties": false,
10320
+ "required": ["level"]
10321
+ },
10273
10322
  "RuleWithNoUnusedExpressionsOptions": {
10274
10323
  "type": "object",
10275
10324
  "properties": {
@@ -10299,6 +10348,15 @@
10299
10348
  "additionalProperties": false,
10300
10349
  "required": ["level"]
10301
10350
  },
10351
+ "RuleWithNoUnusedInstantiationOptions": {
10352
+ "type": "object",
10353
+ "properties": {
10354
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
10355
+ "options": { "$ref": "#/$defs/NoUnusedInstantiationOptions" }
10356
+ },
10357
+ "additionalProperties": false,
10358
+ "required": ["level"]
10359
+ },
10302
10360
  "RuleWithNoUnusedLabelsOptions": {
10303
10361
  "type": "object",
10304
10362
  "properties": {
@@ -10773,7 +10831,6 @@
10773
10831
  "RuleWithUseAriaActivedescendantWithTabindexOptions": {
10774
10832
  "type": "object",
10775
10833
  "properties": {
10776
- "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
10777
10834
  "level": { "$ref": "#/$defs/RulePlainConfiguration" },
10778
10835
  "options": {
10779
10836
  "$ref": "#/$defs/UseAriaActivedescendantWithTabindexOptions"
@@ -10800,6 +10857,15 @@
10800
10857
  "additionalProperties": false,
10801
10858
  "required": ["level"]
10802
10859
  },
10860
+ "RuleWithUseArrayFindOptions": {
10861
+ "type": "object",
10862
+ "properties": {
10863
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
10864
+ "options": { "$ref": "#/$defs/UseArrayFindOptions" }
10865
+ },
10866
+ "additionalProperties": false,
10867
+ "required": ["level"]
10868
+ },
10803
10869
  "RuleWithUseArrayLiteralsOptions": {
10804
10870
  "type": "object",
10805
10871
  "properties": {
@@ -11281,15 +11347,6 @@
11281
11347
  "additionalProperties": false,
11282
11348
  "required": ["level"]
11283
11349
  },
11284
- "RuleWithUseFindOptions": {
11285
- "type": "object",
11286
- "properties": {
11287
- "level": { "$ref": "#/$defs/RulePlainConfiguration" },
11288
- "options": { "$ref": "#/$defs/UseFindOptions" }
11289
- },
11290
- "additionalProperties": false,
11291
- "required": ["level"]
11292
- },
11293
11350
  "RuleWithUseFlatMapOptions": {
11294
11351
  "type": "object",
11295
11352
  "properties": {
@@ -11494,6 +11551,16 @@
11494
11551
  "additionalProperties": false,
11495
11552
  "required": ["level"]
11496
11553
  },
11554
+ "RuleWithUseIncludesOptions": {
11555
+ "type": "object",
11556
+ "properties": {
11557
+ "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
11558
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
11559
+ "options": { "$ref": "#/$defs/UseIncludesOptions" }
11560
+ },
11561
+ "additionalProperties": false,
11562
+ "required": ["level"]
11563
+ },
11497
11564
  "RuleWithUseIndexOfOptions": {
11498
11565
  "type": "object",
11499
11566
  "properties": {
@@ -11839,6 +11906,18 @@
11839
11906
  "additionalProperties": false,
11840
11907
  "required": ["level"]
11841
11908
  },
11909
+ "RuleWithUseReactFunctionComponentDefinitionOptions": {
11910
+ "type": "object",
11911
+ "properties": {
11912
+ "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
11913
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
11914
+ "options": {
11915
+ "$ref": "#/$defs/UseReactFunctionComponentDefinitionOptions"
11916
+ }
11917
+ },
11918
+ "additionalProperties": false,
11919
+ "required": ["level"]
11920
+ },
11842
11921
  "RuleWithUseReactFunctionComponentsOptions": {
11843
11922
  "type": "object",
11844
11923
  "properties": {
@@ -12023,12 +12102,12 @@
12023
12102
  "additionalProperties": false,
12024
12103
  "required": ["level"]
12025
12104
  },
12026
- "RuleWithUseSpreadOptions": {
12105
+ "RuleWithUseSpreadOverApplyOptions": {
12027
12106
  "type": "object",
12028
12107
  "properties": {
12029
12108
  "fix": { "anyOf": [{ "$ref": "#/$defs/FixKind" }, { "type": "null" }] },
12030
12109
  "level": { "$ref": "#/$defs/RulePlainConfiguration" },
12031
- "options": { "$ref": "#/$defs/UseSpreadOptions" }
12110
+ "options": { "$ref": "#/$defs/UseSpreadOverApplyOptions" }
12032
12111
  },
12033
12112
  "additionalProperties": false,
12034
12113
  "required": ["level"]
@@ -12063,6 +12142,15 @@
12063
12142
  "additionalProperties": false,
12064
12143
  "required": ["level"]
12065
12144
  },
12145
+ "RuleWithUseSvelteRequireEachKeyOptions": {
12146
+ "type": "object",
12147
+ "properties": {
12148
+ "level": { "$ref": "#/$defs/RulePlainConfiguration" },
12149
+ "options": { "$ref": "#/$defs/UseSvelteRequireEachKeyOptions" }
12150
+ },
12151
+ "additionalProperties": false,
12152
+ "required": ["level"]
12153
+ },
12066
12154
  "RuleWithUseSymbolDescriptionOptions": {
12067
12155
  "type": "object",
12068
12156
  "properties": {
@@ -12506,6 +12594,10 @@
12506
12594
  { "type": "null" }
12507
12595
  ]
12508
12596
  },
12597
+ "preset": {
12598
+ "description": "The rule presets to use.",
12599
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
12600
+ },
12509
12601
  "recommended": {
12510
12602
  "description": "It enables the lint rules recommended by Biome. `true` by default.",
12511
12603
  "type": ["boolean", "null"]
@@ -12564,6 +12656,13 @@
12564
12656
  { "type": "null" }
12565
12657
  ]
12566
12658
  },
12659
+ "noScriptUrl": {
12660
+ "description": "Disallow javascript: URLs in HTML.\nSee https://biomejs.dev/linter/rules/no-script-url",
12661
+ "anyOf": [
12662
+ { "$ref": "#/$defs/NoScriptUrlConfiguration" },
12663
+ { "type": "null" }
12664
+ ]
12665
+ },
12567
12666
  "noSecrets": {
12568
12667
  "description": "Disallow usage of sensitive data such as API keys and tokens.\nSee https://biomejs.dev/linter/rules/no-secrets",
12569
12668
  "anyOf": [
@@ -12571,6 +12670,10 @@
12571
12670
  { "type": "null" }
12572
12671
  ]
12573
12672
  },
12673
+ "preset": {
12674
+ "description": "Enables a particular rule preset",
12675
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
12676
+ },
12574
12677
  "recommended": {
12575
12678
  "description": "Enables the recommended rules for this group",
12576
12679
  "type": ["boolean", "null"]
@@ -12676,17 +12779,28 @@
12676
12779
  { "type": "null" }
12677
12780
  ]
12678
12781
  },
12782
+ "preset": {
12783
+ "description": "Enables a particular rule preset",
12784
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
12785
+ },
12679
12786
  "recommended": {
12680
12787
  "description": "Enables the recommended rules for this group",
12681
12788
  "type": ["boolean", "null"]
12682
12789
  },
12683
12790
  "useSortedAttributes": {
12684
- "description": "Enforce attribute sorting in JSX elements.\nSee https://biomejs.dev/assist/actions/use-sorted-attributes",
12791
+ "description": "Enforce attribute sorting in HTML elements.\nSee https://biomejs.dev/assist/actions/use-sorted-attributes",
12685
12792
  "anyOf": [
12686
12793
  { "$ref": "#/$defs/UseSortedAttributesConfiguration" },
12687
12794
  { "type": "null" }
12688
12795
  ]
12689
12796
  },
12797
+ "useSortedEnumMembers": {
12798
+ "description": "Sort the members of an enum in natural order.\nSee https://biomejs.dev/assist/actions/use-sorted-enum-members",
12799
+ "anyOf": [
12800
+ { "$ref": "#/$defs/UseSortedEnumMembersConfiguration" },
12801
+ { "type": "null" }
12802
+ ]
12803
+ },
12690
12804
  "useSortedInterfaceMembers": {
12691
12805
  "description": "Sort interface members by key.\nSee https://biomejs.dev/assist/actions/use-sorted-interface-members",
12692
12806
  "anyOf": [
@@ -12701,12 +12815,33 @@
12701
12815
  { "type": "null" }
12702
12816
  ]
12703
12817
  },
12818
+ "useSortedPackageJson": {
12819
+ "description": "Organize package.json fields according to established conventions.\nSee https://biomejs.dev/assist/actions/use-sorted-package-json",
12820
+ "anyOf": [
12821
+ { "$ref": "#/$defs/UseSortedPackageJsonConfiguration" },
12822
+ { "type": "null" }
12823
+ ]
12824
+ },
12704
12825
  "useSortedProperties": {
12705
12826
  "description": "Enforce ordering of CSS properties and nested rules.\nSee https://biomejs.dev/assist/actions/use-sorted-properties",
12706
12827
  "anyOf": [
12707
12828
  { "$ref": "#/$defs/UseSortedPropertiesConfiguration" },
12708
12829
  { "type": "null" }
12709
12830
  ]
12831
+ },
12832
+ "useSortedSelectionSet": {
12833
+ "description": "Sort GraphQL selection sets.\nSee https://biomejs.dev/assist/actions/use-sorted-selection-set",
12834
+ "anyOf": [
12835
+ { "$ref": "#/$defs/UseSortedSelectionSetConfiguration" },
12836
+ { "type": "null" }
12837
+ ]
12838
+ },
12839
+ "useSortedTypeFields": {
12840
+ "description": "Sort fields in GraphQL type definitions alphabetically.\nSee https://biomejs.dev/assist/actions/use-sorted-type-fields",
12841
+ "anyOf": [
12842
+ { "$ref": "#/$defs/UseSortedTypeFieldsConfiguration" },
12843
+ { "type": "null" }
12844
+ ]
12710
12845
  }
12711
12846
  },
12712
12847
  "additionalProperties": false
@@ -12759,6 +12894,13 @@
12759
12894
  { "type": "null" }
12760
12895
  ]
12761
12896
  },
12897
+ "noContinue": {
12898
+ "description": "Disallow continue statements.\nSee https://biomejs.dev/linter/rules/no-continue",
12899
+ "anyOf": [
12900
+ { "$ref": "#/$defs/NoContinueConfiguration" },
12901
+ { "type": "null" }
12902
+ ]
12903
+ },
12762
12904
  "noDefaultExport": {
12763
12905
  "description": "Disallow default exports.\nSee https://biomejs.dev/linter/rules/no-default-export",
12764
12906
  "anyOf": [
@@ -12787,6 +12929,20 @@
12787
12929
  { "type": "null" }
12788
12930
  ]
12789
12931
  },
12932
+ "noExcessiveClassesPerFile": {
12933
+ "description": "Enforce a maximum number of classes per file.\nSee https://biomejs.dev/linter/rules/no-excessive-classes-per-file",
12934
+ "anyOf": [
12935
+ { "$ref": "#/$defs/NoExcessiveClassesPerFileConfiguration" },
12936
+ { "type": "null" }
12937
+ ]
12938
+ },
12939
+ "noExcessiveLinesPerFile": {
12940
+ "description": "Restrict the number of lines in a file.\nSee https://biomejs.dev/linter/rules/no-excessive-lines-per-file",
12941
+ "anyOf": [
12942
+ { "$ref": "#/$defs/NoExcessiveLinesPerFileConfiguration" },
12943
+ { "type": "null" }
12944
+ ]
12945
+ },
12790
12946
  "noExportedImports": {
12791
12947
  "description": "Disallow exporting an imported variable.\nSee https://biomejs.dev/linter/rules/no-exported-imports",
12792
12948
  "anyOf": [
@@ -12801,6 +12957,13 @@
12801
12957
  { "type": "null" }
12802
12958
  ]
12803
12959
  },
12960
+ "noHexColors": {
12961
+ "description": "Disallow hex colors.\nSee https://biomejs.dev/linter/rules/no-hex-colors",
12962
+ "anyOf": [
12963
+ { "$ref": "#/$defs/NoHexColorsConfiguration" },
12964
+ { "type": "null" }
12965
+ ]
12966
+ },
12804
12967
  "noImplicitBoolean": {
12805
12968
  "description": "Disallow implicit true values on JSX boolean attributes.\nSee https://biomejs.dev/linter/rules/no-implicit-boolean",
12806
12969
  "anyOf": [
@@ -12808,6 +12971,13 @@
12808
12971
  { "type": "null" }
12809
12972
  ]
12810
12973
  },
12974
+ "noIncrementDecrement": {
12975
+ "description": "Disallows the usage of the unary operators ++ and --.\nSee https://biomejs.dev/linter/rules/no-increment-decrement",
12976
+ "anyOf": [
12977
+ { "$ref": "#/$defs/NoIncrementDecrementConfiguration" },
12978
+ { "type": "null" }
12979
+ ]
12980
+ },
12811
12981
  "noInferrableTypes": {
12812
12982
  "description": "Disallow type annotations for variables, parameters, and class properties initialized with a literal expression.\nSee https://biomejs.dev/linter/rules/no-inferrable-types",
12813
12983
  "anyOf": [
@@ -12829,6 +12999,20 @@
12829
12999
  { "type": "null" }
12830
13000
  ]
12831
13001
  },
13002
+ "noMultiAssign": {
13003
+ "description": "Disallow use of chained assignment expressions.\nSee https://biomejs.dev/linter/rules/no-multi-assign",
13004
+ "anyOf": [
13005
+ { "$ref": "#/$defs/NoMultiAssignConfiguration" },
13006
+ { "type": "null" }
13007
+ ]
13008
+ },
13009
+ "noMultilineString": {
13010
+ "description": "Disallow creating multiline strings by escaping newlines.\nSee https://biomejs.dev/linter/rules/no-multiline-string",
13011
+ "anyOf": [
13012
+ { "$ref": "#/$defs/NoMultilineStringConfiguration" },
13013
+ { "type": "null" }
13014
+ ]
13015
+ },
12832
13016
  "noNamespace": {
12833
13017
  "description": "Disallow the use of TypeScript's namespaces.\nSee https://biomejs.dev/linter/rules/no-namespace",
12834
13018
  "anyOf": [
@@ -12899,6 +13083,13 @@
12899
13083
  { "type": "null" }
12900
13084
  ]
12901
13085
  },
13086
+ "noRootType": {
13087
+ "description": "Disallow the usage of specified root types.\nSee https://biomejs.dev/linter/rules/no-root-type",
13088
+ "anyOf": [
13089
+ { "$ref": "#/$defs/NoRootTypeConfiguration" },
13090
+ { "type": "null" }
13091
+ ]
13092
+ },
12902
13093
  "noShoutyConstants": {
12903
13094
  "description": "Disallow the use of constants which its value is the upper-case version of its name.\nSee https://biomejs.dev/linter/rules/no-shouty-constants",
12904
13095
  "anyOf": [
@@ -12913,6 +13104,13 @@
12913
13104
  { "type": "null" }
12914
13105
  ]
12915
13106
  },
13107
+ "noTernary": {
13108
+ "description": "Disallow ternary operators.\nSee https://biomejs.dev/linter/rules/no-ternary",
13109
+ "anyOf": [
13110
+ { "$ref": "#/$defs/NoTernaryConfiguration" },
13111
+ { "type": "null" }
13112
+ ]
13113
+ },
12916
13114
  "noUnusedTemplateLiteral": {
12917
13115
  "description": "Disallow template literals if interpolation and special-character handling are not needed.\nSee https://biomejs.dev/linter/rules/no-unused-template-literal",
12918
13116
  "anyOf": [
@@ -12934,6 +13132,13 @@
12934
13132
  { "type": "null" }
12935
13133
  ]
12936
13134
  },
13135
+ "noVueOptionsApi": {
13136
+ "description": "Disallow the use of Vue Options API.\nSee https://biomejs.dev/linter/rules/no-vue-options-api",
13137
+ "anyOf": [
13138
+ { "$ref": "#/$defs/NoVueOptionsApiConfiguration" },
13139
+ { "type": "null" }
13140
+ ]
13141
+ },
12937
13142
  "noYodaExpression": {
12938
13143
  "description": "Disallow the use of yoda expressions.\nSee https://biomejs.dev/linter/rules/no-yoda-expression",
12939
13144
  "anyOf": [
@@ -12941,6 +13146,10 @@
12941
13146
  { "type": "null" }
12942
13147
  ]
12943
13148
  },
13149
+ "preset": {
13150
+ "description": "Enables a particular rule preset",
13151
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
13152
+ },
12944
13153
  "recommended": {
12945
13154
  "description": "Enables the recommended rules for this group",
12946
13155
  "type": ["boolean", "null"]
@@ -13024,6 +13233,20 @@
13024
13233
  { "type": "null" }
13025
13234
  ]
13026
13235
  },
13236
+ "useConsistentEnumValueType": {
13237
+ "description": "Disallow enums from having both number and string members.\nSee https://biomejs.dev/linter/rules/use-consistent-enum-value-type",
13238
+ "anyOf": [
13239
+ { "$ref": "#/$defs/UseConsistentEnumValueTypeConfiguration" },
13240
+ { "type": "null" }
13241
+ ]
13242
+ },
13243
+ "useConsistentGraphqlDescriptions": {
13244
+ "description": "Require all descriptions to follow the same style (either block or inline) to maintain consistency and improve readability across the schema.\nSee https://biomejs.dev/linter/rules/use-consistent-graphql-descriptions",
13245
+ "anyOf": [
13246
+ { "$ref": "#/$defs/UseConsistentGraphqlDescriptionsConfiguration" },
13247
+ { "type": "null" }
13248
+ ]
13249
+ },
13027
13250
  "useConsistentMemberAccessibility": {
13028
13251
  "description": "Require consistent accessibility modifiers on class properties and methods.\nSee https://biomejs.dev/linter/rules/use-consistent-member-accessibility",
13029
13252
  "anyOf": [
@@ -13031,6 +13254,13 @@
13031
13254
  { "type": "null" }
13032
13255
  ]
13033
13256
  },
13257
+ "useConsistentMethodSignatures": {
13258
+ "description": "Enforce consistent use of either method signatures or function properties within interfaces and type aliases.\nSee https://biomejs.dev/linter/rules/use-consistent-method-signatures",
13259
+ "anyOf": [
13260
+ { "$ref": "#/$defs/UseConsistentMethodSignaturesConfiguration" },
13261
+ { "type": "null" }
13262
+ ]
13263
+ },
13034
13264
  "useConsistentObjectDefinitions": {
13035
13265
  "description": "Require the consistent declaration of object literals.\nSee https://biomejs.dev/linter/rules/use-consistent-object-definitions",
13036
13266
  "anyOf": [
@@ -13073,6 +13303,13 @@
13073
13303
  { "type": "null" }
13074
13304
  ]
13075
13305
  },
13306
+ "useDestructuring": {
13307
+ "description": "Require destructuring from arrays and/or objects.\nSee https://biomejs.dev/linter/rules/use-destructuring",
13308
+ "anyOf": [
13309
+ { "$ref": "#/$defs/UseDestructuringConfiguration" },
13310
+ { "type": "null" }
13311
+ ]
13312
+ },
13076
13313
  "useEnumInitializers": {
13077
13314
  "description": "Require that each enum member value be explicitly initialized.\nSee https://biomejs.dev/linter/rules/use-enum-initializers",
13078
13315
  "anyOf": [
@@ -13080,6 +13317,13 @@
13080
13317
  { "type": "null" }
13081
13318
  ]
13082
13319
  },
13320
+ "useErrorCause": {
13321
+ "description": "Enforce that new Error() is thrown with the original error as cause.\nSee https://biomejs.dev/linter/rules/use-error-cause",
13322
+ "anyOf": [
13323
+ { "$ref": "#/$defs/UseErrorCauseConfiguration" },
13324
+ { "type": "null" }
13325
+ ]
13326
+ },
13083
13327
  "useExplicitLengthCheck": {
13084
13328
  "description": "Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value.\nSee https://biomejs.dev/linter/rules/use-explicit-length-check",
13085
13329
  "anyOf": [
@@ -13129,6 +13373,13 @@
13129
13373
  { "type": "null" }
13130
13374
  ]
13131
13375
  },
13376
+ "useGlobalThis": {
13377
+ "description": "Enforce the use of globalThis over window, self, and global.\nSee https://biomejs.dev/linter/rules/use-global-this",
13378
+ "anyOf": [
13379
+ { "$ref": "#/$defs/UseGlobalThisConfiguration" },
13380
+ { "type": "null" }
13381
+ ]
13382
+ },
13132
13383
  "useGraphqlNamingConvention": {
13133
13384
  "description": "Validates that all enum values are capitalized.\nSee https://biomejs.dev/linter/rules/use-graphql-naming-convention",
13134
13385
  "anyOf": [
@@ -13150,6 +13401,13 @@
13150
13401
  { "type": "null" }
13151
13402
  ]
13152
13403
  },
13404
+ "useInputName": {
13405
+ "description": "Require mutation argument to be always called \"input\".\nSee https://biomejs.dev/linter/rules/use-input-name",
13406
+ "anyOf": [
13407
+ { "$ref": "#/$defs/UseInputNameConfiguration" },
13408
+ { "type": "null" }
13409
+ ]
13410
+ },
13153
13411
  "useLiteralEnumMembers": {
13154
13412
  "description": "Require all enum members to be literal values.\nSee https://biomejs.dev/linter/rules/use-literal-enum-members",
13155
13413
  "anyOf": [
@@ -13157,6 +13415,13 @@
13157
13415
  { "type": "null" }
13158
13416
  ]
13159
13417
  },
13418
+ "useLoneExecutableDefinition": {
13419
+ "description": "Require queries, mutations, subscriptions or fragments each to be located in separate files.\nSee https://biomejs.dev/linter/rules/use-lone-executable-definition",
13420
+ "anyOf": [
13421
+ { "$ref": "#/$defs/UseLoneExecutableDefinitionConfiguration" },
13422
+ { "type": "null" }
13423
+ ]
13424
+ },
13160
13425
  "useNamingConvention": {
13161
13426
  "description": "Enforce naming conventions for everything across a codebase.\nSee https://biomejs.dev/linter/rules/use-naming-convention",
13162
13427
  "anyOf": [
@@ -13241,6 +13506,13 @@
13241
13506
  { "type": "null" }
13242
13507
  ]
13243
13508
  },
13509
+ "useSpreadOverApply": {
13510
+ "description": "Enforce the use of the spread operator over .apply().\nSee https://biomejs.dev/linter/rules/use-spread-over-apply",
13511
+ "anyOf": [
13512
+ { "$ref": "#/$defs/UseSpreadOverApplyConfiguration" },
13513
+ { "type": "null" }
13514
+ ]
13515
+ },
13244
13516
  "useSymbolDescription": {
13245
13517
  "description": "Require a description parameter for the Symbol().\nSee https://biomejs.dev/linter/rules/use-symbol-description",
13246
13518
  "anyOf": [
@@ -13258,28 +13530,63 @@
13258
13530
  "useThrowNewError": {
13259
13531
  "description": "Require new when throwing an error.\nSee https://biomejs.dev/linter/rules/use-throw-new-error",
13260
13532
  "anyOf": [
13261
- { "$ref": "#/$defs/UseThrowNewErrorConfiguration" },
13533
+ { "$ref": "#/$defs/UseThrowNewErrorConfiguration" },
13534
+ { "type": "null" }
13535
+ ]
13536
+ },
13537
+ "useThrowOnlyError": {
13538
+ "description": "Disallow throwing non-Error values.\nSee https://biomejs.dev/linter/rules/use-throw-only-error",
13539
+ "anyOf": [
13540
+ { "$ref": "#/$defs/UseThrowOnlyErrorConfiguration" },
13541
+ { "type": "null" }
13542
+ ]
13543
+ },
13544
+ "useTrimStartEnd": {
13545
+ "description": "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight().\nSee https://biomejs.dev/linter/rules/use-trim-start-end",
13546
+ "anyOf": [
13547
+ { "$ref": "#/$defs/UseTrimStartEndConfiguration" },
13548
+ { "type": "null" }
13549
+ ]
13550
+ },
13551
+ "useUnifiedTypeSignatures": {
13552
+ "description": "Disallow overload signatures that can be unified into a single signature.\nSee https://biomejs.dev/linter/rules/use-unified-type-signatures",
13553
+ "anyOf": [
13554
+ { "$ref": "#/$defs/UseUnifiedTypeSignaturesConfiguration" },
13555
+ { "type": "null" }
13556
+ ]
13557
+ },
13558
+ "useVueConsistentVBindStyle": {
13559
+ "description": "Enforce a consistent style for v-bind in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-consistent-v-bind-style",
13560
+ "anyOf": [
13561
+ { "$ref": "#/$defs/UseVueConsistentVBindStyleConfiguration" },
13562
+ { "type": "null" }
13563
+ ]
13564
+ },
13565
+ "useVueConsistentVOnStyle": {
13566
+ "description": "Enforce a consistent style for v-on in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-consistent-v-on-style",
13567
+ "anyOf": [
13568
+ { "$ref": "#/$defs/UseVueConsistentVOnStyleConfiguration" },
13262
13569
  { "type": "null" }
13263
13570
  ]
13264
13571
  },
13265
- "useThrowOnlyError": {
13266
- "description": "Disallow throwing non-Error values.\nSee https://biomejs.dev/linter/rules/use-throw-only-error",
13572
+ "useVueDefineMacrosOrder": {
13573
+ "description": "Enforce specific order of Vue compiler macros.\nSee https://biomejs.dev/linter/rules/use-vue-define-macros-order",
13267
13574
  "anyOf": [
13268
- { "$ref": "#/$defs/UseThrowOnlyErrorConfiguration" },
13575
+ { "$ref": "#/$defs/UseVueDefineMacrosOrderConfiguration" },
13269
13576
  { "type": "null" }
13270
13577
  ]
13271
13578
  },
13272
- "useTrimStartEnd": {
13273
- "description": "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight().\nSee https://biomejs.dev/linter/rules/use-trim-start-end",
13579
+ "useVueHyphenatedAttributes": {
13580
+ "description": "Enforce hyphenated (kebab-case) attribute names in Vue templates.\nSee https://biomejs.dev/linter/rules/use-vue-hyphenated-attributes",
13274
13581
  "anyOf": [
13275
- { "$ref": "#/$defs/UseTrimStartEndConfiguration" },
13582
+ { "$ref": "#/$defs/UseVueHyphenatedAttributesConfiguration" },
13276
13583
  { "type": "null" }
13277
13584
  ]
13278
13585
  },
13279
- "useUnifiedTypeSignatures": {
13280
- "description": "Disallow overload signatures that can be unified into a single signature.\nSee https://biomejs.dev/linter/rules/use-unified-type-signatures",
13586
+ "useVueMultiWordComponentNames": {
13587
+ "description": "Enforce multi-word component names in Vue components.\nSee https://biomejs.dev/linter/rules/use-vue-multi-word-component-names",
13281
13588
  "anyOf": [
13282
- { "$ref": "#/$defs/UseUnifiedTypeSignaturesConfiguration" },
13589
+ { "$ref": "#/$defs/UseVueMultiWordComponentNamesConfiguration" },
13283
13590
  { "type": "null" }
13284
13591
  ]
13285
13592
  }
@@ -13423,6 +13730,13 @@
13423
13730
  { "type": "null" }
13424
13731
  ]
13425
13732
  },
13733
+ "noDeprecatedMediaType": {
13734
+ "description": "Disallow deprecated media types.\nSee https://biomejs.dev/linter/rules/no-deprecated-media-type",
13735
+ "anyOf": [
13736
+ { "$ref": "#/$defs/NoDeprecatedMediaTypeConfiguration" },
13737
+ { "type": "null" }
13738
+ ]
13739
+ },
13426
13740
  "noDocumentCookie": {
13427
13741
  "description": "Disallow direct assignments to document.cookie.\nSee https://biomejs.dev/linter/rules/no-document-cookie",
13428
13742
  "anyOf": [
@@ -13486,6 +13800,13 @@
13486
13800
  { "type": "null" }
13487
13801
  ]
13488
13802
  },
13803
+ "noDuplicateEnumValues": {
13804
+ "description": "Disallow duplicate enum member values.\nSee https://biomejs.dev/linter/rules/no-duplicate-enum-values",
13805
+ "anyOf": [
13806
+ { "$ref": "#/$defs/NoDuplicateEnumValuesConfiguration" },
13807
+ { "type": "null" }
13808
+ ]
13809
+ },
13489
13810
  "noDuplicateFields": {
13490
13811
  "description": "No duplicated fields in GraphQL operations.\nSee https://biomejs.dev/linter/rules/no-duplicate-fields",
13491
13812
  "anyOf": [
@@ -13500,6 +13821,13 @@
13500
13821
  { "type": "null" }
13501
13822
  ]
13502
13823
  },
13824
+ "noDuplicateGraphqlOperationName": {
13825
+ "description": "Enforce unique operation names across a GraphQL document.\nSee https://biomejs.dev/linter/rules/no-duplicate-graphql-operation-name",
13826
+ "anyOf": [
13827
+ { "$ref": "#/$defs/NoDuplicateGraphqlOperationNameConfiguration" },
13828
+ { "type": "null" }
13829
+ ]
13830
+ },
13503
13831
  "noDuplicateJsxProps": {
13504
13832
  "description": "Prevents JSX properties to be assigned multiple times.\nSee https://biomejs.dev/linter/rules/no-duplicate-jsx-props",
13505
13833
  "anyOf": [
@@ -13544,6 +13872,13 @@
13544
13872
  { "type": "null" }
13545
13873
  ]
13546
13874
  },
13875
+ "noDuplicatedSpreadProps": {
13876
+ "description": "Disallow JSX prop spreading the same identifier multiple times.\nSee https://biomejs.dev/linter/rules/no-duplicated-spread-props",
13877
+ "anyOf": [
13878
+ { "$ref": "#/$defs/NoDuplicatedSpreadPropsConfiguration" },
13879
+ { "type": "null" }
13880
+ ]
13881
+ },
13547
13882
  "noEmptyBlock": {
13548
13883
  "description": "Disallow CSS empty blocks.\nSee https://biomejs.dev/linter/rules/no-empty-block",
13549
13884
  "anyOf": [
@@ -13572,6 +13907,13 @@
13572
13907
  { "type": "null" }
13573
13908
  ]
13574
13909
  },
13910
+ "noEqualsToNull": {
13911
+ "description": "Require the use of === or !== for comparison with null.\nSee https://biomejs.dev/linter/rules/no-equals-to-null",
13912
+ "anyOf": [
13913
+ { "$ref": "#/$defs/NoEqualsToNullConfiguration" },
13914
+ { "type": "null" }
13915
+ ]
13916
+ },
13575
13917
  "noEvolvingTypes": {
13576
13918
  "description": "Disallow variables from evolving into any type through reassignments.\nSee https://biomejs.dev/linter/rules/no-evolving-types",
13577
13919
  "anyOf": [
@@ -13614,6 +13956,13 @@
13614
13956
  { "type": "null" }
13615
13957
  ]
13616
13958
  },
13959
+ "noForIn": {
13960
+ "description": "Disallow iterating using a for-in loop.\nSee https://biomejs.dev/linter/rules/no-for-in",
13961
+ "anyOf": [
13962
+ { "$ref": "#/$defs/NoForInConfiguration" },
13963
+ { "type": "null" }
13964
+ ]
13965
+ },
13617
13966
  "noFunctionAssign": {
13618
13967
  "description": "Disallow reassigning function declarations.\nSee https://biomejs.dev/linter/rules/no-function-assign",
13619
13968
  "anyOf": [
@@ -13691,6 +14040,13 @@
13691
14040
  { "type": "null" }
13692
14041
  ]
13693
14042
  },
14043
+ "noLeakedRender": {
14044
+ "description": "Prevent problematic leaked values from being rendered.\nSee https://biomejs.dev/linter/rules/no-leaked-render",
14045
+ "anyOf": [
14046
+ { "$ref": "#/$defs/NoLeakedRenderConfiguration" },
14047
+ { "type": "null" }
14048
+ ]
14049
+ },
13694
14050
  "noMisleadingCharacterClass": {
13695
14051
  "description": "Disallow characters made with multiple code points in character class syntax.\nSee https://biomejs.dev/linter/rules/no-misleading-character-class",
13696
14052
  "anyOf": [
@@ -13719,6 +14075,13 @@
13719
14075
  { "type": "null" }
13720
14076
  ]
13721
14077
  },
14078
+ "noNestedPromises": {
14079
+ "description": "Disallow nested .then() or .catch() promise calls.\nSee https://biomejs.dev/linter/rules/no-nested-promises",
14080
+ "anyOf": [
14081
+ { "$ref": "#/$defs/NoNestedPromisesConfiguration" },
14082
+ { "type": "null" }
14083
+ ]
14084
+ },
13722
14085
  "noNonNullAssertedOptionalChain": {
13723
14086
  "description": "Disallow non-null assertions after optional chaining expressions.\nSee https://biomejs.dev/linter/rules/no-non-null-asserted-optional-chain",
13724
14087
  "anyOf": [
@@ -13733,6 +14096,20 @@
13733
14096
  { "type": "null" }
13734
14097
  ]
13735
14098
  },
14099
+ "noParametersOnlyUsedInRecursion": {
14100
+ "description": "Disallow function parameters that are only used in recursive calls.\nSee https://biomejs.dev/linter/rules/no-parameters-only-used-in-recursion",
14101
+ "anyOf": [
14102
+ { "$ref": "#/$defs/NoParametersOnlyUsedInRecursionConfiguration" },
14103
+ { "type": "null" }
14104
+ ]
14105
+ },
14106
+ "noProto": {
14107
+ "description": "Disallow the use of the deprecated __proto__ object property.\nSee https://biomejs.dev/linter/rules/no-proto",
14108
+ "anyOf": [
14109
+ { "$ref": "#/$defs/NoProtoConfiguration" },
14110
+ { "type": "null" }
14111
+ ]
14112
+ },
13736
14113
  "noPrototypeBuiltins": {
13737
14114
  "description": "Disallow direct use of Object.prototype builtins.\nSee https://biomejs.dev/linter/rules/no-prototype-builtins",
13738
14115
  "anyOf": [
@@ -13775,6 +14152,13 @@
13775
14152
  { "type": "null" }
13776
14153
  ]
13777
14154
  },
14155
+ "noReturnAssign": {
14156
+ "description": "Disallow assignments in return statements.\nSee https://biomejs.dev/linter/rules/no-return-assign",
14157
+ "anyOf": [
14158
+ { "$ref": "#/$defs/NoReturnAssignConfiguration" },
14159
+ { "type": "null" }
14160
+ ]
14161
+ },
13778
14162
  "noSelfCompare": {
13779
14163
  "description": "Disallow comparisons where both sides are exactly the same.\nSee https://biomejs.dev/linter/rules/no-self-compare",
13780
14164
  "anyOf": [
@@ -13782,6 +14166,13 @@
13782
14166
  { "type": "null" }
13783
14167
  ]
13784
14168
  },
14169
+ "noShadow": {
14170
+ "description": "Disallow variable declarations from shadowing variables declared in the outer scope.\nSee https://biomejs.dev/linter/rules/no-shadow",
14171
+ "anyOf": [
14172
+ { "$ref": "#/$defs/NoShadowConfiguration" },
14173
+ { "type": "null" }
14174
+ ]
14175
+ },
13785
14176
  "noShadowRestrictedNames": {
13786
14177
  "description": "Disallow identifiers from shadowing restricted names.\nSee https://biomejs.dev/linter/rules/no-shadow-restricted-names",
13787
14178
  "anyOf": [
@@ -13845,6 +14236,13 @@
13845
14236
  { "type": "null" }
13846
14237
  ]
13847
14238
  },
14239
+ "noUndeclaredEnvVars": {
14240
+ "description": "Disallow the use of undeclared environment variables.\nSee https://biomejs.dev/linter/rules/no-undeclared-env-vars",
14241
+ "anyOf": [
14242
+ { "$ref": "#/$defs/NoUndeclaredEnvVarsConfiguration" },
14243
+ { "type": "null" }
14244
+ ]
14245
+ },
13848
14246
  "noUnknownAtRules": {
13849
14247
  "description": "Disallow unknown at-rules.\nSee https://biomejs.dev/linter/rules/no-unknown-at-rules",
13850
14248
  "anyOf": [
@@ -13852,6 +14250,20 @@
13852
14250
  { "type": "null" }
13853
14251
  ]
13854
14252
  },
14253
+ "noUnknownAttribute": {
14254
+ "description": "Disallow unknown DOM properties.\nSee https://biomejs.dev/linter/rules/no-unknown-attribute",
14255
+ "anyOf": [
14256
+ { "$ref": "#/$defs/NoUnknownAttributeConfiguration" },
14257
+ { "type": "null" }
14258
+ ]
14259
+ },
14260
+ "noUnnecessaryConditions": {
14261
+ "description": "Disallow conditions that always evaluate to the same value.\nSee https://biomejs.dev/linter/rules/no-unnecessary-conditions",
14262
+ "anyOf": [
14263
+ { "$ref": "#/$defs/NoUnnecessaryConditionsConfiguration" },
14264
+ { "type": "null" }
14265
+ ]
14266
+ },
13855
14267
  "noUnsafeDeclarationMerging": {
13856
14268
  "description": "Disallow unsafe declaration merging between interfaces and classes.\nSee https://biomejs.dev/linter/rules/no-unsafe-declaration-merging",
13857
14269
  "anyOf": [
@@ -13894,6 +14306,13 @@
13894
14306
  { "type": "null" }
13895
14307
  ]
13896
14308
  },
14309
+ "noVueArrowFuncInWatch": {
14310
+ "description": "Disallows using arrow functions when defining a watcher.\nSee https://biomejs.dev/linter/rules/no-vue-arrow-func-in-watch",
14311
+ "anyOf": [
14312
+ { "$ref": "#/$defs/NoVueArrowFuncInWatchConfiguration" },
14313
+ { "type": "null" }
14314
+ ]
14315
+ },
13897
14316
  "noWith": {
13898
14317
  "description": "Disallow with statements in non-strict contexts.\nSee https://biomejs.dev/linter/rules/no-with",
13899
14318
  "anyOf": [
@@ -13901,6 +14320,10 @@
13901
14320
  { "type": "null" }
13902
14321
  ]
13903
14322
  },
14323
+ "preset": {
14324
+ "description": "Enables a particular rule preset",
14325
+ "anyOf": [{ "$ref": "#/$defs/PresetConfig" }, { "type": "null" }]
14326
+ },
13904
14327
  "recommended": {
13905
14328
  "description": "Enables the recommended rules for this group",
13906
14329
  "type": ["boolean", "null"]
@@ -13912,6 +14335,13 @@
13912
14335
  { "type": "null" }
13913
14336
  ]
13914
14337
  },
14338
+ "useArraySortCompare": {
14339
+ "description": "Require Array#sort and Array#toSorted calls to always provide a compareFunction.\nSee https://biomejs.dev/linter/rules/use-array-sort-compare",
14340
+ "anyOf": [
14341
+ { "$ref": "#/$defs/UseArraySortCompareConfiguration" },
14342
+ { "type": "null" }
14343
+ ]
14344
+ },
13915
14345
  "useAwait": {
13916
14346
  "description": "Ensure async functions utilize await.\nSee https://biomejs.dev/linter/rules/use-await",
13917
14347
  "anyOf": [
@@ -13996,6 +14426,13 @@
13996
14426
  { "type": "null" }
13997
14427
  ]
13998
14428
  },
14429
+ "useRequiredScripts": {
14430
+ "description": "Enforce the presence of required scripts in package.json.\nSee https://biomejs.dev/linter/rules/use-required-scripts",
14431
+ "anyOf": [
14432
+ { "$ref": "#/$defs/UseRequiredScriptsConfiguration" },
14433
+ { "type": "null" }
14434
+ ]
14435
+ },
13999
14436
  "useStaticResponseMethods": {
14000
14437
  "description": "Use static Response methods instead of new Response() constructor when possible.\nSee https://biomejs.dev/linter/rules/use-static-response-methods",
14001
14438
  "anyOf": [
@@ -14086,6 +14523,13 @@
14086
14523
  "type": "object",
14087
14524
  "additionalProperties": false
14088
14525
  },
14526
+ "UseArrayFindConfiguration": {
14527
+ "oneOf": [
14528
+ { "$ref": "#/$defs/RulePlainConfiguration" },
14529
+ { "$ref": "#/$defs/RuleWithUseArrayFindOptions" }
14530
+ ]
14531
+ },
14532
+ "UseArrayFindOptions": { "type": "object", "additionalProperties": false },
14089
14533
  "UseArrayLiteralsConfiguration": {
14090
14534
  "oneOf": [
14091
14535
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -14747,7 +15191,24 @@
14747
15191
  { "$ref": "#/$defs/RuleWithUseExportTypeOptions" }
14748
15192
  ]
14749
15193
  },
14750
- "UseExportTypeOptions": { "type": "object", "additionalProperties": false },
15194
+ "UseExportTypeOptions": {
15195
+ "type": "object",
15196
+ "properties": {
15197
+ "style": {
15198
+ "description": "The style to apply when exporting types. Default to \"auto\".",
15199
+ "anyOf": [
15200
+ { "$ref": "#/$defs/UseExportTypeStyle" },
15201
+ { "type": "null" }
15202
+ ]
15203
+ }
15204
+ },
15205
+ "additionalProperties": false
15206
+ },
15207
+ "UseExportTypeStyle": {
15208
+ "description": "The style to apply when exporting types.",
15209
+ "type": "string",
15210
+ "enum": ["auto", "inlineType", "separatedType"]
15211
+ },
14751
15212
  "UseExportsLastConfiguration": {
14752
15213
  "oneOf": [
14753
15214
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -14786,13 +15247,6 @@
14786
15247
  },
14787
15248
  "additionalProperties": false
14788
15249
  },
14789
- "UseFindConfiguration": {
14790
- "oneOf": [
14791
- { "$ref": "#/$defs/RulePlainConfiguration" },
14792
- { "$ref": "#/$defs/RuleWithUseFindOptions" }
14793
- ]
14794
- },
14795
- "UseFindOptions": { "type": "object", "additionalProperties": false },
14796
15250
  "UseFlatMapConfiguration": {
14797
15251
  "oneOf": [
14798
15252
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -15004,7 +15458,7 @@
15004
15458
  "type": "object",
15005
15459
  "properties": {
15006
15460
  "style": {
15007
- "description": "The style to apply when import types. Default to \"auto\"",
15461
+ "description": "The style to apply when importing types. Default to \"auto\".",
15008
15462
  "anyOf": [
15009
15463
  { "$ref": "#/$defs/UseImportTypeStyle" },
15010
15464
  { "type": "null" }
@@ -15028,6 +15482,17 @@
15028
15482
  "type": "object",
15029
15483
  "additionalProperties": false
15030
15484
  },
15485
+ "UseIncludesConfiguration": {
15486
+ "oneOf": [
15487
+ { "$ref": "#/$defs/RulePlainConfiguration" },
15488
+ { "$ref": "#/$defs/RuleWithUseIncludesOptions" }
15489
+ ]
15490
+ },
15491
+ "UseIncludesOptions": {
15492
+ "description": "Options for the `useIncludes` rule.",
15493
+ "type": "object",
15494
+ "additionalProperties": false
15495
+ },
15031
15496
  "UseIndexOfConfiguration": {
15032
15497
  "oneOf": [
15033
15498
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -15084,6 +15549,10 @@
15084
15549
  "UseIterableCallbackReturnOptions": {
15085
15550
  "type": "object",
15086
15551
  "properties": {
15552
+ "allowImplicit": {
15553
+ "description": "When `true`, allows callbacks in methods that require a return value\n(e.g. `map`, `filter`) to implicitly return `undefined` via `return;`.",
15554
+ "type": ["boolean", "null"]
15555
+ },
15087
15556
  "checkForEach": {
15088
15557
  "description": "When `true`, the rule reports `forEach` callbacks that return a value (default behaviour).\nWhen `false` or unset, such callbacks are ignored.",
15089
15558
  "type": ["boolean", "null"]
@@ -15286,17 +15755,20 @@
15286
15755
  ]
15287
15756
  },
15288
15757
  "UseNullishCoalescingOptions": {
15758
+ "description": "Options for the `useNullishCoalescing` rule.",
15289
15759
  "type": "object",
15290
15760
  "properties": {
15291
15761
  "ignoreConditionalTests": {
15292
- "description": "Whether to ignore `||` expressions in conditional test positions\n(if/while/for/do-while/ternary conditions).\n\nWhen `true` (the default), the rule will not report `||` expressions\nthat appear in places where the falsy-checking behavior may be intentional.\n\nDefault: `true`",
15293
- "type": ["boolean", "null"],
15294
- "default": null
15762
+ "description": "Ignore `||` expressions in conditional test positions (default: `true`).",
15763
+ "type": ["boolean", "null"]
15764
+ },
15765
+ "ignoreMixedLogicalExpressions": {
15766
+ "description": "Whether to ignore `||` and `||=` binary operations that are part of a mixed logical expression with `&&` (default: `false`).",
15767
+ "type": ["boolean", "null"]
15295
15768
  },
15296
15769
  "ignoreTernaryTests": {
15297
- "description": "Whether to ignore ternary expressions that could be simplified\nusing the nullish coalescing operator.\n\nDefault: `false`",
15298
- "type": ["boolean", "null"],
15299
- "default": null
15770
+ "description": "Ignore ternary expressions that check for `null` or `undefined` (default: `false`).",
15771
+ "type": ["boolean", "null"]
15300
15772
  }
15301
15773
  },
15302
15774
  "additionalProperties": false
@@ -15339,6 +15811,36 @@
15339
15811
  },
15340
15812
  "UseNumericSeparatorsOptions": {
15341
15813
  "type": "object",
15814
+ "properties": {
15815
+ "binary": {
15816
+ "description": "Options for binary literals (e.g., `0b1010_0001`).",
15817
+ "anyOf": [
15818
+ { "$ref": "#/$defs/NumericLiteralSeparatorOptions" },
15819
+ { "type": "null" }
15820
+ ]
15821
+ },
15822
+ "decimal": {
15823
+ "description": "Options for decimal literals (e.g., `1_234_567`).",
15824
+ "anyOf": [
15825
+ { "$ref": "#/$defs/NumericLiteralSeparatorOptions" },
15826
+ { "type": "null" }
15827
+ ]
15828
+ },
15829
+ "hexadecimal": {
15830
+ "description": "Options for hexadecimal literals (e.g., `0xAB_CD`).",
15831
+ "anyOf": [
15832
+ { "$ref": "#/$defs/NumericLiteralSeparatorOptions" },
15833
+ { "type": "null" }
15834
+ ]
15835
+ },
15836
+ "octal": {
15837
+ "description": "Options for octal literals (e.g., `0o1234_5670`).",
15838
+ "anyOf": [
15839
+ { "$ref": "#/$defs/NumericLiteralSeparatorOptions" },
15840
+ { "type": "null" }
15841
+ ]
15842
+ }
15843
+ },
15342
15844
  "additionalProperties": false
15343
15845
  },
15344
15846
  "UseObjectSpreadConfiguration": {
@@ -15431,6 +15933,25 @@
15431
15933
  "type": "object",
15432
15934
  "additionalProperties": false
15433
15935
  },
15936
+ "UseReactFunctionComponentDefinitionConfiguration": {
15937
+ "oneOf": [
15938
+ { "$ref": "#/$defs/RulePlainConfiguration" },
15939
+ { "$ref": "#/$defs/RuleWithUseReactFunctionComponentDefinitionOptions" }
15940
+ ]
15941
+ },
15942
+ "UseReactFunctionComponentDefinitionOptions": {
15943
+ "type": "object",
15944
+ "properties": {
15945
+ "namedComponents": {
15946
+ "description": "The function style to enforce for named React components.",
15947
+ "anyOf": [
15948
+ { "$ref": "#/$defs/ComponentDefinitionStyle" },
15949
+ { "type": "null" }
15950
+ ]
15951
+ }
15952
+ },
15953
+ "additionalProperties": false
15954
+ },
15434
15955
  "UseReactFunctionComponentsConfiguration": {
15435
15956
  "oneOf": [
15436
15957
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -15669,6 +16190,16 @@
15669
16190
  },
15670
16191
  "additionalProperties": false
15671
16192
  },
16193
+ "UseSortedEnumMembersConfiguration": {
16194
+ "oneOf": [
16195
+ { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
16196
+ { "$ref": "#/$defs/RuleAssistWithUseSortedEnumMembersOptions" }
16197
+ ]
16198
+ },
16199
+ "UseSortedEnumMembersOptions": {
16200
+ "type": "object",
16201
+ "additionalProperties": false
16202
+ },
15672
16203
  "UseSortedInterfaceMembersConfiguration": {
15673
16204
  "oneOf": [
15674
16205
  { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
@@ -15698,6 +16229,16 @@
15698
16229
  },
15699
16230
  "additionalProperties": false
15700
16231
  },
16232
+ "UseSortedPackageJsonConfiguration": {
16233
+ "oneOf": [
16234
+ { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
16235
+ { "$ref": "#/$defs/RuleAssistWithUseSortedPackageJsonOptions" }
16236
+ ]
16237
+ },
16238
+ "UseSortedPackageJsonOptions": {
16239
+ "type": "object",
16240
+ "additionalProperties": false
16241
+ },
15701
16242
  "UseSortedPropertiesConfiguration": {
15702
16243
  "oneOf": [
15703
16244
  { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
@@ -15708,13 +16249,36 @@
15708
16249
  "type": "object",
15709
16250
  "additionalProperties": false
15710
16251
  },
15711
- "UseSpreadConfiguration": {
16252
+ "UseSortedSelectionSetConfiguration": {
16253
+ "oneOf": [
16254
+ { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
16255
+ { "$ref": "#/$defs/RuleAssistWithUseSortedSelectionSetOptions" }
16256
+ ]
16257
+ },
16258
+ "UseSortedSelectionSetOptions": {
16259
+ "type": "object",
16260
+ "additionalProperties": false
16261
+ },
16262
+ "UseSortedTypeFieldsConfiguration": {
16263
+ "oneOf": [
16264
+ { "$ref": "#/$defs/RuleAssistPlainConfiguration" },
16265
+ { "$ref": "#/$defs/RuleAssistWithUseSortedTypeFieldsOptions" }
16266
+ ]
16267
+ },
16268
+ "UseSortedTypeFieldsOptions": {
16269
+ "type": "object",
16270
+ "additionalProperties": false
16271
+ },
16272
+ "UseSpreadOverApplyConfiguration": {
15712
16273
  "oneOf": [
15713
16274
  { "$ref": "#/$defs/RulePlainConfiguration" },
15714
- { "$ref": "#/$defs/RuleWithUseSpreadOptions" }
16275
+ { "$ref": "#/$defs/RuleWithUseSpreadOverApplyOptions" }
15715
16276
  ]
15716
16277
  },
15717
- "UseSpreadOptions": { "type": "object", "additionalProperties": false },
16278
+ "UseSpreadOverApplyOptions": {
16279
+ "type": "object",
16280
+ "additionalProperties": false
16281
+ },
15718
16282
  "UseStaticResponseMethodsConfiguration": {
15719
16283
  "oneOf": [
15720
16284
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -15742,6 +16306,16 @@
15742
16306
  "type": "object",
15743
16307
  "additionalProperties": false
15744
16308
  },
16309
+ "UseSvelteRequireEachKeyConfiguration": {
16310
+ "oneOf": [
16311
+ { "$ref": "#/$defs/RulePlainConfiguration" },
16312
+ { "$ref": "#/$defs/RuleWithUseSvelteRequireEachKeyOptions" }
16313
+ ]
16314
+ },
16315
+ "UseSvelteRequireEachKeyOptions": {
16316
+ "type": "object",
16317
+ "additionalProperties": false
16318
+ },
15745
16319
  "UseSymbolDescriptionConfiguration": {
15746
16320
  "oneOf": [
15747
16321
  { "$ref": "#/$defs/RulePlainConfiguration" },
@@ -16306,7 +16880,7 @@
16306
16880
  "type": ["string", "null"]
16307
16881
  },
16308
16882
  "useIgnoreFile": {
16309
- "description": "Whether Biome should use the VCS ignore file. When [true], Biome will ignore the files\nspecified in the ignore file.",
16883
+ "description": "Whether Biome should use VCS ignore files. When [true], Biome will ignore files\nspecified in `.gitignore`, `.ignore`, and Git's local exclude file.",
16310
16884
  "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }]
16311
16885
  }
16312
16886
  },