{
    "env": {
        "browser": true,
        "es2021": true,
        "jest": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:react/recommended",
        "plugin:react-hooks/recommended",
        "plugin:jsx-a11y/recommended",
        "plugin:cypress/recommended",
        "prettier"
    ],
    "parserOptions": {
        "ecmaFeatures": { "jsx": true },
        "sourceType": "module",
        "allowImportExportEverywhere": true
    },
    "ignorePatterns": ["node_modules/", "pkg/", "build/"],
    "parser": "@typescript-eslint/parser",
    "plugins": [],
    "rules": {
        "require-await": "error",
        "quotes": ["error", "single", { "avoidEscape": true }],
        "comma-dangle": ["error", "always-multiline"],
        "array-element-newline": ["error", "consistent"],
        "no-constant-condition": ["error", { "checkLoops": true }],
        "no-multi-spaces": ["error"],
        "semi": ["error", "always"],
        "space-in-parens": ["error", "never"],
        "key-spacing": ["error", { "afterColon": true }],
        "space-infix-ops": ["error"],
        "@typescript-eslint/no-unused-vars": ["error"],
        "space-before-function-paren": [
            "error",
            {
                "anonymous": "always",
                "named": "never",
                "asyncArrow": "always"
            }
        ],
        "react/react-in-jsx-scope": "off",
        "quote-props": ["error", "as-needed"],
        "no-multiple-empty-lines": ["error", { "max": 1 }],
        "@typescript-eslint/no-var-requires": "off",
        "lines-around-comment": [
            "error",
            {
                "beforeBlockComment": true,
                "allowBlockStart": true
            }
        ]
    },
    "settings": { "react": { "version": "detect" } }
}
