{
    "env": {
        "browser": true,
        "es2021": true
    },
    "extends": [
        "plugin:react/recommended",
        "standard-with-typescript",
        "plugin:@typescript-eslint/recommended"
    ],
    "overrides": [],
    "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module",
        "project": "./tsconfig.json",
        "ecmaFeatures": {
            "jsx": true
        }
    },
    "plugins": [
        "react",
        "eslint-plugin-import-helpers",
        "unused-imports"
    ],
    "settings": {
        "react": {
            "version": "detect"
        }
    },
    "rules": {
        "@typescript-eslint/no-misused-promises": 0,
        "@typescript-eslint/no-floating-promises": 0,
        "@typescript-eslint/consistent-type-assertions": 0,
        "@typescript-eslint/strict-boolean-expressions": 0,
        "@typescript-eslint/no-unused-vars": [
            "error",
            {
                "argsIgnorePattern": "^_"
            }
        ],
        "react/prop-types": 0,
        "no-console": 0,
        "semi": [
            "warn",
            "never"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "react/jsx-one-expression-per-line": [
            "error",
            {
                "allow": "single-child"
            }
        ],
        "max-len": [
            "error",
            {
                "code": 120,
                "ignoreComments": true,
                "ignoreUrls": true
            }
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "react/jsx-indent": [
            "error",
            2
        ],
        "no-else-return": [
            "error"
        ],
        "object-curly-spacing": [
            "error",
            "always"
        ],
        "no-multiple-empty-lines": [
            "error",
            {
                "max": 1
            }
        ],
        "react/react-in-jsx-scope": "off",
        "unused-imports/no-unused-imports": 2,
        "@typescript-eslint/explicit-function-return-type": 0,
        "import-helpers/order-imports": [
            "warn",
            {
                "newlinesBetween": "always",
                "groups": [
                    "/^react/",
                    "/^next/",
                    "/^axios/",
                    "/^date-fns/",
                    "/^@casl/",
                    "/^@emotion/",
                    "/^@mui/",
                    "/^faker/",
                    "/^formik/",
                    "/^nookies/",
                    "/^jwt-decode/",
                    "/^lodash/",
                    "/^query-string/",
                    "/^socket/",
                    "/^uuid/",
                    "/^yup/",
                    "/^@/pages/",
                    "/^@/services/",
                    "/^@/components/",
                    "/^@/context/",
                    "/^@/enums/",
                    "/^@/hooks/",
                    "/^@/models/",
                    "/^@/interfaces/",
                    "/^@/public/",
                    "/^@/schemas/",
                    "/^@/styles/",
                    "/^@/json/",
                    "/^@/types/",
                    "/^@/utils/",
                    [
                        "module"
                    ],
                    [
                        "/^~//"
                    ],
                    [
                        "parent",
                        "sibling",
                        "index"
                    ]
                ],
                "alphabetize": {
                    "order": "asc",
                    "ignoreCase": true
                }
            }
        ]
    },
    "ignorePatterns": [
        "node_modules/",
        "public/"
    ]
}
