@biomejs/biome 2.4.16 → 2.5.0

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