@dvashim/biome-config 1.9.1 → 1.10.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.md CHANGED
@@ -48,7 +48,7 @@ or pnpm:
48
48
  pnpm add -D @dvashim/biome-config @biomejs/biome
49
49
  ```
50
50
 
51
- > **Requirements:** Biome **2.4.16+** (the version these presets target) and Node.js **>= 24**.
51
+ > **Requirements:** Biome **2.5.1+** (the version these presets target) and Node.js **>= 24**.
52
52
 
53
53
  ## Configurations
54
54
 
@@ -85,7 +85,7 @@ All configurations share the same base defaults.
85
85
 
86
86
  ### Schema
87
87
 
88
- `https://biomejs.dev/schemas/2.4.16/schema.json`
88
+ `https://biomejs.dev/schemas/2.5.1/schema.json`
89
89
 
90
90
  ### Formatter
91
91
 
@@ -179,41 +179,45 @@ Same as base recommended, plus enables the **React domain** (`"react": "recommen
179
179
 
180
180
  ### React strict
181
181
 
182
- The most opinionated configuration. Enables all recommended rules plus **200+ optional and nursery rules** across 8 categories. Every non-recommended JS/TS rule available in Biome is explicitly configured.
182
+ The most opinionated configuration. Enables all recommended rules plus **~250 optional and nursery rules** across 8 categories. Every non-recommended rule that applies to JavaScript/TypeScript/JSX, CSS, HTML, or the **React, Next.js, and React Native** domains is explicitly configured. Rules exclusive to GraphQL or other frameworks (Vue, Solid, Qwik, Svelte) are intentionally omitted.
183
183
 
184
- - **a11y** — Selectively disables noisy rules (`useButtonType`, `useKeyWithClickEvents`, `useSemanticElements`, `noStaticElementInteractions`, `noNoninteractiveElementToInteractiveRole`) and downgrades `useFocusableInteractive` to `info`, while keeping the rest at recommended defaults.
184
+ - **a11y** — Selectively disables noisy rules (`useButtonType`, `useKeyWithClickEvents`, `useSemanticElements`, `noStaticElementInteractions`, `noNoninteractiveElementToInteractiveRole`) and downgrades `useFocusableInteractive` to `info`, while keeping the rest at recommended defaults. Adds `noAmbiguousAnchorText` (promoted from nursery in Biome 2.5.0) and `noNoninteractiveElementInteractions`.
185
185
 
186
- - **complexity** (12 rules) — Monitors cognitive complexity, function length, nested test suites, and logic expressions. Warns on `forEach`, implicit coercions, `void`, and useless patterns.
186
+ - **complexity** (16 rules) — Monitors cognitive complexity, function length, nested test suites, and logic expressions. Warns on `forEach`, implicit coercions, `void`, and useless patterns. Also prefers `Array#find` (`useArrayFind`) and flags useless returns (`noUselessReturn`), redundant default exports (`noRedundantDefaultExport`), and division-like regexes (`noDivRegex`).
187
187
 
188
- - **correctness** (12 rules) — Ensures no undeclared variables/dependencies, proper React patterns (`noReactPropAssignments`, `noNestedComponentDefinitions`), Node.js guards (`noNodejsModules`, `noProcessGlobal`, `noGlobalDirnameFilename`), and JSON import attributes. `noUnresolvedImports` is disabled since TypeScript already performs these checks.
188
+ - **correctness** (25 rules) — Ensures no undeclared variables/dependencies, proper React patterns (`noReactPropAssignments`, `noNestedComponentDefinitions`, `noChildrenProp`, `noRenderReturnValue`), React Hooks correctness (`useExhaustiveDependencies`, `useHookAtTopLevel`, `useJsxKeyInIterable`), Node.js guards (`noNodejsModules`, `noProcessGlobal`, `noGlobalDirnameFilename`), and JSON import attributes. `noUnresolvedImports` is disabled since TypeScript already performs these checks. Also flags duplicate JSX attributes (`noDuplicateAttributes`), duplicate enum member names (`noDuplicateEnumValueNames`), unused `new` expressions (`noUnusedInstantiation`), restricted imports/elements (`noPrivateImports`, `noRestrictedElements`), and Next.js issues (`noNextAsyncClientComponent`, `useInlineScriptId`, `noBeforeInteractiveScriptOutsideDocument`).
189
189
 
190
- - **nursery** (100 rules) — Opts into all experimental rules. Highlights include:
191
- - **Errors:** `noJsxPropsBind`, `noLeakedRender`, `noMisusedPromises`, `noMultiAssign`, `noMultiStr`, `noParametersOnlyUsedInRecursion`
192
- - **Complexity:** `noExcessiveClassesPerFile`, `noExcessiveLinesPerFile`, `noExcessiveNestedCallbacks`
193
- - **Promises:** `noFloatingPromises`, `noNestedPromises`, `useAwaitThenable`
194
- - **TypeScript:** `useConsistentEnumValueType`, `useConsistentMethodSignatures`, `useExhaustiveSwitchCases`, `useExplicitReturnType`, `noMisleadingReturnType`, `noUselessTypeConversion`, `useNullishCoalescing`, `useReduceTypeParameter`
190
+ - **nursery** (71 rules) — Opts into all experimental rules. Highlights include:
191
+ - **Errors:** `noMisusedPromises`
192
+ - **Complexity:** `noExcessiveNestedCallbacks`
193
+ - **Promises:** `noFloatingPromises`, `useAwaitThenable`
194
+ - **TypeScript:** `useExhaustiveSwitchCases`, `useExplicitReturnType`, `noMisleadingReturnType`, `noUselessTypeConversion`, `useNullishCoalescing`, `useReduceTypeParameter`
195
195
  - **Object/class hygiene:** `noBaseToString` (catches accidental `"[object Object]"` stringification), `useThisInClassMethods`
196
196
  - **Resource management:** `useDisposables` (enforces `using` for `Disposable`/`AsyncDisposable`)
197
+ - **Arrays:** `useArraySome`, `useIncludes` (prefer `Array#includes()` over `indexOf()` — new in Biome 2.5.0)
197
198
  - **Regex:** `useNamedCaptureGroup`, `useUnicodeRegex`, `useRegexpExec`, `useRegexpTest`
198
199
  - **DOM:** `useDomNodeTextContent`, `useDomQuerySelector`
199
200
  - **Math:** `useMathMinMax`
200
- - **Styling:** `noDuplicateSelectors`, `noInlineStyles`, `noExcessiveSelectorClasses`
201
+ - **Styling:** `noDuplicateSelectors`, `noInlineStyles`, `noExcessiveSelectorClasses`, `noUndeclaredClasses`, `noUnusedClasses`
201
202
  - **Testing:** `useConsistentTestIt`, `useExpect`, `noConditionalExpect`, `noIdenticalTestTitle`, `useTestHooksInOrder`, `useTestHooksOnTop`
202
203
  - **Playwright:** Full suite of 11 Playwright rules
203
204
  - **Drizzle:** `noDrizzleDeleteWithoutWhere`, `noDrizzleUpdateWithoutWhere`
204
- - **Tailwind:** `useSortedClasses`, `noFloatingClasses`
205
- - **React:** `useReactAsyncServerFunction`, `noComponentHookFactories`, `noJsxNamespace`, `noReactStringRefs`
205
+ - **Tailwind:** `useSortedClasses`
206
+ - **React:** `useReactAsyncServerFunction`, `noComponentHookFactories`, `noJsxNamespace`, `noReactStringRefs`, `useReactFunctionComponentDefinition`
207
+ - **React Native:** `noReactNativeRawText`, `noReactNativeLiteralColors`, `noReactNativeDeepImports`, `useReactNativePlatformComponents`
206
208
  - **Security:** `useIframeSandbox`
207
- - **Dependencies:** `noUntrustedLicenses`
208
- - **Disabled:** `noTernary`, `useExplicitType`
209
+ - **Dependencies:** `noUntrustedLicenses`, `noRestrictedDependencies`
210
+ - **Disabled:** `useExplicitType`
209
211
 
210
- - **performance** (6 rules) Warns on `await` in loops, barrel files, `delete`, namespace imports, re-export all, and non-top-level regex.
212
+ > Biome 2.5.0 graduated many rules out of nursery; the rules that previously lived here are now configured under their stable categories above (and consequently appear in the `-stable` variants).
211
213
 
212
- - **security** — `noSecrets`
214
+ - **performance** (11 rules) Warns on `await` in loops, barrel files, `delete`, namespace imports, re-export all, non-top-level regex, synchronous scripts (`noSyncScripts`), and binding props in JSX (`noJsxPropsBind`, error). Adds Next.js performance rules (`noImgElement`, `noUnwantedPolyfillio`, `useGoogleFontPreconnect`).
213
215
 
214
- - **style** (56 rules) — Enforces consistent syntax, naming conventions (`strictCase: true`), array shorthand syntax, `type` over `interface`, React function components, readonly class properties, `noDefaultExport`, `noMagicNumbers`, `noJsxLiterals`, and more.
216
+ - **security** (4 rules) — `noSecrets`, `noScriptUrl`, and React `dangerouslySetInnerHTML` guards (`noDangerouslySetInnerHtml`, `noDangerouslySetInnerHtmlWithChildren`)
215
217
 
216
- - **suspicious** (22 rules) — Flags `var` (error), `console`, `alert`, bitwise operators, empty blocks, import cycles, evolving types, skipped tests, and deprecated imports.
218
+ - **style** (76 rules) — Enforces consistent syntax, naming conventions (`strictCase: true`), array shorthand syntax, `type` over `interface`, React function components, readonly class properties, `noDefaultExport`, `noMagicNumbers`, `noJsxLiterals`, and more. Now also includes rules promoted from nursery in Biome 2.5.0, such as `noIncrementDecrement`, `noMultiAssign`, `noMultilineString`, `noTernary`, `useDestructuring`, `useErrorCause`, `useGlobalThis`, and `useSpreadOverApply`. Adds `noHexColors`, `noValueAtRule`, `useNodeAssertStrict`, the configurable `noRestrictedGlobals` / `noRestrictedImports` / `noRestrictedTypes` family, and the Next.js `noHeadElement` rule.
219
+
220
+ - **suspicious** (42 rules) — Flags `var` (error), `console`, `alert`, bitwise operators, empty blocks, import cycles, evolving types, skipped tests, and deprecated imports. Now also includes rules promoted from nursery in Biome 2.5.0, such as `noShadow`, `noUnnecessaryConditions`, `noForIn`, `noEqualsToNull`, `noLeakedRender`, and `noParametersOnlyUsedInRecursion`. Adds `noArrayIndexKey`, test-quality rules (`noFocusedTests`, `noDuplicateTestHooks`, `noExportsInTest`), `useDeprecatedDate`, `useRequiredScripts`, and Next.js document rules (`noDocumentImportInPage`, `noHeadImportInDocument`).
217
221
 
218
222
  ---
219
223
 
@@ -237,6 +241,7 @@ Same rule set as strict, with **targeted relaxations** to reduce false positives
237
241
  | `noBarrelFile` | warn | off | Common pattern in libraries |
238
242
  | `noNamespaceImport` | warn | off | Allows `import * as` |
239
243
  | `noReExportAll` | warn | off | Common pattern in libraries |
244
+ | `noImgElement` | warn | off | Next.js rule; fires on any `<img>` |
240
245
  | `noDefaultExport` | warn | off | Allows default exports |
241
246
  | `noImplicitBoolean` | warn | info | Informational only |
242
247
  | `noJsxLiterals` | warn | off | Allows inline text in JSX |
@@ -244,13 +249,13 @@ Same rule set as strict, with **targeted relaxations** to reduce false positives
244
249
  | `noNestedTernary` | warn | off | Allows nested ternaries |
245
250
  | `useNamingConvention` | strictCase: true | strictCase: false | More lenient casing |
246
251
 
247
- > `noContinue`, `noIncrementDecrement`, and `noUselessReturn` are nursery rules they are not present in the `-stable` variants.
252
+ > As of Biome 2.5.0, `noContinue`, `noIncrementDecrement`, and `noUselessReturn` graduated from nursery (to `style`/`complexity`), so these relaxations now also apply in the `-stable` variants.
248
253
 
249
254
  ---
250
255
 
251
256
  ### React balanced-stable
252
257
 
253
- Same as React balanced, but **without nursery (experimental) rules**. All non-nursery relaxations from the table above still apply.
258
+ Same as React balanced, but **without nursery (experimental) rules**. All relaxations from the table above still apply.
254
259
 
255
260
  ## FAQ
256
261
 
@@ -261,13 +266,13 @@ Same as React balanced, but **without nursery (experimental) rules**. All non-nu
261
266
 
262
267
  ### What version of Biome and Node do I need?
263
268
 
264
- These presets are built and tested against **Biome 2.4.16** — the version their `$schema` is pinned to (see [Defaults → Schema](#schema)) — and require **Node.js >= 24**. Biome is not bundled, so install a compatible version yourself:
269
+ These presets are built and tested against **Biome 2.5.1** — the version their `$schema` is pinned to (see [Defaults → Schema](#schema)) — and require **Node.js >= 24**. Biome is not bundled, so install a compatible version yourself:
265
270
 
266
271
  ```bash
267
- pnpm add -D @biomejs/biome@^2.4.16
272
+ pnpm add -D @biomejs/biome@^2.5.1
268
273
  ```
269
274
 
270
- The `$schema` in the examples uses `.../schemas/latest/schema.json` for convenience; pin it to `.../schemas/2.4.16/schema.json` to match the presets exactly and silence editor warnings about unknown fields.
275
+ The `$schema` in the examples uses `.../schemas/latest/schema.json` for convenience; pin it to `.../schemas/2.5.1/schema.json` to match the presets exactly and silence editor warnings about unknown fields.
271
276
 
272
277
  ### How do I override a rule from the preset?
273
278
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
3
3
 
4
4
  "assist": {
5
5
  "actions": {
@@ -61,6 +61,8 @@
61
61
  "linter": {
62
62
  "rules": {
63
63
  "a11y": {
64
+ "noAmbiguousAnchorText": "warn",
65
+ "noNoninteractiveElementInteractions": "warn",
64
66
  "noNoninteractiveElementToInteractiveRole": "off",
65
67
  "noStaticElementInteractions": "off",
66
68
  "useButtonType": "off",
@@ -69,14 +71,18 @@
69
71
  "useSemanticElements": "off"
70
72
  },
71
73
  "complexity": {
74
+ "noDivRegex": "warn",
72
75
  "noExcessiveCognitiveComplexity": "warn",
73
76
  "noExcessiveNestedTestSuites": "warn",
74
77
  "noForEach": "warn",
75
78
  "noImplicitCoercions": "off",
79
+ "noRedundantDefaultExport": "warn",
76
80
  "noUselessCatchBinding": "warn",
81
+ "noUselessReturn": "info",
77
82
  "noUselessStringConcat": "warn",
78
83
  "noUselessUndefined": "warn",
79
84
  "noVoid": "warn",
85
+ "useArrayFind": "warn",
80
86
  "useMaxParams": "warn",
81
87
  "useSimplifiedLogicExpression": "warn",
82
88
  "useWhile": "warn",
@@ -88,16 +94,29 @@
88
94
  }
89
95
  },
90
96
  "correctness": {
97
+ "noBeforeInteractiveScriptOutsideDocument": "warn",
98
+ "noChildrenProp": "warn",
99
+ "noDuplicateAttributes": "warn",
100
+ "noDuplicateEnumValueNames": "warn",
91
101
  "noGlobalDirnameFilename": "warn",
92
102
  "noNestedComponentDefinitions": "warn",
103
+ "noNextAsyncClientComponent": "warn",
93
104
  "noNodejsModules": "warn",
105
+ "noPrivateImports": "warn",
94
106
  "noProcessGlobal": "warn",
95
107
  "noReactPropAssignments": "warn",
108
+ "noRenderReturnValue": "warn",
109
+ "noRestrictedElements": "warn",
96
110
  "noUndeclaredDependencies": "warn",
97
111
  "noUndeclaredVariables": "warn",
98
112
  "noUnresolvedImports": "off",
113
+ "noUnusedInstantiation": "warn",
114
+ "useExhaustiveDependencies": "warn",
115
+ "useHookAtTopLevel": "warn",
99
116
  "useImportExtensions": "off",
117
+ "useInlineScriptId": "warn",
100
118
  "useJsonImportAttributes": "warn",
119
+ "useJsxKeyInIterable": "warn",
101
120
  "useSingleJsDocAsterisk": "warn",
102
121
  "useUniqueElementIds": "warn"
103
122
  },
@@ -105,33 +124,53 @@
105
124
  "noAwaitInLoops": "warn",
106
125
  "noBarrelFile": "off",
107
126
  "noDelete": "warn",
127
+ "noImgElement": "off",
128
+ "noJsxPropsBind": "error",
108
129
  "noNamespaceImport": "off",
109
130
  "noReExportAll": "off",
131
+ "noSyncScripts": "warn",
132
+ "noUnwantedPolyfillio": "warn",
133
+ "useGoogleFontPreconnect": "warn",
110
134
  "useTopLevelRegex": "warn"
111
135
  },
112
136
  "security": {
137
+ "noDangerouslySetInnerHtml": "warn",
138
+ "noDangerouslySetInnerHtmlWithChildren": "warn",
139
+ "noScriptUrl": "warn",
113
140
  "noSecrets": "warn"
114
141
  },
115
142
  "style": {
116
143
  "noCommonJs": "warn",
144
+ "noContinue": "info",
117
145
  "noDefaultExport": "off",
118
146
  "noDoneCallback": "warn",
119
147
  "noEnum": "warn",
148
+ "noExcessiveClassesPerFile": "warn",
149
+ "noExcessiveLinesPerFile": "warn",
120
150
  "noExportedImports": "warn",
151
+ "noHeadElement": "warn",
152
+ "noHexColors": "warn",
121
153
  "noImplicitBoolean": "info",
122
154
  "noInferrableTypes": "warn",
123
155
  "noJsxLiterals": "off",
124
156
  "noMagicNumbers": "info",
157
+ "noMultiAssign": "error",
158
+ "noMultilineString": "error",
125
159
  "noNamespace": "warn",
126
160
  "noNegationElse": "warn",
127
161
  "noNestedTernary": "off",
128
162
  "noParameterAssign": "warn",
129
163
  "noParameterProperties": "warn",
130
164
  "noProcessEnv": "warn",
165
+ "noRestrictedGlobals": "warn",
166
+ "noRestrictedImports": "warn",
167
+ "noRestrictedTypes": "warn",
131
168
  "noShoutyConstants": "warn",
132
169
  "noSubstr": "warn",
170
+ "noTernary": "off",
133
171
  "noUnusedTemplateLiteral": "warn",
134
172
  "noUselessElse": "warn",
173
+ "noValueAtRule": "warn",
135
174
  "noYodaExpression": "warn",
136
175
  "useAsConstAssertion": "warn",
137
176
  "useAtIndex": "warn",
@@ -142,17 +181,23 @@
142
181
  "useConsistentArrowReturn": "warn",
143
182
  "useConsistentBuiltinInstantiation": "warn",
144
183
  "useConsistentCurlyBraces": "warn",
184
+ "useConsistentEnumValueType": "warn",
145
185
  "useConsistentMemberAccessibility": "warn",
186
+ "useConsistentMethodSignatures": "warn",
146
187
  "useConsistentObjectDefinitions": "warn",
147
188
  "useDefaultParameterLast": "warn",
148
189
  "useDefaultSwitchClause": "warn",
190
+ "useDestructuring": "warn",
149
191
  "useEnumInitializers": "warn",
192
+ "useErrorCause": "warn",
150
193
  "useExplicitLengthCheck": "warn",
151
194
  "useExportsLast": "warn",
152
195
  "useFilenamingConvention": "warn",
153
196
  "useForOf": "warn",
154
197
  "useFragmentSyntax": "warn",
198
+ "useGlobalThis": "warn",
155
199
  "useGroupedAccessorPairs": "warn",
200
+ "useNodeAssertStrict": "warn",
156
201
  "useNumberNamespace": "warn",
157
202
  "useNumericSeparators": "warn",
158
203
  "useObjectSpread": "warn",
@@ -161,11 +206,18 @@
161
206
  "useSelfClosingElements": "warn",
162
207
  "useShorthandAssign": "warn",
163
208
  "useSingleVarDeclarator": "warn",
209
+ "useSpreadOverApply": "warn",
164
210
  "useSymbolDescription": "warn",
165
211
  "useThrowNewError": "warn",
166
212
  "useThrowOnlyError": "warn",
167
213
  "useTrimStartEnd": "warn",
168
214
  "useUnifiedTypeSignatures": "warn",
215
+ "noIncrementDecrement": {
216
+ "level": "warn",
217
+ "options": {
218
+ "allowForLoopAfterthoughts": true
219
+ }
220
+ },
169
221
  "useConsistentArrayType": {
170
222
  "level": "warn",
171
223
  "options": {
@@ -188,25 +240,45 @@
188
240
  },
189
241
  "suspicious": {
190
242
  "noAlert": "warn",
243
+ "noArrayIndexKey": "warn",
191
244
  "noBitwiseOperators": "warn",
192
245
  "noConsole": "warn",
193
246
  "noConstantBinaryExpressions": "warn",
194
247
  "noDeprecatedImports": "warn",
248
+ "noDocumentImportInPage": "warn",
195
249
  "noDuplicateDependencies": "warn",
250
+ "noDuplicatedSpreadProps": "warn",
251
+ "noDuplicateTestHooks": "warn",
196
252
  "noEmptyBlockStatements": "warn",
197
253
  "noEmptySource": "warn",
254
+ "noEqualsToNull": "warn",
198
255
  "noEvolvingTypes": "warn",
256
+ "noExportsInTest": "warn",
257
+ "noFocusedTests": "warn",
258
+ "noForIn": "warn",
259
+ "noHeadImportInDocument": "warn",
199
260
  "noImportCycles": "warn",
261
+ "noLeakedRender": "error",
200
262
  "noMisplacedAssertion": "warn",
263
+ "noNestedPromises": "warn",
264
+ "noParametersOnlyUsedInRecursion": "error",
201
265
  "noReactForwardRef": "warn",
266
+ "noReturnAssign": "warn",
267
+ "noShadow": "warn",
202
268
  "noSkippedTests": "warn",
203
269
  "noUnassignedVariables": "warn",
270
+ "noUndeclaredEnvVars": "warn",
271
+ "noUnknownAttribute": "warn",
272
+ "noUnnecessaryConditions": "warn",
204
273
  "noUnusedExpressions": "warn",
205
274
  "noVar": "error",
275
+ "useArraySortCompare": "warn",
206
276
  "useAwait": "warn",
277
+ "useDeprecatedDate": "warn",
207
278
  "useErrorMessage": "warn",
208
279
  "useGuardForIn": "warn",
209
280
  "useNumberToFixedDigitsArgument": "warn",
281
+ "useRequiredScripts": "warn",
210
282
  "useStaticResponseMethods": "warn",
211
283
  "useStrictMode": "warn"
212
284
  }
@@ -1,6 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
3
-
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
4
3
  "assist": {
5
4
  "actions": {
6
5
  "recommended": true,
@@ -9,11 +8,9 @@
9
8
  }
10
9
  }
11
10
  },
12
-
13
11
  "files": {
14
12
  "includes": ["**", "!!**/dist"]
15
13
  },
16
-
17
14
  "formatter": {
18
15
  "attributePosition": "auto",
19
16
  "bracketSameLine": false,
@@ -26,11 +23,9 @@
26
23
  "lineWidth": 80,
27
24
  "useEditorconfig": true
28
25
  },
29
-
30
26
  "html": {
31
27
  "experimentalFullSupportEnabled": true
32
28
  },
33
-
34
29
  "javascript": {
35
30
  "experimentalEmbeddedSnippetsEnabled": true,
36
31
  "globals": [],
@@ -50,17 +45,17 @@
50
45
  "unsafeParameterDecoratorsEnabled": false
51
46
  }
52
47
  },
53
-
54
48
  "json": {
55
49
  "parser": {
56
50
  "allowComments": true,
57
51
  "allowTrailingCommas": true
58
52
  }
59
53
  },
60
-
61
54
  "linter": {
62
55
  "rules": {
63
56
  "a11y": {
57
+ "noAmbiguousAnchorText": "warn",
58
+ "noNoninteractiveElementInteractions": "warn",
64
59
  "noNoninteractiveElementToInteractiveRole": "off",
65
60
  "noStaticElementInteractions": "off",
66
61
  "useButtonType": "off",
@@ -69,14 +64,18 @@
69
64
  "useSemanticElements": "off"
70
65
  },
71
66
  "complexity": {
67
+ "noDivRegex": "warn",
72
68
  "noExcessiveCognitiveComplexity": "warn",
73
69
  "noExcessiveNestedTestSuites": "warn",
74
70
  "noForEach": "warn",
75
71
  "noImplicitCoercions": "off",
72
+ "noRedundantDefaultExport": "warn",
76
73
  "noUselessCatchBinding": "warn",
74
+ "noUselessReturn": "info",
77
75
  "noUselessStringConcat": "warn",
78
76
  "noUselessUndefined": "warn",
79
77
  "noVoid": "warn",
78
+ "useArrayFind": "warn",
80
79
  "useMaxParams": "warn",
81
80
  "useSimplifiedLogicExpression": "warn",
82
81
  "useWhile": "warn",
@@ -88,56 +87,51 @@
88
87
  }
89
88
  },
90
89
  "correctness": {
90
+ "noBeforeInteractiveScriptOutsideDocument": "warn",
91
+ "noChildrenProp": "warn",
92
+ "noDuplicateAttributes": "warn",
93
+ "noDuplicateEnumValueNames": "warn",
91
94
  "noGlobalDirnameFilename": "warn",
92
95
  "noNestedComponentDefinitions": "warn",
96
+ "noNextAsyncClientComponent": "warn",
93
97
  "noNodejsModules": "warn",
98
+ "noPrivateImports": "warn",
94
99
  "noProcessGlobal": "warn",
95
100
  "noReactPropAssignments": "warn",
101
+ "noRenderReturnValue": "warn",
102
+ "noRestrictedElements": "warn",
96
103
  "noUndeclaredDependencies": "warn",
97
104
  "noUndeclaredVariables": "warn",
98
105
  "noUnresolvedImports": "off",
106
+ "noUnusedInstantiation": "warn",
107
+ "useExhaustiveDependencies": "warn",
108
+ "useHookAtTopLevel": "warn",
99
109
  "useImportExtensions": "off",
110
+ "useInlineScriptId": "warn",
100
111
  "useJsonImportAttributes": "warn",
112
+ "useJsxKeyInIterable": "warn",
101
113
  "useSingleJsDocAsterisk": "warn",
102
114
  "useUniqueElementIds": "warn"
103
115
  },
104
116
  "nursery": {
105
- "noAmbiguousAnchorText": "warn",
106
117
  "noBaseToString": "warn",
107
118
  "noComponentHookFactories": "warn",
108
119
  "noConditionalExpect": "warn",
109
- "noContinue": "info",
110
- "noDivRegex": "warn",
111
120
  "noDrizzleDeleteWithoutWhere": "warn",
112
121
  "noDrizzleUpdateWithoutWhere": "warn",
113
- "noDuplicateAttributes": "warn",
114
- "noDuplicatedSpreadProps": "warn",
115
- "noDuplicateEnumValueNames": "warn",
116
- "noDuplicateEnumValues": "warn",
117
122
  "noDuplicateSelectors": "warn",
118
123
  "noEmptyObjectKeys": "warn",
119
- "noEqualsToNull": "warn",
120
- "noExcessiveClassesPerFile": "warn",
121
- "noExcessiveLinesPerFile": "warn",
122
124
  "noExcessiveNestedCallbacks": "warn",
123
125
  "noExcessiveSelectorClasses": "warn",
124
- "noFloatingClasses": "warn",
125
126
  "noFloatingPromises": "warn",
126
- "noForIn": "warn",
127
127
  "noIdenticalTestTitle": "warn",
128
128
  "noImpliedEval": "warn",
129
129
  "noInlineStyles": "warn",
130
130
  "noJsxLeakedDollar": "warn",
131
131
  "noJsxNamespace": "warn",
132
- "noJsxPropsBind": "error",
133
- "noLeakedRender": "error",
134
132
  "noLoopFunc": "warn",
135
133
  "noMisleadingReturnType": "warn",
136
134
  "noMisusedPromises": "error",
137
- "noMultiAssign": "error",
138
- "noMultiStr": "error",
139
- "noNestedPromises": "warn",
140
- "noParametersOnlyUsedInRecursion": "error",
141
135
  "noPlaywrightElementHandle": "warn",
142
136
  "noPlaywrightEval": "warn",
143
137
  "noPlaywrightForceOption": "warn",
@@ -148,97 +142,101 @@
148
142
  "noPlaywrightWaitForNavigation": "warn",
149
143
  "noPlaywrightWaitForSelector": "warn",
150
144
  "noPlaywrightWaitForTimeout": "warn",
151
- "noProto": "warn",
145
+ "noReactNativeDeepImports": "warn",
146
+ "noReactNativeLiteralColors": "warn",
147
+ "noReactNativeRawText": "warn",
152
148
  "noReactStringRefs": "warn",
153
- "noRedundantDefaultExport": "warn",
154
- "noReturnAssign": "warn",
155
- "noScriptUrl": "warn",
156
- "noShadow": "warn",
157
- "noSyncScripts": "warn",
158
- "noTernary": "off",
149
+ "noRestrictedDependencies": "warn",
159
150
  "noTopLevelLiterals": "warn",
160
- "noUndeclaredEnvVars": "warn",
161
- "noUnknownAttribute": "warn",
162
- "noUnnecessaryConditions": "warn",
151
+ "noUndeclaredClasses": "warn",
163
152
  "noUnnecessaryTemplateExpression": "warn",
164
153
  "noUnsafePlusOperands": "warn",
165
154
  "noUntrustedLicenses": "warn",
166
- "noUselessReturn": "info",
155
+ "noUnusedClasses": "warn",
167
156
  "noUselessTypeConversion": "warn",
168
157
  "useArraySome": "warn",
169
- "useArraySortCompare": "warn",
170
158
  "useAwaitThenable": "warn",
171
159
  "useBaseline": "warn",
172
- "useConsistentEnumValueType": "warn",
173
- "useConsistentMethodSignatures": "warn",
174
160
  "useConsistentTestIt": "warn",
175
- "useDestructuring": "warn",
176
161
  "useDisposables": "warn",
177
162
  "useDomNodeTextContent": "warn",
178
163
  "useDomQuerySelector": "warn",
179
- "useErrorCause": "warn",
180
164
  "useExhaustiveSwitchCases": "warn",
181
165
  "useExpect": "warn",
182
166
  "useExplicitReturnType": "warn",
183
167
  "useExplicitType": "off",
184
- "useFind": "warn",
185
- "useGlobalThis": "warn",
186
168
  "useIframeSandbox": "warn",
187
169
  "useImportsFirst": "warn",
170
+ "useIncludes": "warn",
188
171
  "useMathMinMax": "warn",
189
172
  "useNamedCaptureGroup": "warn",
190
173
  "useNullishCoalescing": "warn",
191
174
  "usePlaywrightValidDescribeCallback": "warn",
192
175
  "useReactAsyncServerFunction": "warn",
176
+ "useReactFunctionComponentDefinition": "warn",
177
+ "useReactNativePlatformComponents": "warn",
193
178
  "useReduceTypeParameter": "warn",
194
179
  "useRegexpExec": "warn",
195
180
  "useRegexpTest": "warn",
196
181
  "useSortedClasses": "warn",
197
- "useSpread": "warn",
198
182
  "useStringStartsEndsWith": "warn",
199
183
  "useTestHooksInOrder": "warn",
200
184
  "useTestHooksOnTop": "warn",
201
185
  "useThisInClassMethods": "warn",
202
186
  "useUnicodeRegex": "warn",
203
- "useVarsOnTop": "warn",
204
- "noIncrementDecrement": {
205
- "level": "warn",
206
- "options": {
207
- "allowForLoopAfterthoughts": true
208
- }
209
- }
187
+ "useVarsOnTop": "warn"
210
188
  },
211
189
  "performance": {
212
190
  "noAwaitInLoops": "warn",
213
191
  "noBarrelFile": "off",
214
192
  "noDelete": "warn",
193
+ "noImgElement": "off",
194
+ "noJsxPropsBind": "error",
215
195
  "noNamespaceImport": "off",
216
196
  "noReExportAll": "off",
197
+ "noSyncScripts": "warn",
198
+ "noUnwantedPolyfillio": "warn",
199
+ "useGoogleFontPreconnect": "warn",
217
200
  "useTopLevelRegex": "warn"
218
201
  },
219
202
  "security": {
203
+ "noDangerouslySetInnerHtml": "warn",
204
+ "noDangerouslySetInnerHtmlWithChildren": "warn",
205
+ "noScriptUrl": "warn",
220
206
  "noSecrets": "warn"
221
207
  },
222
208
  "style": {
223
209
  "noCommonJs": "warn",
210
+ "noContinue": "info",
224
211
  "noDefaultExport": "off",
225
212
  "noDoneCallback": "warn",
226
213
  "noEnum": "warn",
214
+ "noExcessiveClassesPerFile": "warn",
215
+ "noExcessiveLinesPerFile": "warn",
227
216
  "noExportedImports": "warn",
217
+ "noHeadElement": "warn",
218
+ "noHexColors": "warn",
228
219
  "noImplicitBoolean": "info",
229
220
  "noInferrableTypes": "warn",
230
221
  "noJsxLiterals": "off",
231
222
  "noMagicNumbers": "info",
223
+ "noMultiAssign": "error",
224
+ "noMultilineString": "error",
232
225
  "noNamespace": "warn",
233
226
  "noNegationElse": "warn",
234
227
  "noNestedTernary": "off",
235
228
  "noParameterAssign": "warn",
236
229
  "noParameterProperties": "warn",
237
230
  "noProcessEnv": "warn",
231
+ "noRestrictedGlobals": "warn",
232
+ "noRestrictedImports": "warn",
233
+ "noRestrictedTypes": "warn",
238
234
  "noShoutyConstants": "warn",
239
235
  "noSubstr": "warn",
236
+ "noTernary": "off",
240
237
  "noUnusedTemplateLiteral": "warn",
241
238
  "noUselessElse": "warn",
239
+ "noValueAtRule": "warn",
242
240
  "noYodaExpression": "warn",
243
241
  "useAsConstAssertion": "warn",
244
242
  "useAtIndex": "warn",
@@ -249,17 +247,23 @@
249
247
  "useConsistentArrowReturn": "warn",
250
248
  "useConsistentBuiltinInstantiation": "warn",
251
249
  "useConsistentCurlyBraces": "warn",
250
+ "useConsistentEnumValueType": "warn",
252
251
  "useConsistentMemberAccessibility": "warn",
252
+ "useConsistentMethodSignatures": "warn",
253
253
  "useConsistentObjectDefinitions": "warn",
254
254
  "useDefaultParameterLast": "warn",
255
255
  "useDefaultSwitchClause": "warn",
256
+ "useDestructuring": "warn",
256
257
  "useEnumInitializers": "warn",
258
+ "useErrorCause": "warn",
257
259
  "useExplicitLengthCheck": "warn",
258
260
  "useExportsLast": "warn",
259
261
  "useFilenamingConvention": "warn",
260
262
  "useForOf": "warn",
261
263
  "useFragmentSyntax": "warn",
264
+ "useGlobalThis": "warn",
262
265
  "useGroupedAccessorPairs": "warn",
266
+ "useNodeAssertStrict": "warn",
263
267
  "useNumberNamespace": "warn",
264
268
  "useNumericSeparators": "warn",
265
269
  "useObjectSpread": "warn",
@@ -268,11 +272,18 @@
268
272
  "useSelfClosingElements": "warn",
269
273
  "useShorthandAssign": "warn",
270
274
  "useSingleVarDeclarator": "warn",
275
+ "useSpreadOverApply": "warn",
271
276
  "useSymbolDescription": "warn",
272
277
  "useThrowNewError": "warn",
273
278
  "useThrowOnlyError": "warn",
274
279
  "useTrimStartEnd": "warn",
275
280
  "useUnifiedTypeSignatures": "warn",
281
+ "noIncrementDecrement": {
282
+ "level": "warn",
283
+ "options": {
284
+ "allowForLoopAfterthoughts": true
285
+ }
286
+ },
276
287
  "useConsistentArrayType": {
277
288
  "level": "warn",
278
289
  "options": {
@@ -295,31 +306,50 @@
295
306
  },
296
307
  "suspicious": {
297
308
  "noAlert": "warn",
309
+ "noArrayIndexKey": "warn",
298
310
  "noBitwiseOperators": "warn",
299
311
  "noConsole": "warn",
300
312
  "noConstantBinaryExpressions": "warn",
301
313
  "noDeprecatedImports": "warn",
314
+ "noDocumentImportInPage": "warn",
302
315
  "noDuplicateDependencies": "warn",
316
+ "noDuplicatedSpreadProps": "warn",
317
+ "noDuplicateTestHooks": "warn",
303
318
  "noEmptyBlockStatements": "warn",
304
319
  "noEmptySource": "warn",
320
+ "noEqualsToNull": "warn",
305
321
  "noEvolvingTypes": "warn",
322
+ "noExportsInTest": "warn",
323
+ "noFocusedTests": "warn",
324
+ "noForIn": "warn",
325
+ "noHeadImportInDocument": "warn",
306
326
  "noImportCycles": "warn",
327
+ "noLeakedRender": "error",
307
328
  "noMisplacedAssertion": "warn",
329
+ "noNestedPromises": "warn",
330
+ "noParametersOnlyUsedInRecursion": "error",
308
331
  "noReactForwardRef": "warn",
332
+ "noReturnAssign": "warn",
333
+ "noShadow": "warn",
309
334
  "noSkippedTests": "warn",
310
335
  "noUnassignedVariables": "warn",
336
+ "noUndeclaredEnvVars": "warn",
337
+ "noUnknownAttribute": "warn",
338
+ "noUnnecessaryConditions": "warn",
311
339
  "noUnusedExpressions": "warn",
312
340
  "noVar": "error",
341
+ "useArraySortCompare": "warn",
313
342
  "useAwait": "warn",
343
+ "useDeprecatedDate": "warn",
314
344
  "useErrorMessage": "warn",
315
345
  "useGuardForIn": "warn",
316
346
  "useNumberToFixedDigitsArgument": "warn",
347
+ "useRequiredScripts": "warn",
317
348
  "useStaticResponseMethods": "warn",
318
349
  "useStrictMode": "warn"
319
350
  }
320
351
  }
321
352
  },
322
-
323
353
  "overrides": [
324
354
  {
325
355
  "includes": ["**/package.json"],
@@ -337,7 +367,6 @@
337
367
  }
338
368
  }
339
369
  ],
340
-
341
370
  "vcs": {
342
371
  "clientKind": "git",
343
372
  "defaultBranch": "main",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
3
3
 
4
4
  "assist": {
5
5
  "actions": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
3
3
 
4
4
  "assist": {
5
5
  "actions": {
@@ -61,6 +61,8 @@
61
61
  "linter": {
62
62
  "rules": {
63
63
  "a11y": {
64
+ "noAmbiguousAnchorText": "warn",
65
+ "noNoninteractiveElementInteractions": "warn",
64
66
  "noNoninteractiveElementToInteractiveRole": "off",
65
67
  "noStaticElementInteractions": "off",
66
68
  "useButtonType": "off",
@@ -69,30 +71,47 @@
69
71
  "useSemanticElements": "off"
70
72
  },
71
73
  "complexity": {
74
+ "noDivRegex": "warn",
72
75
  "noExcessiveCognitiveComplexity": "warn",
73
76
  "noExcessiveLinesPerFunction": "warn",
74
77
  "noExcessiveNestedTestSuites": "warn",
75
78
  "noForEach": "warn",
76
79
  "noImplicitCoercions": "warn",
80
+ "noRedundantDefaultExport": "warn",
77
81
  "noUselessCatchBinding": "warn",
82
+ "noUselessReturn": "warn",
78
83
  "noUselessStringConcat": "warn",
79
84
  "noUselessUndefined": "warn",
80
85
  "noVoid": "warn",
86
+ "useArrayFind": "warn",
81
87
  "useMaxParams": "warn",
82
88
  "useSimplifiedLogicExpression": "warn",
83
89
  "useWhile": "warn"
84
90
  },
85
91
  "correctness": {
92
+ "noBeforeInteractiveScriptOutsideDocument": "warn",
93
+ "noChildrenProp": "warn",
94
+ "noDuplicateAttributes": "warn",
95
+ "noDuplicateEnumValueNames": "warn",
86
96
  "noGlobalDirnameFilename": "warn",
87
97
  "noNestedComponentDefinitions": "warn",
98
+ "noNextAsyncClientComponent": "warn",
88
99
  "noNodejsModules": "warn",
100
+ "noPrivateImports": "warn",
89
101
  "noProcessGlobal": "warn",
90
102
  "noReactPropAssignments": "warn",
103
+ "noRenderReturnValue": "warn",
104
+ "noRestrictedElements": "warn",
91
105
  "noUndeclaredDependencies": "warn",
92
106
  "noUndeclaredVariables": "warn",
93
107
  "noUnresolvedImports": "off",
108
+ "noUnusedInstantiation": "warn",
109
+ "useExhaustiveDependencies": "warn",
110
+ "useHookAtTopLevel": "warn",
94
111
  "useImportExtensions": "off",
112
+ "useInlineScriptId": "warn",
95
113
  "useJsonImportAttributes": "warn",
114
+ "useJsxKeyInIterable": "warn",
96
115
  "useSingleJsDocAsterisk": "warn",
97
116
  "useUniqueElementIds": "warn"
98
117
  },
@@ -100,33 +119,54 @@
100
119
  "noAwaitInLoops": "warn",
101
120
  "noBarrelFile": "warn",
102
121
  "noDelete": "warn",
122
+ "noImgElement": "warn",
123
+ "noJsxPropsBind": "error",
103
124
  "noNamespaceImport": "warn",
104
125
  "noReExportAll": "warn",
126
+ "noSyncScripts": "warn",
127
+ "noUnwantedPolyfillio": "warn",
128
+ "useGoogleFontPreconnect": "warn",
105
129
  "useTopLevelRegex": "warn"
106
130
  },
107
131
  "security": {
132
+ "noDangerouslySetInnerHtml": "warn",
133
+ "noDangerouslySetInnerHtmlWithChildren": "warn",
134
+ "noScriptUrl": "warn",
108
135
  "noSecrets": "warn"
109
136
  },
110
137
  "style": {
111
138
  "noCommonJs": "warn",
139
+ "noContinue": "warn",
112
140
  "noDefaultExport": "warn",
113
141
  "noDoneCallback": "warn",
114
142
  "noEnum": "warn",
143
+ "noExcessiveClassesPerFile": "warn",
144
+ "noExcessiveLinesPerFile": "warn",
115
145
  "noExportedImports": "warn",
146
+ "noHeadElement": "warn",
147
+ "noHexColors": "warn",
116
148
  "noImplicitBoolean": "warn",
149
+ "noIncrementDecrement": "warn",
117
150
  "noInferrableTypes": "warn",
118
151
  "noJsxLiterals": "warn",
119
152
  "noMagicNumbers": "warn",
153
+ "noMultiAssign": "error",
154
+ "noMultilineString": "error",
120
155
  "noNamespace": "warn",
121
156
  "noNegationElse": "warn",
122
157
  "noNestedTernary": "warn",
123
158
  "noParameterAssign": "warn",
124
159
  "noParameterProperties": "warn",
125
160
  "noProcessEnv": "warn",
161
+ "noRestrictedGlobals": "warn",
162
+ "noRestrictedImports": "warn",
163
+ "noRestrictedTypes": "warn",
126
164
  "noShoutyConstants": "warn",
127
165
  "noSubstr": "warn",
166
+ "noTernary": "off",
128
167
  "noUnusedTemplateLiteral": "warn",
129
168
  "noUselessElse": "warn",
169
+ "noValueAtRule": "warn",
130
170
  "noYodaExpression": "warn",
131
171
  "useAsConstAssertion": "warn",
132
172
  "useAtIndex": "warn",
@@ -137,17 +177,23 @@
137
177
  "useConsistentArrowReturn": "warn",
138
178
  "useConsistentBuiltinInstantiation": "warn",
139
179
  "useConsistentCurlyBraces": "warn",
180
+ "useConsistentEnumValueType": "warn",
140
181
  "useConsistentMemberAccessibility": "warn",
182
+ "useConsistentMethodSignatures": "warn",
141
183
  "useConsistentObjectDefinitions": "warn",
142
184
  "useDefaultParameterLast": "warn",
143
185
  "useDefaultSwitchClause": "warn",
186
+ "useDestructuring": "warn",
144
187
  "useEnumInitializers": "warn",
188
+ "useErrorCause": "warn",
145
189
  "useExplicitLengthCheck": "warn",
146
190
  "useExportsLast": "warn",
147
191
  "useFilenamingConvention": "warn",
148
192
  "useForOf": "warn",
149
193
  "useFragmentSyntax": "warn",
194
+ "useGlobalThis": "warn",
150
195
  "useGroupedAccessorPairs": "warn",
196
+ "useNodeAssertStrict": "warn",
151
197
  "useNumberNamespace": "warn",
152
198
  "useNumericSeparators": "warn",
153
199
  "useObjectSpread": "warn",
@@ -156,6 +202,7 @@
156
202
  "useSelfClosingElements": "warn",
157
203
  "useShorthandAssign": "warn",
158
204
  "useSingleVarDeclarator": "warn",
205
+ "useSpreadOverApply": "warn",
159
206
  "useSymbolDescription": "warn",
160
207
  "useThrowNewError": "warn",
161
208
  "useThrowOnlyError": "warn",
@@ -183,25 +230,45 @@
183
230
  },
184
231
  "suspicious": {
185
232
  "noAlert": "warn",
233
+ "noArrayIndexKey": "warn",
186
234
  "noBitwiseOperators": "warn",
187
235
  "noConsole": "warn",
188
236
  "noConstantBinaryExpressions": "warn",
189
237
  "noDeprecatedImports": "warn",
238
+ "noDocumentImportInPage": "warn",
190
239
  "noDuplicateDependencies": "warn",
240
+ "noDuplicatedSpreadProps": "warn",
241
+ "noDuplicateTestHooks": "warn",
191
242
  "noEmptyBlockStatements": "warn",
192
243
  "noEmptySource": "warn",
244
+ "noEqualsToNull": "warn",
193
245
  "noEvolvingTypes": "warn",
246
+ "noExportsInTest": "warn",
247
+ "noFocusedTests": "warn",
248
+ "noForIn": "warn",
249
+ "noHeadImportInDocument": "warn",
194
250
  "noImportCycles": "warn",
251
+ "noLeakedRender": "error",
195
252
  "noMisplacedAssertion": "warn",
253
+ "noNestedPromises": "warn",
254
+ "noParametersOnlyUsedInRecursion": "error",
196
255
  "noReactForwardRef": "warn",
256
+ "noReturnAssign": "warn",
257
+ "noShadow": "warn",
197
258
  "noSkippedTests": "warn",
198
259
  "noUnassignedVariables": "warn",
260
+ "noUndeclaredEnvVars": "warn",
261
+ "noUnknownAttribute": "warn",
262
+ "noUnnecessaryConditions": "warn",
199
263
  "noUnusedExpressions": "warn",
200
264
  "noVar": "error",
265
+ "useArraySortCompare": "warn",
201
266
  "useAwait": "warn",
267
+ "useDeprecatedDate": "warn",
202
268
  "useErrorMessage": "warn",
203
269
  "useGuardForIn": "warn",
204
270
  "useNumberToFixedDigitsArgument": "warn",
271
+ "useRequiredScripts": "warn",
205
272
  "useStaticResponseMethods": "warn",
206
273
  "useStrictMode": "warn"
207
274
  }
@@ -1,6 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
3
-
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
4
3
  "assist": {
5
4
  "actions": {
6
5
  "recommended": true,
@@ -9,11 +8,9 @@
9
8
  }
10
9
  }
11
10
  },
12
-
13
11
  "files": {
14
12
  "includes": ["**", "!!**/dist"]
15
13
  },
16
-
17
14
  "formatter": {
18
15
  "attributePosition": "auto",
19
16
  "bracketSameLine": false,
@@ -26,11 +23,9 @@
26
23
  "lineWidth": 80,
27
24
  "useEditorconfig": true
28
25
  },
29
-
30
26
  "html": {
31
27
  "experimentalFullSupportEnabled": true
32
28
  },
33
-
34
29
  "javascript": {
35
30
  "experimentalEmbeddedSnippetsEnabled": true,
36
31
  "globals": [],
@@ -50,17 +45,17 @@
50
45
  "unsafeParameterDecoratorsEnabled": false
51
46
  }
52
47
  },
53
-
54
48
  "json": {
55
49
  "parser": {
56
50
  "allowComments": true,
57
51
  "allowTrailingCommas": true
58
52
  }
59
53
  },
60
-
61
54
  "linter": {
62
55
  "rules": {
63
56
  "a11y": {
57
+ "noAmbiguousAnchorText": "warn",
58
+ "noNoninteractiveElementInteractions": "warn",
64
59
  "noNoninteractiveElementToInteractiveRole": "off",
65
60
  "noStaticElementInteractions": "off",
66
61
  "useButtonType": "off",
@@ -69,71 +64,69 @@
69
64
  "useSemanticElements": "off"
70
65
  },
71
66
  "complexity": {
67
+ "noDivRegex": "warn",
72
68
  "noExcessiveCognitiveComplexity": "warn",
73
69
  "noExcessiveLinesPerFunction": "warn",
74
70
  "noExcessiveNestedTestSuites": "warn",
75
71
  "noForEach": "warn",
76
72
  "noImplicitCoercions": "warn",
73
+ "noRedundantDefaultExport": "warn",
77
74
  "noUselessCatchBinding": "warn",
75
+ "noUselessReturn": "warn",
78
76
  "noUselessStringConcat": "warn",
79
77
  "noUselessUndefined": "warn",
80
78
  "noVoid": "warn",
79
+ "useArrayFind": "warn",
81
80
  "useMaxParams": "warn",
82
81
  "useSimplifiedLogicExpression": "warn",
83
82
  "useWhile": "warn"
84
83
  },
85
84
  "correctness": {
85
+ "noBeforeInteractiveScriptOutsideDocument": "warn",
86
+ "noChildrenProp": "warn",
87
+ "noDuplicateAttributes": "warn",
88
+ "noDuplicateEnumValueNames": "warn",
86
89
  "noGlobalDirnameFilename": "warn",
87
90
  "noNestedComponentDefinitions": "warn",
91
+ "noNextAsyncClientComponent": "warn",
88
92
  "noNodejsModules": "warn",
93
+ "noPrivateImports": "warn",
89
94
  "noProcessGlobal": "warn",
90
95
  "noReactPropAssignments": "warn",
96
+ "noRenderReturnValue": "warn",
97
+ "noRestrictedElements": "warn",
91
98
  "noUndeclaredDependencies": "warn",
92
99
  "noUndeclaredVariables": "warn",
93
100
  "noUnresolvedImports": "off",
101
+ "noUnusedInstantiation": "warn",
102
+ "useExhaustiveDependencies": "warn",
103
+ "useHookAtTopLevel": "warn",
94
104
  "useImportExtensions": "off",
105
+ "useInlineScriptId": "warn",
95
106
  "useJsonImportAttributes": "warn",
107
+ "useJsxKeyInIterable": "warn",
96
108
  "useSingleJsDocAsterisk": "warn",
97
109
  "useUniqueElementIds": "warn"
98
110
  },
99
111
  "nursery": {
100
- "noAmbiguousAnchorText": "warn",
101
112
  "noBaseToString": "warn",
102
113
  "noComponentHookFactories": "warn",
103
114
  "noConditionalExpect": "warn",
104
- "noContinue": "warn",
105
- "noDivRegex": "warn",
106
115
  "noDrizzleDeleteWithoutWhere": "warn",
107
116
  "noDrizzleUpdateWithoutWhere": "warn",
108
- "noDuplicateAttributes": "warn",
109
- "noDuplicatedSpreadProps": "warn",
110
- "noDuplicateEnumValueNames": "warn",
111
- "noDuplicateEnumValues": "warn",
112
117
  "noDuplicateSelectors": "warn",
113
118
  "noEmptyObjectKeys": "warn",
114
- "noEqualsToNull": "warn",
115
- "noExcessiveClassesPerFile": "warn",
116
- "noExcessiveLinesPerFile": "warn",
117
119
  "noExcessiveNestedCallbacks": "warn",
118
120
  "noExcessiveSelectorClasses": "warn",
119
- "noFloatingClasses": "warn",
120
121
  "noFloatingPromises": "warn",
121
- "noForIn": "warn",
122
122
  "noIdenticalTestTitle": "warn",
123
123
  "noImpliedEval": "warn",
124
- "noIncrementDecrement": "warn",
125
124
  "noInlineStyles": "warn",
126
125
  "noJsxLeakedDollar": "warn",
127
126
  "noJsxNamespace": "warn",
128
- "noJsxPropsBind": "error",
129
- "noLeakedRender": "error",
130
127
  "noLoopFunc": "warn",
131
128
  "noMisleadingReturnType": "warn",
132
129
  "noMisusedPromises": "error",
133
- "noMultiAssign": "error",
134
- "noMultiStr": "error",
135
- "noNestedPromises": "warn",
136
- "noParametersOnlyUsedInRecursion": "error",
137
130
  "noPlaywrightElementHandle": "warn",
138
131
  "noPlaywrightEval": "warn",
139
132
  "noPlaywrightForceOption": "warn",
@@ -144,53 +137,43 @@
144
137
  "noPlaywrightWaitForNavigation": "warn",
145
138
  "noPlaywrightWaitForSelector": "warn",
146
139
  "noPlaywrightWaitForTimeout": "warn",
147
- "noProto": "warn",
140
+ "noReactNativeDeepImports": "warn",
141
+ "noReactNativeLiteralColors": "warn",
142
+ "noReactNativeRawText": "warn",
148
143
  "noReactStringRefs": "warn",
149
- "noRedundantDefaultExport": "warn",
150
- "noReturnAssign": "warn",
151
- "noScriptUrl": "warn",
152
- "noShadow": "warn",
153
- "noSyncScripts": "warn",
154
- "noTernary": "off",
144
+ "noRestrictedDependencies": "warn",
155
145
  "noTopLevelLiterals": "warn",
156
- "noUndeclaredEnvVars": "warn",
157
- "noUnknownAttribute": "warn",
158
- "noUnnecessaryConditions": "warn",
146
+ "noUndeclaredClasses": "warn",
159
147
  "noUnnecessaryTemplateExpression": "warn",
160
148
  "noUnsafePlusOperands": "warn",
161
149
  "noUntrustedLicenses": "warn",
162
- "noUselessReturn": "warn",
150
+ "noUnusedClasses": "warn",
163
151
  "noUselessTypeConversion": "warn",
164
152
  "useArraySome": "warn",
165
- "useArraySortCompare": "warn",
166
153
  "useAwaitThenable": "warn",
167
154
  "useBaseline": "warn",
168
- "useConsistentEnumValueType": "warn",
169
- "useConsistentMethodSignatures": "warn",
170
155
  "useConsistentTestIt": "warn",
171
- "useDestructuring": "warn",
172
156
  "useDisposables": "warn",
173
157
  "useDomNodeTextContent": "warn",
174
158
  "useDomQuerySelector": "warn",
175
- "useErrorCause": "warn",
176
159
  "useExhaustiveSwitchCases": "warn",
177
160
  "useExpect": "warn",
178
161
  "useExplicitReturnType": "warn",
179
162
  "useExplicitType": "off",
180
- "useFind": "warn",
181
- "useGlobalThis": "warn",
182
163
  "useIframeSandbox": "warn",
183
164
  "useImportsFirst": "warn",
165
+ "useIncludes": "warn",
184
166
  "useMathMinMax": "warn",
185
167
  "useNamedCaptureGroup": "warn",
186
168
  "useNullishCoalescing": "warn",
187
169
  "usePlaywrightValidDescribeCallback": "warn",
188
170
  "useReactAsyncServerFunction": "warn",
171
+ "useReactFunctionComponentDefinition": "warn",
172
+ "useReactNativePlatformComponents": "warn",
189
173
  "useReduceTypeParameter": "warn",
190
174
  "useRegexpExec": "warn",
191
175
  "useRegexpTest": "warn",
192
176
  "useSortedClasses": "warn",
193
- "useSpread": "warn",
194
177
  "useStringStartsEndsWith": "warn",
195
178
  "useTestHooksInOrder": "warn",
196
179
  "useTestHooksOnTop": "warn",
@@ -202,33 +185,54 @@
202
185
  "noAwaitInLoops": "warn",
203
186
  "noBarrelFile": "warn",
204
187
  "noDelete": "warn",
188
+ "noImgElement": "warn",
189
+ "noJsxPropsBind": "error",
205
190
  "noNamespaceImport": "warn",
206
191
  "noReExportAll": "warn",
192
+ "noSyncScripts": "warn",
193
+ "noUnwantedPolyfillio": "warn",
194
+ "useGoogleFontPreconnect": "warn",
207
195
  "useTopLevelRegex": "warn"
208
196
  },
209
197
  "security": {
198
+ "noDangerouslySetInnerHtml": "warn",
199
+ "noDangerouslySetInnerHtmlWithChildren": "warn",
200
+ "noScriptUrl": "warn",
210
201
  "noSecrets": "warn"
211
202
  },
212
203
  "style": {
213
204
  "noCommonJs": "warn",
205
+ "noContinue": "warn",
214
206
  "noDefaultExport": "warn",
215
207
  "noDoneCallback": "warn",
216
208
  "noEnum": "warn",
209
+ "noExcessiveClassesPerFile": "warn",
210
+ "noExcessiveLinesPerFile": "warn",
217
211
  "noExportedImports": "warn",
212
+ "noHeadElement": "warn",
213
+ "noHexColors": "warn",
218
214
  "noImplicitBoolean": "warn",
215
+ "noIncrementDecrement": "warn",
219
216
  "noInferrableTypes": "warn",
220
217
  "noJsxLiterals": "warn",
221
218
  "noMagicNumbers": "warn",
219
+ "noMultiAssign": "error",
220
+ "noMultilineString": "error",
222
221
  "noNamespace": "warn",
223
222
  "noNegationElse": "warn",
224
223
  "noNestedTernary": "warn",
225
224
  "noParameterAssign": "warn",
226
225
  "noParameterProperties": "warn",
227
226
  "noProcessEnv": "warn",
227
+ "noRestrictedGlobals": "warn",
228
+ "noRestrictedImports": "warn",
229
+ "noRestrictedTypes": "warn",
228
230
  "noShoutyConstants": "warn",
229
231
  "noSubstr": "warn",
232
+ "noTernary": "off",
230
233
  "noUnusedTemplateLiteral": "warn",
231
234
  "noUselessElse": "warn",
235
+ "noValueAtRule": "warn",
232
236
  "noYodaExpression": "warn",
233
237
  "useAsConstAssertion": "warn",
234
238
  "useAtIndex": "warn",
@@ -239,17 +243,23 @@
239
243
  "useConsistentArrowReturn": "warn",
240
244
  "useConsistentBuiltinInstantiation": "warn",
241
245
  "useConsistentCurlyBraces": "warn",
246
+ "useConsistentEnumValueType": "warn",
242
247
  "useConsistentMemberAccessibility": "warn",
248
+ "useConsistentMethodSignatures": "warn",
243
249
  "useConsistentObjectDefinitions": "warn",
244
250
  "useDefaultParameterLast": "warn",
245
251
  "useDefaultSwitchClause": "warn",
252
+ "useDestructuring": "warn",
246
253
  "useEnumInitializers": "warn",
254
+ "useErrorCause": "warn",
247
255
  "useExplicitLengthCheck": "warn",
248
256
  "useExportsLast": "warn",
249
257
  "useFilenamingConvention": "warn",
250
258
  "useForOf": "warn",
251
259
  "useFragmentSyntax": "warn",
260
+ "useGlobalThis": "warn",
252
261
  "useGroupedAccessorPairs": "warn",
262
+ "useNodeAssertStrict": "warn",
253
263
  "useNumberNamespace": "warn",
254
264
  "useNumericSeparators": "warn",
255
265
  "useObjectSpread": "warn",
@@ -258,6 +268,7 @@
258
268
  "useSelfClosingElements": "warn",
259
269
  "useShorthandAssign": "warn",
260
270
  "useSingleVarDeclarator": "warn",
271
+ "useSpreadOverApply": "warn",
261
272
  "useSymbolDescription": "warn",
262
273
  "useThrowNewError": "warn",
263
274
  "useThrowOnlyError": "warn",
@@ -285,31 +296,50 @@
285
296
  },
286
297
  "suspicious": {
287
298
  "noAlert": "warn",
299
+ "noArrayIndexKey": "warn",
288
300
  "noBitwiseOperators": "warn",
289
301
  "noConsole": "warn",
290
302
  "noConstantBinaryExpressions": "warn",
291
303
  "noDeprecatedImports": "warn",
304
+ "noDocumentImportInPage": "warn",
292
305
  "noDuplicateDependencies": "warn",
306
+ "noDuplicatedSpreadProps": "warn",
307
+ "noDuplicateTestHooks": "warn",
293
308
  "noEmptyBlockStatements": "warn",
294
309
  "noEmptySource": "warn",
310
+ "noEqualsToNull": "warn",
295
311
  "noEvolvingTypes": "warn",
312
+ "noExportsInTest": "warn",
313
+ "noFocusedTests": "warn",
314
+ "noForIn": "warn",
315
+ "noHeadImportInDocument": "warn",
296
316
  "noImportCycles": "warn",
317
+ "noLeakedRender": "error",
297
318
  "noMisplacedAssertion": "warn",
319
+ "noNestedPromises": "warn",
320
+ "noParametersOnlyUsedInRecursion": "error",
298
321
  "noReactForwardRef": "warn",
322
+ "noReturnAssign": "warn",
323
+ "noShadow": "warn",
299
324
  "noSkippedTests": "warn",
300
325
  "noUnassignedVariables": "warn",
326
+ "noUndeclaredEnvVars": "warn",
327
+ "noUnknownAttribute": "warn",
328
+ "noUnnecessaryConditions": "warn",
301
329
  "noUnusedExpressions": "warn",
302
330
  "noVar": "error",
331
+ "useArraySortCompare": "warn",
303
332
  "useAwait": "warn",
333
+ "useDeprecatedDate": "warn",
304
334
  "useErrorMessage": "warn",
305
335
  "useGuardForIn": "warn",
306
336
  "useNumberToFixedDigitsArgument": "warn",
337
+ "useRequiredScripts": "warn",
307
338
  "useStaticResponseMethods": "warn",
308
339
  "useStrictMode": "warn"
309
340
  }
310
341
  }
311
342
  },
312
-
313
343
  "overrides": [
314
344
  {
315
345
  "includes": ["**/package.json"],
@@ -327,7 +357,6 @@
327
357
  }
328
358
  }
329
359
  ],
330
-
331
360
  "vcs": {
332
361
  "clientKind": "git",
333
362
  "defaultBranch": "main",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
3
3
 
4
4
  "assist": {
5
5
  "actions": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dvashim/biome-config",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "description": "Shared Biome Configurations",
5
5
  "keywords": [
6
6
  "biome",
@@ -46,10 +46,10 @@
46
46
  "dist"
47
47
  ],
48
48
  "devDependencies": {
49
- "@biomejs/biome": "^2.4.16",
49
+ "@biomejs/biome": "^2.5.1",
50
50
  "@changesets/changelog-github": "^0.7.0",
51
51
  "@changesets/cli": "^2.31.0",
52
- "validate-package-exports": "^1.0.0"
52
+ "validate-package-exports": "^1.1.0"
53
53
  },
54
54
  "engines": {
55
55
  "node": ">=24"