Skip to main content

๐Ÿงถ Rules

Filter by plugins...
RulePluginSeverityOptionsDocsFiles
constructor-super@eslint/js2No optionsRequire `super()` calls in constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
for-direction@eslint/js2No optionsEnforce "for" loop update clause moving the counter in the right direction**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
getter-return@eslint/js2No optionsEnforce `return` statements in getters**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-async-promise-executor@eslint/js2No optionsDisallow using an async function as a Promise executor**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-case-declarations@eslint/js2No optionsDisallow lexical declarations in case clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-class-assign@eslint/js2No optionsDisallow reassigning class members**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-compare-neg-zero@eslint/js2No optionsDisallow comparing against -0**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-cond-assign@eslint/js2No optionsDisallow assignment operators in conditional expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-const-assign@eslint/js2No optionsDisallow reassigning `const` variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-constant-condition@eslint/js2No optionsDisallow constant expressions in conditions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-control-regex@eslint/js2No optionsDisallow control characters in regular expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-debugger@eslint/js2No optionsDisallow the use of `debugger`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-delete-var@eslint/js2No optionsDisallow deleting variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-dupe-args@eslint/js2No optionsDisallow duplicate arguments in `function` definitions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-dupe-else-if@eslint/js2No optionsDisallow duplicate conditions in if-else-if chains**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-dupe-keys@eslint/js2No optionsDisallow duplicate keys in object literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-duplicate-case@eslint/js2No optionsDisallow duplicate case labels**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-empty@eslint/js2No optionsDisallow empty block statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-empty-character-class@eslint/js2No optionsDisallow empty character classes in regular expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-empty-pattern@eslint/js2No optionsDisallow empty destructuring patterns**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-ex-assign@eslint/js2No optionsDisallow reassigning exceptions in `catch` clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-extra-boolean-cast@eslint/js2No optionsDisallow unnecessary boolean casts**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-fallthrough@eslint/js2No optionsDisallow fallthrough of `case` statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-func-assign@eslint/js2No optionsDisallow reassigning `function` declarations**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-global-assign@eslint/js2No optionsDisallow assignments to native objects or read-only global variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-import-assign@eslint/js2No optionsDisallow assigning to imported bindings**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-inner-declarations@eslint/js2No optionsDisallow variable or `function` declarations in nested blocks**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-invalid-regexp@eslint/js2No optionsDisallow invalid regular expression strings in `RegExp` constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-irregular-whitespace@eslint/js2No optionsDisallow irregular whitespace**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-misleading-character-class@eslint/js2No optionsDisallow characters which are made with multiple code points in character class syntax**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-mixed-spaces-and-tabs@eslint/js2No optionsDisallow mixed spaces and tabs for indentation**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-new-symbol@eslint/js2No optionsDisallow `new` operators with the `Symbol` object**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-nonoctal-decimal-escape@eslint/js2No optionsDisallow `\8` and `\9` escape sequences in string literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-obj-calls@eslint/js2No optionsDisallow calling global object properties as functions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-octal@eslint/js2No optionsDisallow octal literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-prototype-builtins@eslint/js2No optionsDisallow calling some `Object.prototype` methods directly on objects**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-regex-spaces@eslint/js2No optionsDisallow multiple spaces in regular expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-self-assign@eslint/js2No optionsDisallow assignments where both sides are exactly the same**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-setter-return@eslint/js2No optionsDisallow returning values from setters**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-shadow-restricted-names@eslint/js2No optionsDisallow identifiers from shadowing restricted names**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-sparse-arrays@eslint/js2No optionsDisallow sparse arrays**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-this-before-super@eslint/js2No optionsDisallow `this`/`super` before calling `super()` in constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unexpected-multiline@eslint/js2No optionsDisallow confusing multiline expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unreachable@eslint/js2No optionsDisallow unreachable code after `return`, `throw`, `continue`, and `break` statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unsafe-finally@eslint/js2No optionsDisallow control flow statements in `finally` blocks**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unsafe-negation@eslint/js2No optionsDisallow negating the left operand of relational operators**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unsafe-optional-chaining@eslint/js2No optionsDisallow use of optional chaining in contexts where the `undefined` value is not allowed**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unused-labels@eslint/js2No optionsDisallow unused labels**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-useless-backreference@eslint/js2No optionsDisallow useless backreferences in regular expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-useless-catch@eslint/js2No optionsDisallow unnecessary `catch` clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-useless-escape@eslint/js2No optionsDisallow unnecessary escape characters**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-with@eslint/js2No optionsDisallow `with` statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
require-yield@eslint/js2No optionsRequire generator functions to contain `yield`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
use-isnan@eslint/js2No optionsRequire calls to `isNaN()` when checking for `NaN`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
valid-typeof@eslint/js2No optionsEnforce comparing `typeof` expressions against valid strings**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/adjacent-overload-signatures@typescript-eslint/eslint-plugin2No optionsRequire that function overload signatures be consecutive**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/ban-ts-comment@typescript-eslint/eslint-plugin0No optionsDisallow `@ts-<directive>` comments or require descriptions after directives**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/ban-types@typescript-eslint/eslint-plugin2No optionsDisallow certain types**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-array-constructor@typescript-eslint/eslint-plugin0No optionsDisallow generic `Array` constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-empty-function@typescript-eslint/eslint-plugin2No optionsDisallow empty functions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-empty-interface@typescript-eslint/eslint-plugin2No optionsDisallow the declaration of empty interfaces**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-explicit-any@typescript-eslint/eslint-plugin1No optionsDisallow the `any` type**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-extra-non-null-assertion@typescript-eslint/eslint-plugin2No optionsDisallow extra non-null assertions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-extra-semi@eslint/js0No optionsDisallow unnecessary semicolons**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-extra-semi@typescript-eslint/eslint-plugin2No optionsDisallow unnecessary semicolons**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-inferrable-types@typescript-eslint/eslint-plugin2No optionsDisallow explicit type declarations for variables or parameters initialized to a number, string, or boolean**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-loss-of-precision@eslint/js0No optionsDisallow literal numbers that lose precision**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-loss-of-precision@typescript-eslint/eslint-plugin2No optionsDisallow literal numbers that lose precision**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-misused-new@typescript-eslint/eslint-plugin2No optionsEnforce valid definition of `new` and `constructor`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-namespace@typescript-eslint/eslint-plugin2No optionsDisallow TypeScript namespaces**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-non-null-asserted-optional-chain@typescript-eslint/eslint-plugin2No optionsDisallow non-null assertions after an optional chain expression**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-non-null-assertion@typescript-eslint/eslint-plugin1No optionsDisallow non-null assertions using the `!` postfix operator**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-this-alias@typescript-eslint/eslint-plugin2No optionsDisallow aliasing `this`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unnecessary-type-constraint@typescript-eslint/eslint-plugin2No optionsDisallow unnecessary constraints on generic types**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unused-vars@typescript-eslint/eslint-plugin1No optionsDisallow unused variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-var-requires@typescript-eslint/eslint-plugin2No optionsDisallow `require` statements except in import statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/prefer-as-const@typescript-eslint/eslint-plugin2No optionsEnforce the use of `as const` over literal type**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/prefer-namespace-keyword@typescript-eslint/eslint-plugin2No optionsRequire using `namespace` keyword over `module` keyword to declare custom TypeScript modules**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/triple-slash-reference@typescript-eslint/eslint-plugin2No optionsDisallow certain triple slash directives in favor of ES6-style import declarations**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/await-thenable@typescript-eslint/eslint-plugin2No optionsDisallow awaiting a value that is not a Thenable**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-floating-promises@typescript-eslint/eslint-plugin2No optionsRequire Promise-like statements to be handled appropriately**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-for-in-array@typescript-eslint/eslint-plugin2No optionsDisallow iterating over an array with a for-in loop**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-implied-eval@eslint/js0No optionsDisallow the use of `eval()`-like methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-implied-eval@typescript-eslint/eslint-plugin2No optionsDisallow the use of `eval()`-like methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-misused-promises@typescript-eslint/eslint-plugin2No optionsDisallow Promises in places not designed to handle them**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unnecessary-type-assertion@typescript-eslint/eslint-plugin2No optionsDisallow type assertions that do not change the type of an expression**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unsafe-argument@typescript-eslint/eslint-plugin2No optionsDisallow calling a function with a value with type `any`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unsafe-assignment@typescript-eslint/eslint-plugin0No optionsDisallow assigning a value with type `any` to variables and properties**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unsafe-call@typescript-eslint/eslint-plugin2No optionsDisallow calling a value with type `any`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unsafe-member-access@typescript-eslint/eslint-plugin2No optionsDisallow member access on a value with type `any`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unsafe-return@typescript-eslint/eslint-plugin2No optionsDisallow returning a value with type `any` from a function**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/require-await@typescript-eslint/eslint-plugin2No optionsDisallow async functions which have no `await` expression**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/restrict-plus-operands@typescript-eslint/eslint-plugin2No optionsRequire both operands of addition to be the same type and be `bigint`, `number`, or `string`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/restrict-template-expressions@typescript-eslint/eslint-plugin2No optionsEnforce template literal expressions to be of `string` type**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/unbound-method@typescript-eslint/eslint-plugin2No optionsEnforce unbound methods are called with their expected scope**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/return-await@typescript-eslint/eslint-plugin2No optionsEnforce consistent returning of awaited values**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-redundant-type-constituents@typescript-eslint/eslint-plugin2No optionsDisallow members of unions and intersections that do nothing or override type information**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unnecessary-boolean-literal-compare@typescript-eslint/eslint-plugin2No optionsDisallow unnecessary equality comparisons against boolean literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/prefer-ts-expect-error@typescript-eslint/eslint-plugin2No optionsEnforce using `@ts-expect-error` over `@ts-ignore`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-throw-literal@typescript-eslint/eslint-plugin2No optionsDisallow throwing literals as exceptions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-use-before-define@typescript-eslint/eslint-plugin2No optionsDisallow the use of variables before they are defined**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/consistent-type-assertions@typescript-eslint/eslint-plugin2No optionsEnforce consistent usage of type assertions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/consistent-type-imports@typescript-eslint/eslint-plugin2[{"fixStyle":"inline-type-imports"}]Enforce consistent usage of type imports**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/consistent-type-exports@typescript-eslint/eslint-plugin2[{"fixMixedExportsWithInlineTypeSpecifier":true}]Enforce consistent usage of type exports**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/explicit-module-boundary-types@typescript-eslint/eslint-plugin2No optionsRequire explicit return and argument types on exported functions' and classes' public class methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/switch-exhaustiveness-check@typescript-eslint/eslint-plugin2No optionsRequire switch-case statements to be exhaustive with union type**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-invalid-void-type@typescript-eslint/eslint-plugin2No optionsDisallow `void` type outside of generic or return types**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/method-signature-style@typescript-eslint/eslint-plugin2No optionsEnforce using a particular method signature syntax**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/non-nullable-type-assertion-style@typescript-eslint/eslint-plugin2No optionsEnforce non-null assertions over explicit type casts**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-confusing-void-expression@typescript-eslint/eslint-plugin2No optionsRequire expressions of type void to appear in statement position**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/prefer-nullish-coalescing@typescript-eslint/eslint-plugin2[{"ignorePrimitives":{"string":true}}]Enforce using the nullish coalescing operator instead of logical chaining**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unnecessary-condition@typescript-eslint/eslint-plugin2No optionsDisallow conditionals where the type is always truthy or always falsy**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/unified-signatures@typescript-eslint/eslint-plugin2No optionsDisallow two overloads that could be unified into one with a union or an optional/rest parameter**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-unused-expressions@typescript-eslint/eslint-plugin2[{"allowShortCircuit":true,"allowTernary":true,"allowTaggedTemplates":true,"enforceForJSX":true}]Disallow unused expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/array-type@typescript-eslint/eslint-plugin2No optionsRequire consistently using either `T[]` or `Array<T>` for arrays**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/prefer-optional-chain@typescript-eslint/eslint-plugin2No optionsEnforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/dot-notation@typescript-eslint/eslint-plugin2No optionsEnforce dot notation whenever possible**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-import-type-side-effects@typescript-eslint/eslint-plugin2No optionsEnforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/default-param-last@typescript-eslint/eslint-plugin2No optionsEnforce default parameters to be last**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/no-shadow@typescript-eslint/eslint-plugin2[{"hoist":"all","allow":["resolve","reject","done","next","err","error"],"ignoreTypeValueShadow":true,"ignoreFunctionTypeParameterNameValueShadow":true}]Disallow variable declarations from shadowing variables declared in the outer scope**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/naming-convention@typescript-eslint/eslint-plugin2[{"selector":"default","format":["camelCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","format":["camelCase","UPPER_CASE"],"modifiers":["const"],"types":["boolean","string","number"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"objectLiteralProperty","format":null,"leadingUnderscore":"allowSingleOrDouble","trailingUnderscore":"forbid"},{"selector":"typeLike","format":["PascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","types":["boolean"],"format":["camelCase"],"prefix":["is","has","should","can"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","modifiers":["destructured"],"format":null},{"selector":"typeProperty","format":null}]Enforce naming conventions for everything across a codebase**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
tsdoc/syntaxeslint-plugin-tsdoc2No optionsValidates that TypeScript documentation comments conform to the TSDoc standard**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
func-style@eslint/js2No optionsEnforce the consistent use of either `function` declarations or expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-promise-executor-return@eslint/js2No optionsDisallow returning values from Promise executor functions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unreachable-loop@eslint/js2No optionsDisallow loops with a body that allows only one iteration**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-caller@eslint/js2No optionsDisallow the use of `arguments.caller` or `arguments.callee`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-restricted-imports@eslint/js2[{"paths":["prop-types"]}]Disallow specified modules when loaded by `import`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-extend-native@eslint/js2No optionsDisallow extending native types**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-extra-bind@eslint/js2No optionsDisallow unnecessary calls to `.bind()`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-extra-label@eslint/js2No optionsDisallow unnecessary labels**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-implicit-coercion@eslint/js2No optionsDisallow shorthand type conversions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-multi-str@eslint/js2No optionsDisallow multiline strings**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-negated-condition@eslint/js2No optionsDisallow negated conditions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-new-wrappers@eslint/js2No optionsDisallow `new` operators with the `String`, `Number`, and `Boolean` objects**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-new-object@eslint/js2No optionsDisallow `Object` constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-restricted-properties@eslint/js2[{"object":"global","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"self","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"window","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"global","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"self","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"window","property":"isNaN","message":"Please use Number.isNaN instead"}]Disallow certain properties on certain objects**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
strict@eslint/js2["never"]Require or disallow strict mode directives**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-octal-escape@eslint/js2No optionsDisallow octal escape sequences in string literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-proto@eslint/js2No optionsDisallow the use of the `__proto__` property**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-sequences@eslint/js2[{"allowInParentheses":false}]Disallow comma operators**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unmodified-loop-condition@eslint/js2No optionsDisallow unmodified loop conditions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-void@eslint/js2No optionsDisallow `void` operators**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
max-statements-per-line@eslint/js2[{"max":1}]Enforce a maximum number of statements allowed per line**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-array-constructor@eslint/js2No optionsDisallow `Array` constructors**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-multi-assign@eslint/js2No optionsDisallow use of chained assignment expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-plusplus@eslint/js2No optionsDisallow the unary operators `++` and `--`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-destructuring@eslint/js2[{"array":false,"object":true},{"enforceForRenamedProperties":false}]Require destructuring from arrays and/or objects**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-useless-call@eslint/js2No optionsDisallow unnecessary calls to `.call()` and `.apply()`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-object-has-own@eslint/js2No optionsDisallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-constant-binary-expression@eslint/js2No optionsDisallow expressions where the operation doesn't affect the value**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-lone-blocks@eslint/js2No optionsDisallow unnecessary nested blocks**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-var@eslint/js2No optionsRequire `let` or `const` instead of `var`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-eval@eslint/js2No optionsDisallow the use of `eval()`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-const@eslint/js2No optionsRequire `const` declarations for variables that are never reassigned after declared**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-rest-params@eslint/js2No optionsRequire rest parameters instead of `arguments`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-return-assign@eslint/js2["always"]Disallow assignment operators in `return` statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-else-return@eslint/js2[{"allowElseIf":false}]Disallow `else` blocks after `return` statements in `if` statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-template@eslint/js2No optionsRequire template literals instead of string concatenation**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
operator-assignment@eslint/js2["never"]Require or disallow assignment operator shorthand where possible**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
logical-assignment-operators@eslint/js2["never"]Require or disallow logical assignment operator shorthand**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
padding-line-between-statements@eslint/js2[{"blankLine":"always","prev":["const","let"],"next":"*"},{"blankLine":"any","prev":["const","let"],"next":["const","let"]},{"blankLine":"always","prev":"*","next":"return"}]Require or disallow padding lines between statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-spread@eslint/js2No optionsRequire spread operators instead of `.apply()`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-object-spread@eslint/js2No optionsDisallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-param-reassign@eslint/js2[{"props":true}]Disallow reassigning `function` parameters**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-redeclare@eslint/js2No optionsDisallow variable redeclaration**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
array-callback-return@eslint/js2[{"allowImplicit":true,"checkForEach":true}]Enforce `return` statements in callbacks of array methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
object-shorthand@eslint/js2No optionsRequire or disallow method and property shorthand syntax for object literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unneeded-ternary@eslint/js2[{"defaultAssignment":false}]Disallow ternary operators when simpler alternatives exist**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
require-atomic-updates@eslint/js2No optionsDisallow assignments that can lead to race conditions due to usage of `await` or `yield`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-nested-ternary@eslint/js2No optionsDisallow nested ternary expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-console@eslint/js2[{"allow":["warn","error","debug"]}]Disallow the use of `console`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
eqeqeq@eslint/js2No optionsRequire the use of `===` and `!==`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
prefer-arrow-callback@eslint/js2No optionsRequire using arrow functions for callbacks**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
arrow-body-style@eslint/js2["as-needed"]Require braces around arrow function bodies**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-restricted-syntax@eslint/js2[{"selector":"LabeledStatement","message":"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."},{"selector":"ForInStatement","message":"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."},{"selector":"Identifier[name='Reflect']","message":"Avoid the Reflect API. It is a very low-level feature that has only rare and specific use-cases if building complex and hacky libraries. There is no need to use this feature for any kind of normal development."},{"selector":"BinaryExpression[operator='in']","message":"Avoid the 'in' operator. In real-world scenarios there is rarely a need for this operator. For most usecases, basic property access is all you need. For every other case, use the Object.hasOwn() or the Object.prototype.hasOwnProperty() method. In the really niche cases where you actually need to check for the existence of a property both in the object itself AND in it's prototype chain, feel free to disable this rule with the inline eslint-disable syntax."},{"selector":"PropertyDefinition[accessibility='public']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"PropertyDefinition[accessibility='protected']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"PropertyDefinition[accessibility='private']","message":"Avoid access modifiers. In Javascript modules there is no need to limit developer access to properties."},{"selector":"Identifier[name='PropTypes']","message":"Avoid PropTypes. Use Typescript instead."},{"selector":"Identifier[name='propTypes']","message":"Avoid PropTypes. Use Typescript instead."}]Disallow specified syntax**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-undef@eslint/js0No optionsDisallow the use of undeclared variables unless mentioned in `/*global */` comments**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-dupe-class-members@eslint/js0No optionsDisallow duplicate class members**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-return-await@eslint/js0No optionsDisallow unnecessary `return await`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-throw-literal@eslint/js0No optionsDisallow throwing literals as exceptions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-use-before-define@eslint/js0No optionsDisallow the use of variables before they are defined**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unused-expressions@eslint/js0No optionsDisallow unused expressions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-empty-function@eslint/js0No optionsDisallow empty functions**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
require-await@eslint/js0No optionsDisallow async functions which have no `await` expression**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-unused-vars@eslint/js0No optionsDisallow unused variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
dot-notation@eslint/js0No optionsEnforce dot notation whenever possible**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-shadow@eslint/js0No optionsDisallow variable declarations from shadowing variables declared in the outer scope**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
default-param-last@eslint/js0No optionsEnforce default parameters to be last**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
fp/no-argumentseslint-plugin-fp2No optionsForbid the use of `arguments`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
fp/no-classeslint-plugin-fp2No optionsForbid the use of `class`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
fp/no-deleteeslint-plugin-fp2No optionsForbid the use of `delete`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
fp/no-proxyeslint-plugin-fp2No optionsForbid the use of `Proxy`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
etc/no-enumeslint-plugin-etc2No optionsForbids the use of `enum`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
etc/no-misused-genericseslint-plugin-etc2No optionsForbids type parameters without inference sites and type parameters that don't add type safety to declarations.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
etc/no-assign-mutated-arrayeslint-plugin-etc2No optionsForbids the assignment of returned, mutated arrays.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@regru/prefer-early-return/prefer-early-return@regru/eslint-plugin-prefer-early-return2[{"maximumStatements":1}]Prefer early returns over full-body conditional wrapping in function declarations.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/better-regexeslint-plugin-unicorn2No optionsImprove regexes by making them shorter, consistent, and safer.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/explicit-length-checkeslint-plugin-unicorn2No optionsEnforce explicitly comparing the `length` or `size` property of a value.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/consistent-function-scopingeslint-plugin-unicorn2No optionsMove function definitions to the highest possible scope.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-default-parameterseslint-plugin-unicorn2No optionsPrefer default parameters over reassignment.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-array-push-pusheslint-plugin-unicorn2No optionsEnforce combining multiple `Array#push()` into one call.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-array-index-ofeslint-plugin-unicorn2No optionsPrefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-array-flat-mapeslint-plugin-unicorn2No optionsPrefer `.flatMap(โ€ฆ)` over `.map(โ€ฆ).flat()`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-array-someeslint-plugin-unicorn2No optionsPrefer `.some(โ€ฆ)` over `.filter(โ€ฆ).length` check and `.{find,findLast}(โ€ฆ)`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-array-findeslint-plugin-unicorn2No optionsPrefer `.find(โ€ฆ)` and `.findLast(โ€ฆ)` over the first or last element from `.filter(โ€ฆ)`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-array-flateslint-plugin-unicorn2No optionsPrefer `Array#flat()` over legacy techniques to flatten arrays.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-includeseslint-plugin-unicorn2No optionsPrefer `.includes()` over `.indexOf()` and `Array#some()` when checking for existence or non-existence.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-top-level-awaiteslint-plugin-unicorn2No optionsPrefer top-level await over top-level promises and async function calls.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-spreadeslint-plugin-unicorn2No optionsPrefer the spread operator over `Array.from(โ€ฆ)`, `Array#concat(โ€ฆ)`, `Array#{slice,toSpliced}()` and `String#split('')`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-useless-spreadeslint-plugin-unicorn2No optionsDisallow unnecessary spread.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-useless-undefinedeslint-plugin-unicorn2No optionsDisallow useless `undefined`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-for-loopeslint-plugin-unicorn2No optionsDo not use a `for` loop that can be replaced with a `for-of` loop.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-set-sizeeslint-plugin-unicorn2No optionsPrefer using `Set#size` instead of `Array#length`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-type-erroreslint-plugin-unicorn2No optionsEnforce throwing `TypeError` in type checking conditions.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-object-from-entrieseslint-plugin-unicorn2No optionsPrefer using `Object.fromEntries(โ€ฆ)` to transform a list of key-value pairs into an object.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-native-coercion-functionseslint-plugin-unicorn2No optionsPrefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-logical-operator-over-ternaryeslint-plugin-unicorn2No optionsPrefer using a logical operator over a ternary.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-event-targeteslint-plugin-unicorn2No optionsPrefer `EventTarget` over `EventEmitter`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-await-expression-membereslint-plugin-unicorn2No optionsDisallow member access from await expression.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-new-arrayeslint-plugin-unicorn2No optionsDisallow `new Array()`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/throw-new-erroreslint-plugin-unicorn2No optionsRequire `new` when throwing an error.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-array-reduceeslint-plugin-unicorn2No optionsDisallow `Array#reduce()` and `Array#reduceRight()`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-useless-length-checkeslint-plugin-unicorn2No optionsDisallow useless array length check.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-prototype-methodseslint-plugin-unicorn2No optionsPrefer borrowing methods from the prototype instead of the instance.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-date-noweslint-plugin-unicorn2No optionsPrefer `Date.now()` to get the number of milliseconds since the Unix Epoch.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-export-fromeslint-plugin-unicorn2[{"ignoreUsedVariables":true}]Prefer `exportโ€ฆfrom` when re-exporting.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-new-buffereslint-plugin-unicorn2No optionsEnforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-query-selectoreslint-plugin-unicorn2No optionsPrefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-string-replace-alleslint-plugin-unicorn2No optionsPrefer `String#replaceAll()` over regex searches with the global flag.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/prefer-switcheslint-plugin-unicorn2[{"emptyDefaultCase":"do-nothing-comment"}]Prefer `switch` over multiple `else-if`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/switch-case-braceseslint-plugin-unicorn2No optionsEnforce consistent brace style for `case` clauses.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/catch-error-nameeslint-plugin-unicorn2No optionsEnforce a specific parameter name in catch clauses.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/cognitive-complexityeslint-plugin-sonarjs0No optionsCognitive Complexity of functions should not be too high**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/elseif-without-elseeslint-plugin-sonarjs0No options"if ... else if" constructs should end with "else" clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/max-switch-caseseslint-plugin-sonarjs2No options"switch" statements should not have too many "case" clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-all-duplicated-brancheseslint-plugin-sonarjs2No optionsAll branches in a conditional structure should not have exactly the same implementation**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-collapsible-ifeslint-plugin-sonarjs2No optionsCollapsible "if" statements should be merged**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-collection-size-mischeckeslint-plugin-sonarjs2No optionsCollection sizes and array length comparisons should make sense**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-duplicate-stringeslint-plugin-sonarjs2No optionsString literals should not be duplicated**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-duplicated-brancheseslint-plugin-sonarjs2No optionsTwo branches in a conditional structure should not have exactly the same implementation**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-element-overwriteeslint-plugin-sonarjs2No optionsCollection elements should not be replaced unconditionally**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-empty-collectioneslint-plugin-sonarjs2No optionsEmpty collections should not be accessed or iterated**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-extra-argumentseslint-plugin-sonarjs2No optionsFunction calls should not pass extra arguments**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-gratuitous-expressionseslint-plugin-sonarjs2No optionsBoolean expressions should not be gratuitous**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-identical-conditionseslint-plugin-sonarjs2No optionsRelated "if-else-if" and "switch-case" statements should not have the same condition**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-identical-expressionseslint-plugin-sonarjs2No optionsIdentical expressions should not be used on both sides of a binary operator**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-identical-functionseslint-plugin-sonarjs2No optionsFunctions should not have identical implementations**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-ignored-returneslint-plugin-sonarjs2No optionsReturn values from functions without side effects should not be ignored**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-inverted-boolean-checkeslint-plugin-sonarjs0No optionsBoolean checks should not be inverted**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-nested-switcheslint-plugin-sonarjs2No options"switch" statements should not be nested**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-nested-template-literalseslint-plugin-sonarjs2No optionsTemplate literals should not be nested**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-one-iteration-loopeslint-plugin-sonarjs2No optionsLoops with at most one iteration should be refactored**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-redundant-booleaneslint-plugin-sonarjs2No optionsBoolean literals should not be redundant**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-redundant-jumpeslint-plugin-sonarjs2No optionsJump statements should not be redundant**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-same-line-conditionaleslint-plugin-sonarjs2No optionsConditionals should start on new lines**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-small-switcheslint-plugin-sonarjs2No options"switch" statements should have at least 3 "case" clauses**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-unused-collectioneslint-plugin-sonarjs2No optionsCollection and array contents should be used**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-use-of-empty-return-valueeslint-plugin-sonarjs2No optionsThe output of functions that don't return anything should not be used**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/no-useless-catcheslint-plugin-sonarjs2No options"catch" clauses should do more than rethrow**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/non-existent-operatoreslint-plugin-sonarjs2No optionsNon-existent operators "=+", "=-" and "=!" should not be used**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/prefer-immediate-returneslint-plugin-sonarjs0No optionsLocal variables should not be declared and then immediately returned or thrown**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/prefer-object-literaleslint-plugin-sonarjs2No optionsObject literal syntax should be used**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/prefer-single-boolean-returneslint-plugin-sonarjs2No optionsReturn of boolean expressions should not be wrapped into an "if-then-else" statement**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
sonarjs/prefer-whileeslint-plugin-sonarjs2No optionsA "while" loop should be used instead of a "for" loop**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/namedeslint-plugin-import0No optionsEnsure named imports correspond to a named export in the remote file.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/namespaceeslint-plugin-import0No optionsEnsure imported namespaces contain dereferenced properties as they are dereferenced.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/defaulteslint-plugin-import0No optionsEnsure a default export is present, given a default import.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-named-as-default-membereslint-plugin-import0No optionsForbid use of exported name as property of default export.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-unresolvedeslint-plugin-import2[{"commonjs":true,"caseSensitiveStrict":true}]Ensure imports point to a file/module that can be resolved.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/firsteslint-plugin-import2No optionsEnsure all imports appear before other statements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/ordereslint-plugin-import2[{"newlines-between":"never"}]Enforce a convention in module import order.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-default-exporteslint-plugin-import2No optionsForbid default exports.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-named-as-defaulteslint-plugin-import2No optionsForbid use of exported name as identifier of default export.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-duplicateseslint-plugin-import2[{"prefer-inline":true}]Forbid repeated import of the same module in multiple places.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/newline-after-importeslint-plugin-import2[{"considerComments":true}]Enforce a newline after import statements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-useless-path-segmentseslint-plugin-import2[{"noUselessIndex":true}]Forbid unnecessary path segments in import and require statements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-anonymous-default-exporteslint-plugin-import0No options**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/await-interactionseslint-plugin-storybook2No optionsInteractions should be awaited**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/context-in-play-functioneslint-plugin-storybook2No optionsPass a context when invoking play function of another story**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/default-exportseslint-plugin-storybook2No optionsStory files should have a default export**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/hierarchy-separatoreslint-plugin-storybook1No optionsDeprecated hierarchy separator in title property**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/no-redundant-story-nameeslint-plugin-storybook1No optionsA story should not have a redundant name property**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/prefer-pascal-caseeslint-plugin-storybook1No optionsStories should use PascalCase**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/story-exportseslint-plugin-storybook2No optionsA story file must contain at least one story export**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/use-storybook-expecteslint-plugin-storybook2No optionsUse expect from `@storybook/jest`**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/use-storybook-testing-libraryeslint-plugin-storybook2No optionsDo not use testing-library directly on stories**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/csf-componenteslint-plugin-storybook1No optionsThe component property should be set**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/no-stories-ofeslint-plugin-storybook2No optionsstoriesOf is deprecated and should not be used**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/no-title-property-in-metaeslint-plugin-storybook2No optionsDo not define a title in meta**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
import/no-default-exporteslint-plugin-import0No options**/*.stories.@(ts|tsx|js|jsx|mjs|cjs), **/*.story.@(ts|tsx|js|jsx|mjs|cjs)
storybook/no-uninstalled-addonseslint-plugin-storybook2No optionsThis rule identifies storybook addons that are invalid because they are either not installed or contain a typo in their name.**/.storybook/main.@(js|cjs|mjs|ts)
jsdoc/require-descriptioneslint-plugin-jsdoc2No optionsRequires that all functions have a description.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-description-complete-sentenceeslint-plugin-jsdoc2No optionsRequires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-hyphen-before-param-descriptioneslint-plugin-jsdoc2No optionsRequires a hyphen before the `@param` description.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-returns-descriptioneslint-plugin-jsdoc2No optionsRequires that the `@returns` tag has a `description` value.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-param-nameeslint-plugin-jsdoc2No optionsRequires that all function parameters have names.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-param-descriptioneslint-plugin-jsdoc2No optionsRequires that each `@param` tag has a `description` value.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/require-asterisk-prefixeslint-plugin-jsdoc2No optionsRequires that each JSDoc line starts with an `*`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/no-typeseslint-plugin-jsdoc2No optionsThis rule reports types being used on `@param` or `@returns`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/no-multi-asteriskseslint-plugin-jsdoc2No optionshttps://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/no-defaultseslint-plugin-jsdoc2No optionsThis rule reports defaults being used on the relevant portion of `@param` or `@default`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/no-blank-block-descriptionseslint-plugin-jsdoc2No optionsDetects and removes extra lines of a blank block description**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/check-indentationeslint-plugin-jsdoc2No optionsReports invalid padding inside JSDoc blocks.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/check-tag-nameseslint-plugin-jsdoc2[{"jsxTags":true}]Reports invalid block tag names.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/check-param-nameseslint-plugin-jsdoc2[{"checkDestructured":false,"enableFixer":false}]Ensures that parameter names in JSDoc match those in the function declaration.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/sort-tagseslint-plugin-jsdoc2No optionsSorts tags by a specified sequence according to tag name.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsdoc/tag-lineseslint-plugin-jsdoc2["any",{"startLines":1}]Enforces lines (or no lines) between tags.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
import/no-default-exporteslint-plugin-import0No options**/*.config.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/display-nameeslint-plugin-react2No optionsDisallow missing displayName in a React component definition**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-keyeslint-plugin-react2No optionsDisallow missing `key` props in iterators/collection literals**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-comment-textnodeseslint-plugin-react2No optionsDisallow comments from being inserted as text nodes**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-duplicate-propseslint-plugin-react2No optionsDisallow duplicate properties in JSX**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-target-blankeslint-plugin-react2No optionsDisallow `target="_blank"` attribute without `rel="noreferrer"`**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-undefeslint-plugin-react2No optionsDisallow undeclared variables in JSX**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-uses-reacteslint-plugin-react0No optionsDisallow React to be incorrectly marked as unused**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-uses-varseslint-plugin-react2No optionsDisallow variables used in JSX to be incorrectly marked as unused**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-children-propeslint-plugin-react2No optionsDisallow passing of children as props**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-danger-with-childreneslint-plugin-react2No optionsDisallow when a DOM element is using both children and dangerouslySetInnerHTML**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-deprecatedeslint-plugin-react2No optionsDisallow usage of deprecated methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-direct-mutation-stateeslint-plugin-react2No optionsDisallow direct mutation of this.state**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-find-dom-nodeeslint-plugin-react2No optionsDisallow usage of findDOMNode**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-is-mountedeslint-plugin-react2No optionsDisallow usage of isMounted**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-render-return-valueeslint-plugin-react2No optionsDisallow usage of the return value of ReactDOM.render**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-string-refseslint-plugin-react2No optionsDisallow using string references**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-unescaped-entitieseslint-plugin-react2No optionsDisallow unescaped HTML entities from appearing in markup**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-unknown-propertyeslint-plugin-react2No optionsDisallow usage of unknown DOM property**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-unsafeeslint-plugin-react0No optionsDisallow usage of unsafe lifecycle methods**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/prop-typeseslint-plugin-react0No optionsDisallow missing props validation in a React component definition**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/react-in-jsx-scopeeslint-plugin-react0No optionsDisallow missing React when using JSX**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/require-render-returneslint-plugin-react2No optionsEnforce ES5 or ES6 class for returning value in render function**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-unstable-nested-componentseslint-plugin-react2[{"allowAsProps":false}]Disallow creating unstable components inside components**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-useless-fragmenteslint-plugin-react2[{"allowExpressions":true}]Disallow unnecessary fragments**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/function-component-definitioneslint-plugin-react2[{"namedComponents":"arrow-function"}]Enforce a specific function type for function components**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-boolean-valueeslint-plugin-react2No optionsEnforce boolean attributes notation in JSX**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-fragmentseslint-plugin-react2No optionsEnforce shorthand or standard form for React fragments**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/hook-use-stateeslint-plugin-react2No optionsEnsure destructuring and symmetric naming of useState hook value and setter variables**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-no-leaked-rendereslint-plugin-react2[{"validStrategies":["coerce","ternary"]}]Disallow problematic leaked values from being rendered**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/destructuring-assignmenteslint-plugin-react2No optionsEnforce consistent usage of destructuring assignment of props, state, and context**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-filename-extensioneslint-plugin-react2[{"extensions":["jsx",".tsx","mtsx","mjsx"],"allow":"as-needed"}]Disallow file extensions that may contain JSX**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-multi-compeslint-plugin-react2No optionsDisallow multiple component definition per file**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/no-array-index-keyeslint-plugin-react2No optionsDisallow usage of Array index in keys**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-props-no-spreadingeslint-plugin-react2No optionsDisallow JSX prop spreading**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react/jsx-sort-propseslint-plugin-react2[{"callbacksLast":true,"shorthandFirst":true,"shorthandLast":false,"ignoreCase":true,"noSortAlphabetically":true,"multiline":"last","reservedFirst":false}]Enforce props alphabetical sorting**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@typescript-eslint/naming-convention@typescript-eslint/eslint-plugin2[{"selector":"default","format":["camelCase","StrictPascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","format":["camelCase","UPPER_CASE"],"modifiers":["const"],"types":["boolean","string","number"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"objectLiteralProperty","format":null,"leadingUnderscore":"allowSingleOrDouble","trailingUnderscore":"forbid"},{"selector":"typeLike","format":["PascalCase"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","types":["boolean"],"format":["camelCase"],"prefix":["is","has","should","can"],"leadingUnderscore":"forbid","trailingUnderscore":"forbid"},{"selector":"variable","modifiers":["destructured"],"format":null},{"selector":"typeProperty","format":null}]**/*{jsx,tsx,mtsx,mjsx}
react-refresh/only-export-componentseslint-plugin-react-refresh2No options**/*{jsx,tsx,mtsx,mjsx}
jsx-a11y/alt-texteslint-plugin-jsx-a11y2No optionsEnforce all elements that require alternative text have meaningful information to relay back to end user.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/anchor-ambiguous-texteslint-plugin-jsx-a11y0No optionsEnforce `<a>` text to not exactly match "click here", "here", "link", or "a link".**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/anchor-has-contenteslint-plugin-jsx-a11y2No optionsEnforce all anchors to contain accessible content.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/anchor-is-valideslint-plugin-jsx-a11y2No optionsEnforce all anchors are valid, navigable elements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/aria-activedescendant-has-tabindexeslint-plugin-jsx-a11y2No optionsEnforce elements with aria-activedescendant are tabbable.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/aria-propseslint-plugin-jsx-a11y2No optionsEnforce all `aria-*` props are valid.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/aria-proptypeseslint-plugin-jsx-a11y2No optionsEnforce ARIA state and property values are valid.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/aria-roleeslint-plugin-jsx-a11y2No optionsEnforce that elements with ARIA roles must use a valid, non-abstract ARIA role.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/aria-unsupported-elementseslint-plugin-jsx-a11y2No optionsEnforce that elements that do not support ARIA roles, states, and properties do not have those attributes.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/autocomplete-valideslint-plugin-jsx-a11y2No optionsEnforce that autocomplete attributes are used correctly.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/click-events-have-key-eventseslint-plugin-jsx-a11y2No optionsEnforce a clickable non-interactive element has at least one keyboard event listener.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/control-has-associated-labeleslint-plugin-jsx-a11y0[{"ignoreElements":["audio","canvas","embed","input","textarea","tr","video"],"ignoreRoles":["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],"includeRoles":["alert","dialog"]}]Enforce that a control (an interactive element) has a text label.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/heading-has-contenteslint-plugin-jsx-a11y2No optionsEnforce heading (`h1`, `h2`, etc) elements contain accessible content.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/html-has-langeslint-plugin-jsx-a11y2No optionsEnforce `<html>` element has `lang` prop.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/iframe-has-titleeslint-plugin-jsx-a11y2No optionsEnforce iframe elements have a title attribute.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/img-redundant-alteslint-plugin-jsx-a11y2No optionsEnforce `<img>` alt prop does not contain the word "image", "picture", or "photo".**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/interactive-supports-focuseslint-plugin-jsx-a11y2[{"tabbable":["button","checkbox","link","searchbox","spinbutton","switch","textbox"]}]Enforce that elements with interactive handlers like `onClick` must be focusable.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/label-has-associated-controleslint-plugin-jsx-a11y2No optionsEnforce that a `label` tag has a text label and an associated control.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/label-has-foreslint-plugin-jsx-a11y0No optionsEnforce that `<label>` elements have the `htmlFor` prop.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/media-has-captioneslint-plugin-jsx-a11y2No optionsEnforces that `<audio>` and `<video>` elements must have a `<track>` for captions.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/mouse-events-have-key-eventseslint-plugin-jsx-a11y2No optionsEnforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-access-keyeslint-plugin-jsx-a11y2No optionsEnforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreader.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-autofocuseslint-plugin-jsx-a11y2No optionsEnforce autoFocus prop is not used.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-distracting-elementseslint-plugin-jsx-a11y2No optionsEnforce distracting elements are not used.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-interactive-element-to-noninteractive-roleeslint-plugin-jsx-a11y2[{"tr":["none","presentation"],"canvas":["img"]}]Interactive elements should not be assigned non-interactive roles.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-noninteractive-element-interactionseslint-plugin-jsx-a11y2[{"handlers":["onClick","onError","onLoad","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"],"alert":["onKeyUp","onKeyDown","onKeyPress"],"body":["onError","onLoad"],"dialog":["onKeyUp","onKeyDown","onKeyPress"],"iframe":["onError","onLoad"],"img":["onError","onLoad"]}]Non-interactive elements should not be assigned mouse or keyboard event listeners.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-noninteractive-element-to-interactive-roleeslint-plugin-jsx-a11y2[{"ul":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"ol":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"li":["menuitem","option","row","tab","treeitem"],"table":["grid"],"td":["gridcell"],"fieldset":["radiogroup","presentation"]}]Non-interactive elements should not be assigned interactive roles.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-noninteractive-tabindexeslint-plugin-jsx-a11y2[{"tags":[],"roles":["tabpanel"],"allowExpressionValues":true}]`tabIndex` should only be declared on interactive elements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-redundant-roleseslint-plugin-jsx-a11y2No optionsEnforce explicit role property is not the same as implicit/default role property on element.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/no-static-element-interactionseslint-plugin-jsx-a11y2[{"allowExpressionValues":true,"handlers":["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}]Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/role-has-required-aria-propseslint-plugin-jsx-a11y2No optionsEnforce that elements with ARIA roles must have all required attributes for that role.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/role-supports-aria-propseslint-plugin-jsx-a11y2No optionsEnforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/scopeeslint-plugin-jsx-a11y2No optionsEnforce `scope` prop is only used on `<th>` elements.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
jsx-a11y/tabindex-no-positiveeslint-plugin-jsx-a11y2No optionsEnforce `tabIndex` value is not greater than zero.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react-hooks/rules-of-hookseslint-plugin-react-hooks2No optionsenforces the Rules of Hooks**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react-hooks/exhaustive-depseslint-plugin-react-hooks1No optionsverifies the list of dependencies for Hooks like useEffect and similar**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
react-refresh/only-export-componentseslint-plugin-react-refresh0No options**/*.stories.tsx
react/jsx-filename-extensioneslint-plugin-react2[{"allow":"always","extensions":["jsx",".tsx","mtsx","mjsx"]}]**/*.stories.tsx
vitest/consistent-test-iteslint-plugin-vitest2[{"fn":"test","withinDescribe":"test"}]Prefer test or it but not both**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/expect-expecteslint-plugin-vitest2No optionsEnforce having expectation in test body**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-commented-out-testseslint-plugin-vitest2No optionsDisallow commented out tests**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-conditional-expecteslint-plugin-vitest2No optionsDisallow conditional expects**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-conditional-in-testeslint-plugin-vitest2No optionsDisallow conditional tests**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-disabled-testseslint-plugin-vitest2No optionsDisallow disabled tests**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-done-callbackeslint-plugin-vitest2No optionsDisallow using a callback in asynchronous tests and hooks**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-duplicate-hookseslint-plugin-vitest2No optionsDisallow duplicate hooks and teardown hooks**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-identical-titleeslint-plugin-vitest2No optionsDisallow identical titles**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-focused-testseslint-plugin-vitest2No optionsDisallow focused tests**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-standalone-expecteslint-plugin-vitest2No optionsDisallow using `expect` outside of `it` or `test` blocks**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-test-prefixeseslint-plugin-vitest2No optionsDisallow using `test` as a prefix**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/no-test-return-statementeslint-plugin-vitest2No optionsDisallow return statements in tests**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-comparison-matchereslint-plugin-vitest2No optionsSuggest using the built-in comparison matchers**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-eacheslint-plugin-vitest2No optionsPrefer `each` rather than manual loops**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-equality-matchereslint-plugin-vitest2No optionsSuggest using the built-in quality matchers**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-expect-resolveseslint-plugin-vitest2No optionsSuggest using `expect().resolves` over `expect(await ...)` syntax**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-hooks-in-ordereslint-plugin-vitest2No optionsPrefer having hooks in consistent order**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-hooks-on-topeslint-plugin-vitest2No optionsSuggest having hooks before any test cases**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-lowercase-titleeslint-plugin-vitest2No optionsEnforce lowercase titles**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-mock-promise-shorthandeslint-plugin-vitest2No optionsPrefer mock resolved/rejected shorthands for promises**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-spy-oneslint-plugin-vitest2No optionsSuggest using `vi.spyOn`**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-strict-equaleslint-plugin-vitest2No optionsPrefer strict equal over equal**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-beeslint-plugin-vitest2No optionsSuggest using toBe()**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-be-falsyeslint-plugin-vitest2No optionsSuggest using toBeFalsy()**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-be-objecteslint-plugin-vitest2No optionsPrefer toBeObject()**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-be-truthyeslint-plugin-vitest2No optionsSuggest using `toBeTruthy`**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-containeslint-plugin-vitest2No optionsPrefer using toContain()**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-to-have-lengtheslint-plugin-vitest2No optionsSuggest using toHaveLength()**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/prefer-todoeslint-plugin-vitest2No optionsSuggest using `test.todo`**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/require-hookeslint-plugin-vitest2No optionsRequire setup and teardown to be within a hook**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/require-to-throw-messageeslint-plugin-vitest2No optionsRequire toThrow() to be called with an error message**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/require-top-level-describeeslint-plugin-vitest2No optionsEnforce that all tests are in a top-level describe**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/valid-describe-callbackeslint-plugin-vitest2No optionsEnforce valid describe callback**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
vitest/valid-expecteslint-plugin-vitest2No optionsEnforce valid `expect()` usage**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}, **/tests/**, **/__tests__/**
@next/next/google-font-display@next/eslint-plugin-next1No optionsEnforce font-display behavior with Google Fonts.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/google-font-preconnect@next/eslint-plugin-next1No optionsEnsure `preconnect` is used with Google Fonts.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/next-script-for-ga@next/eslint-plugin-next1No optionsPrefer `next/script` component when using the inline script for Google Analytics.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-before-interactive-script-outside-document@next/eslint-plugin-next1No optionsPrevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-css-tags@next/eslint-plugin-next1No optionsPrevent manual stylesheet tags.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-head-element@next/eslint-plugin-next1No optionsPrevent usage of `<head>` element.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-html-link-for-pages@next/eslint-plugin-next2No optionsPrevent usage of `<a>` elements to navigate to internal Next.js pages.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-img-element@next/eslint-plugin-next1No optionsPrevent usage of `<img>` element due to slower LCP and higher bandwidth.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-page-custom-font@next/eslint-plugin-next1No optionsPrevent page-only custom fonts.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-styled-jsx-in-document@next/eslint-plugin-next1No optionsPrevent usage of `styled-jsx` in `pages/_document.js`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-sync-scripts@next/eslint-plugin-next2No optionsPrevent synchronous scripts.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-title-in-document-head@next/eslint-plugin-next1No optionsPrevent usage of `<title>` with `Head` component from `next/document`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-typos@next/eslint-plugin-next1No optionsPrevent common typos in Next.js data fetching functions.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-unwanted-polyfillio@next/eslint-plugin-next1No optionsPrevent duplicate polyfills from Polyfill.io.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/inline-script-id@next/eslint-plugin-next2No optionsEnforce `id` attribute on `next/script` components with inline content.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-assign-module-variable@next/eslint-plugin-next2No optionsPrevent assignment to the `module` variable.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-document-import-in-page@next/eslint-plugin-next2No optionsPrevent importing `next/document` outside of `pages/_document.js`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-duplicate-head@next/eslint-plugin-next2No optionsPrevent duplicate usage of `<Head>` in `pages/_document.js`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-head-import-in-document@next/eslint-plugin-next2No optionsPrevent usage of `next/head` in `pages/_document.js`.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
@next/next/no-script-component-in-head@next/eslint-plugin-next2No optionsPrevent usage of `next/script` in `next/head` component.**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/callback-bindingeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/callback-binding.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/chain-styleeslint-plugin-lodash-f1["as-needed"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/chain-style.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/chainingeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/chaining.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/collection-method-valueeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-method-value.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/collection-orderingeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-ordering.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/collection-returneslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/collection-return.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/consistent-composeeslint-plugin-lodash-f1["flow"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/consistent-compose.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/identity-shorthandeslint-plugin-lodash-f1["always"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/identity-shorthand.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/import-scopeeslint-plugin-lodash-f2["member"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/import-scope.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/matches-prop-shorthandeslint-plugin-lodash-f1["always"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/matches-prop-shorthand.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/matches-shorthandeslint-plugin-lodash-f1["always",3]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/matches-shorthand.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/no-commiteslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-commit.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/no-double-unwrapeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-double-unwrap.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/no-extra-argseslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-extra-args.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/no-unbound-thiseslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/no-unbound-this.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/path-styleeslint-plugin-lodash-f1["string"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/path-style.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-compacteslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-compact.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-constanteslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-constant.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-filtereslint-plugin-lodash-f2[3]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-filter.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-findeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-find.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-flat-mapeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-flat-map.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-geteslint-plugin-lodash-f0No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-get.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-immutable-methodeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-immutable-method.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-includeseslint-plugin-lodash-f2[{"includeNative":false}]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-includes.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-invoke-mapeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-invoke-map.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-is-emptyeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-is-empty.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-is-nileslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-is-nil.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-lodash-chaineslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-chain.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-lodash-methodeslint-plugin-lodash-f0No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-method.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-lodash-typecheckeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-lodash-typecheck.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-mapeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-map.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-matcheseslint-plugin-lodash-f0No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-matches.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-nullish-coalescingeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-nullish-coalescing.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-noopeslint-plugin-lodash-f0No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-noop.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-over-quantifiereslint-plugin-lodash-f0No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-over-quantifier.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-rejecteslint-plugin-lodash-f2[3]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-reject.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-someeslint-plugin-lodash-f2[{"includeNative":false}]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-some.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-startswitheslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-startswith.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-thrueslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-thru.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-timeseslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-times.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prefer-wrapper-methodeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prefer-wrapper-method.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/preferred-aliaseslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/preferred-alias.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/prop-shorthandeslint-plugin-lodash-f1["always"]https://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/prop-shorthand.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
lodash-f/unwrapeslint-plugin-lodash-f1No optionshttps://github.com/wix/eslint-plugin-lodash/blob/v7.5.3/docs/rules/unwrap.md**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
unicorn/no-instanceof-arrayeslint-plugin-unicorn0No options**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}
no-empty-pattern@eslint/js0No options**/*{js,ts}
playwright/missing-playwright-awaiteslint-plugin-playwright2No optionsIdentify false positives when async Playwright APIs are not properly awaited.**/*{js,ts}
playwright/no-page-pauseeslint-plugin-playwright1No optionsPrevent usage of page.pause()**/*{js,ts}
playwright/no-element-handleeslint-plugin-playwright1No optionsThe use of ElementHandle is discouraged, use Locator instead**/*{js,ts}
playwright/no-evaleslint-plugin-playwright1No optionsThe use of `page.$eval` and `page.$$eval` are discouraged, use `locator.evaluate` or `locator.evaluateAll` instead**/*{js,ts}
playwright/no-focused-testeslint-plugin-playwright2No optionsPrevent usage of `.only()` focus test annotation**/*{js,ts}
playwright/no-skipped-testeslint-plugin-playwright1No optionsPrevent usage of the `.skip()` skip test annotation.**/*{js,ts}
playwright/no-wait-for-timeouteslint-plugin-playwright1No optionsPrevent usage of page.waitForTimeout()**/*{js,ts}
playwright/no-force-optioneslint-plugin-playwright0No optionsPrevent usage of `{ force: true }` option.**/*{js,ts}
playwright/max-nested-describeeslint-plugin-playwright1No optionsEnforces a maximum depth to nested describe calls**/*{js,ts}
playwright/no-conditional-in-testeslint-plugin-playwright1No optionsDisallow conditional logic in tests**/*{js,ts}
playwright/no-useless-noteslint-plugin-playwright1No optionsDisallow usage of 'not' matchers when a more specific matcher exists**/*{js,ts}
playwright/valid-expecteslint-plugin-playwright2No optionsEnforce valid `expect()` usage**/*{js,ts}
playwright/prefer-lowercase-titleeslint-plugin-playwright2No optionsEnforce lowercase test names**/*{js,ts}
playwright/prefer-to-have-lengtheslint-plugin-playwright2No optionsSuggest using `toHaveLength()`**/*{js,ts}
playwright/require-top-level-describeeslint-plugin-playwright2No optionsRequire test cases and hooks to be inside a `test.describe` block**/*{js,ts}
playwright/prefer-to-beeslint-plugin-playwright2No optionsSuggest using `toBe()` for primitive literals**/*{js,ts}
playwright/prefer-strict-equaleslint-plugin-playwright2No optionsSuggest using `toStrictEqual()`**/*{js,ts}
curly@eslint/js0No optionsEnforce consistent brace style for all control statements*
lines-around-comment@eslint/js0No optionsRequire empty lines around comments*
max-len@eslint/js0No optionsEnforce a maximum line length*
no-confusing-arrow@eslint/js0No optionsDisallow arrow functions where they could be confused with comparisons*
no-mixed-operators@eslint/js0No optionsDisallow mixed binary operators*
no-tabs@eslint/js0No optionsDisallow all tabs*
no-unexpected-multiline@eslint/js0No optionsDisallow confusing multiline expressions*
quotes@eslint/js0No optionsEnforce the consistent use of either backticks, double, or single quotes*
@typescript-eslint/lines-around-comment@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/quotes@typescript-eslint/eslint-plugin0No options*
babel/quoteseslint-plugin-babel0No options*
vue/html-self-closingeslint-plugin-vue0No options*
vue/max-leneslint-plugin-vue0No options*
array-bracket-newline@eslint/js0No optionsEnforce linebreaks after opening and before closing array brackets*
array-bracket-spacing@eslint/js0No optionsEnforce consistent spacing inside array brackets*
array-element-newline@eslint/js0No optionsEnforce line breaks after each array element*
arrow-parens@eslint/js0No optionsRequire parentheses around arrow function arguments*
arrow-spacing@eslint/js0No optionsEnforce consistent spacing before and after the arrow in arrow functions*
block-spacing@eslint/js0No optionsDisallow or enforce spaces inside of blocks after opening block and before closing block*
brace-style@eslint/js0No optionsEnforce consistent brace style for blocks*
comma-dangle@eslint/js0No optionsRequire or disallow trailing commas*
comma-spacing@eslint/js0No optionsEnforce consistent spacing before and after commas*
comma-style@eslint/js0No optionsEnforce consistent comma style*
computed-property-spacing@eslint/js0No optionsEnforce consistent spacing inside computed property brackets*
dot-location@eslint/js0No optionsEnforce consistent newlines before and after dots*
eol-last@eslint/js0No optionsRequire or disallow newline at the end of files*
func-call-spacing@eslint/js0No optionsRequire or disallow spacing between function identifiers and their invocations*
function-call-argument-newline@eslint/js0No optionsEnforce line breaks between arguments of a function call*
function-paren-newline@eslint/js0No optionsEnforce consistent line breaks inside function parentheses*
generator-star-spacing@eslint/js0No optionsEnforce consistent spacing around `*` operators in generator functions*
implicit-arrow-linebreak@eslint/js0No optionsEnforce the location of arrow function bodies*
indent@eslint/js0No optionsEnforce consistent indentation*
jsx-quotes@eslint/js0No optionsEnforce the consistent use of either double or single quotes in JSX attributes*
key-spacing@eslint/js0No optionsEnforce consistent spacing between keys and values in object literal properties*
keyword-spacing@eslint/js0No optionsEnforce consistent spacing before and after keywords*
linebreak-style@eslint/js0No optionsEnforce consistent linebreak style*
max-statements-per-line@eslint/js0No optionsEnforce a maximum number of statements allowed per line*
multiline-ternary@eslint/js0No optionsEnforce newlines between operands of ternary expressions*
newline-per-chained-call@eslint/js0No optionsRequire a newline after each call in a method chain*
new-parens@eslint/js0No optionsEnforce or disallow parentheses when invoking a constructor with no arguments*
no-extra-parens@eslint/js0No optionsDisallow unnecessary parentheses*
no-extra-semi@eslint/js0No optionsDisallow unnecessary semicolons*
no-floating-decimal@eslint/js0No optionsDisallow leading or trailing decimal points in numeric literals*
no-mixed-spaces-and-tabs@eslint/js0No optionsDisallow mixed spaces and tabs for indentation*
no-multi-spaces@eslint/js0No optionsDisallow multiple spaces*
no-multiple-empty-lines@eslint/js0No optionsDisallow multiple empty lines*
no-trailing-spaces@eslint/js0No optionsDisallow trailing whitespace at the end of lines*
no-whitespace-before-property@eslint/js0No optionsDisallow whitespace before properties*
nonblock-statement-body-position@eslint/js0No optionsEnforce the location of single-line statements*
object-curly-newline@eslint/js0No optionsEnforce consistent line breaks after opening and before closing braces*
object-curly-spacing@eslint/js0No optionsEnforce consistent spacing inside braces*
object-property-newline@eslint/js0No optionsEnforce placing object properties on separate lines*
one-var-declaration-per-line@eslint/js0No optionsRequire or disallow newlines around variable declarations*
operator-linebreak@eslint/js0No optionsEnforce consistent linebreak style for operators*
padded-blocks@eslint/js0No optionsRequire or disallow padding within blocks*
quote-props@eslint/js0No optionsRequire quotes around object literal property names*
rest-spread-spacing@eslint/js0No optionsEnforce spacing between rest and spread operators and their expressions*
semi@eslint/js0No optionsRequire or disallow semicolons instead of ASI*
semi-spacing@eslint/js0No optionsEnforce consistent spacing before and after semicolons*
semi-style@eslint/js0No optionsEnforce location of semicolons*
space-before-blocks@eslint/js0No optionsEnforce consistent spacing before blocks*
space-before-function-paren@eslint/js0No optionsEnforce consistent spacing before `function` definition opening parenthesis*
space-in-parens@eslint/js0No optionsEnforce consistent spacing inside parentheses*
space-infix-ops@eslint/js0No optionsRequire spacing around infix operators*
space-unary-ops@eslint/js0No optionsEnforce consistent spacing before or after unary operators*
switch-colon-spacing@eslint/js0No optionsEnforce spacing around colons of switch statements*
template-curly-spacing@eslint/js0No optionsRequire or disallow spacing around embedded expressions of template strings*
template-tag-spacing@eslint/js0No optionsRequire or disallow spacing between template tags and their literals*
wrap-iife@eslint/js0No optionsRequire parentheses around immediate `function` invocations*
wrap-regex@eslint/js0No optionsRequire parenthesis around regex literals*
yield-star-spacing@eslint/js0No optionsRequire or disallow spacing around the `*` in `yield*` expressions*
@babel/object-curly-spacing@babel/eslint-plugin0No options*
@babel/semi@babel/eslint-plugin0No options*
@typescript-eslint/block-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/brace-style@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/comma-dangle@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/comma-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/func-call-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/indent@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/key-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/keyword-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/member-delimiter-style@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/no-extra-parens@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/no-extra-semi@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/object-curly-spacing@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/semi@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/space-before-blocks@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/space-before-function-paren@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/space-infix-ops@typescript-eslint/eslint-plugin0No options*
@typescript-eslint/type-annotation-spacing@typescript-eslint/eslint-plugin0No options*
babel/object-curly-spacingeslint-plugin-babel0No options*
babel/semieslint-plugin-babel0No options*
flowtype/boolean-styleeslint-plugin-flowtype0No options*
flowtype/delimiter-dangleeslint-plugin-flowtype0No options*
flowtype/generic-spacingeslint-plugin-flowtype0No options*
flowtype/object-type-curly-spacingeslint-plugin-flowtype0No options*
flowtype/object-type-delimitereslint-plugin-flowtype0No options*
flowtype/quoteseslint-plugin-flowtype0No options*
flowtype/semieslint-plugin-flowtype0No options*
flowtype/space-after-type-coloneslint-plugin-flowtype0No options*
flowtype/space-before-generic-bracketeslint-plugin-flowtype0No options*
flowtype/space-before-type-coloneslint-plugin-flowtype0No options*
flowtype/union-intersection-spacingeslint-plugin-flowtype0No options*
react/jsx-child-element-spacingeslint-plugin-react0No options*
react/jsx-closing-bracket-locationeslint-plugin-react0No options*
react/jsx-closing-tag-locationeslint-plugin-react0No options*
react/jsx-curly-newlineeslint-plugin-react0No options*
react/jsx-curly-spacingeslint-plugin-react0No options*
react/jsx-equals-spacingeslint-plugin-react0No options*
react/jsx-first-prop-new-lineeslint-plugin-react0No options*
react/jsx-indenteslint-plugin-react0No options*
react/jsx-indent-propseslint-plugin-react0No options*
react/jsx-max-props-per-lineeslint-plugin-react0No options*
react/jsx-newlineeslint-plugin-react0No options*
react/jsx-one-expression-per-lineeslint-plugin-react0No options*
react/jsx-props-no-multi-spaceseslint-plugin-react0No options*
react/jsx-tag-spacingeslint-plugin-react0No options*
react/jsx-wrap-multilineseslint-plugin-react0No options*
standard/array-bracket-even-spacingeslint-plugin-standard0No options*
standard/computed-property-even-spacingeslint-plugin-standard0No options*
standard/object-curly-even-spacingeslint-plugin-standard0No options*
unicorn/empty-brace-spaceseslint-plugin-unicorn0No options*
unicorn/no-nested-ternaryeslint-plugin-unicorn0No options*
unicorn/number-literal-caseeslint-plugin-unicorn0No options*
vue/array-bracket-newlineeslint-plugin-vue0No options*
vue/array-bracket-spacingeslint-plugin-vue0No options*
vue/array-element-newlineeslint-plugin-vue0No options*
vue/arrow-spacingeslint-plugin-vue0No options*
vue/block-spacingeslint-plugin-vue0No options*
vue/block-tag-newlineeslint-plugin-vue0No options*
vue/brace-styleeslint-plugin-vue0No options*
vue/comma-dangleeslint-plugin-vue0No options*
vue/comma-spacingeslint-plugin-vue0No options*
vue/comma-styleeslint-plugin-vue0No options*
vue/dot-locationeslint-plugin-vue0No options*
vue/func-call-spacingeslint-plugin-vue0No options*
vue/html-closing-bracket-newlineeslint-plugin-vue0No options*
vue/html-closing-bracket-spacingeslint-plugin-vue0No options*
vue/html-end-tagseslint-plugin-vue0No options*
vue/html-indenteslint-plugin-vue0No options*
vue/html-quoteseslint-plugin-vue0No options*
vue/key-spacingeslint-plugin-vue0No options*
vue/keyword-spacingeslint-plugin-vue0No options*
vue/max-attributes-per-lineeslint-plugin-vue0No options*
vue/multiline-html-element-content-newlineeslint-plugin-vue0No options*
vue/multiline-ternaryeslint-plugin-vue0No options*
vue/mustache-interpolation-spacingeslint-plugin-vue0No options*
vue/no-extra-parenseslint-plugin-vue0No options*
vue/no-multi-spaceseslint-plugin-vue0No options*
vue/no-spaces-around-equal-signs-in-attributeeslint-plugin-vue0No options*
vue/object-curly-newlineeslint-plugin-vue0No options*
vue/object-curly-spacingeslint-plugin-vue0No options*
vue/object-property-newlineeslint-plugin-vue0No options*
vue/operator-linebreakeslint-plugin-vue0No options*
vue/quote-propseslint-plugin-vue0No options*
vue/script-indenteslint-plugin-vue0No options*
vue/singleline-html-element-content-newlineeslint-plugin-vue0No options*
vue/space-in-parenseslint-plugin-vue0No options*
vue/space-infix-opseslint-plugin-vue0No options*
vue/space-unary-opseslint-plugin-vue0No options*
vue/template-curly-spacingeslint-plugin-vue0No options*
generator-star@eslint/js0No options*
indent-legacy@eslint/js0No optionsEnforce consistent indentation*
no-arrow-condition@eslint/js0No options*
no-comma-dangle@eslint/js0No options*
no-reserved-keys@eslint/js0No options*
no-space-before-semi@eslint/js0No options*
no-spaced-func@eslint/js0No optionsDisallow spacing between function identifiers and their applications (deprecated)*
no-wrap-func@eslint/js0No options*
space-after-function-name@eslint/js0No options*
space-after-keywords@eslint/js0No options*
space-before-function-parentheses@eslint/js0No options*
space-before-keywords@eslint/js0No options*
space-in-brackets@eslint/js0No options*
space-return-throw-case@eslint/js0No options*
space-unary-word-ops@eslint/js0No options*
react/jsx-space-before-closingeslint-plugin-react0No options*
curly@eslint/js2["all"]Enforce consistent brace style for all control statements**/*{js,mjs,cjs,ts,mts,cts,jsx,tsx,mtsx,mjsx}