@wistia/oxlint-config 0.0.1 → 0.2.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.
@@ -0,0 +1,636 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "plugins": ["eslint", "oxc"],
4
+ "categories": {},
5
+ "rules": {
6
+ // -- Possible Problems (Correctness) --
7
+
8
+ // Enforce return statements in callbacks of array methods
9
+ // https://eslint.org/docs/rules/array-callback-return
10
+ "eslint/array-callback-return": ["error", { "allowImplicit": true }],
11
+
12
+ // Require super() calls in constructors
13
+ // https://eslint.org/docs/rules/constructor-super
14
+ "eslint/constructor-super": "error",
15
+
16
+ // Enforce for loop update clause moving the counter in the right direction
17
+ // https://eslint.org/docs/rules/for-direction
18
+ "eslint/for-direction": "error",
19
+
20
+ // Disallow using an async function as a Promise executor
21
+ // https://eslint.org/docs/rules/no-async-promise-executor
22
+ "eslint/no-async-promise-executor": "error",
23
+
24
+ // Disallow await inside of loops
25
+ // https://eslint.org/docs/rules/no-await-in-loop
26
+ "eslint/no-await-in-loop": "error",
27
+
28
+ // Disallow reassigning class members
29
+ // https://eslint.org/docs/rules/no-class-assign
30
+ "eslint/no-class-assign": "error",
31
+
32
+ // Disallow comparing against -0
33
+ // https://eslint.org/docs/rules/no-compare-neg-zero
34
+ "eslint/no-compare-neg-zero": "error",
35
+
36
+ // Disallow assignment operators in conditional expressions
37
+ // https://eslint.org/docs/rules/no-cond-assign
38
+ "eslint/no-cond-assign": ["error", "always"],
39
+
40
+ // Disallow reassigning const variables
41
+ // https://eslint.org/docs/rules/no-const-assign
42
+ "eslint/no-const-assign": "error",
43
+
44
+ // Disallow expressions where the operation doesn't affect the value
45
+ // https://eslint.org/docs/rules/no-constant-binary-expression
46
+ "eslint/no-constant-binary-expression": "error",
47
+
48
+ // Disallow constant expressions in conditions
49
+ // https://eslint.org/docs/rules/no-constant-condition
50
+ "eslint/no-constant-condition": "error",
51
+
52
+ // Disallow returning value from constructor
53
+ // https://eslint.org/docs/rules/no-constructor-return
54
+ "eslint/no-constructor-return": "error",
55
+
56
+ // Disallow control characters in regular expressions
57
+ // https://eslint.org/docs/rules/no-control-regex
58
+ "eslint/no-control-regex": "error",
59
+
60
+ // Disallow the use of debugger
61
+ // https://eslint.org/docs/rules/no-debugger
62
+ "eslint/no-debugger": "error",
63
+
64
+ // Disallow duplicate class members
65
+ // https://eslint.org/docs/rules/no-dupe-class-members
66
+ "eslint/no-dupe-class-members": "error",
67
+
68
+ // Disallow duplicate conditions in if-else-if chains
69
+ // https://eslint.org/docs/rules/no-dupe-else-if
70
+ "eslint/no-dupe-else-if": "error",
71
+
72
+ // Disallow duplicate keys in object literals
73
+ // https://eslint.org/docs/rules/no-dupe-keys
74
+ "eslint/no-dupe-keys": "error",
75
+
76
+ // Disallow duplicate case labels
77
+ // https://eslint.org/docs/rules/no-duplicate-case
78
+ "eslint/no-duplicate-case": "error",
79
+
80
+ // Disallow empty character classes in regular expressions
81
+ // https://eslint.org/docs/rules/no-empty-character-class
82
+ "eslint/no-empty-character-class": "error",
83
+
84
+ // Disallow empty destructuring patterns
85
+ // https://eslint.org/docs/rules/no-empty-pattern
86
+ "eslint/no-empty-pattern": "error",
87
+
88
+ // Disallow reassigning exceptions in catch clauses
89
+ // https://eslint.org/docs/rules/no-ex-assign
90
+ "eslint/no-ex-assign": "error",
91
+
92
+ // Disallow fallthrough of case statements
93
+ // https://eslint.org/docs/rules/no-fallthrough
94
+ "eslint/no-fallthrough": "error",
95
+
96
+ // Disallow reassigning function declarations
97
+ // https://eslint.org/docs/rules/no-func-assign
98
+ "eslint/no-func-assign": "error",
99
+
100
+ // Disallow assigning to imported bindings
101
+ // https://eslint.org/docs/rules/no-import-assign
102
+ "eslint/no-import-assign": "error",
103
+
104
+ // Disallow variable or function declarations in nested blocks
105
+ // https://eslint.org/docs/rules/no-inner-declarations
106
+ "eslint/no-inner-declarations": "error",
107
+
108
+ // Disallow invalid regular expression strings in RegExp constructors
109
+ // https://eslint.org/docs/rules/no-invalid-regexp
110
+ "eslint/no-invalid-regexp": "error",
111
+
112
+ // Disallow irregular whitespace
113
+ // https://eslint.org/docs/rules/no-irregular-whitespace
114
+ "eslint/no-irregular-whitespace": "error",
115
+
116
+ // Disallow literal numbers that lose precision
117
+ // https://eslint.org/docs/rules/no-loss-of-precision
118
+ "eslint/no-loss-of-precision": "error",
119
+
120
+ // Disallow characters which are made with multiple code points in character class syntax
121
+ // https://eslint.org/docs/rules/no-misleading-character-class
122
+ "eslint/no-misleading-character-class": "error",
123
+
124
+ // Disallow new operators with global non-constructor functions
125
+ // https://eslint.org/docs/rules/no-new-native-nonconstructor
126
+ "eslint/no-new-native-nonconstructor": "error",
127
+
128
+ // Disallow calling global object properties as functions
129
+ // https://eslint.org/docs/rules/no-obj-calls
130
+ "eslint/no-obj-calls": "error",
131
+
132
+ // Disallow returning values from Promise executor functions
133
+ // https://eslint.org/docs/rules/no-promise-executor-return
134
+ "eslint/no-promise-executor-return": "error",
135
+
136
+ // Disallow calling some Object.prototype methods directly on objects
137
+ // https://eslint.org/docs/rules/no-prototype-builtins
138
+ "eslint/no-prototype-builtins": "error",
139
+
140
+ // Disallow assignments where both sides are exactly the same
141
+ // https://eslint.org/docs/rules/no-self-assign
142
+ "eslint/no-self-assign": "error",
143
+
144
+ // Disallow comparisons where both sides are exactly the same
145
+ // https://eslint.org/docs/rules/no-self-compare
146
+ "eslint/no-self-compare": "error",
147
+
148
+ // Disallow returning values from setters
149
+ // https://eslint.org/docs/rules/no-setter-return
150
+ "eslint/no-setter-return": "error",
151
+
152
+ // Disallow sparse arrays
153
+ // https://eslint.org/docs/rules/no-sparse-arrays
154
+ "eslint/no-sparse-arrays": "error",
155
+
156
+ // Disallow template literal placeholder syntax in regular strings
157
+ // https://eslint.org/docs/rules/no-template-curly-in-string
158
+ "eslint/no-template-curly-in-string": "error",
159
+
160
+ // Disallow this/super before calling super() in constructors
161
+ // https://eslint.org/docs/rules/no-this-before-super
162
+ "eslint/no-this-before-super": "error",
163
+
164
+ // Disallow let or var variables that are read but never assigned
165
+ // https://eslint.org/docs/rules/no-unassigned-vars
166
+ "eslint/no-unassigned-vars": "error",
167
+
168
+ // Disallow unmodified loop conditions
169
+ // https://eslint.org/docs/rules/no-unmodified-loop-condition
170
+ "eslint/no-unmodified-loop-condition": "error",
171
+
172
+ // Disallow control flow statements in finally blocks
173
+ // https://eslint.org/docs/rules/no-unsafe-finally
174
+ "eslint/no-unsafe-finally": "error",
175
+
176
+ // Disallow negating the left operand of relational operators
177
+ // https://eslint.org/docs/rules/no-unsafe-negation
178
+ "eslint/no-unsafe-negation": "error",
179
+
180
+ // Disallow use of optional chaining in contexts where the undefined value is not allowed
181
+ // https://eslint.org/docs/rules/no-unsafe-optional-chaining
182
+ "eslint/no-unsafe-optional-chaining": ["error", { "disallowArithmeticOperators": true }],
183
+
184
+ // Disallow unused private class members
185
+ // https://eslint.org/docs/rules/no-unused-private-class-members
186
+ "eslint/no-unused-private-class-members": "error",
187
+
188
+ // Disallow unused variables
189
+ // https://eslint.org/docs/rules/no-unused-vars
190
+ "eslint/no-unused-vars": [
191
+ "error",
192
+ {
193
+ "vars": "all",
194
+ "args": "after-used",
195
+ "argsIgnorePattern": "^_",
196
+ "caughtErrors": "all",
197
+ "caughtErrorsIgnorePattern": "^_",
198
+ "destructuredArrayIgnorePattern": "^_",
199
+ "ignoreRestSiblings": true,
200
+ "varsIgnorePattern": "^_",
201
+ },
202
+ ],
203
+
204
+ // Disallow the use of variables before they are defined
205
+ // https://eslint.org/docs/rules/no-use-before-define
206
+ "eslint/no-use-before-define": [
207
+ "error",
208
+ { "functions": true, "classes": true, "variables": true },
209
+ ],
210
+
211
+ // Disallow useless backreferences in regular expressions
212
+ // https://eslint.org/docs/rules/no-useless-backreference
213
+ "eslint/no-useless-backreference": "error",
214
+
215
+ // Require calls to isNaN() when checking for NaN
216
+ // https://eslint.org/docs/rules/use-isnan
217
+ "eslint/use-isnan": "error",
218
+
219
+ // Enforce comparing typeof expressions against valid strings
220
+ // https://eslint.org/docs/rules/valid-typeof
221
+ "eslint/valid-typeof": ["error", { "requireStringLiterals": true }],
222
+
223
+ // -- Suggestions --
224
+
225
+ // Enforce getter and setter pairs in objects and classes
226
+ // https://eslint.org/docs/rules/accessor-pairs
227
+ "eslint/accessor-pairs": "error",
228
+
229
+ // Enforce the use of variables within the scope they are defined
230
+ // https://eslint.org/docs/rules/block-scoped-var
231
+ "eslint/block-scoped-var": "error",
232
+
233
+ // Enforce default clauses in switch statements to be last
234
+ // https://eslint.org/docs/rules/default-case-last
235
+ "eslint/default-case-last": "error",
236
+
237
+ // Enforce default parameters to be last
238
+ // https://eslint.org/docs/rules/default-param-last
239
+ "eslint/default-param-last": "error",
240
+
241
+ // Require the use of === and !==
242
+ // https://eslint.org/docs/rules/eqeqeq
243
+ "eslint/eqeqeq": ["error", "always", { "null": "ignore" }],
244
+
245
+ // Require for-in loops to include an if statement
246
+ // https://eslint.org/docs/rules/guard-for-in
247
+ "eslint/guard-for-in": "error",
248
+
249
+ // Enforce minimum and maximum identifier lengths
250
+ // https://eslint.org/docs/rules/id-length
251
+ "eslint/id-length": [
252
+ "error",
253
+ {
254
+ "min": 2,
255
+ "exceptions": ["_", "i", "j", "x", "y"],
256
+ },
257
+ ],
258
+
259
+ // Enforce a maximum number of classes per file
260
+ // https://eslint.org/docs/rules/max-classes-per-file
261
+ "eslint/max-classes-per-file": ["error", 1],
262
+
263
+ // Disallow the use of alert, confirm, and prompt
264
+ // https://eslint.org/docs/rules/no-alert
265
+ "eslint/no-alert": "error",
266
+
267
+ // Disallow Array constructors
268
+ // https://eslint.org/docs/rules/no-array-constructor
269
+ "eslint/no-array-constructor": "error",
270
+
271
+ // Disallow bitwise operators
272
+ // https://eslint.org/docs/rules/no-bitwise
273
+ "eslint/no-bitwise": "error",
274
+
275
+ // Disallow the use of arguments.caller or arguments.callee
276
+ // https://eslint.org/docs/rules/no-caller
277
+ "eslint/no-caller": "error",
278
+
279
+ // Disallow lexical declarations in case clauses
280
+ // https://eslint.org/docs/rules/no-case-declarations
281
+ "eslint/no-case-declarations": "error",
282
+
283
+ // Disallow the use of console
284
+ // https://eslint.org/docs/rules/no-console
285
+ "eslint/no-console": "error",
286
+
287
+ // Disallow continue statements
288
+ // https://eslint.org/docs/rules/no-continue
289
+ "eslint/no-continue": "error",
290
+
291
+ // Disallow deleting variables
292
+ // https://eslint.org/docs/rules/no-delete-var
293
+ "eslint/no-delete-var": "error",
294
+
295
+ // Disallow else blocks after return statements in if statements
296
+ // https://eslint.org/docs/rules/no-else-return
297
+ "eslint/no-else-return": ["error", { "allowElseIf": false }],
298
+
299
+ // Disallow empty block statements
300
+ // https://eslint.org/docs/rules/no-empty
301
+ "eslint/no-empty": "error",
302
+
303
+ // Disallow empty functions
304
+ // https://eslint.org/docs/rules/no-empty-function
305
+ "eslint/no-empty-function": ["error", { "allow": ["arrowFunctions", "functions", "methods"] }],
306
+
307
+ // Disallow empty static blocks
308
+ // https://eslint.org/docs/rules/no-empty-static-block
309
+ "eslint/no-empty-static-block": "error",
310
+
311
+ // Disallow the use of eval()
312
+ // https://eslint.org/docs/rules/no-eval
313
+ "eslint/no-eval": "error",
314
+
315
+ // Disallow extending native types
316
+ // https://eslint.org/docs/rules/no-extend-native
317
+ "eslint/no-extend-native": "error",
318
+
319
+ // Disallow unnecessary calls to .bind()
320
+ // https://eslint.org/docs/rules/no-extra-bind
321
+ "eslint/no-extra-bind": "error",
322
+
323
+ // Disallow unnecessary boolean casts
324
+ // https://eslint.org/docs/rules/no-extra-boolean-cast
325
+ "eslint/no-extra-boolean-cast": "error",
326
+
327
+ // Disallow unnecessary labels
328
+ // https://eslint.org/docs/rules/no-extra-label
329
+ "eslint/no-extra-label": "error",
330
+
331
+ // Disallow assignments to native objects or read-only global variables
332
+ // https://eslint.org/docs/rules/no-global-assign
333
+ "eslint/no-global-assign": "error",
334
+
335
+ // Disallow shorthand type conversions
336
+ // https://eslint.org/docs/rules/no-implicit-coercion
337
+ "eslint/no-implicit-coercion": "error",
338
+
339
+ // Disallow the use of the __iterator__ property
340
+ // https://eslint.org/docs/rules/no-iterator
341
+ "eslint/no-iterator": "error",
342
+
343
+ // Disallow labels that share a name with a variable
344
+ // https://eslint.org/docs/rules/no-label-var
345
+ "eslint/no-label-var": "error",
346
+
347
+ // Disallow labeled statements
348
+ // https://eslint.org/docs/rules/no-labels
349
+ "eslint/no-labels": "error",
350
+
351
+ // Disallow unnecessary nested blocks
352
+ // https://eslint.org/docs/rules/no-lone-blocks
353
+ "eslint/no-lone-blocks": "error",
354
+
355
+ // Disallow if statements as the only statement in else blocks
356
+ // https://eslint.org/docs/rules/no-lonely-if
357
+ "eslint/no-lonely-if": "error",
358
+
359
+ // Disallow function declarations that contain unsafe references inside loop statements
360
+ // https://eslint.org/docs/rules/no-loop-func
361
+ "eslint/no-loop-func": "error",
362
+
363
+ // Disallow use of chained assignment expressions
364
+ // https://eslint.org/docs/rules/no-multi-assign
365
+ "eslint/no-multi-assign": "error",
366
+
367
+ // Disallow multiline strings
368
+ // https://eslint.org/docs/rules/no-multi-str
369
+ "eslint/no-multi-str": "error",
370
+
371
+ // Disallow nested ternary expressions
372
+ // https://eslint.org/docs/rules/no-nested-ternary
373
+ "eslint/no-nested-ternary": "error",
374
+
375
+ // Disallow new operators outside of assignments or comparisons
376
+ // https://eslint.org/docs/rules/no-new
377
+ "eslint/no-new": "error",
378
+
379
+ // Disallow new operators with the Function object
380
+ // https://eslint.org/docs/rules/no-new-func
381
+ "eslint/no-new-func": "error",
382
+
383
+ // Disallow new operators with the String, Number, and Boolean objects
384
+ // https://eslint.org/docs/rules/no-new-wrappers
385
+ "eslint/no-new-wrappers": "error",
386
+
387
+ // Disallow \8 and \9 escape sequences in string literals
388
+ // https://eslint.org/docs/rules/no-nonoctal-decimal-escape
389
+ "eslint/no-nonoctal-decimal-escape": "error",
390
+
391
+ // Disallow calls to the Object constructor without an argument
392
+ // https://eslint.org/docs/rules/no-object-constructor
393
+ "eslint/no-object-constructor": "error",
394
+
395
+ // Disallow reassigning function parameters
396
+ // https://eslint.org/docs/rules/no-param-reassign
397
+ "eslint/no-param-reassign": [
398
+ "error",
399
+ {
400
+ "props": true,
401
+ "ignorePropertyModificationsFor": [
402
+ "acc",
403
+ "accumulator",
404
+ "e",
405
+ "ctx",
406
+ "context",
407
+ "req",
408
+ "request",
409
+ "res",
410
+ "response",
411
+ "$scope",
412
+ "staticContext",
413
+ ],
414
+ },
415
+ ],
416
+
417
+ // Disallow the unary operators ++ and --
418
+ // https://eslint.org/docs/rules/no-plusplus
419
+ "eslint/no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
420
+
421
+ // Disallow the use of the __proto__ property
422
+ // https://eslint.org/docs/rules/no-proto
423
+ "eslint/no-proto": "error",
424
+
425
+ // Disallow variable redeclaration
426
+ // https://eslint.org/docs/rules/no-redeclare
427
+ "eslint/no-redeclare": "error",
428
+
429
+ // Disallow multiple spaces in regular expressions
430
+ // https://eslint.org/docs/rules/no-regex-spaces
431
+ "eslint/no-regex-spaces": "error",
432
+
433
+ // Disallow assignment operators in return statements
434
+ // https://eslint.org/docs/rules/no-return-assign
435
+ "eslint/no-return-assign": ["error", "always"],
436
+
437
+ // Disallow use of javascript: urls
438
+ // https://eslint.org/docs/rules/no-script-url
439
+ "eslint/no-script-url": "error",
440
+
441
+ // Disallow comma operators
442
+ // https://eslint.org/docs/rules/no-sequences
443
+ "eslint/no-sequences": "error",
444
+
445
+ // Disallow variable declarations from shadowing variables declared in the outer scope
446
+ // https://eslint.org/docs/rules/no-shadow
447
+ "eslint/no-shadow": "error",
448
+
449
+ // Disallow identifiers from shadowing restricted names
450
+ // https://eslint.org/docs/rules/no-shadow-restricted-names
451
+ "eslint/no-shadow-restricted-names": "error",
452
+
453
+ // Disallow throwing literals as exceptions
454
+ // https://eslint.org/docs/rules/no-throw-literal
455
+ "eslint/no-throw-literal": "error",
456
+
457
+ // Disallow ternary operators when simpler alternatives exist
458
+ // https://eslint.org/docs/rules/no-unneeded-ternary
459
+ "eslint/no-unneeded-ternary": ["error", { "defaultAssignment": false }],
460
+
461
+ // Disallow unused expressions
462
+ // https://eslint.org/docs/rules/no-unused-expressions
463
+ "eslint/no-unused-expressions": "error",
464
+
465
+ // Disallow unused labels
466
+ // https://eslint.org/docs/rules/no-unused-labels
467
+ "eslint/no-unused-labels": "error",
468
+
469
+ // Disallow unnecessary catch clauses
470
+ // https://eslint.org/docs/rules/no-useless-catch
471
+ "eslint/no-useless-catch": "error",
472
+
473
+ // Disallow unnecessary computed property keys in objects and classes
474
+ // https://eslint.org/docs/rules/no-useless-computed-key
475
+ "eslint/no-useless-computed-key": "error",
476
+
477
+ // Disallow unnecessary concatenation of literals or template literals
478
+ // https://eslint.org/docs/rules/no-useless-concat
479
+ "eslint/no-useless-concat": "error",
480
+
481
+ // Disallow unnecessary constructors
482
+ // https://eslint.org/docs/rules/no-useless-constructor
483
+ "eslint/no-useless-constructor": "error",
484
+
485
+ // Disallow unnecessary escape characters
486
+ // https://eslint.org/docs/rules/no-useless-escape
487
+ "eslint/no-useless-escape": "error",
488
+
489
+ // Disallow renaming import, export, and destructured assignments to the same name
490
+ // https://eslint.org/docs/rules/no-useless-rename
491
+ "eslint/no-useless-rename": "error",
492
+
493
+ // Disallow redundant return statements
494
+ // https://eslint.org/docs/rules/no-useless-return
495
+ "eslint/no-useless-return": "error",
496
+
497
+ // Require let or const instead of var
498
+ // https://eslint.org/docs/rules/no-var
499
+ "eslint/no-var": "error",
500
+
501
+ // Disallow void operators
502
+ // https://eslint.org/docs/rules/no-void
503
+ "eslint/no-void": "error",
504
+ // note: typescript.jsonc overrides this to ["error", { "allowAsStatement": true }]
505
+
506
+ // Disallow with statements
507
+ // https://eslint.org/docs/rules/no-with
508
+ "eslint/no-with": "error",
509
+
510
+ // Require const declarations for variables that are never reassigned after declared
511
+ // https://eslint.org/docs/rules/prefer-const
512
+ "eslint/prefer-const": ["error", { "destructuring": "any", "ignoreReadBeforeAssign": true }],
513
+
514
+ // Require destructuring from arrays and/or objects
515
+ // https://eslint.org/docs/rules/prefer-destructuring
516
+ "eslint/prefer-destructuring": [
517
+ "error",
518
+ {
519
+ "VariableDeclarator": { "array": false, "object": true },
520
+ "AssignmentExpression": { "array": true, "object": false },
521
+ },
522
+ { "enforceForRenamedProperties": false },
523
+ ],
524
+
525
+ // Disallow the use of Math.pow in favor of the ** operator
526
+ // https://eslint.org/docs/rules/prefer-exponentiation-operator
527
+ "eslint/prefer-exponentiation-operator": "error",
528
+
529
+ // Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals
530
+ // https://eslint.org/docs/rules/prefer-numeric-literals
531
+ "eslint/prefer-numeric-literals": "error",
532
+
533
+ // Disallow use of Object.prototype.hasOwnProperty.call() and prefer use of Object.hasOwn()
534
+ // https://eslint.org/docs/rules/prefer-object-has-own
535
+ "eslint/prefer-object-has-own": "error",
536
+
537
+ // Prefer use of an object spread over Object.assign
538
+ // https://eslint.org/docs/rules/prefer-object-spread
539
+ "eslint/prefer-object-spread": "error",
540
+
541
+ // Require using Error objects as Promise rejection reasons
542
+ // https://eslint.org/docs/rules/prefer-promise-reject-errors
543
+ "eslint/prefer-promise-reject-errors": ["error", { "allowEmptyReject": true }],
544
+
545
+ // Require rest parameters instead of arguments
546
+ // https://eslint.org/docs/rules/prefer-rest-params
547
+ "eslint/prefer-rest-params": "error",
548
+
549
+ // Require spread operators instead of .apply()
550
+ // https://eslint.org/docs/rules/prefer-spread
551
+ "eslint/prefer-spread": "error",
552
+
553
+ // Require template literals instead of string concatenation
554
+ // https://eslint.org/docs/rules/prefer-template
555
+ "eslint/prefer-template": "error",
556
+
557
+ // Disallow losing originally caught error when re-throwing custom errors
558
+ // https://eslint.org/docs/rules/preserve-caught-error
559
+ "eslint/preserve-caught-error": ["error", { "requireCatchParameter": false }],
560
+
561
+ // Enforce the consistent use of the radix argument when using parseInt()
562
+ // https://eslint.org/docs/rules/radix
563
+ "eslint/radix": "error",
564
+
565
+ // Disallow async functions which have no await expression
566
+ // https://eslint.org/docs/rules/require-await
567
+ "eslint/require-await": "error",
568
+
569
+ // Require generator functions to contain yield
570
+ // https://eslint.org/docs/rules/require-yield
571
+ "eslint/require-yield": "error",
572
+
573
+ // Require symbol descriptions
574
+ // https://eslint.org/docs/rules/symbol-description
575
+ "eslint/symbol-description": "error",
576
+
577
+ // Require or disallow "Yoda" conditions
578
+ // https://eslint.org/docs/rules/yoda
579
+ "eslint/yoda": "error",
580
+
581
+ // -- oxc rules (oxlint-specific, no eslint equivalent) --
582
+ // These are bug-catchers that oxlint can detect natively.
583
+
584
+ // Disallow calling array methods on arguments (it's array-like, not an array)
585
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-array-method-on-arguments.html
586
+ "oxc/bad-array-method-on-arguments": "error",
587
+
588
+ // Disallow comparing charAt() result to multi-char string (always false)
589
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-char-at-comparison.html
590
+ "oxc/bad-char-at-comparison": "error",
591
+
592
+ // Disallow chained comparisons like a < b < c (evaluates left to boolean first)
593
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-comparison-sequence.html
594
+ "oxc/bad-comparison-sequence": "error",
595
+
596
+ // Disallow swapped/nested min/max that produce constant results
597
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-min-max-func.html
598
+ "oxc/bad-min-max-func": "error",
599
+
600
+ // Disallow reference-equality checks against object/array literals (always false)
601
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-object-literal-comparison.html
602
+ "oxc/bad-object-literal-comparison": "error",
603
+
604
+ // Disallow replaceAll with regex missing the global flag (throws at runtime)
605
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/bad-replace-all-arg.html
606
+ "oxc/bad-replace-all-arg": "error",
607
+
608
+ // Disallow redundant or impossible comparisons (x >= 5 && x >= 3)
609
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/const-comparisons.html
610
+ "oxc/const-comparisons": "error",
611
+
612
+ // Disallow comparisons that can be simplified (a === b || a < b → a <= b)
613
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/double-comparisons.html
614
+ "oxc/double-comparisons": "error",
615
+
616
+ // Disallow operations that always produce the same value (x * 0, x & 0)
617
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/erasing-op.html
618
+ "oxc/erasing-op": "error",
619
+
620
+ // Disallow constructing Error without throw
621
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/missing-throw.html
622
+ "oxc/missing-throw": "error",
623
+
624
+ // Disallow numeric arguments outside valid range (parseInt radix, toFixed digits)
625
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/number-arg-out-of-range.html
626
+ "oxc/number-arg-out-of-range": "error",
627
+
628
+ // Disallow function params only used in recursive self-calls (likely a bug)
629
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/only-used-in-recursion.html
630
+ "oxc/only-used-in-recursion": "error",
631
+
632
+ // Disallow passing functions to array methods when signatures don't match
633
+ // https://oxc.rs/docs/guide/usage/linter/rules/oxc/uninvoked-array-callback.html
634
+ "oxc/uninvoked-array-callback": "error",
635
+ },
636
+ }