11 "parser": "@typescript-eslint/parser",
16 "createDefaultProgram": true
23 "plugin:@angular-eslint/ng-cli-compat",
24 "plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
25 "plugin:@angular-eslint/template/process-inline-templates",
26 "plugin:@typescript-eslint/recommended",
27 "plugin:@typescript-eslint/recommended-requiring-type-checking",
28 "plugin:@microsoft/sdl/required",
29 "plugin:@microsoft/sdl/typescript",
30 "plugin:jsx-a11y/recommended",
31 "plugin:security/recommended",
33 "plugin:node/recommended-module"
37 "eslint-plugin-no-null",
47 "@typescript-eslint/await-thenable": "error",
48 "@typescript-eslint/consistent-type-definitions": "error",
49 "@typescript-eslint/explicit-member-accessibility": [
52 "accessibility": "explicit"
55 "@typescript-eslint/no-empty-function": "error",
56 "@typescript-eslint/no-explicit-any": "warn",
57 "@typescript-eslint/no-floating-promises": "warn",
58 "@typescript-eslint/no-for-in-array": "error",
59 "@typescript-eslint/no-inferrable-types": "off",
60 "@typescript-eslint/no-parameter-properties": "error",
61 "@typescript-eslint/no-require-imports": "error",
62 "@typescript-eslint/no-unnecessary-qualifier": "error",
63 "@typescript-eslint/no-var-requires": "error",
64 "@typescript-eslint/promise-function-async": "error",
65 "@typescript-eslint/restrict-plus-operands": "off",
66 "@typescript-eslint/strict-boolean-expressions": "off",
67 "@typescript-eslint/triple-slash-reference": "error",
68 "@typescript-eslint/type-annotation-spacing": "off",
77 "comma-dangle": "error",
78 "complexity": "error",
79 "default-case": "error",
80 "id-blacklist": "error",
81 "import/no-default-export": "error",
87 "caseInsensitive": true
91 "jest/no-focused-tests": "error",
92 "linebreak-style": "off",
93 "max-classes-per-file": [
101 "skipComments": true,
102 "skipBlankLines": true
105 "no-constant-condition": "error",
106 "no-control-regex": "error",
108 "no-extra-semi": "error",
109 "no-invalid-regexp": "error",
110 "no-invalid-this": "error",
111 "no-multi-str": "error",
112 "no-multiple-empty-lines": "error",
113 "no-null/no-null": "off",
115 "no-octal-escape": "error",
116 "no-redeclare": "error",
117 "no-regex-spaces": "error",
118 "no-sparse-arrays": "error",
120 "space-before-function-paren": "off",
121 "valid-typeof": "error",
126 "FunctionDeclaration": true,
127 "MethodDefinition": false,
128 "ClassDeclaration": false,
129 "ArrowFunctionExpression": false,
130 "FunctionExpression": false
142 "@microsoft/sdl/no-cookies": "error",
143 "@typescript-eslint/no-dynamic-delete": "error",
144 "@microsoft/sdl/no-msapp-exec-unsafe": "error",
145 "@microsoft/sdl/no-winjs-html-unsafe": "error",
146 "constructor-super": "error",
151 "func-style": "error",
152 "@microsoft/sdl/no-insecure-url": [
156 "^(http|ftp):\\/\\/",
157 "^https:\\/\\/www\\.disallow-example\\.com"
160 "^http:\\/\\/schemas\\.microsoft\\.com\\/\\/?.*"
164 "@microsoft/sdl/no-insecure-random": "off",
165 "@microsoft/sdl/no-inner-html": "error",
166 "@microsoft/sdl/no-html-method": "error",
167 "@typescript-eslint/no-implied-eval": "error",
168 "no-undef-init": "error",
170 "security/detect-non-literal-require": "error",
171 "security/detect-possible-timing-attacks": "error",
172 "@typescript-eslint/no-array-constructor": "error",
173 "@typescript-eslint/method-signature-style": "error",
174 "jsx-a11y/anchor-is-valid": [
191 "jsx-a11y/aria-unsupported-elements": "error",
192 "jsx-a11y/no-static-element-interactions": "error",
193 "jsx-a11y/alt-text": "error",
194 "jsx-a11y/lang": "error",
195 "jsx-a11y/aria-props": "error",
196 "jsx-a11y/aria-proptypes": "error",
197 "jsx-a11y/aria-role": "error",
198 "jsx-a11y/role-has-required-aria-props": "error",
199 "jsx-a11y/role-supports-aria-props": "error",
200 "jsx-a11y/tabindex-no-positive": "error",
201 "react/jsx-no-target-blank": "error",
202 "@microsoft/sdl/react-iframe-missing-sandbox": "error",
203 "react/no-danger": "error",
204 "react/jsx-curly-spacing": "error",
205 "react/no-unused-state": "error",
206 "lodash/chaining": "error",
207 "@typescript-eslint/ban-types": "off",
208 "deprecation/deprecation": "warn",
209 "@typescript-eslint/naming-convention": [
212 "selector": "variableLike",
216 "@typescript-eslint/member-ordering": [
224 "@typescript-eslint/no-unsafe-member-access": "off",
225 "@typescript-eslint/no-unused-vars": "off",
226 "no-unused-vars": "off",
227 "no-unsafe-finally": "error",
228 "jsdoc/newline-after-description": [
232 "@typescript-eslint/unbound-method": "off",
233 "no-underscore-dangle": "off",
234 "no-magic-numbers": "off",
235 "@typescript-eslint/no-magic-numbers": [
243 "ignoreArrayIndexes": true,
244 "ignoreDefaultValues": true
247 "@typescript-eslint/no-unsafe-assignment": "off",
248 "prefer-arrow/prefer-arrow-functions": [
251 "disallowPrototype": true,
252 "singleReturnOnly": false,
253 "classPropertiesAllowed": false
256 "@angular-eslint/use-lifecycle-interface": "off",
257 "security/detect-non-literal-fs-filename": "error",
258 "@typescript-eslint/no-unsafe-call": "off",
259 "@typescript-eslint/no-unsafe-return": "off",
260 "security/detect-unsafe-regex": "off",
261 "security/detect-non-literal-regexp": "error",
262 "no-console": "error",
264 "node/no-deprecated-api": [
267 "ignoreModuleItems": [
268 "util.isNullOrUndefined"
272 "node/no-missing-import": [
275 "@typescript-eslint/member-delimiter-style": "off",
276 "node/no-unsupported-features/node-builtins": [
279 "security/detect-object-injection": "warn"
287 "plugin:@angular-eslint/template/recommended",
288 "plugin:node/recommended-module"