@biomejs/biome 1.5.3 → 1.6.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.
package/README.ja.md CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  **Biome は _JavaScript_, _TypeScript_, _JSX_ そして _JSON_ 向けの[高速なFormatter](./benchmark#formatting)**であり、**[_Prettier_ との互換性は97%](https://console.algora.io/challenges/prettier)** を達成しています。
39
39
 
40
- **Biome は _JavaScript_, _TypeScript_, _JSX_ のための[高性能なLinter](https://github.com/biomejs/biome/tree/main/benchmark#linting)** であり、ESLint, TypeScript ESLint, [その他のソース](https://github.com/biomejs/biome/discussions/3)から **[170以上のルール](https://biomejs.dev/linter/rules/)**を提供しています。Biome は**詳細で文脈に沿った結果を出力**するため、コードを改善し、より良いプログラマになるための手助けをします!
40
+ **Biome は _JavaScript_, _TypeScript_, _JSX_ のための[高性能なLinter](https://github.com/biomejs/biome/tree/main/benchmark#linting)** であり、ESLint, typescript-eslint, [その他のソース](https://github.com/biomejs/biome/discussions/3)から **[170以上のルール](https://biomejs.dev/linter/rules/)**を提供しています。Biome は**詳細で文脈に沿った結果を出力**するため、コードを改善し、より良いプログラマになるための手助けをします!
41
41
 
42
42
  **Biome** は最初から[**エディタ内で対話的に**](https://biomejs.dev/ja/guides/integrate-in-editor/)使用できるように設計されています。
43
43
  あなたがコードを書いているときに、形の崩れたコードを format と lint することができます。
package/README.md CHANGED
@@ -25,6 +25,7 @@
25
25
  [open-vsx-badge]: https://badgen.net/open-vsx/version/biomejs/biome?label=open-vsx&color=green
26
26
  [open-vsx-url]: https://open-vsx.org/extension/biomejs/biome
27
27
 
28
+
28
29
  </div>
29
30
 
30
31
  <div align="center">
@@ -37,7 +38,7 @@ English | [简体中文](https://github.com/biomejs/biome/blob/main/packages/%40
37
38
 
38
39
  **Biome is a [fast formatter](./benchmark#formatting)** for _JavaScript_, _TypeScript_, _JSX_, and _JSON_ that scores **[97% compatibility with _Prettier_](https://console.algora.io/challenges/prettier)**.
39
40
 
40
- **Biome is a [performant linter](https://github.com/biomejs/biome/tree/main/benchmark#linting)** for _JavaScript_, _TypeScript_, and _JSX_ that features **[more than 190 rules](https://biomejs.dev/linter/rules/)** from ESLint, TypeScript ESLint, and [other sources](https://github.com/biomejs/biome/discussions/3).
41
+ **Biome is a [performant linter](https://github.com/biomejs/biome/tree/main/benchmark#linting)** for _JavaScript_, _TypeScript_, and _JSX_ that features **[more than 200 rules](https://biomejs.dev/linter/rules/)** from ESLint, typescript-eslint, and [other sources](https://github.com/biomejs/biome/discussions/3).
41
42
  It **outputs detailed and contextualized diagnostics** that help you to improve your code and become a better programmer!
42
43
 
43
44
  **Biome** is designed from the start to be used [interactively within an editor](https://biomejs.dev/guides/integrate-in-editor/).
@@ -88,6 +89,23 @@ Read more about our [project philosophy][biome-philosophy].
88
89
 
89
90
  **Biome** is [MIT licensed](https://github.com/biomejs/biome/tree/main/LICENSE-MIT) or [Apache 2.0 licensed](https://github.com/biomejs/biome/tree/main/LICENSE-APACHE) and moderated under the [Contributor Covenant Code of Conduct](https://github.com/biomejs/biome/tree/main/CODE_OF_CONDUCT.md).
90
91
 
92
+ ## Funding
93
+
94
+ You can fund the project in different ways
95
+
96
+ ### Project sponsorship and funding
97
+
98
+ You can sponsor or fund the project via [Open collective](https://opencollective.com/biome) or [GitHub sponsors](https://github.com/sponsors/biomejs)
99
+
100
+ Biome offers a simple sponsorship program that allows companies to get visibility and recognition among various developers.
101
+
102
+ ### Issue funding
103
+
104
+ We use [Polar.sh](https://polar.sh/biomejs) to up-vote and promote specific features that you would like to see and implement. Check our backlog and help us:
105
+
106
+ <a href="https://polar.sh/biomejs"><img src="https://polar.sh/embed/fund-our-backlog.svg?org=biomejs" /></a>
107
+
108
+
91
109
  ## Sponsors
92
110
 
93
111
  ### Gold Sponsors
package/README.pt-br.md CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  **Biome é um [formatador rápido](./benchmark#formatting)** para _JavaScript_, _TypeScript_, _JSX_, e _JSON_ que atinge **[97% de compatibilidade com o _Prettier_](https://console.algora.io/challenges/prettier)**.
39
39
 
40
- **Biome é um [linter eficiente](https://github.com/biomejs/biome/tree/main/benchmark#linting)** para _JavaScript_, _TypeScript_, e _JSX_ que possui **[mais de 190 regras](https://biomejs.dev/linter/rules/)** do ESLint, TypeScript ESLint, e de [outras fontes](https://github.com/biomejs/biome/discussions/3).
40
+ **Biome é um [linter eficiente](https://github.com/biomejs/biome/tree/main/benchmark#linting)** para _JavaScript_, _TypeScript_, e _JSX_ que possui **[mais de 190 regras](https://biomejs.dev/linter/rules/)** do ESLint, typescript-eslint, e de [outras fontes](https://github.com/biomejs/biome/discussions/3).
41
41
  Ele **fornece diagnósticos detalhados e contextualizados** que ajudam você a melhorar seu código e se tornar um programador melhor!
42
42
 
43
43
  **Biome** é projetado desde o início para ser usado [interativamente dentro de um editor](https://biomejs.dev/guides/integrate-in-editor/).
package/README.zh-CN.md CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  **Biome 是一个[快速的格式化工具](./benchmark#formatting)**,适用于 _JavaScript_、_TypeScript_、_JSX_、_JSON_ 等,与 _Prettier_ 的兼容性达到了 **[97%](https://console.algora.io/challenges/prettier)**。
39
39
 
40
- **Biome 是一个[高性能的 Linter](https://github.com/biomejs/biome/tree/main/benchmark#linting)**,适用于 _JavaScript_、_TypeScript_、_JSX_ 等,包含了来自 ESLint、TypeScript ESLint 和[其他来源](https://github.com/biomejs/biome/discussions/3)的 **[190 余项规则](https://biomejs.dev/zh-cn/linter/rules/)**。它**输出详细且有上下文诊断信息**,能帮助你优化代码,成为一名更好的程序员!
40
+ **Biome 是一个[高性能的 Linter](https://github.com/biomejs/biome/tree/main/benchmark#linting)**,适用于 _JavaScript_、_TypeScript_、_JSX_ 等,包含了来自 ESLint、typescript-eslint 和[其他来源](https://github.com/biomejs/biome/discussions/3)的 **[190 余项规则](https://biomejs.dev/zh-cn/linter/rules/)**。它**输出详细且有上下文诊断信息**,能帮助你优化代码,成为一名更好的程序员!
41
41
 
42
42
  **Biome** 从一开始就设计为[在编辑器中交互式使用](https://biomejs.dev/zh-cn/guides/integrate-in-editor/)。它可以在你编写代码时格式化并检查出不规范的代码。
43
43
 
@@ -276,7 +276,7 @@
276
276
  "useValidAriaRole": {
277
277
  "description": "Elements with ARIA roles must use a valid, non-abstract ARIA role.",
278
278
  "anyOf": [
279
- { "$ref": "#/definitions/RuleConfiguration" },
279
+ { "$ref": "#/definitions/ValidAriaRoleConfiguration" },
280
280
  { "type": "null" }
281
281
  ]
282
282
  },
@@ -294,9 +294,11 @@
294
294
  { "type": "null" }
295
295
  ]
296
296
  }
297
- }
297
+ },
298
+ "additionalProperties": false
298
299
  },
299
300
  "ArrowParentheses": { "type": "string", "enum": ["always", "asNeeded"] },
301
+ "AttributePosition": { "type": "string", "enum": ["auto", "multiline"] },
300
302
  "Complexity": {
301
303
  "description": "A list of rules that belong to this group",
302
304
  "type": "object",
@@ -312,10 +314,17 @@
312
314
  { "type": "null" }
313
315
  ]
314
316
  },
317
+ "noEmptyTypeParameters": {
318
+ "description": "Disallow empty type parameters in type aliases and interfaces.",
319
+ "anyOf": [
320
+ { "$ref": "#/definitions/RuleConfiguration" },
321
+ { "type": "null" }
322
+ ]
323
+ },
315
324
  "noExcessiveCognitiveComplexity": {
316
325
  "description": "Disallow functions that exceed a given Cognitive Complexity score.",
317
326
  "anyOf": [
318
- { "$ref": "#/definitions/RuleConfiguration" },
327
+ { "$ref": "#/definitions/ComplexityConfiguration" },
319
328
  { "type": "null" }
320
329
  ]
321
330
  },
@@ -389,6 +398,13 @@
389
398
  { "type": "null" }
390
399
  ]
391
400
  },
401
+ "noUselessLoneBlockStatements": {
402
+ "description": "Disallow unnecessary nested block statements.",
403
+ "anyOf": [
404
+ { "$ref": "#/definitions/RuleConfiguration" },
405
+ { "type": "null" }
406
+ ]
407
+ },
392
408
  "noUselessRename": {
393
409
  "description": "Disallow renaming import, export, and destructured assignments to the same name.",
394
410
  "anyOf": [
@@ -484,7 +500,14 @@
484
500
  { "type": "null" }
485
501
  ]
486
502
  }
487
- }
503
+ },
504
+ "additionalProperties": false
505
+ },
506
+ "ComplexityConfiguration": {
507
+ "anyOf": [
508
+ { "$ref": "#/definitions/RulePlainConfiguration" },
509
+ { "$ref": "#/definitions/RuleWithComplexityOptions" }
510
+ ]
488
511
  },
489
512
  "ComplexityOptions": {
490
513
  "description": "Options for the rule `noExcessiveCognitiveComplexity`.",
@@ -514,6 +537,12 @@
514
537
  }
515
538
  ]
516
539
  },
540
+ "ConsistentArrayTypeConfiguration": {
541
+ "anyOf": [
542
+ { "$ref": "#/definitions/RulePlainConfiguration" },
543
+ { "$ref": "#/definitions/RuleWithConsistentArrayTypeOptions" }
544
+ ]
545
+ },
517
546
  "ConsistentArrayTypeOptions": {
518
547
  "type": "object",
519
548
  "required": ["syntax"],
@@ -600,6 +629,13 @@
600
629
  { "type": "null" }
601
630
  ]
602
631
  },
632
+ "noInvalidUseBeforeDeclaration": {
633
+ "description": "Disallow the use of variables and function parameters before their declaration",
634
+ "anyOf": [
635
+ { "$ref": "#/definitions/RuleConfiguration" },
636
+ { "type": "null" }
637
+ ]
638
+ },
603
639
  "noNewSymbol": {
604
640
  "description": "Disallow new operators with the Symbol object.",
605
641
  "anyOf": [
@@ -698,6 +734,13 @@
698
734
  { "type": "null" }
699
735
  ]
700
736
  },
737
+ "noUnusedImports": {
738
+ "description": "Disallow unused imports.",
739
+ "anyOf": [
740
+ { "$ref": "#/definitions/RuleConfiguration" },
741
+ { "type": "null" }
742
+ ]
743
+ },
701
744
  "noUnusedLabels": {
702
745
  "description": "Disallow unused labels.",
703
746
  "anyOf": [
@@ -705,6 +748,13 @@
705
748
  { "type": "null" }
706
749
  ]
707
750
  },
751
+ "noUnusedPrivateClassMembers": {
752
+ "description": "Disallow unused private class members",
753
+ "anyOf": [
754
+ { "$ref": "#/definitions/RuleConfiguration" },
755
+ { "type": "null" }
756
+ ]
757
+ },
708
758
  "noUnusedVariables": {
709
759
  "description": "Disallow unused variables.",
710
760
  "anyOf": [
@@ -733,14 +783,14 @@
733
783
  "useExhaustiveDependencies": {
734
784
  "description": "Enforce all dependencies are correctly specified in a React hook.",
735
785
  "anyOf": [
736
- { "$ref": "#/definitions/RuleConfiguration" },
786
+ { "$ref": "#/definitions/HooksConfiguration" },
737
787
  { "type": "null" }
738
788
  ]
739
789
  },
740
790
  "useHookAtTopLevel": {
741
791
  "description": "Enforce that all React hooks are being called from the Top Level component functions.",
742
792
  "anyOf": [
743
- { "$ref": "#/definitions/RuleConfiguration" },
793
+ { "$ref": "#/definitions/DeprecatedHooksConfiguration" },
744
794
  { "type": "null" }
745
795
  ]
746
796
  },
@@ -765,7 +815,8 @@
765
815
  { "type": "null" }
766
816
  ]
767
817
  }
768
- }
818
+ },
819
+ "additionalProperties": false
769
820
  },
770
821
  "CssConfiguration": {
771
822
  "description": "Options applied to CSS files",
@@ -836,6 +887,12 @@
836
887
  },
837
888
  "additionalProperties": false
838
889
  },
890
+ "DeprecatedHooksConfiguration": {
891
+ "anyOf": [
892
+ { "$ref": "#/definitions/RulePlainConfiguration" },
893
+ { "$ref": "#/definitions/RuleWithDeprecatedHooksOptions" }
894
+ ]
895
+ },
839
896
  "DeprecatedHooksOptions": {
840
897
  "description": "Options for the `useHookAtTopLevel` rule have been deprecated, since we now use the React hook naming convention to determine whether a function is a hook.",
841
898
  "type": "object",
@@ -888,6 +945,12 @@
888
945
  "items": { "$ref": "#/definitions/FilenameCase" },
889
946
  "uniqueItems": true
890
947
  },
948
+ "FilenamingConventionConfiguration": {
949
+ "anyOf": [
950
+ { "$ref": "#/definitions/RulePlainConfiguration" },
951
+ { "$ref": "#/definitions/RuleWithFilenamingConventionOptions" }
952
+ ]
953
+ },
891
954
  "FilenamingConventionOptions": {
892
955
  "description": "Rule's options.",
893
956
  "type": "object",
@@ -896,6 +959,10 @@
896
959
  "description": "Allowed cases for _TypeScript_ `enum` member names.",
897
960
  "allOf": [{ "$ref": "#/definitions/FilenameCases" }]
898
961
  },
962
+ "requireAscii": {
963
+ "description": "If `false`, then non-ASCII characters are allowed.",
964
+ "type": "boolean"
965
+ },
899
966
  "strictCase": {
900
967
  "description": "If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case].",
901
968
  "type": "boolean"
@@ -921,7 +988,6 @@
921
988
  },
922
989
  "maxSize": {
923
990
  "description": "The maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reasons. Defaults to 1 MiB",
924
- "default": null,
925
991
  "type": ["integer", "null"],
926
992
  "format": "uint64",
927
993
  "minimum": 1.0
@@ -933,10 +999,16 @@
933
999
  "description": "Generic options applied to all files",
934
1000
  "type": "object",
935
1001
  "properties": {
936
- "enabled": { "default": true, "type": ["boolean", "null"] },
1002
+ "attributePosition": {
1003
+ "description": "The attribute position style. By default auto.",
1004
+ "anyOf": [
1005
+ { "$ref": "#/definitions/AttributePosition" },
1006
+ { "type": "null" }
1007
+ ]
1008
+ },
1009
+ "enabled": { "type": ["boolean", "null"] },
937
1010
  "formatWithErrors": {
938
1011
  "description": "Stores whether formatting should be allowed to proceed if a given file has syntax errors",
939
- "default": false,
940
1012
  "type": ["boolean", "null"]
941
1013
  },
942
1014
  "ignore": {
@@ -949,14 +1021,12 @@
949
1021
  },
950
1022
  "indentSize": {
951
1023
  "description": "The size of the indentation, 2 by default (deprecated, use `indent-width`)",
952
- "default": 2,
953
1024
  "type": ["integer", "null"],
954
1025
  "format": "uint8",
955
1026
  "minimum": 0.0
956
1027
  },
957
1028
  "indentStyle": {
958
1029
  "description": "The indent style.",
959
- "default": "tab",
960
1030
  "anyOf": [
961
1031
  { "$ref": "#/definitions/PlainIndentStyle" },
962
1032
  { "type": "null" }
@@ -964,53 +1034,60 @@
964
1034
  },
965
1035
  "indentWidth": {
966
1036
  "description": "The size of the indentation, 2 by default",
967
- "default": 2,
968
1037
  "type": ["integer", "null"],
969
1038
  "format": "uint8",
970
1039
  "minimum": 0.0
971
1040
  },
972
1041
  "lineEnding": {
973
1042
  "description": "The type of line ending.",
974
- "default": "lf",
975
1043
  "anyOf": [{ "$ref": "#/definitions/LineEnding" }, { "type": "null" }]
976
1044
  },
977
1045
  "lineWidth": {
978
1046
  "description": "What's the max width of a line. Defaults to 80.",
979
- "default": 80,
980
1047
  "anyOf": [{ "$ref": "#/definitions/LineWidth" }, { "type": "null" }]
981
1048
  }
982
1049
  },
983
1050
  "additionalProperties": false
984
1051
  },
985
- "Hooks": {
1052
+ "Hook": {
986
1053
  "type": "object",
987
- "required": ["name"],
1054
+ "required": ["name", "stableResult"],
988
1055
  "properties": {
989
1056
  "closureIndex": {
990
- "description": "The \"position\" of the closure function, starting from zero.\n\n### Example",
1057
+ "description": "The \"position\" of the closure function, starting from zero.\n\nFor example, for React's `useEffect()` hook, the closure index is 0.",
991
1058
  "type": ["integer", "null"],
992
- "format": "uint",
1059
+ "format": "uint8",
993
1060
  "minimum": 0.0
994
1061
  },
995
1062
  "dependenciesIndex": {
996
- "description": "The \"position\" of the array of dependencies, starting from zero.",
1063
+ "description": "The \"position\" of the array of dependencies, starting from zero.\n\nFor example, for React's `useEffect()` hook, the dependencies index is 1.",
997
1064
  "type": ["integer", "null"],
998
- "format": "uint",
1065
+ "format": "uint8",
999
1066
  "minimum": 0.0
1000
1067
  },
1001
- "name": { "description": "The name of the hook", "type": "string" }
1068
+ "name": { "description": "The name of the hook.", "type": "string" },
1069
+ "stableResult": {
1070
+ "description": "Whether the result of the hook is stable.\n\nSet to `true` to mark the identity of the hook's return value as stable, or use a number/an array of numbers to mark the \"positions\" in the return array as stable.\n\nFor example, for React's `useRef()` hook the value would be `true`, while for `useState()` it would be `[1]`.",
1071
+ "allOf": [{ "$ref": "#/definitions/StableHookResult" }]
1072
+ }
1002
1073
  },
1003
1074
  "additionalProperties": false
1004
1075
  },
1076
+ "HooksConfiguration": {
1077
+ "anyOf": [
1078
+ { "$ref": "#/definitions/RulePlainConfiguration" },
1079
+ { "$ref": "#/definitions/RuleWithHooksOptions" }
1080
+ ]
1081
+ },
1005
1082
  "HooksOptions": {
1006
1083
  "description": "Options for the rule `useExhaustiveDependencies`",
1007
1084
  "type": "object",
1008
1085
  "required": ["hooks"],
1009
1086
  "properties": {
1010
1087
  "hooks": {
1011
- "description": "List of safe hooks",
1088
+ "description": "List of hooks of which the dependencies should be validated.",
1012
1089
  "type": "array",
1013
- "items": { "$ref": "#/definitions/Hooks" }
1090
+ "items": { "$ref": "#/definitions/Hook" }
1014
1091
  }
1015
1092
  },
1016
1093
  "additionalProperties": false
@@ -1057,6 +1134,13 @@
1057
1134
  { "type": "null" }
1058
1135
  ]
1059
1136
  },
1137
+ "attributePosition": {
1138
+ "description": "The attribute position style in JavaScript code. Defaults to auto.",
1139
+ "anyOf": [
1140
+ { "$ref": "#/definitions/AttributePosition" },
1141
+ { "type": "null" }
1142
+ ]
1143
+ },
1060
1144
  "bracketSameLine": {
1061
1145
  "description": "Whether to hug the closing bracket of multiline HTML/JSX tags to the end of the last line, rather than being alone on the following line. Defaults to false.",
1062
1146
  "type": ["boolean", "null"]
@@ -1191,6 +1275,13 @@
1191
1275
  "lineWidth": {
1192
1276
  "description": "What's the max width of a line applied to JSON (and its super languages) files. Defaults to 80.",
1193
1277
  "anyOf": [{ "$ref": "#/definitions/LineWidth" }, { "type": "null" }]
1278
+ },
1279
+ "trailingCommas": {
1280
+ "description": "Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Defaults to \"none\".",
1281
+ "anyOf": [
1282
+ { "$ref": "#/definitions/TrailingCommas" },
1283
+ { "type": "null" }
1284
+ ]
1194
1285
  }
1195
1286
  },
1196
1287
  "additionalProperties": false
@@ -1240,7 +1331,6 @@
1240
1331
  "properties": {
1241
1332
  "enabled": {
1242
1333
  "description": "if `false`, it disables the feature and the linter won't be executed. `true` by default",
1243
- "default": true,
1244
1334
  "type": ["boolean", "null"]
1245
1335
  },
1246
1336
  "ignore": {
@@ -1253,12 +1343,17 @@
1253
1343
  },
1254
1344
  "rules": {
1255
1345
  "description": "List of rules",
1256
- "default": { "recommended": true },
1257
1346
  "anyOf": [{ "$ref": "#/definitions/Rules" }, { "type": "null" }]
1258
1347
  }
1259
1348
  },
1260
1349
  "additionalProperties": false
1261
1350
  },
1351
+ "NamingConventionConfiguration": {
1352
+ "anyOf": [
1353
+ { "$ref": "#/definitions/RulePlainConfiguration" },
1354
+ { "$ref": "#/definitions/RuleWithNamingConventionOptions" }
1355
+ ]
1356
+ },
1262
1357
  "NamingConventionOptions": {
1263
1358
  "description": "Rule's options.",
1264
1359
  "type": "object",
@@ -1267,6 +1362,10 @@
1267
1362
  "description": "Allowed cases for _TypeScript_ `enum` member names.",
1268
1363
  "allOf": [{ "$ref": "#/definitions/EnumMemberCase" }]
1269
1364
  },
1365
+ "requireAscii": {
1366
+ "description": "If `false`, then non-ASCII characters are allowed.",
1367
+ "type": "boolean"
1368
+ },
1270
1369
  "strictCase": {
1271
1370
  "description": "If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case].",
1272
1371
  "type": "boolean"
@@ -1282,142 +1381,114 @@
1282
1381
  "description": "It enables ALL rules for this group.",
1283
1382
  "type": ["boolean", "null"]
1284
1383
  },
1285
- "noDuplicateJsonKeys": {
1286
- "description": "Disallow two keys with the same name inside a JSON object.",
1287
- "anyOf": [
1288
- { "$ref": "#/definitions/RuleConfiguration" },
1289
- { "type": "null" }
1290
- ]
1291
- },
1292
- "noEmptyBlockStatements": {
1293
- "description": "Disallow empty block statements and static blocks.",
1294
- "anyOf": [
1295
- { "$ref": "#/definitions/RuleConfiguration" },
1296
- { "type": "null" }
1297
- ]
1298
- },
1299
- "noEmptyTypeParameters": {
1300
- "description": "Disallow empty type parameters in type aliases and interfaces.",
1301
- "anyOf": [
1302
- { "$ref": "#/definitions/RuleConfiguration" },
1303
- { "type": "null" }
1304
- ]
1305
- },
1306
- "noGlobalAssign": {
1307
- "description": "Disallow assignments to native objects and read-only global variables.",
1384
+ "noBarrelFile": {
1385
+ "description": "Disallow the use of barrel file.",
1308
1386
  "anyOf": [
1309
1387
  { "$ref": "#/definitions/RuleConfiguration" },
1310
1388
  { "type": "null" }
1311
1389
  ]
1312
1390
  },
1313
- "noGlobalEval": {
1314
- "description": "Disallow the use of global eval().",
1391
+ "noConsole": {
1392
+ "description": "Disallow the use of console.",
1315
1393
  "anyOf": [
1316
1394
  { "$ref": "#/definitions/RuleConfiguration" },
1317
1395
  { "type": "null" }
1318
1396
  ]
1319
1397
  },
1320
- "noInvalidUseBeforeDeclaration": {
1321
- "description": "Disallow the use of variables and function parameters before their declaration",
1398
+ "noDuplicateJsonKeys": {
1399
+ "description": "Disallow two keys with the same name inside a JSON object.",
1322
1400
  "anyOf": [
1323
1401
  { "$ref": "#/definitions/RuleConfiguration" },
1324
1402
  { "type": "null" }
1325
1403
  ]
1326
1404
  },
1327
- "noMisleadingCharacterClass": {
1328
- "description": "Disallow characters made with multiple code points in character class syntax.",
1405
+ "noDuplicateTestHooks": {
1406
+ "description": "A describe block should not contain duplicate hooks.",
1329
1407
  "anyOf": [
1330
1408
  { "$ref": "#/definitions/RuleConfiguration" },
1331
1409
  { "type": "null" }
1332
1410
  ]
1333
1411
  },
1334
- "noNodejsModules": {
1335
- "description": "Forbid the use of Node.js builtin modules.",
1412
+ "noExcessiveNestedTestSuites": {
1413
+ "description": "This rule enforces a maximum depth to nested describe() in test files.",
1336
1414
  "anyOf": [
1337
1415
  { "$ref": "#/definitions/RuleConfiguration" },
1338
1416
  { "type": "null" }
1339
1417
  ]
1340
1418
  },
1341
- "noThenProperty": {
1342
- "description": "Disallow then property.",
1419
+ "noExportsInTest": {
1420
+ "description": "Disallow using export or module.exports in files containing tests",
1343
1421
  "anyOf": [
1344
1422
  { "$ref": "#/definitions/RuleConfiguration" },
1345
1423
  { "type": "null" }
1346
1424
  ]
1347
1425
  },
1348
- "noUnusedImports": {
1349
- "description": "Disallow unused imports.",
1426
+ "noFocusedTests": {
1427
+ "description": "Disallow focused tests.",
1350
1428
  "anyOf": [
1351
1429
  { "$ref": "#/definitions/RuleConfiguration" },
1352
1430
  { "type": "null" }
1353
1431
  ]
1354
1432
  },
1355
- "noUnusedPrivateClassMembers": {
1356
- "description": "Disallow unused private class members",
1433
+ "noNamespaceImport": {
1434
+ "description": "Disallow the use of namespace imports.",
1357
1435
  "anyOf": [
1358
1436
  { "$ref": "#/definitions/RuleConfiguration" },
1359
1437
  { "type": "null" }
1360
1438
  ]
1361
1439
  },
1362
- "noUselessLoneBlockStatements": {
1363
- "description": "Disallow unnecessary nested block statements.",
1440
+ "noNodejsModules": {
1441
+ "description": "Forbid the use of Node.js builtin modules.",
1364
1442
  "anyOf": [
1365
1443
  { "$ref": "#/definitions/RuleConfiguration" },
1366
1444
  { "type": "null" }
1367
1445
  ]
1368
1446
  },
1369
- "noUselessTernary": {
1370
- "description": "Disallow ternary operators when simpler alternatives exist.",
1447
+ "noReExportAll": {
1448
+ "description": "Avoid re-export all.",
1371
1449
  "anyOf": [
1372
1450
  { "$ref": "#/definitions/RuleConfiguration" },
1373
1451
  { "type": "null" }
1374
1452
  ]
1375
1453
  },
1376
- "recommended": {
1377
- "description": "It enables the recommended rules for this group",
1378
- "type": ["boolean", "null"]
1379
- },
1380
- "useAwait": {
1381
- "description": "Ensure async functions utilize await.",
1454
+ "noRestrictedImports": {
1455
+ "description": "Disallow specified modules when loaded by import or require.",
1382
1456
  "anyOf": [
1383
- { "$ref": "#/definitions/RuleConfiguration" },
1457
+ { "$ref": "#/definitions/RestrictedImportsConfiguration" },
1384
1458
  { "type": "null" }
1385
1459
  ]
1386
1460
  },
1387
- "useConsistentArrayType": {
1388
- "description": "Require consistently using either T[] or Array<T>",
1461
+ "noSemicolonInJsx": {
1462
+ "description": "It detects possible \"wrong\" semicolons inside JSX elements.",
1389
1463
  "anyOf": [
1390
1464
  { "$ref": "#/definitions/RuleConfiguration" },
1391
1465
  { "type": "null" }
1392
1466
  ]
1393
1467
  },
1394
- "useExportType": {
1395
- "description": "Promotes the use of export type for types.",
1468
+ "noSkippedTests": {
1469
+ "description": "Disallow disabled tests.",
1396
1470
  "anyOf": [
1397
1471
  { "$ref": "#/definitions/RuleConfiguration" },
1398
1472
  { "type": "null" }
1399
1473
  ]
1400
1474
  },
1401
- "useFilenamingConvention": {
1402
- "description": "Enforce naming conventions for JavaScript and TypeScript filenames.",
1475
+ "noUndeclaredDependencies": {
1476
+ "description": "Disallow the use of dependencies that aren't specified in the package.json.",
1403
1477
  "anyOf": [
1404
1478
  { "$ref": "#/definitions/RuleConfiguration" },
1405
1479
  { "type": "null" }
1406
1480
  ]
1407
1481
  },
1408
- "useForOf": {
1409
- "description": "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array.",
1482
+ "noUselessTernary": {
1483
+ "description": "Disallow ternary operators when simpler alternatives exist.",
1410
1484
  "anyOf": [
1411
1485
  { "$ref": "#/definitions/RuleConfiguration" },
1412
1486
  { "type": "null" }
1413
1487
  ]
1414
1488
  },
1415
- "useGroupedTypeImport": {
1416
- "description": "Enforce the use of import type when an import only has specifiers with type qualifier.",
1417
- "anyOf": [
1418
- { "$ref": "#/definitions/RuleConfiguration" },
1419
- { "type": "null" }
1420
- ]
1489
+ "recommended": {
1490
+ "description": "It enables the recommended rules for this group",
1491
+ "type": ["boolean", "null"]
1421
1492
  },
1422
1493
  "useImportRestrictions": {
1423
1494
  "description": "Disallows package private imports.",
@@ -1426,42 +1497,35 @@
1426
1497
  { "type": "null" }
1427
1498
  ]
1428
1499
  },
1429
- "useImportType": {
1430
- "description": "Promotes the use of import type for types.",
1500
+ "useJsxKeyInIterable": {
1501
+ "description": "Disallow missing key props in iterators/collection literals.",
1431
1502
  "anyOf": [
1432
1503
  { "$ref": "#/definitions/RuleConfiguration" },
1433
1504
  { "type": "null" }
1434
1505
  ]
1435
1506
  },
1436
- "useNodejsImportProtocol": {
1437
- "description": "Enforces using the node: protocol for Node.js builtin modules.",
1507
+ "useNodeAssertStrict": {
1508
+ "description": "Promotes the usage of node:assert/strict over node:assert.",
1438
1509
  "anyOf": [
1439
1510
  { "$ref": "#/definitions/RuleConfiguration" },
1440
1511
  { "type": "null" }
1441
1512
  ]
1442
1513
  },
1443
- "useNumberNamespace": {
1444
- "description": "Use the Number properties instead of global ones.",
1445
- "anyOf": [
1446
- { "$ref": "#/definitions/RuleConfiguration" },
1447
- { "type": "null" }
1448
- ]
1449
- },
1450
- "useShorthandFunctionType": {
1451
- "description": "Enforce using function types instead of object type with call signatures.",
1514
+ "useSortedClasses": {
1515
+ "description": "Enforce the sorting of CSS utility classes.",
1452
1516
  "anyOf": [
1453
- { "$ref": "#/definitions/RuleConfiguration" },
1517
+ { "$ref": "#/definitions/UtilityClassSortingConfiguration" },
1454
1518
  { "type": "null" }
1455
1519
  ]
1456
1520
  }
1457
- }
1521
+ },
1522
+ "additionalProperties": false
1458
1523
  },
1459
1524
  "OrganizeImports": {
1460
1525
  "type": "object",
1461
1526
  "properties": {
1462
1527
  "enabled": {
1463
1528
  "description": "Enables the organization of imports",
1464
- "default": true,
1465
1529
  "type": ["boolean", "null"]
1466
1530
  },
1467
1531
  "ignore": {
@@ -1478,6 +1542,14 @@
1478
1542
  "OverrideFormatterConfiguration": {
1479
1543
  "type": "object",
1480
1544
  "properties": {
1545
+ "attributePosition": {
1546
+ "description": "The attribute position style.",
1547
+ "default": null,
1548
+ "anyOf": [
1549
+ { "$ref": "#/definitions/AttributePosition" },
1550
+ { "type": "null" }
1551
+ ]
1552
+ },
1481
1553
  "enabled": { "default": null, "type": ["boolean", "null"] },
1482
1554
  "formatWithErrors": {
1483
1555
  "description": "Stores whether formatting should be allowed to proceed if a given file has syntax errors",
@@ -1625,7 +1697,8 @@
1625
1697
  "description": "It enables the recommended rules for this group",
1626
1698
  "type": ["boolean", "null"]
1627
1699
  }
1628
- }
1700
+ },
1701
+ "additionalProperties": false
1629
1702
  },
1630
1703
  "PlainIndentStyle": {
1631
1704
  "oneOf": [
@@ -1633,44 +1706,14 @@
1633
1706
  { "description": "Space", "type": "string", "enum": ["space"] }
1634
1707
  ]
1635
1708
  },
1636
- "PossibleOptions": {
1709
+ "QuoteProperties": { "type": "string", "enum": ["asNeeded", "preserve"] },
1710
+ "QuoteStyle": { "type": "string", "enum": ["double", "single"] },
1711
+ "RestrictedGlobalsConfiguration": {
1637
1712
  "anyOf": [
1638
- {
1639
- "description": "Options for `noExcessiveComplexity` rule",
1640
- "allOf": [{ "$ref": "#/definitions/ComplexityOptions" }]
1641
- },
1642
- {
1643
- "description": "Options for `useConsistentArrayType` rule",
1644
- "allOf": [{ "$ref": "#/definitions/ConsistentArrayTypeOptions" }]
1645
- },
1646
- {
1647
- "description": "Options for `useFilenamingConvention` rule",
1648
- "allOf": [{ "$ref": "#/definitions/FilenamingConventionOptions" }]
1649
- },
1650
- {
1651
- "description": "Options for `useExhaustiveDependencies` rule",
1652
- "allOf": [{ "$ref": "#/definitions/HooksOptions" }]
1653
- },
1654
- {
1655
- "description": "Deprecated options for `useHookAtTopLevel` rule",
1656
- "allOf": [{ "$ref": "#/definitions/DeprecatedHooksOptions" }]
1657
- },
1658
- {
1659
- "description": "Options for `useNamingConvention` rule",
1660
- "allOf": [{ "$ref": "#/definitions/NamingConventionOptions" }]
1661
- },
1662
- {
1663
- "description": "Options for `noRestrictedGlobals` rule",
1664
- "allOf": [{ "$ref": "#/definitions/RestrictedGlobalsOptions" }]
1665
- },
1666
- {
1667
- "description": "Options for `useValidAriaRole` rule",
1668
- "allOf": [{ "$ref": "#/definitions/ValidAriaRoleOptions" }]
1669
- }
1713
+ { "$ref": "#/definitions/RulePlainConfiguration" },
1714
+ { "$ref": "#/definitions/RuleWithRestrictedGlobalsOptions" }
1670
1715
  ]
1671
1716
  },
1672
- "QuoteProperties": { "type": "string", "enum": ["asNeeded", "preserve"] },
1673
- "QuoteStyle": { "type": "string", "enum": ["double", "single"] },
1674
1717
  "RestrictedGlobalsOptions": {
1675
1718
  "description": "Options for the rule `noRestrictedGlobals`.",
1676
1719
  "type": "object",
@@ -1684,27 +1727,131 @@
1684
1727
  },
1685
1728
  "additionalProperties": false
1686
1729
  },
1730
+ "RestrictedImportsConfiguration": {
1731
+ "anyOf": [
1732
+ { "$ref": "#/definitions/RulePlainConfiguration" },
1733
+ { "$ref": "#/definitions/RuleWithRestrictedImportsOptions" }
1734
+ ]
1735
+ },
1736
+ "RestrictedImportsOptions": {
1737
+ "description": "Options for the rule `noRestrictedImports`.",
1738
+ "type": "object",
1739
+ "required": ["paths"],
1740
+ "properties": {
1741
+ "paths": {
1742
+ "description": "A list of names that should trigger the rule",
1743
+ "type": "object",
1744
+ "additionalProperties": { "type": "string" }
1745
+ }
1746
+ },
1747
+ "additionalProperties": false
1748
+ },
1687
1749
  "RuleConfiguration": {
1688
1750
  "anyOf": [
1689
1751
  { "$ref": "#/definitions/RulePlainConfiguration" },
1690
- { "$ref": "#/definitions/RuleWithOptions" }
1752
+ { "$ref": "#/definitions/RuleWithNoOptions" }
1691
1753
  ]
1692
1754
  },
1693
1755
  "RulePlainConfiguration": {
1694
1756
  "type": "string",
1695
1757
  "enum": ["warn", "error", "off"]
1696
1758
  },
1697
- "RuleWithOptions": {
1759
+ "RuleWithComplexityOptions": {
1698
1760
  "type": "object",
1699
- "required": ["level"],
1761
+ "required": ["level", "options"],
1700
1762
  "properties": {
1701
1763
  "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1702
- "options": {
1703
- "anyOf": [
1704
- { "$ref": "#/definitions/PossibleOptions" },
1705
- { "type": "null" }
1706
- ]
1707
- }
1764
+ "options": { "$ref": "#/definitions/ComplexityOptions" }
1765
+ },
1766
+ "additionalProperties": false
1767
+ },
1768
+ "RuleWithConsistentArrayTypeOptions": {
1769
+ "type": "object",
1770
+ "required": ["level", "options"],
1771
+ "properties": {
1772
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1773
+ "options": { "$ref": "#/definitions/ConsistentArrayTypeOptions" }
1774
+ },
1775
+ "additionalProperties": false
1776
+ },
1777
+ "RuleWithDeprecatedHooksOptions": {
1778
+ "type": "object",
1779
+ "required": ["level", "options"],
1780
+ "properties": {
1781
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1782
+ "options": { "$ref": "#/definitions/DeprecatedHooksOptions" }
1783
+ },
1784
+ "additionalProperties": false
1785
+ },
1786
+ "RuleWithFilenamingConventionOptions": {
1787
+ "type": "object",
1788
+ "required": ["level", "options"],
1789
+ "properties": {
1790
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1791
+ "options": { "$ref": "#/definitions/FilenamingConventionOptions" }
1792
+ },
1793
+ "additionalProperties": false
1794
+ },
1795
+ "RuleWithHooksOptions": {
1796
+ "type": "object",
1797
+ "required": ["level", "options"],
1798
+ "properties": {
1799
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1800
+ "options": { "$ref": "#/definitions/HooksOptions" }
1801
+ },
1802
+ "additionalProperties": false
1803
+ },
1804
+ "RuleWithNamingConventionOptions": {
1805
+ "type": "object",
1806
+ "required": ["level", "options"],
1807
+ "properties": {
1808
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1809
+ "options": { "$ref": "#/definitions/NamingConventionOptions" }
1810
+ },
1811
+ "additionalProperties": false
1812
+ },
1813
+ "RuleWithNoOptions": {
1814
+ "type": "object",
1815
+ "required": ["level", "options"],
1816
+ "properties": {
1817
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1818
+ "options": { "type": "null" }
1819
+ },
1820
+ "additionalProperties": false
1821
+ },
1822
+ "RuleWithRestrictedGlobalsOptions": {
1823
+ "type": "object",
1824
+ "required": ["level", "options"],
1825
+ "properties": {
1826
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1827
+ "options": { "$ref": "#/definitions/RestrictedGlobalsOptions" }
1828
+ },
1829
+ "additionalProperties": false
1830
+ },
1831
+ "RuleWithRestrictedImportsOptions": {
1832
+ "type": "object",
1833
+ "required": ["level", "options"],
1834
+ "properties": {
1835
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1836
+ "options": { "$ref": "#/definitions/RestrictedImportsOptions" }
1837
+ },
1838
+ "additionalProperties": false
1839
+ },
1840
+ "RuleWithUtilityClassSortingOptions": {
1841
+ "type": "object",
1842
+ "required": ["level", "options"],
1843
+ "properties": {
1844
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1845
+ "options": { "$ref": "#/definitions/UtilityClassSortingOptions" }
1846
+ },
1847
+ "additionalProperties": false
1848
+ },
1849
+ "RuleWithValidAriaRoleOptions": {
1850
+ "type": "object",
1851
+ "required": ["level", "options"],
1852
+ "properties": {
1853
+ "level": { "$ref": "#/definitions/RulePlainConfiguration" },
1854
+ "options": { "$ref": "#/definitions/ValidAriaRoleOptions" }
1708
1855
  },
1709
1856
  "additionalProperties": false
1710
1857
  },
@@ -1768,13 +1915,47 @@
1768
1915
  { "type": "null" }
1769
1916
  ]
1770
1917
  },
1918
+ "noGlobalEval": {
1919
+ "description": "Disallow the use of global eval().",
1920
+ "anyOf": [
1921
+ { "$ref": "#/definitions/RuleConfiguration" },
1922
+ { "type": "null" }
1923
+ ]
1924
+ },
1771
1925
  "recommended": {
1772
1926
  "description": "It enables the recommended rules for this group",
1773
1927
  "type": ["boolean", "null"]
1774
1928
  }
1775
- }
1929
+ },
1930
+ "additionalProperties": false
1776
1931
  },
1777
1932
  "Semicolons": { "type": "string", "enum": ["always", "asNeeded"] },
1933
+ "StableHookResult": {
1934
+ "oneOf": [
1935
+ {
1936
+ "description": "Used to indicate the hook does not have a stable result.",
1937
+ "type": "string",
1938
+ "enum": ["None"]
1939
+ },
1940
+ {
1941
+ "description": "Used to indicate the identity of the result value is stable.\n\nNote this does not imply internal stability. For instance, the ref objects returned by React's `useRef()` always have a stable identity, but their internal value may be mutable.",
1942
+ "type": "string",
1943
+ "enum": ["Identity"]
1944
+ },
1945
+ {
1946
+ "description": "Used to indicate the hook returns an array and some of its indices have stable identities.\n\nFor example, React's `useState()` hook returns a stable function at index 1.",
1947
+ "type": "object",
1948
+ "required": ["Indices"],
1949
+ "properties": {
1950
+ "Indices": {
1951
+ "type": "array",
1952
+ "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }
1953
+ }
1954
+ },
1955
+ "additionalProperties": false
1956
+ }
1957
+ ]
1958
+ },
1778
1959
  "StringSet": {
1779
1960
  "type": "array",
1780
1961
  "items": { "type": "string" },
@@ -1861,7 +2042,7 @@
1861
2042
  "noRestrictedGlobals": {
1862
2043
  "description": "This rule allows you to specify global variable names that you don’t want to use in your application.",
1863
2044
  "anyOf": [
1864
- { "$ref": "#/definitions/RuleConfiguration" },
2045
+ { "$ref": "#/definitions/RestrictedGlobalsConfiguration" },
1865
2046
  { "type": "null" }
1866
2047
  ]
1867
2048
  },
@@ -1918,6 +2099,13 @@
1918
2099
  { "type": "null" }
1919
2100
  ]
1920
2101
  },
2102
+ "useConsistentArrayType": {
2103
+ "description": "Require consistently using either T[] or Array<T>",
2104
+ "anyOf": [
2105
+ { "$ref": "#/definitions/ConsistentArrayTypeConfiguration" },
2106
+ { "type": "null" }
2107
+ ]
2108
+ },
1921
2109
  "useConst": {
1922
2110
  "description": "Require const declarations for variables that are never reassigned after declared.",
1923
2111
  "anyOf": [
@@ -1946,6 +2134,27 @@
1946
2134
  { "type": "null" }
1947
2135
  ]
1948
2136
  },
2137
+ "useExportType": {
2138
+ "description": "Promotes the use of export type for types.",
2139
+ "anyOf": [
2140
+ { "$ref": "#/definitions/RuleConfiguration" },
2141
+ { "type": "null" }
2142
+ ]
2143
+ },
2144
+ "useFilenamingConvention": {
2145
+ "description": "Enforce naming conventions for JavaScript and TypeScript filenames.",
2146
+ "anyOf": [
2147
+ { "$ref": "#/definitions/FilenamingConventionConfiguration" },
2148
+ { "type": "null" }
2149
+ ]
2150
+ },
2151
+ "useForOf": {
2152
+ "description": "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array.",
2153
+ "anyOf": [
2154
+ { "$ref": "#/definitions/RuleConfiguration" },
2155
+ { "type": "null" }
2156
+ ]
2157
+ },
1949
2158
  "useFragmentSyntax": {
1950
2159
  "description": "This rule enforces the use of <>...</> over <Fragment>...</Fragment>.",
1951
2160
  "anyOf": [
@@ -1953,6 +2162,13 @@
1953
2162
  { "type": "null" }
1954
2163
  ]
1955
2164
  },
2165
+ "useImportType": {
2166
+ "description": "Promotes the use of import type for types.",
2167
+ "anyOf": [
2168
+ { "$ref": "#/definitions/RuleConfiguration" },
2169
+ { "type": "null" }
2170
+ ]
2171
+ },
1956
2172
  "useLiteralEnumMembers": {
1957
2173
  "description": "Require all enum members to be literal values.",
1958
2174
  "anyOf": [
@@ -1962,6 +2178,20 @@
1962
2178
  },
1963
2179
  "useNamingConvention": {
1964
2180
  "description": "Enforce naming conventions for everything across a codebase.",
2181
+ "anyOf": [
2182
+ { "$ref": "#/definitions/NamingConventionConfiguration" },
2183
+ { "type": "null" }
2184
+ ]
2185
+ },
2186
+ "useNodejsImportProtocol": {
2187
+ "description": "Enforces using the node: protocol for Node.js builtin modules.",
2188
+ "anyOf": [
2189
+ { "$ref": "#/definitions/RuleConfiguration" },
2190
+ { "type": "null" }
2191
+ ]
2192
+ },
2193
+ "useNumberNamespace": {
2194
+ "description": "Use the Number properties instead of global ones.",
1965
2195
  "anyOf": [
1966
2196
  { "$ref": "#/definitions/RuleConfiguration" },
1967
2197
  { "type": "null" }
@@ -1995,6 +2225,13 @@
1995
2225
  { "type": "null" }
1996
2226
  ]
1997
2227
  },
2228
+ "useShorthandFunctionType": {
2229
+ "description": "Enforce using function types instead of object type with call signatures.",
2230
+ "anyOf": [
2231
+ { "$ref": "#/definitions/RuleConfiguration" },
2232
+ { "type": "null" }
2233
+ ]
2234
+ },
1998
2235
  "useSingleCaseStatement": {
1999
2236
  "description": "Enforces switch clauses have a single statement, emits a quick fix wrapping the statements in a block.",
2000
2237
  "anyOf": [
@@ -2023,7 +2260,8 @@
2023
2260
  { "type": "null" }
2024
2261
  ]
2025
2262
  }
2026
- }
2263
+ },
2264
+ "additionalProperties": false
2027
2265
  },
2028
2266
  "Suspicious": {
2029
2267
  "description": "A list of rules that belong to this group",
@@ -2034,7 +2272,7 @@
2034
2272
  "type": ["boolean", "null"]
2035
2273
  },
2036
2274
  "noApproximativeNumericConstant": {
2037
- "description": "Usually, the definition in the standard library is more precise than what people come up with or the used constant exceeds the maximum precision of the number type.",
2275
+ "description": "Use standard constants instead of approximated literals.",
2038
2276
  "anyOf": [
2039
2277
  { "$ref": "#/definitions/RuleConfiguration" },
2040
2278
  { "type": "null" }
@@ -2173,6 +2411,13 @@
2173
2411
  { "type": "null" }
2174
2412
  ]
2175
2413
  },
2414
+ "noEmptyBlockStatements": {
2415
+ "description": "Disallow empty block statements and static blocks.",
2416
+ "anyOf": [
2417
+ { "$ref": "#/definitions/RuleConfiguration" },
2418
+ { "type": "null" }
2419
+ ]
2420
+ },
2176
2421
  "noEmptyInterface": {
2177
2422
  "description": "Disallow the declaration of empty interfaces.",
2178
2423
  "anyOf": [
@@ -2208,6 +2453,13 @@
2208
2453
  { "type": "null" }
2209
2454
  ]
2210
2455
  },
2456
+ "noGlobalAssign": {
2457
+ "description": "Disallow assignments to native objects and read-only global variables.",
2458
+ "anyOf": [
2459
+ { "$ref": "#/definitions/RuleConfiguration" },
2460
+ { "type": "null" }
2461
+ ]
2462
+ },
2211
2463
  "noGlobalIsFinite": {
2212
2464
  "description": "Use Number.isFinite instead of global isFinite.",
2213
2465
  "anyOf": [
@@ -2243,6 +2495,13 @@
2243
2495
  { "type": "null" }
2244
2496
  ]
2245
2497
  },
2498
+ "noMisleadingCharacterClass": {
2499
+ "description": "Disallow characters made with multiple code points in character class syntax.",
2500
+ "anyOf": [
2501
+ { "$ref": "#/definitions/RuleConfiguration" },
2502
+ { "type": "null" }
2503
+ ]
2504
+ },
2246
2505
  "noMisleadingInstantiator": {
2247
2506
  "description": "Enforce proper usage of new and constructor.",
2248
2507
  "anyOf": [
@@ -2299,6 +2558,13 @@
2299
2558
  { "type": "null" }
2300
2559
  ]
2301
2560
  },
2561
+ "noThenProperty": {
2562
+ "description": "Disallow then property.",
2563
+ "anyOf": [
2564
+ { "$ref": "#/definitions/RuleConfiguration" },
2565
+ { "type": "null" }
2566
+ ]
2567
+ },
2302
2568
  "noUnsafeDeclarationMerging": {
2303
2569
  "description": "Disallow unsafe declaration merging between interfaces and classes.",
2304
2570
  "anyOf": [
@@ -2317,6 +2583,13 @@
2317
2583
  "description": "It enables the recommended rules for this group",
2318
2584
  "type": ["boolean", "null"]
2319
2585
  },
2586
+ "useAwait": {
2587
+ "description": "Ensure async functions utilize await.",
2588
+ "anyOf": [
2589
+ { "$ref": "#/definitions/RuleConfiguration" },
2590
+ { "type": "null" }
2591
+ ]
2592
+ },
2320
2593
  "useDefaultSwitchClauseLast": {
2321
2594
  "description": "Enforce default clauses in switch statements to be last",
2322
2595
  "anyOf": [
@@ -2352,7 +2625,8 @@
2352
2625
  { "type": "null" }
2353
2626
  ]
2354
2627
  }
2355
- }
2628
+ },
2629
+ "additionalProperties": false
2356
2630
  },
2357
2631
  "TrailingComma": {
2358
2632
  "description": "Print trailing commas wherever possible in multi-line comma-separated syntactic structures.",
@@ -2374,6 +2648,48 @@
2374
2648
  }
2375
2649
  ]
2376
2650
  },
2651
+ "TrailingCommas": {
2652
+ "oneOf": [
2653
+ {
2654
+ "description": "The formatter will remove the trailing comma",
2655
+ "type": "string",
2656
+ "enum": ["none"]
2657
+ },
2658
+ {
2659
+ "description": "The trailing comma is allowed and advised",
2660
+ "type": "string",
2661
+ "enum": ["all"]
2662
+ }
2663
+ ]
2664
+ },
2665
+ "UtilityClassSortingConfiguration": {
2666
+ "anyOf": [
2667
+ { "$ref": "#/definitions/RulePlainConfiguration" },
2668
+ { "$ref": "#/definitions/RuleWithUtilityClassSortingOptions" }
2669
+ ]
2670
+ },
2671
+ "UtilityClassSortingOptions": {
2672
+ "type": "object",
2673
+ "properties": {
2674
+ "attributes": {
2675
+ "description": "Additional attributes that will be sorted.",
2676
+ "type": ["array", "null"],
2677
+ "items": { "type": "string" }
2678
+ },
2679
+ "functions": {
2680
+ "description": "Names of the functions or tagged templates that will be sorted.",
2681
+ "type": ["array", "null"],
2682
+ "items": { "type": "string" }
2683
+ }
2684
+ },
2685
+ "additionalProperties": false
2686
+ },
2687
+ "ValidAriaRoleConfiguration": {
2688
+ "anyOf": [
2689
+ { "$ref": "#/definitions/RulePlainConfiguration" },
2690
+ { "$ref": "#/definitions/RuleWithValidAriaRoleOptions" }
2691
+ ]
2692
+ },
2377
2693
  "ValidAriaRoleOptions": {
2378
2694
  "type": "object",
2379
2695
  "required": ["allowInvalidRoles", "ignoreNonDom"],
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@biomejs/biome","version":"1.5.3","bin":"bin/biome","scripts":{"postinstall":"node scripts/postinstall.js"},"homepage":"https://biomejs.dev","repository":{"type":"git","url":"https://github.com/biomejs/biome.git","directory":"packages/@biomejs/biome"},"author":"Emanuele Stoppa","license":"MIT OR Apache-2.0","bugs":"https://github.com/biomejs/biome/issues","description":"Biome is a toolchain for the web: formatter, linter and more","files":["bin/biome","scripts/postinstall.js","configuration_schema.json","README.md","LICENSE-APACHE","LICENSE-MIT","ROME-LICENSE-MIT"],"keywords":["JavaScript","TypeScript","format","lint","toolchain","JSON"],"engines":{"node":">=14.*"},"funding":{"type":"opencollective","url":"https://opencollective.com/biome"},"optionalDependencies":{"@biomejs/cli-win32-x64":"1.5.3","@biomejs/cli-win32-arm64":"1.5.3","@biomejs/cli-darwin-x64":"1.5.3","@biomejs/cli-darwin-arm64":"1.5.3","@biomejs/cli-linux-x64":"1.5.3","@biomejs/cli-linux-arm64":"1.5.3","@biomejs/cli-linux-x64-musl":"1.5.3","@biomejs/cli-linux-arm64-musl":"1.5.3"}}
1
+ {"name":"@biomejs/biome","version":"1.6.0","bin":"bin/biome","scripts":{"postinstall":"node scripts/postinstall.js"},"homepage":"https://biomejs.dev","repository":{"type":"git","url":"https://github.com/biomejs/biome.git","directory":"packages/@biomejs/biome"},"author":"Emanuele Stoppa","license":"MIT OR Apache-2.0","bugs":"https://github.com/biomejs/biome/issues","description":"Biome is a toolchain for the web: formatter, linter and more","files":["bin/biome","scripts/postinstall.js","configuration_schema.json","README.md","LICENSE-APACHE","LICENSE-MIT","ROME-LICENSE-MIT"],"keywords":["JavaScript","TypeScript","format","lint","toolchain","JSON"],"engines":{"node":">=14.*"},"funding":{"type":"opencollective","url":"https://opencollective.com/biome"},"optionalDependencies":{"@biomejs/cli-win32-x64":"1.6.0","@biomejs/cli-win32-arm64":"1.6.0","@biomejs/cli-darwin-x64":"1.6.0","@biomejs/cli-darwin-arm64":"1.6.0","@biomejs/cli-linux-x64":"1.6.0","@biomejs/cli-linux-arm64":"1.6.0","@biomejs/cli-linux-x64-musl":"1.6.0","@biomejs/cli-linux-arm64-musl":"1.6.0"}}