{ "root": true, "env": { "browser": true, "webextensions": true }, "plugins": ["@typescript-eslint", "rxjs", "rxjs-angular"], "parser": "@typescript-eslint/parser", "parserOptions": { "project": ["./tsconfig.eslint.json"], "sourceType": "module" }, "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:import/recommended", "plugin:import/typescript", "prettier", "plugin:rxjs/recommended" ], "rules": { "@typescript-eslint/no-explicit-any": "off", // TODO: This should be re-enabled "@typescript-eslint/no-unused-vars": ["error", { "args": "none" }], "@typescript-eslint/explicit-member-accessibility": [ "error", { "accessibility": "no-public" } ], "@typescript-eslint/no-this-alias": [ "error", { "allowedNames": ["self"] } ], "no-console": "error", "import/no-unresolved": "off", // TODO: Look into turning off once each package is an actual package. "import/order": [ "error", { "alphabetize": { "order": "asc" }, "newlines-between": "always", "pathGroups": [ { "pattern": "@bitwarden/**", "group": "external", "position": "after" }, { "pattern": "src/**/*", "group": "parent", "position": "before" } ], "pathGroupsExcludedImportTypes": ["builtin"] } ], "rxjs-angular/prefer-takeuntil": "error", "no-restricted-syntax": [ "error", { "message": "Calling `svgIcon` directly is not allowed", "selector": "CallExpression[callee.name='svgIcon']" } ], "curly": ["error", "all"] } }