{ "root": true, "extends": [ "eslint:recommended", "plugin:@typescript-eslint/base", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended", "plugin:import/recommended", "plugin:import/typescript" ], "plugins": ["n"], "ignorePatterns": ["dist", "node_modules"], "rules": { "no-var": "error", "prefer-const": "warn", "no-misleading-character-class": "warn", "eqeqeq": ["error", "always", { "null": "ignore" }], "n/global-require": "error", "n/no-extraneous-import": "error", "n/prefer-node-protocol": "error", "import/extensions": ["off", "ignorePackages"], "import/export": "off", "import/namespace": "off", "import/no-deprecated": "error", "import/no-absolute-path": "error", "import/no-dynamic-require": "error", "import/no-self-import": "error", "import/order": [ "error", { "named": true, "distinctGroup": true, "alphabetize": { "order": "asc" }, "newlines-between": "never", "groups": [ "builtin", "external", "internal", "parent", ["index", "sibling"], "object" ] } ], "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" } ], "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-empty-interface": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off" }, "overrides": [ { "files": ["jest.config.js"], "env": { "commonjs": true } }, { "files": ["jest.setup.js"], "env": { "jest": true } }, { "files": "*.js", "rules": { "@typescript-eslint/no-var-requires": "off" } }, { "files": ["**/*.test.ts", "**/tests/**/*.ts"], "rules": { "n/no-extraneous-import": [ "error", { "allowModules": ["@atproto/dev-env"] } ] } } ], "settings": { "node": { "version": ">=18.7.0" }, "import/internal-regex": "^@atproto(?:-labs)?/", "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] }, "import/resolver": { "typescript": { "project": [ "tsconfig.json", "packages/oauth/*/tsconfig.json", "packages/oauth/*/tsconfig.src.json", "packages/internal/*/tsconfig.json", "packages/*/tsconfig.json" ] }, "node": { "extensions": [".js", ".jsx", ".json"] } } } }