Naan and Paneer Makhani

    eslint-config-canonical

    36.0.0 • Public • Published

    Canonical ESLint Config

    Travis build status NPM version

    The most comprehensive code style guide.

    Canonical consists of 1,000+ rules (40% auto-fixable), some of which are custom written for Canonical. Canonical goal is to reduce noise in code version control and promote use of the latest ES features.

    Usage

    This package includes the following configurations:

    Example configuration

    For maximum efficiency, use overrides to only apply relevant style guides. This reduces the linting time and the number of false-positives.

    This is an example configuration of a React project using TypeScript and Jest:

    {
      "extends": [
        "canonical"
      ],
      "overrides": [
        {
          "extends": [
            "canonical/typescript"
          ],
          "files": "*.ts",
          "parserOptions": {
            "project": "./tsconfig.json"
          }
        },
        {
          "extends": [
            "canonical/react",
            "canonical/jsx-a11y",
            "canonical/typescript"
          ],
          "files": "*.tsx",
          "parserOptions": {
            "project": "./tsconfig.json"
          }
        },
        {
          "extends": [
            "canonical/jest"
          ],
          "files": "*.test.{ts,tsx}",
          "parserOptions": {
            "project": "./tsconfig.json"
          }
        },
        {
          "extends": [
            "canonical/json"
          ],
          "files": "*.json"
        },
        {
          "extends": [
            "canonical/yaml"
          ],
          "files": "*.yaml"
        },
        {
          "extends": [
            "canonical/graphql"
          ],
          "files": "*.graphql"
        }
      ],
      "root": true
    }

    Compatibility with Prettier

    For the most part, Prettier and Canonical are already compatible. There are only a few transformations that are incompatible, e.g. Prettier enforces line-length and Canonical does not. As such, there is no good reason to use both. However, if you just want to disable conflicting rules, you can use canonical/prettier to do that. Just add it as the last config in your extends configuration, e.g.

    {
      "extends": [
        "canonical",
        "canonical/react",
        "canonical/typescript",
        "canonical/jest",
        "canonical/prettier"
      ]
    }

    This configuration disables all Canonical rules that conflict with Prettier.

    Compatibility with other style guides

    Since Canonical style guide includes more rules than any other style guide, you can have your codebase compatible with a specific style guide (e.g. airbnb) and benefit from Canonical for rules that are not covered by the other guide. All you have to do is extend from Canonical before extending from the desired style guide, e.g.

    {
      "extends": [
        "canonical",
        "canonical/react",
        "airbnb"
      ]
    }

    Integrations

    Visual Studio Code

    Use the dbaeumer.vscode-eslint extension that Microsoft provides officially.

    Example .vscode/settings.json:

    {
      "eslint.validate": [
        "javascript",
        "javascriptreact",
        "json",
        "typescript",
        "typescriptreact",
        "yaml"
      ]
    }

    The setting below turns on Auto Fix for all providers including ESLint:

    {
      "editor.codeActionsOnSave": {
        "source.fixAll": true
      },
      "editor.formatOnSave": true
    }

    TypeScript

    If you are using TypeScript and experiencing performance issues, you should consider disabling TypeScript rules:

    {
      "eslint.codeActionsOnSave.rules": [
        "!@typescript-eslint/*",
        "*"
      ]
    }

    This example removes all TypeScript ESLint specific rules from the code action on save pass but keeps all other rules.

    Benchmark

    Canonical vs Prettier

    This benchmark compares running ESLint using Canonical style guide against a project with 3,000+ files VS linting the same project using Prettier.

    System:
      OS: macOS 11.6
      CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
      Memory: 64.00 GB
    npmPackages:
      eslint: 8.1.0
      prettier: 2.4.1
    

    As you may expect, Prettier is going to complete checks quicker – this is because it runs a lot fewer transforms and it only runs style checks (as opposed to static analyses).

    The first time you run ESLint, it will take significantly more time. However, if you enable --cache, then the follow up checks will complete in no time.

    $ time prettier src
    27.06s user
    1.74s system
    166% cpu
    17.335 total
    
    $ eslint --cache src
    182.43s user
    9.13s system
    126% cpu
    2:31.22 total
    
    $ eslint --cache src
    1.96s user
    0.39s system
    107% cpu
    2.188 total

    Using ESLint cache will dramatically improve ESLint running time by ensuring that only changed files are linted. This is useful if you are using ESLint to run pre-commit / pre-push git hooks or otherwise depend on these checks completing in real-time.

    Additionally, if performance is a consideration, you may consider:

    These options provide near instant feedback just how you are used to when using Prettier.

    Table of Comparison

    This is how Canonical ruleset compares to other popular configurations.

    Emojis:

    • 🚨 – error
    • ⚠️ - warning
    • - disabled
    • 👻 - not in use
    • 🛠 - fixable
    • ⛔️ – deprecated rule

    Configurations:

    • CN – Canonical (1020 rules)
    • AB – Airbnb (446 rules)
    • GG – Google (65 rules)
    • SD – Standard (160 rules)
    • XO – XO (204 rules)
    Rule CN AB GG SD XO
    @babel/new-cap 👻 👻 👻 👻
    @babel/no-invalid-this 🚨 👻 👻 👻 👻
    @babel/no-unused-expressions 🚨 👻 👻 👻 👻
    @babel/object-curly-spacing 🛠 🚨 👻 👻 👻 👻
    @babel/semi 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/adjacent-overload-signatures 🚨 👻 👻 👻 👻
    @typescript-eslint/array-type 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/await-thenable 🚨 👻 👻 👻 👻
    @typescript-eslint/ban-ts-comment 🚨 👻 👻 👻 👻
    @typescript-eslint/ban-tslint-comment 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/ban-types 🛠 👻 👻 👻 👻
    @typescript-eslint/brace-style 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/class-literal-property-style 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/comma-dangle 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/comma-spacing 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/consistent-generic-constructors 🛠 👻 👻 👻 👻 👻
    @typescript-eslint/consistent-indexed-object-style 🛠 👻 👻 👻 👻
    @typescript-eslint/consistent-type-assertions 🚨 👻 👻 👻 👻
    @typescript-eslint/consistent-type-definitions 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/consistent-type-exports 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/consistent-type-imports 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/default-param-last 🚨 👻 👻 👻 👻
    @typescript-eslint/dot-notation 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/explicit-function-return-type 👻 👻 👻 👻
    @typescript-eslint/explicit-member-accessibility 🛠 👻 👻 👻 👻
    @typescript-eslint/explicit-module-boundary-types 👻 👻 👻 👻
    @typescript-eslint/func-call-spacing 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/indent 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/init-declarations 👻 👻 👻 👻
    @typescript-eslint/keyword-spacing 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/lines-between-class-members 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/member-delimiter-style 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/member-ordering 👻 👻 👻 👻
    @typescript-eslint/method-signature-style 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/naming-convention 🚨 👻 👻 👻 👻
    @typescript-eslint/no-array-constructor 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-base-to-string 🚨 👻 👻 👻 👻
    @typescript-eslint/no-confusing-non-null-assertion 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-confusing-void-expression 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-dupe-class-members 🚨 👻 👻 👻 👻
    @typescript-eslint/no-duplicate-enum-values 👻 👻 👻 👻 👻
    @typescript-eslint/no-duplicate-imports ⛔️ 👻 👻 👻 👻
    @typescript-eslint/no-dynamic-delete 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-empty-function 👻 👻 👻 👻
    @typescript-eslint/no-empty-interface 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-explicit-any 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-extra-non-null-assertion 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-extra-parens 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-extra-semi 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-extraneous-class 🚨 👻 👻 👻 👻
    @typescript-eslint/no-floating-promises 🚨 👻 👻 👻 👻
    @typescript-eslint/no-for-in-array 🚨 👻 👻 👻 👻
    @typescript-eslint/no-implicit-any-catch 🛠 ⛔️ 👻 👻 👻 👻 👻
    @typescript-eslint/no-implied-eval 🚨 👻 👻 👻 👻
    @typescript-eslint/no-inferrable-types 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-invalid-this 👻 👻 👻 👻
    @typescript-eslint/no-invalid-void-type 🚨 👻 👻 👻 👻
    @typescript-eslint/no-loop-func 🚨 👻 👻 👻 👻
    @typescript-eslint/no-loss-of-precision 🚨 👻 👻 👻 👻
    @typescript-eslint/no-magic-numbers 👻 👻 👻 👻
    @typescript-eslint/no-meaningless-void-operator 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-misused-new 🚨 👻 👻 👻 👻
    @typescript-eslint/no-misused-promises 🚨 👻 👻 👻 👻
    @typescript-eslint/no-namespace 🚨 👻 👻 👻 👻
    @typescript-eslint/no-non-null-asserted-nullish-coalescing 🚨 👻 👻 👻 👻
    @typescript-eslint/no-non-null-asserted-optional-chain 🚨 👻 👻 👻 👻
    @typescript-eslint/no-non-null-assertion 🚨 👻 👻 👻 👻
    @typescript-eslint/no-parameter-properties ⛔️ 👻 👻 👻 👻
    @typescript-eslint/no-redeclare 🚨 👻 👻 👻 👻
    @typescript-eslint/no-redundant-type-constituents 👻 👻 👻 👻 👻
    @typescript-eslint/no-require-imports 🚨 👻 👻 👻 👻
    @typescript-eslint/no-restricted-imports 👻 👻 👻 👻
    @typescript-eslint/no-shadow 🚨 👻 👻 👻 👻
    @typescript-eslint/no-this-alias 🚨 👻 👻 👻 👻
    @typescript-eslint/no-throw-literal 🚨 👻 👻 👻 👻
    @typescript-eslint/no-type-alias 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-boolean-literal-compare 🛠 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-condition 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-qualifier 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-type-arguments 🛠 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-type-assertion 🛠 👻 👻 👻 👻
    @typescript-eslint/no-unnecessary-type-constraint 🚨 👻 👻 👻 👻
    @typescript-eslint/no-unsafe-argument 👻 👻 👻 👻
    @typescript-eslint/no-unsafe-assignment 👻 👻 👻 👻
    @typescript-eslint/no-unsafe-call 👻 👻 👻 👻
    @typescript-eslint/no-unsafe-member-access 👻 👻 👻 👻
    @typescript-eslint/no-unsafe-return 👻 👻 👻 👻
    @typescript-eslint/no-unused-expressions 🚨 👻 👻 👻 👻
    @typescript-eslint/no-unused-vars 🚨 👻 👻 👻 👻
    @typescript-eslint/no-use-before-define 🚨 👻 👻 👻 👻
    @typescript-eslint/no-useless-constructor 🚨 👻 👻 👻 👻
    @typescript-eslint/no-useless-empty-export 🛠 👻 👻 👻 👻 👻
    @typescript-eslint/no-var-requires 🚨 👻 👻 👻 👻
    @typescript-eslint/non-nullable-type-assertion-style 🛠 👻 👻 👻 👻
    @typescript-eslint/object-curly-spacing 🛠 👻 👻 👻 👻
    @typescript-eslint/padding-line-between-statements 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/parameter-properties 👻 👻 👻 👻 👻
    @typescript-eslint/prefer-as-const 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-enum-initializers 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-for-of 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-function-type 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-includes 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-literal-enum-member 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-namespace-keyword 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-nullish-coalescing 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-optional-chain 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-readonly 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-readonly-parameter-types 👻 👻 👻 👻
    @typescript-eslint/prefer-reduce-type-parameter 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-regexp-exec 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-return-this-type 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-string-starts-ends-with 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/prefer-ts-expect-error 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/promise-function-async 🛠 👻 👻 👻 👻
    @typescript-eslint/quotes 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/require-array-sort-compare 🚨 👻 👻 👻 👻
    @typescript-eslint/require-await 👻 👻 👻 👻
    @typescript-eslint/restrict-plus-operands 👻 👻 👻 👻
    @typescript-eslint/restrict-template-expressions 👻 👻 👻 👻
    @typescript-eslint/return-await 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/semi 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/sort-type-union-intersection-members 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/space-before-blocks 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/space-before-function-paren 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/space-infix-ops 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/strict-boolean-expressions 🛠 👻 👻 👻 👻
    @typescript-eslint/switch-exhaustiveness-check 🚨 👻 👻 👻 👻
    @typescript-eslint/triple-slash-reference 🚨 👻 👻 👻 👻
    @typescript-eslint/type-annotation-spacing 🛠 🚨 👻 👻 👻 👻
    @typescript-eslint/typedef 👻 👻 👻 👻
    @typescript-eslint/unbound-method 🚨 👻 👻 👻 👻
    @typescript-eslint/unified-signatures 🚨 👻 👻 👻 👻
    accessor-pairs 🚨 👻 🚨? 🚨?
    array-bracket-newline 🛠 🚨 👻 🚨?
    array-bracket-spacing 🛠 🚨 🚨 🚨 🚨 🚨
    array-callback-return 🚨 🚨? 👻 🚨? 🚨?
    array-element-newline 🛠 🚨 👻 🚨?
    arrow-body-style 🛠 🚨 🚨? 👻 👻 🚨?
    arrow-parens 🛠 🚨 🚨 🚨 👻 🚨?
    arrow-spacing 🛠 🚨 🚨 👻 🚨 🚨
    ava/assertion-arguments 🛠 🚨 👻 👻 👻 👻
    ava/hooks-order 🛠 🚨 👻 👻 👻 👻
    ava/max-asserts 🚨 👻 👻 👻 👻
    ava/no-async-fn-without-await 🚨 👻 👻 👻 👻
    ava/no-duplicate-modifiers 🚨 👻 👻 👻 👻
    ava/no-identical-title 🚨 👻 👻 👻 👻
    ava/no-ignored-test-files 🚨 👻 👻 👻 👻
    ava/no-import-test-files 👻 👻 👻 👻
    ava/no-incorrect-deep-equal 🛠 🚨 👻 👻 👻 👻
    ava/no-inline-assertions 🛠 🚨 👻 👻 👻 👻
    ava/no-nested-tests 🚨 👻 👻 👻 👻
    ava/no-only-test 🛠 🚨 👻 👻 👻 👻
    ava/no-skip-assert 🚨 👻 👻 👻 👻
    ava/no-skip-test 🛠 🚨 👻 👻 👻 👻
    ava/no-todo-implementation 🚨 👻 👻 👻 👻
    ava/no-todo-test 🚨 👻 👻 👻 👻
    ava/no-unknown-modifiers 🚨 👻 👻 👻 👻
    ava/prefer-async-await 🚨 👻 👻 👻 👻
    ava/prefer-power-assert 👻 👻 👻 👻
    ava/prefer-t-regex 🛠 🚨 👻 👻 👻 👻
    ava/test-title 🚨 👻 👻 👻 👻
    ava/test-title-format 👻 👻 👻 👻
    ava/use-t 🚨 👻 👻 👻 👻
    ava/use-t-throws-async-well 🛠 🚨 👻 👻 👻 👻
    ava/use-t-well 🛠 🚨 👻 👻 👻 👻
    ava/use-test 🚨 👻 👻 👻 👻
    ava/use-true-false 🚨 👻 👻 👻 👻
    block-scoped-var 🚨 🚨 👻 👻 🚨
    block-spacing 🛠 🚨 🚨 🚨? 🚨 👻
    brace-style 🛠 🚨 🚨? 🚨? 🚨? 🚨
    callback-return ⛔️ 👻 👻 👻 👻
    camelcase 🚨? 🚨? 🚨? 🚨?
    canonical/destructuring-property-newline 🛠 🚨 👻 👻 👻 👻
    canonical/export-specifier-newline 🛠 🚨 👻 👻 👻 👻
    canonical/filename-match-exported 🚨 👻 👻 👻 👻
    canonical/filename-match-regex ⚠️ 👻 👻 👻 👻
    canonical/filename-no-index 👻 👻 👻 👻
    canonical/id-match 🚨 👻 👻 👻 👻
    canonical/import-specifier-newline 🛠 🚨 👻 👻 👻 👻
    canonical/no-restricted-strings 👻 👻 👻 👻
    canonical/no-use-extend-native 🚨 👻 👻 👻 👻
    canonical/prefer-inline-type-import 🛠 🚨 👻 👻 👻 👻
    canonical/prefer-use-mount 👻 👻 👻 👻 👻
    canonical/sort-keys 🛠 🚨 👻 👻 👻 👻
    capitalized-comments 🛠 👻 👻 🚨?
    class-methods-use-this 🚨? 👻 👻 👻
    comma-dangle 🛠 🚨 🚨 🚨? 🚨? 🚨?
    comma-spacing 🛠 🚨 🚨 🚨? 🚨 🚨
    comma-style 🛠 🚨 🚨? 🚨? 🚨 🚨
    complexity 🚨 👻 👻 ⚠️?
    computed-property-spacing 🛠 🚨 🚨 🚨? 🚨? 🚨?
    consistent-return 🚨 🚨 👻 👻 👻
    consistent-this 🚨 👻 👻 👻
    constructor-super 🚨 🚨 🚨 🚨 🚨
    curly 🛠 🚨 🚨? 🚨? 🚨? 🚨
    default-case 🚨 🚨? 👻 👻 🚨
    default-case-last 🚨 👻 🚨 🚨
    default-param-last 🚨 👻 👻 🚨
    dot-location 🛠 🚨 🚨 👻 🚨 🚨
    dot-notation 🛠 🚨 🚨? 👻 🚨? 🚨
    eol-last 🛠 🚨 🚨? 🚨 🚨 🚨
    eqeqeq 🛠 🚨 🚨? 👻 🚨? 🚨
    eslint-comments/disable-enable-pair 🚨 👻 👻 👻 👻
    eslint-comments/no-aggregating-enable 🚨 👻 👻 👻 👻
    eslint-comments/no-duplicate-disable 🚨 👻 👻 👻 👻
    eslint-comments/no-restricted-disable 👻 👻 👻 👻
    eslint-comments/no-unlimited-disable 🚨 👻 👻 👻 👻
    eslint-comments/no-unused-disable 👻 👻 👻 👻
    eslint-comments/no-unused-enable 👻 👻 👻 👻
    eslint-comments/no-use 👻 👻 👻 👻
    eslint-comments/require-description 👻 👻 👻 👻
    flowtype/array-style-complex-type 🛠 🚨 👻 👻 👻 👻
    flowtype/array-style-simple-type 🛠 🚨 👻 👻 👻 👻
    flowtype/arrow-parens 🛠 🚨 👻 👻 👻 👻
    flowtype/boolean-style 🛠 🚨 👻 👻 👻 👻
    flowtype/define-flow-type 🚨 👻 👻 👻 👻
    flowtype/delimiter-dangle 🛠 🚨 👻 👻 👻 👻
    flowtype/enforce-line-break 🛠 🚨 👻 👻 👻 👻
    flowtype/generic-spacing 🛠 🚨 👻 👻 👻 👻
    flowtype/interface-id-match 👻 👻 👻 👻
    flowtype/newline-after-flow-annotation 🛠 🚨 👻 👻 👻 👻
    flowtype/no-dupe-keys 🚨 👻 👻 👻 👻
    flowtype/no-duplicate-type-union-intersection-members 🛠 🚨 👻 👻 👻 👻
    flowtype/no-existential-type 👻 👻 👻 👻
    flowtype/no-flow-fix-me-comments 🚨 👻 👻 👻 👻
    flowtype/no-internal-flow-type 🚨 👻 👻 👻 👻
    flowtype/no-mixed 🚨 👻 👻 👻 👻
    flowtype/no-mutable-array 🛠 🚨 👻 👻 👻 👻
    flowtype/no-primitive-constructor-types 🚨 👻 👻 👻 👻
    flowtype/no-types-missing-file-annotation 🚨 👻 👻 👻 👻
    flowtype/no-unused-expressions 👻 👻 👻 👻
    flowtype/no-weak-types 🚨 👻 👻 👻 👻
    flowtype/object-type-curly-spacing 🛠 👻 👻 👻 👻
    flowtype/object-type-delimiter 🛠 🚨 👻 👻 👻 👻
    flowtype/quotes 🛠 🚨 👻 👻 👻 👻
    flowtype/require-compound-type-alias 👻 👻 👻 👻
    flowtype/require-exact-type 🛠 🚨 👻 👻 👻 👻
    flowtype/require-indexer-name 🛠 🚨 👻 👻 👻 👻
    flowtype/require-inexact-type 🚨 👻 👻 👻 👻
    flowtype/require-parameter-type 👻 👻 👻 👻
    flowtype/require-readonly-react-props 🚨 👻 👻 👻 👻
    flowtype/require-return-type 👻 👻 👻 👻
    flowtype/require-types-at-top 🚨 👻 👻 👻 👻
    flowtype/require-valid-file-annotation 🛠 🚨 👻 👻 👻 👻
    flowtype/require-variable-type 👻 👻 👻 👻
    flowtype/semi 🛠 🚨 👻 👻 👻 👻
    flowtype/sort-keys 🛠 👻 👻 👻 👻
    flowtype/sort-type-union-intersection-members 🛠 🚨 👻 👻 👻 👻
    flowtype/space-after-type-colon 🛠 🚨 👻 👻 👻 👻
    flowtype/space-before-generic-bracket 🛠 🚨 👻 👻 👻 👻
    flowtype/space-before-type-colon 🛠 🚨 👻 👻 👻 👻
    flowtype/spread-exact-type 👻 👻 👻 👻
    flowtype/type-id-match 🚨 👻 👻 👻 👻
    flowtype/type-import-style 🛠 🚨 👻 👻 👻 👻
    flowtype/union-intersection-spacing 🛠 🚨 👻 👻 👻 👻
    flowtype/use-flow-type 🚨 👻 👻 👻 👻
    flowtype/use-read-only-spread 🚨 👻 👻 👻 👻
    flowtype/valid-syntax ⛔️ 👻 👻 👻 👻 👻
    for-direction 🚨 🚨 👻 👻 🚨
    func-call-spacing 🛠 🚨 🚨 🚨? 🚨 🚨
    func-name-matching 🚨 👻 👻 🚨?
    func-names 🚨 ⚠️? 👻 👻 🚨
    func-style 🚨 👻 👻 👻
    function-call-argument-newline 🛠 🚨 👻 👻 🚨
    function-paren-newline 🛠 🚨 🚨 👻 👻 👻
    generator-star-spacing 🛠 🚨 🚨? 🚨? 🚨? 🚨?
    getter-return 🚨 🚨? 👻 👻 🚨
    global-require ⛔️ 👻 🚨? 👻 👻 👻
    grouped-accessor-pairs 🚨 👻 👻 🚨
    guard-for-in 🚨 🚨 🚨 👻 🚨
    handle-callback-err ⛔️ 👻 👻 👻 👻
    id-blacklist ⛔️ 👻 👻 👻 👻
    id-denylist 👻 👻 👻
    id-length 🚨 👻 👻 👻
    id-match 👻 👻 👻
    implicit-arrow-linebreak 🛠 🚨 🚨 👻 👻 👻
    import/default 🚨 👻 👻 👻
    import/dynamic-import-chunkname 👻 👻 👻
    import/export 🚨 🚨 👻 🚨 👻
    import/exports-last 👻 👻 👻
    import/extensions 🚨 🚨? 👻 👻 👻
    import/first 🛠 🚨 🚨 👻 🚨 👻
    import/group-exports 👻 👻 👻
    import/imports-first 🛠 ⛔️ 👻 👻 👻 👻
    import/max-dependencies 👻 👻 👻
    import/named 🚨? 👻 👻 👻
    import/namespace 👻 👻 👻
    import/newline-after-import 🛠 🚨 🚨 👻 👻 👻
    import/no-absolute-path 🚨 🚨 👻 🚨? 👻
    import/no-amd 🚨 🚨 👻 👻 👻
    import/no-anonymous-default-export 👻 👻 👻
    import/no-commonjs 👻 👻 👻
    import/no-cycle 🚨 🚨? 👻 👻 👻
    import/no-default-export 👻 👻 👻
    import/no-deprecated ⚠️ 👻 👻 👻
    import/no-duplicates 🛠 🚨 🚨 👻 🚨 👻
    import/no-dynamic-require 🚨 🚨 👻 👻 👻
    import/no-extraneous-dependencies 🚨 🚨? 👻 👻 👻
    import/no-import-module-exports 🛠 👻 👻 👻 👻
    import/no-internal-modules 👻 👻 👻
    import/no-mutable-exports 🚨 🚨 👻 👻 👻
    import/no-named-as-default 🚨 🚨 👻 👻 👻
    import/no-named-as-default-member 🚨 🚨 👻 👻 👻
    import/no-named-default 🚨 🚨 👻 🚨 👻
    import/no-named-export 👻 👻 👻
    import/no-namespace 🛠 👻 👻 👻
    import/no-nodejs-modules 👻 👻 👻
    import/no-relative-packages 🛠 👻 👻 👻 👻
    import/no-relative-parent-imports 👻 👻 👻
    import/no-restricted-paths 👻 👻 👻
    import/no-self-import 🚨 🚨 👻 👻 👻
    import/no-unassigned-import 🚨 👻 👻 👻
    import/no-unresolved 🚨? 👻 👻 👻
    import/no-unused-modules 👻 👻 👻
    import/no-useless-path-segments 🛠 🚨 🚨? 👻 👻 👻
    import/no-webpack-loader-syntax 🚨 🚨 👻 🚨 👻
    import/order 🛠 🚨 🚨? 👻 👻 👻
    import/prefer-default-export 🚨? 👻 👻 👻
    import/unambiguous 👻 👻 👻
    indent 🛠 🚨 🚨? 🚨? 🚨? 🚨?
    indent-legacy 🛠 ⛔️ 👻 👻 👻 👻 👻
    init-declarations 👻 👻 👻
    jest/consistent-test-it 🛠 🚨 👻 👻 👻 👻
    jest/expect-expect 🚨 👻 👻 👻 👻
    jest/max-nested-describe 🚨 👻 👻 👻 👻
    jest/no-alias-methods 🛠 🚨 👻 👻 👻 👻
    jest/no-commented-out-tests 🚨 👻 👻 👻 👻
    jest/no-conditional-expect 🚨 👻 👻 👻 👻
    jest/no-conditional-in-test 🚨 👻 👻 👻 👻
    jest/no-deprecated-functions 🛠 🚨 👻 👻 👻 👻
    jest/no-disabled-tests ⚠️ 👻 👻 👻 👻
    jest/no-done-callback 🚨 👻 👻 👻 👻
    jest/no-duplicate-hooks 🚨 👻 👻 👻 👻
    jest/no-export 🚨 👻 👻 👻 👻
    jest/no-focused-tests 🚨 👻 👻 👻 👻
    jest/no-hooks 👻 👻 👻 👻
    jest/no-identical-title 🚨 👻 👻 👻 👻
    jest/no-if ⛔️ 👻 👻 👻 👻 👻
    jest/no-interpolation-in-snapshots 🚨 👻 👻 👻 👻
    jest/no-jasmine-globals 🛠 🚨 👻 👻 👻 👻
    jest/no-jest-import 🚨 👻 👻 👻 👻
    jest/no-large-snapshots 👻 👻 👻 👻
    jest/no-mocks-import 🚨 👻 👻 👻 👻
    jest/no-restricted-matchers 👻 👻 👻 👻
    jest/no-standalone-expect 🚨 👻 👻 👻 👻
    jest/no-test-prefixes 🛠 🚨 👻 👻 👻 👻
    jest/no-test-return-statement 🚨 👻 👻 👻 👻
    jest/prefer-called-with 🚨 👻 👻 👻 👻
    jest/prefer-comparison-matcher 🛠 🚨 👻 👻 👻 👻
    jest/prefer-equality-matcher 👻 👻 👻 👻 👻
    jest/prefer-expect-assertions 🚨 👻 👻 👻 👻
    jest/prefer-expect-resolves 🛠 🚨 👻 👻 👻 👻
    jest/prefer-hooks-in-order 👻 👻 👻 👻 👻
    jest/prefer-hooks-on-top 🚨 👻 👻 👻 👻
    jest/prefer-lowercase-title 🛠 👻 👻 👻 👻
    jest/prefer-snapshot-hint 🚨 👻 👻 👻 👻
    jest/prefer-spy-on 🛠 🚨 👻 👻 👻 👻
    jest/prefer-strict-equal 👻 👻 👻 👻
    jest/prefer-to-be 🛠 🚨 👻 👻 👻 👻
    jest/prefer-to-contain 🛠 🚨 👻 👻 👻 👻
    jest/prefer-to-have-length 🛠 🚨 👻 👻 👻 👻
    jest/prefer-todo 🛠 🚨 👻 👻 👻 👻
    jest/require-hook 👻 👻 👻 👻
    jest/require-to-throw-message 🚨 👻 👻 👻 👻
    jest/require-top-level-describe 🚨 👻 👻 👻 👻
    jest/unbound-method 👻 👻 👻 👻
    jest/valid-describe-callback 🚨 👻 👻 👻 👻
    jest/valid-expect 🚨 👻 👻 👻 👻
    jest/valid-expect-in-promise 🚨 👻 👻 👻 👻
    jest/valid-title 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-access 🚨 👻 👻 👻 👻
    jsdoc/check-alignment 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-examples 👻 👻 👻 👻
    jsdoc/check-indentation 👻 👻 👻 👻
    jsdoc/check-line-alignment 🛠 👻 👻 👻 👻
    jsdoc/check-param-names 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-property-names 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-syntax 🚨 👻 👻 👻 👻
    jsdoc/check-tag-names 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-types 🛠 🚨 👻 👻 👻 👻
    jsdoc/check-values 🚨 👻 👻 👻 👻
    jsdoc/empty-tags 🛠 🚨 👻 👻 👻 👻
    jsdoc/implements-on-classes 🚨 👻 👻 👻 👻
    jsdoc/match-description 👻 👻 👻 👻
    jsdoc/match-name 🛠 👻 👻 👻 👻
    jsdoc/multiline-blocks 🛠 🚨 👻 👻 👻 👻
    jsdoc/newline-after-description 🛠 🚨 👻 👻 👻 👻
    jsdoc/no-bad-blocks 🛠 🚨 👻 👻 👻 👻
    jsdoc/no-defaults 🛠 🚨 👻 👻 👻 👻
    jsdoc/no-missing-syntax 🛠 👻 👻 👻 👻
    jsdoc/no-multi-asterisks 🛠 🚨 👻 👻 👻 👻
    jsdoc/no-restricted-syntax 🛠 👻 👻 👻 👻
    jsdoc/no-types 🛠 👻 👻 👻 👻
    jsdoc/no-undefined-types 🚨 👻 👻 👻 👻
    jsdoc/require-asterisk-prefix 🛠 🚨 👻 👻 👻 👻
    jsdoc/require-description 👻 👻 👻 👻
    jsdoc/require-description-complete-sentence 🛠 👻 👻 👻 👻
    jsdoc/require-example 🛠 👻 👻 👻 👻
    jsdoc/require-file-overview 👻 👻 👻 👻
    jsdoc/require-hyphen-before-param-description 🛠 👻 👻 👻 👻
    jsdoc/require-jsdoc 🛠 👻 👻 👻 👻
    jsdoc/require-param 🛠 👻 👻 👻 👻
    jsdoc/require-param-description 👻 👻 👻 👻
    jsdoc/require-param-name 🚨 👻 👻 👻 👻
    jsdoc/require-param-type 👻 👻 👻 👻
    jsdoc/require-property 🛠 🚨 👻 👻 👻 👻
    jsdoc/require-property-description 🚨 👻 👻 👻 👻
    jsdoc/require-property-name 🚨 👻 👻 👻 👻
    jsdoc/require-property-type 🚨 👻 👻 👻 👻
    jsdoc/require-returns 👻 👻 👻 👻
    jsdoc/require-returns-check 👻 👻 👻 👻
    jsdoc/require-returns-description 👻 👻 👻 👻
    jsdoc/require-returns-type 👻 👻 👻 👻
    jsdoc/require-throws 👻 👻 👻 👻
    jsdoc/require-yields 👻 👻 👻 👻
    jsdoc/require-yields-check 👻 👻 👻 👻
    jsdoc/sort-tags 🛠 👻 👻 👻 👻 👻
    jsdoc/tag-lines 🛠 🚨 👻 👻 👻 👻
    jsdoc/valid-types 🚨 👻 👻 👻 👻
    jsonc/array-bracket-newline 🛠 🚨 👻 👻 👻 👻
    jsonc/array-bracket-spacing 🛠 🚨 👻 👻 👻 👻
    jsonc/array-element-newline 🛠 🚨 👻 👻 👻 👻
    jsonc/auto 🛠 👻 👻 👻 👻
    jsonc/comma-dangle 🛠 🚨 👻 👻 👻 👻
    jsonc/comma-style 🛠 🚨 👻 👻 👻 👻
    jsonc/indent 🛠 🚨 👻 👻 👻 👻
    jsonc/key-name-casing 👻 👻 👻 👻
    jsonc/key-spacing 🛠 🚨 👻 👻 👻 👻
    jsonc/no-bigint-literals 🚨 👻 👻 👻 👻
    jsonc/no-binary-expression 🛠 🚨 👻 👻 👻 👻
    jsonc/no-binary-numeric-literals 🛠 🚨 👻 👻 👻 👻
    jsonc/no-comments 🚨 👻 👻 👻 👻
    jsonc/no-dupe-keys 🚨 👻 👻 👻 👻
    jsonc/no-escape-sequence-in-identifier 🛠 🚨 👻 👻 👻 👻
    jsonc/no-floating-decimal 🛠 🚨 👻 👻 👻 👻
    jsonc/no-hexadecimal-numeric-literals 🛠 🚨 👻 👻 👻 👻
    jsonc/no-infinity 🚨 👻 👻 👻 👻
    jsonc/no-multi-str 🚨 👻 👻 👻 👻
    jsonc/no-nan 🚨 👻 👻 👻 👻
    jsonc/no-number-props 🛠 🚨 👻 👻 👻 👻
    jsonc/no-numeric-separators 🛠 🚨 👻 👻 👻 👻
    jsonc/no-octal 🚨 👻 👻 👻 👻
    jsonc/no-octal-escape 🚨 👻 👻 👻 👻
    jsonc/no-octal-numeric-literals 🛠 🚨 👻 👻 👻 👻
    jsonc/no-parenthesized 🛠 🚨 👻 👻 👻 👻
    jsonc/no-plus-sign 🛠 🚨 👻 👻 👻 👻
    jsonc/no-regexp-literals 🚨 👻 👻 👻 👻
    jsonc/no-sparse-arrays 🚨 👻 👻 👻 👻
    jsonc/no-template-literals 🛠 🚨 👻 👻 👻 👻
    jsonc/no-undefined-value 🚨 👻 👻 👻 👻
    jsonc/no-unicode-codepoint-escapes 🛠 🚨 👻 👻 👻 👻
    jsonc/no-useless-escape 🚨 👻 👻 👻 👻
    jsonc/object-curly-newline 🛠 🚨 👻 👻 👻 👻
    jsonc/object-curly-spacing 🛠 🚨 👻 👻 👻 👻
    jsonc/object-property-newline 🛠 🚨 👻 👻 👻 👻
    jsonc/quote-props 🛠 🚨 👻 👻 👻 👻
    jsonc/quotes 🛠 🚨 👻 👻 👻 👻
    jsonc/sort-array-values 🛠 👻 👻 👻 👻
    jsonc/sort-keys 🛠 🚨 👻 👻 👻 👻
    jsonc/space-unary-ops 🛠 🚨 👻 👻 👻 👻
    jsonc/valid-json-number 🛠 🚨 👻 👻 👻 👻
    jsonc/vue-custom-block/no-parsing-error 🚨 👻 👻 👻 👻
    jsx-a11y/accessible-emoji ⛔️ 👻 👻 👻 👻
    jsx-a11y/alt-text 🚨 🚨? 👻 👻 👻
    jsx-a11y/anchor-has-content 🚨 🚨? 👻 👻 👻
    jsx-a11y/anchor-is-valid 🚨 🚨? 👻 👻 👻
    jsx-a11y/aria-activedescendant-has-tabindex 🚨 🚨 👻 👻 👻
    jsx-a11y/aria-props 🚨 🚨 👻 👻 👻
    jsx-a11y/aria-proptypes 🚨 🚨 👻 👻 👻
    jsx-a11y/aria-role 🚨 🚨? 👻 👻 👻
    jsx-a11y/aria-unsupported-elements 🚨 🚨 👻 👻 👻
    jsx-a11y/autocomplete-valid 🚨 👻 👻 👻
    jsx-a11y/click-events-have-key-events 🚨 🚨 👻 👻 👻
    jsx-a11y/control-has-associated-label 🚨? 👻 👻 👻
    jsx-a11y/heading-has-content 🚨 🚨? 👻 👻 👻
    jsx-a11y/html-has-lang 🚨 🚨 👻 👻 👻
    jsx-a11y/iframe-has-title 🚨 🚨 👻 👻 👻
    jsx-a11y/img-redundant-alt 🚨 🚨 👻 👻 👻
    jsx-a11y/interactive-supports-focus 🚨 🚨? 👻 👻 👻
    jsx-a11y/label-has-associated-control 🚨 🚨? 👻 👻 👻
    jsx-a11y/label-has-for ⛔️ 👻 👻 👻 👻
    jsx-a11y/lang 🚨? 👻 👻 👻
    jsx-a11y/media-has-caption 🚨 🚨? 👻 👻 👻
    jsx-a11y/mouse-events-have-key-events 🚨 🚨 👻 👻 👻
    jsx-a11y/no-access-key 🚨 🚨 👻 👻 👻
    jsx-a11y/no-autofocus 🚨? 👻 👻 👻
    jsx-a11y/no-distracting-elements 🚨 🚨? 👻 👻 👻
    jsx-a11y/no-interactive-element-to-noninteractive-role 🚨 🚨? 👻 👻 👻
    jsx-a11y/no-noninteractive-element-interactions 🚨 🚨? 👻 👻 👻
    jsx-a11y/no-noninteractive-element-to-interactive-role 🚨 🚨? 👻 👻 👻
    jsx-a11y/no-noninteractive-tabindex 🚨 🚨? 👻 👻 👻
    jsx-a11y/no-onchange ⛔️ 👻 👻 👻 👻
    jsx-a11y/no-redundant-roles 🚨 🚨 👻 👻 👻
    jsx-a11y/no-static-element-interactions 🚨 🚨? 👻 👻 👻
    jsx-a11y/role-has-required-aria-props 🚨 🚨 👻 👻 👻
    jsx-a11y/role-supports-aria-props 🚨 🚨 👻 👻 👻
    jsx-a11y/scope 🚨 🚨 👻 👻 👻
    jsx-a11y/tabindex-no-positive 🚨 🚨 👻 👻 👻
    jsx-quotes 🛠 🚨 🚨? 👻 👻 🚨?
    key-spacing 🛠 🚨 🚨 🚨? 🚨 🚨
    keyword-spacing 🛠 🚨 🚨? 🚨? 🚨 🚨?
    line-comment-position 🚨 👻 👻 👻
    linebreak-style 🛠 🚨 🚨 🚨? 👻 🚨
    lines-around-comment 🛠 👻 👻 👻
    lines-around-directive 🛠 ⛔️ 👻 🚨? 👻 👻 👻
    lines-between-class-members 🛠 🚨 🚨? 👻 🚨? 🚨?
    lodash/callback-binding 🚨 👻 👻 👻 👻
    lodash/chain-style 🚨 👻 👻 👻 👻
    lodash/chaining 🚨 👻 👻 👻 👻
    lodash/collection-method-value 🚨 👻 👻 👻 👻
    lodash/collection-ordering 🚨 👻 👻 👻 👻
    lodash/collection-return 🚨 👻 👻 👻 👻
    lodash/consistent-compose 🚨 👻 👻 👻 👻
    lodash/identity-shorthand 🚨 👻 👻 👻 👻
    lodash/import-scope 👻 👻 👻 👻
    lodash/matches-prop-shorthand 🚨 👻 👻 👻 👻
    lodash/matches-shorthand 🚨 👻 👻 👻 👻
    lodash/no-commit 🚨 👻 👻 👻 👻
    lodash/no-double-unwrap 🛠 🚨 👻 👻 👻 👻
    lodash/no-extra-args 🚨 👻 👻 👻 👻
    lodash/no-unbound-this 🚨 👻 👻 👻 👻
    lodash/path-style 🛠 👻 👻 👻 👻
    lodash/prefer-compact 🚨 👻 👻 👻 👻
    lodash/prefer-constant 👻 👻 👻 👻
    lodash/prefer-filter 🚨 👻 👻 👻 👻
    lodash/prefer-find 🚨 👻 👻 👻 👻
    lodash/prefer-flat-map 🚨 👻 👻 👻 👻
    lodash/prefer-get 🚨 👻 👻 👻 👻
    lodash/prefer-immutable-method 🚨 👻 👻 👻 👻
    lodash/prefer-includes 🚨 👻 👻 👻 👻
    lodash/prefer-invoke-map 👻 👻 👻 👻
    lodash/prefer-is-nil 🚨 👻 👻 👻 👻
    lodash/prefer-lodash-chain 🚨 👻 👻 👻 👻
    lodash/prefer-lodash-method 👻 👻 👻 👻
    lodash/prefer-lodash-typecheck 🚨 👻 👻 👻 👻
    lodash/prefer-map 🚨 👻 👻 👻 👻
    lodash/prefer-matches 🚨 👻 👻 👻 👻
    lodash/prefer-noop 👻 👻 👻 👻
    lodash/prefer-over-quantifier 🚨 👻 👻 👻 👻
    lodash/prefer-reject ⚠️ 👻 👻 👻 👻
    lodash/prefer-some 🚨 👻 👻 👻 👻
    lodash/prefer-startswith 👻 👻 👻 👻
    lodash/prefer-thru 🚨 👻 👻 👻 👻
    lodash/prefer-times 🚨 👻 👻 👻 👻
    lodash/prefer-wrapper-method 🚨 👻 👻 👻 👻
    lodash/preferred-alias 🚨 👻 👻 👻 👻
    lodash/prop-shorthand 🚨 👻 👻 👻 👻
    lodash/unwrap 🚨 👻 👻 👻 👻
    max-classes-per-file 🚨? 👻 👻 👻
    max-depth 👻 👻 ⚠️?
    max-len 🚨? 🚨? 👻 👻
    max-lines 👻 👻 👻
    max-lines-per-function 👻 👻 👻
    max-nested-callbacks 👻 👻 ⚠️?
    max-params 👻 👻 ⚠️?
    max-statements 👻 👻 👻
    max-statements-per-line 🚨 👻 👻 🚨?
    mocha/handle-done-callback 🚨 👻 👻 👻 👻
    mocha/max-top-level-suites 🚨 👻 👻 👻 👻
    mocha/no-async-describe 🛠 🚨 👻 👻 👻 👻
    mocha/no-empty-description 🚨 👻 👻 👻 👻
    mocha/no-exclusive-tests 🚨 👻 👻 👻 👻
    mocha/no-exports 🚨 👻 👻 👻 👻
    mocha/no-global-tests 🚨 👻 👻 👻 👻
    mocha/no-hooks 👻 👻 👻 👻
    mocha/no-hooks-for-single-case 🚨 👻 👻 👻 👻
    mocha/no-identical-title 🚨 👻 👻 👻 👻
    mocha/no-mocha-arrows 🛠 👻 👻 👻 👻
    mocha/no-nested-tests 🚨 👻 👻 👻 👻
    mocha/no-pending-tests 🚨 👻 👻 👻 👻
    mocha/no-return-and-callback 🚨 👻 👻 👻 👻
    mocha/no-return-from-async 🚨 👻 👻 👻 👻
    mocha/no-setup-in-describe 🚨 👻 👻 👻 👻
    mocha/no-sibling-hooks 🚨 👻 👻 👻 👻
    mocha/no-skipped-tests 🚨 👻 👻 👻 👻
    mocha/no-synchronous-tests 👻 👻 👻 👻
    mocha/no-top-level-hooks 🚨 👻 👻 👻 👻
    mocha/prefer-arrow-callback 🛠 👻 👻 👻 👻
    mocha/valid-suite-description 👻 👻 👻 👻
    mocha/valid-test-description 👻 👻 👻 👻
    multiline-comment-style 🛠 👻 👻 👻
    multiline-ternary 🛠 👻 🚨? 👻
    new-cap 🚨? 🚨? 🚨? 🚨?
    new-parens 🛠 🚨 🚨 👻 🚨 🚨
    newline-after-var 🛠 ⛔️ 👻 👻 👻 👻
    newline-before-return 🛠 ⛔️ 👻 👻 👻 👻
    newline-per-chained-call 🛠 🚨? 👻 👻 👻
    no-alert 🚨 ⚠️? 👻 👻 🚨
    no-array-constructor 🚨 🚨 🚨 🚨 🚨
    no-async-promise-executor 🚨 🚨 👻 🚨 🚨
    no-await-in-loop 🚨? 👻 👻 🚨?
    no-bitwise 🚨 🚨 👻 👻 🚨
    no-buffer-constructor ⛔️ 👻 🚨? 👻 👻 🚨?
    no-caller 🚨 🚨 🚨 🚨 🚨
    no-case-declarations 🚨 🚨 👻 🚨 🚨
    no-catch-shadow ⛔️ 👻 👻 👻 👻
    no-class-assign 🚨 🚨 👻 🚨 🚨
    no-compare-neg-zero 🚨 🚨 👻 🚨 🚨
    no-cond-assign 🚨 🚨? 🚨 🚨
    no-confusing-arrow 🛠 🚨 🚨? 👻 👻 👻
    no-console 🚨 ⚠️? 👻 👻 👻
    no-const-assign 🚨 🚨 👻 🚨 🚨
    no-constant-binary-expression 👻 👻 👻 👻 👻
    no-constant-condition ⚠️? 👻 🚨? 🚨?
    no-constructor-return 🚨 👻 👻 🚨
    no-continue 🚨? 👻 👻 👻
    no-control-regex 🚨 🚨 👻 🚨 🚨
    no-debugger 🚨 🚨 👻 🚨 🚨
    no-delete-var 🚨 🚨 👻 🚨 🚨
    no-div-regex 🛠 🚨 👻 👻 👻
    no-dupe-args 🚨 🚨 👻 🚨 🚨
    no-dupe-class-members 🚨 🚨 👻 🚨 🚨
    no-dupe-else-if 🚨 👻 👻 🚨
    no-dupe-keys 🚨 🚨 👻 🚨 🚨
    no-duplicate-case 🚨 🚨 👻 🚨 🚨
    no-duplicate-imports 👻 👻 👻
    no-else-return 🛠 🚨? 👻 👻 🚨?
    no-empty 🚨 🚨 👻 🚨? 🚨?
    no-empty-character-class 🚨 🚨 👻 🚨 🚨
    no-empty-function 🚨? 👻 👻 👻
    no-empty-pattern 🚨 🚨 👻 🚨 🚨
    no-eq-null 🚨 👻 👻 🚨
    no-eval 🚨 🚨 👻 🚨 🚨
    no-ex-assign 🚨 🚨 👻 🚨 🚨
    no-extend-native 🚨 🚨 🚨 🚨 🚨
    no-extra-bind 🛠 🚨 🚨 🚨 🚨 🚨
    no-extra-boolean-cast 🛠 🚨 🚨 👻 🚨 🚨
    no-extra-label 🛠 🚨 🚨 👻 👻 🚨
    no-extra-parens 🛠 🚨 👻 🚨? 👻
    no-extra-semi 🛠 🚨 🚨 👻 👻 🚨
    no-fallthrough 🚨 🚨 👻 🚨 🚨
    no-floating-decimal 🛠 🚨 🚨 👻 🚨 🚨
    no-func-assign 🚨 🚨 👻 🚨 🚨
    no-global-assign 🚨 🚨? 👻 🚨 🚨
    no-implicit-coercion 🛠 🚨 👻 👻 🚨
    no-implicit-globals 🚨 👻 👻 🚨
    no-implied-eval 🚨 🚨 👻 🚨 🚨
    no-import-assign 🚨 👻 🚨 🚨
    no-inline-comments 🚨 👻 👻 👻
    no-inner-declarations 🚨 🚨 👻 👻 🚨
    no-invalid-regexp 🚨 🚨 👻 🚨 🚨
    no-invalid-this 🚨? 👻 👻
    no-irregular-whitespace 🚨 🚨 🚨 🚨 🚨
    no-iterator 🚨 🚨 👻 🚨 🚨
    no-label-var 🚨 🚨 👻 👻 🚨
    no-labels 🚨 🚨? 👻 🚨? 🚨
    no-lone-blocks 🚨 🚨 👻 🚨 🚨
    no-lonely-if 🛠 🚨 🚨 👻 👻 🚨
    no-loop-func 🚨 🚨 👻 👻 👻
    no-loss-of-precision 🚨 👻 🚨 🚨
    no-magic-numbers 👻 👻 👻
    no-misleading-character-class 🚨 🚨 👻 🚨 🚨
    no-mixed-operators 🚨? 👻 🚨? 🚨?
    no-mixed-requires ⛔️ 👻 👻 👻 👻
    no-mixed-spaces-and-tabs 🚨 🚨 🚨 🚨 🚨
    no-multi-assign 🚨 🚨 👻 👻 🚨
    no-multi-spaces 🛠 🚨 🚨? 🚨 🚨 🚨
    no-multi-str 🚨 🚨 🚨 🚨 🚨
    no-multiple-empty-lines 🛠 🚨 🚨? 🚨? 🚨? 🚨?
    no-native-reassign ⛔️ 👻 👻 👻 👻
    no-negated-condition 🚨 👻 👻 🚨
    no-negated-in-lhs ⛔️ 👻 👻 👻 👻
    no-nested-ternary 🚨? 👻 👻 👻
    no-new 🚨 🚨 👻 🚨 🚨
    no-new-func 🚨 🚨 👻 🚨 🚨
    no-new-object 🚨 🚨 🚨 🚨 🚨
    no-new-require ⛔️ 👻 🚨? 👻 👻 👻
    no-new-symbol 🚨 🚨 🚨 🚨 🚨
    no-new-wrappers 🚨 🚨 🚨 🚨 🚨
    no-nonoctal-decimal-escape 🚨 👻 👻 👻 🚨
    no-obj-calls 🚨 🚨 👻 🚨 🚨
    no-octal 🚨 🚨 👻 🚨 🚨
    no-octal-escape 🚨 🚨 👻 🚨 🚨
    no-param-reassign 🚨 🚨? 👻 👻 👻
    no-path-concat ⛔️ 👻 🚨? 👻 👻 👻
    no-plusplus 🚨? 👻 👻 👻
    no-process-env ⛔️ 👻 👻 👻 👻
    no-process-exit ⛔️ 👻 👻 👻 👻
    no-promise-executor-return 🚨 👻 👻 🚨
    no-proto 🚨 🚨 👻 🚨 🚨
    no-prototype-builtins 🚨 🚨 👻 🚨 🚨
    no-redeclare 🚨 🚨? 👻 🚨? 🚨?
    no-regex-spaces 🛠 🚨 🚨 👻 🚨 🚨
    no-restricted-exports 👻 👻 👻
    no-restricted-globals 🚨? 👻 👻 🚨?
    no-restricted-imports 👻 👻 🚨?
    no-restricted-modules ⛔️ 👻 👻 👻 👻
    no-restricted-properties 🚨? 👻 👻 👻
    no-restricted-syntax 🚨? 👻 👻 👻
    no-return-assign 🚨 🚨? 👻 🚨? 🚨?
    no-return-await 🚨? 👻 👻 🚨?
    no-script-url 🚨 🚨 👻 👻 🚨
    no-self-assign 🚨 🚨? 👻 🚨? 🚨?
    no-self-compare 🚨 🚨 👻 🚨 🚨
    no-sequences 🚨 🚨 👻 🚨 🚨
    no-setter-return 🚨 👻 👻 🚨
    no-shadow 🚨 🚨? 👻 👻 👻
    no-shadow-restricted-names 🚨 🚨 👻 🚨 🚨
    no-spaced-func 🛠 ⛔️ 👻 🚨? 👻 👻 👻
    no-sparse-arrays 🚨 🚨 👻 🚨 🚨
    no-sync ⛔️ 👻 👻 👻 👻
    no-tabs 🚨 🚨 🚨 🚨 👻
    no-template-curly-in-string 🚨 🚨 👻 🚨 🚨
    no-ternary 👻 👻 👻
    no-this-before-super 🚨 🚨 🚨 🚨 🚨
    no-throw-literal 🚨 🚨 🚨 🚨 🚨
    no-trailing-spaces 🛠 🚨 🚨? 🚨 🚨 🚨
    no-undef 🚨 🚨 👻 🚨 🚨?
    no-undef-init 🛠 🚨 🚨 👻 🚨 🚨
    no-undefined 👻 👻 👻
    no-underscore-dangle 🚨? 👻 👻 👻
    no-unexpected-multiline 🚨 🚨 🚨 🚨 🚨
    no-unmodified-loop-condition 🚨 👻 🚨 🚨
    no-unneeded-ternary 🛠 🚨 🚨? 👻 🚨? 🚨
    no-unreachable 🚨? 👻 🚨? 🚨?
    no-unreachable-loop 🚨 👻 🚨 🚨
    no-unsafe-finally 🚨 🚨 👻 🚨 🚨
    no-unsafe-negation 🚨 🚨 👻 🚨 🚨?
    no-unsafe-optional-chaining 🚨 👻 👻 👻 🚨?
    no-unused-expressions 🚨 🚨? 👻 🚨? 🚨?
    no-unused-labels 🛠 🚨 🚨 👻 👻 🚨
    no-unused-private-class-members 👻 👻 👻 👻
    no-unused-vars 🚨 🚨? 🚨? 🚨? 🚨?
    no-use-before-define 🚨 🚨? 👻 🚨? 👻
    no-useless-backreference 🚨 👻 🚨 🚨
    no-useless-call 🚨 👻 🚨 🚨
    no-useless-catch 🚨 🚨 👻 🚨 🚨
    no-useless-computed-key 🛠 🚨 🚨 👻 🚨 🚨?
    no-useless-concat 🚨 🚨 👻 👻 🚨
    no-useless-constructor 🚨 🚨 👻 🚨 🚨
    no-useless-escape 🚨 🚨 👻 🚨 🚨
    no-useless-rename 🛠 🚨 🚨 👻 🚨? 🚨?
    no-useless-return 🛠 🚨 🚨 👻 🚨 🚨
    no-var 🛠 🚨 🚨 🚨 ⚠️? 🚨
    no-void 🚨 🚨? 👻 🚨? 🚨?
    no-warning-comments ⚠️ 👻 👻 ⚠️?
    no-whitespace-before-property 🛠 🚨 🚨 👻 🚨 🚨
    no-with 🚨 🚨 🚨 🚨 🚨
    node/callback-return 🚨 👻 👻 👻 👻
    node/exports-style 🚨 👻 👻 👻 👻
    node/file-extension-in-import 🛠 👻 👻 👻 👻
    node/global-require 👻 👻 👻 👻
    node/handle-callback-err 🚨 👻 👻 🚨? 👻
    node/no-callback-literal 🚨 👻 👻 🚨 👻
    node/no-deprecated-api 🚨 👻 👻 🚨 👻
    node/no-exports-assign 🚨 👻 👻 🚨 👻
    node/no-extraneous-import 🚨 👻 👻 👻 👻
    node/no-extraneous-require 🚨 👻 👻 👻 👻
    node/no-hide-core-modules ⛔️ 👻 👻 👻 👻 👻
    node/no-missing-import 👻 👻 👻 👻
    node/no-missing-require 👻 👻 👻 👻
    node/no-mixed-requires 👻 👻 👻 👻
    node/no-new-require 🚨 👻 👻 🚨 👻
    node/no-path-concat 🚨 👻 👻 🚨 👻
    node/no-process-env 🚨 👻 👻 👻 👻
    node/no-process-exit 🚨 👻 👻 👻 👻
    node/no-restricted-import 👻 👻 👻 👻
    node/no-restricted-require 👻 👻 👻 👻
    node/no-sync 🚨 👻 👻 👻 👻
    node/no-unpublished-bin 🚨 👻 👻 👻 👻
    node/no-unpublished-import 👻 👻 👻 👻
    node/no-unpublished-require 👻 👻 👻 👻
    node/no-unsupported-features ⛔️ 👻 👻 👻 👻 👻
    node/no-unsupported-features/es-builtins 👻 👻 👻 👻
    node/no-unsupported-features/es-syntax 👻 👻 👻 👻
    node/no-unsupported-features/node-builtins 👻 👻 👻 👻
    node/prefer-global/buffer 🚨 👻 👻 👻 👻
    node/prefer-global/console 🚨 👻 👻 👻 👻
    node/prefer-global/process 🚨 👻 👻 👻 👻
    node/prefer-global/text-decoder 🚨 👻 👻 👻 👻
    node/prefer-global/text-encoder 🚨 👻 👻 👻 👻
    node/prefer-global/url 🚨 👻 👻 👻 👻
    node/prefer-global/url-search-params 🚨 👻 👻 👻 👻
    node/prefer-promises/dns 🚨 👻 👻 👻 👻
    node/prefer-promises/fs 🚨 👻 👻 👻 👻
    node/process-exit-as-throw 🚨 👻 👻 🚨 👻
    node/shebang 🛠 🚨 👻 👻 👻 👻
    nonblock-statement-body-position 🛠 🚨 🚨? 👻 👻 👻
    object-curly-newline 🛠 🚨 🚨? 👻 🚨? 👻
    object-curly-spacing 🛠 🚨? 🚨? 🚨? 🚨?
    object-property-newline 🛠 🚨 🚨? 👻 🚨? 👻
    object-shorthand 🛠 🚨 🚨? 👻 👻 🚨
    one-var 🛠 🚨 🚨 🚨? 🚨? 🚨
    one-var-declaration-per-line 🛠 🚨 🚨? 👻 👻 🚨
    operator-assignment 🛠 🚨 🚨 👻 👻 🚨
    operator-linebreak 🛠 🚨 🚨? 🚨 🚨? 🚨?
    padded-blocks 🛠 🚨 🚨? 🚨 🚨? 🚨?
    padding-line-between-statements 🛠 🚨 👻 👻 🚨
    prefer-arrow-callback 🛠 🚨 🚨? 👻 👻 🚨?
    prefer-const 🛠 🚨 🚨? 🚨? 🚨? 🚨?
    prefer-destructuring 🛠 🚨? 👻 👻 🚨?
    prefer-exponentiation-operator 🛠 🚨 👻 👻 🚨
    prefer-named-capture-group 👻 👻 👻
    prefer-numeric-literals 🛠 🚨 🚨 👻 👻 🚨
    prefer-object-has-own 🛠 👻 👻 👻 👻 👻
    prefer-object-spread 🛠 🚨 🚨 👻 👻 🚨
    prefer-promise-reject-errors 🚨 🚨? 🚨 🚨 🚨?
    prefer-reflect ⛔️ 👻 👻 👻 👻
    prefer-regex-literals 🚨 👻 🚨 🚨?
    prefer-rest-params 🚨 🚨 🚨 👻 🚨
    prefer-spread 🚨 🚨 🚨 👻 🚨
    prefer-template 🛠 🚨? 👻 👻 👻
    promise/always-return 👻 👻 👻 👻 👻
    promise/avoid-new 👻 👻 👻 👻 👻
    promise/catch-or-return 👻 👻 👻 👻 👻
    promise/no-callback-in-promise 👻 👻 👻 👻 👻
    promise/no-native 👻 👻 👻 👻 👻
    promise/no-nesting 👻 👻 👻 👻 👻
    promise/no-new-statics 🛠 👻 👻 👻 👻 👻
    promise/no-promise-in-callback 👻 👻 👻 👻 👻
    promise/no-return-in-finally 👻 👻 👻 👻 👻
    promise/no-return-wrap 👻 👻 👻 👻 👻
    promise/param-names 👻 👻 👻 🚨? 👻
    promise/prefer-await-to-callbacks 👻 👻 👻 👻 👻
    promise/prefer-await-to-then 👻 👻 👻 👻 👻
    promise/valid-params 👻 👻 👻 👻 👻
    quote-props 🛠 🚨 🚨? 🚨? 🚨? 🚨?
    quotes 🛠 🚨 🚨? 🚨? 🚨? 🚨
    radix 🚨 🚨 👻 👻 🚨
    react-hooks/exhaustive-deps 🛠 🚨 👻 👻 👻 👻
    react-hooks/rules-of-hooks 🚨 👻 👻 👻 👻
    react/boolean-prop-naming 👻 👻 👻
    react/button-has-type 🚨 🚨? 👻 👻 👻
    react/default-props-match-prop-types 🚨 🚨? 👻 👻 👻
    react/destructuring-assignment 🛠 🚨? 👻 👻 👻
    react/display-name 👻 👻 👻
    react/forbid-component-props 🚨 👻 👻 👻
    react/forbid-dom-props 👻 👻 👻
    react/forbid-elements 👻 👻 👻
    react/forbid-foreign-prop-types ⚠️? 👻 👻 👻
    react/forbid-prop-types 🚨? 👻 👻 👻
    react/function-component-definition 🛠 🚨 👻 👻 👻
    react/hook-use-state 🚨 👻 👻 👻 👻
    react/iframe-missing-sandbox 🚨 👻 👻 👻 👻
    react/jsx-boolean-value 🛠 🚨 🚨? 👻 👻 👻
    react/jsx-child-element-spacing 👻 👻 👻
    react/jsx-closing-bracket-location 🛠 🚨 🚨 👻 👻 👻
    react/jsx-closing-tag-location 🛠 🚨? 👻 👻 👻
    react/jsx-curly-brace-presence 🛠 🚨 🚨 👻 👻 👻
    react/jsx-curly-newline 🛠 🚨 🚨? 👻 👻 👻
    react/jsx-curly-spacing 🛠 🚨 🚨 👻 👻 👻
    react/jsx-equals-spacing 🛠 🚨 🚨 👻 👻 👻
    react/jsx-filename-extension 🚨? 👻 👻 👻
    react/jsx-first-prop-new-line 🛠 🚨 🚨 👻 👻 👻
    react/jsx-fragments 🛠 🚨 🚨 👻 👻 👻
    react/jsx-handler-names 🚨 👻 👻 👻
    react/jsx-indent 🛠 🚨 🚨 👻 👻 👻
    react/jsx-indent-props 🛠 🚨 🚨 👻 👻 👻
    react/jsx-key 🚨 👻 👻 👻
    react/jsx-max-depth 👻 👻 👻
    react/jsx-max-props-per-line 🛠 🚨 🚨? 👻 👻 👻
    react/jsx-newline 🛠 🚨 👻 👻 👻 👻
    react/jsx-no-bind 🚨 🚨? 👻 👻 👻
    react/jsx-no-comment-textnodes 🚨 🚨 👻 👻 👻
    react/jsx-no-constructed-context-values 🚨 👻 👻 👻 👻
    react/jsx-no-duplicate-props 🚨 🚨? 👻 👻 👻
    react/jsx-no-leaked-render 🛠 👻 👻 👻 👻 👻
    react/jsx-no-literals 👻 👻 👻
    react/jsx-no-script-url 🚨 👻 👻 👻
    react/jsx-no-target-blank 🛠 🚨 🚨? 👻 👻 👻
    react/jsx-no-undef 🚨 🚨 👻 👻 👻
    react/jsx-no-useless-fragment 🛠 🚨 👻 👻 👻
    react/jsx-one-expression-per-line 🛠 🚨? 👻 👻 👻
    react/jsx-pascal-case 🚨 🚨? 👻 👻 👻
    react/jsx-props-no-multi-spaces 🛠 🚨 🚨 👻 👻 👻
    react/jsx-props-no-spreading 🚨? 👻 👻 👻
    react/jsx-sort-default-props 🚨 👻 👻 👻
    react/jsx-sort-props 🛠 🚨 👻 👻 👻
    react/jsx-space-before-closing 🛠 ⛔️ 👻 👻 👻 👻
    react/jsx-tag-spacing 🛠 🚨 🚨? 👻 👻 👻
    react/jsx-uses-react 🚨 🚨 👻 👻 👻
    react/jsx-uses-vars 🚨 🚨 👻 👻 👻
    react/jsx-wrap-multilines 🛠 🚨? 👻 👻 👻
    react/no-access-state-in-setstate 🚨 🚨 👻 👻 👻
    react/no-adjacent-inline-elements 👻 👻 👻
    react/no-array-index-key 🚨 🚨 👻 👻 👻
    react/no-arrow-function-lifecycle 🛠 👻 👻 👻 👻 👻
    react/no-children-prop 🚨 🚨 👻 👻 👻
    react/no-danger 🚨 ⚠️? 👻 👻 👻
    react/no-danger-with-children 🚨 🚨 👻 👻 👻
    react/no-deprecated 🚨 🚨 👻 👻 👻
    react/no-did-mount-set-state 🚨 👻 👻 👻
    react/no-did-update-set-state 🚨 🚨 👻 👻 👻
    react/no-direct-mutation-state 🚨 👻 👻 👻
    react/no-find-dom-node 🚨 🚨 👻 👻 👻
    react/no-invalid-html-attribute 🛠 👻 👻 👻 👻 👻
    react/no-is-mounted 🚨 🚨 👻 👻 👻
    react/no-multi-comp 👻 👻 👻
    react/no-namespace 🚨 👻 👻 👻 👻
    react/no-redundant-should-component-update 🚨 🚨 👻 👻 👻
    react/no-render-return-value 🚨 🚨 👻 👻 👻
    react/no-set-state 🚨 👻 👻 👻
    react/no-string-refs 🚨 🚨 👻 👻 👻
    react/no-this-in-sfc 🚨 🚨 👻 👻 👻
    react/no-typos 🚨 🚨 👻 👻 👻
    react/no-unescaped-entities 🚨? 👻 👻 👻
    react/no-unknown-property 🛠 🚨 🚨 👻 👻 👻
    react/no-unsafe 🚨 👻 👻 👻
    react/no-unstable-nested-components 🚨 👻 👻 👻 👻
    react/no-unused-class-component-methods 👻 👻 👻 👻 👻
    react/no-unused-prop-types 🚨 🚨? 👻 👻 👻
    react/no-unused-state 🚨 🚨 👻 👻 👻
    react/no-will-update-set-state 🚨 🚨 👻 👻 👻
    react/prefer-es6-class 🚨 🚨? 👻 👻 👻
    react/prefer-exact-props 👻 👻 👻 👻
    react/prefer-read-only-props 🛠 🚨 👻 👻 👻
    react/prefer-stateless-function 🚨 🚨 👻 👻 👻
    react/prop-types 🚨 🚨? 👻 👻 👻
    react/react-in-jsx-scope 🚨? 👻 👻 👻
    react/require-default-props 🚨? 👻 👻 👻
    react/require-optimization 👻 👻 👻
    react/require-render-return 🚨 🚨 👻 👻 👻
    react/self-closing-comp 🛠 🚨 🚨 👻 👻 👻
    react/sort-comp 🚨 🚨? 👻 👻 👻
    react/sort-prop-types 🚨 👻 👻 👻
    react/state-in-constructor 🚨 🚨 👻 👻 👻
    react/static-property-placement 🚨 🚨? 👻 👻 👻
    react/style-prop-object 🚨 🚨 👻 👻 👻
    react/void-dom-elements-no-children 🚨 🚨 👻 👻 👻
    require-atomic-updates 🚨 👻 👻 👻
    require-await 👻 👻 👻
    require-jsdoc ⛔️ 👻 🚨? 👻 👻
    require-unicode-regexp 🚨 👻 👻 👻
    require-yield 🚨 🚨 👻 👻 🚨
    rest-spread-spacing 🛠 🚨 🚨 🚨? 🚨 🚨
    semi 🛠 🚨 🚨 🚨? 🚨? 🚨
    semi-spacing 🛠 🚨 🚨 🚨? 🚨 🚨
    semi-style 🛠 🚨 🚨 👻 👻 🚨
    sort-imports 🛠 👻 👻 👻
    sort-keys 👻 👻 👻
    sort-vars 🛠 🚨 👻 👻 👻
    space-before-blocks 🛠 🚨 🚨? 🚨? 🚨 🚨
    space-before-function-paren 🛠 🚨 🚨? 🚨? 🚨 🚨?
    space-in-parens 🛠 🚨 🚨 👻 🚨 🚨
    space-infix-ops 🛠 🚨 🚨 👻 🚨 🚨
    space-unary-ops 🛠 🚨 🚨? 👻 🚨 🚨?
    spaced-comment 🛠 🚨 🚨? 🚨 🚨? 🚨?
    strict 🛠 🚨 🚨 👻 👻 👻
    switch-colon-spacing 🛠 🚨 🚨 🚨? 👻 🚨
    symbol-description 🚨 🚨 👻 🚨 🚨
    template-curly-spacing 🛠 🚨 🚨? 👻 🚨 🚨?
    template-tag-spacing 🛠 🚨 🚨 👻 🚨 🚨
    typescript-sort-keys/interface 🛠 🚨 👻 👻 👻 👻
    typescript-sort-keys/string-enum 🛠 🚨 👻 👻 👻 👻
    unicode-bom 🛠 🚨 🚨 👻 🚨 🚨
    unicorn/better-regex 🛠 🚨 👻 👻 👻 👻
    unicorn/catch-error-name 🛠 🚨 👻 👻 👻 👻
    unicorn/consistent-destructuring 🛠 👻 👻 👻 👻
    unicorn/consistent-function-scoping 🚨 👻 👻 👻 👻
    unicorn/custom-error-definition 🛠 👻 👻 👻 👻
    unicorn/empty-brace-spaces 🛠 🚨 👻 👻 👻 👻
    unicorn/error-message 🚨 👻 👻 👻 👻
    unicorn/escape-case 🛠 🚨 👻 👻 👻 👻
    unicorn/expiring-todo-comments 🚨 👻 👻 👻 👻
    unicorn/explicit-length-check 🛠 👻 👻 👻 👻
    unicorn/filename-case 👻 👻 👻 👻
    unicorn/import-index 🛠 🚨 👻 👻 👻 👻
    unicorn/import-style 👻 👻 👻 👻
    unicorn/new-for-builtins 🛠 🚨 👻 👻 👻 👻
    unicorn/no-abusive-eslint-disable 🚨 👻 👻 👻 👻
    unicorn/no-array-callback-reference 👻 👻 👻 👻
    unicorn/no-array-for-each 🛠 🚨 👻 👻 👻 👻
    unicorn/no-array-instanceof ⛔️ 👻 👻 👻 👻 👻
    unicorn/no-array-method-this-argument 🛠 🚨 👻 👻 👻 👻
    unicorn/no-array-push-push 🛠 👻 👻 👻 👻
    unicorn/no-array-reduce 🚨 👻 👻 👻 👻
    unicorn/no-await-expression-member 🛠 👻 👻 👻 👻 👻
    unicorn/no-console-spaces 🛠 👻 👻 👻 👻
    unicorn/no-document-cookie 🚨 👻 👻 👻 👻
    unicorn/no-empty-file 🚨 👻 👻 👻 👻
    unicorn/no-fn-reference-in-iterator ⛔️ 👻 👻 👻 👻 👻
    unicorn/no-for-loop 🛠 🚨 👻 👻 👻 👻
    unicorn/no-hex-escape 🛠 🚨 👻 👻