module.exports = {
root: true,
env: {
node: true,
es2022: true,
},
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: "./tsconfig.json",
},
plugins: ["@typescript-eslint", "import"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
rules: {
// TypeScript
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-misused-promises": "error",
// Allow control characters in regex (used for security validation)
"no-control-regex": "off",
// General
"no-console": ["warn", { allow: ["warn", "error"] }],
eqeqeq: ["error", "always"],
"prefer-const": "error",
},
ignorePatterns: ["dist", "node_modules", "*.cjs", "*.js", "tests"],
};