{
  "rulesDirectory": [
    "node_modules/codelyzer",
    "node_modules/rxjs-tslint",
    "node_modules/adf-tslint-rules"
  ],
  "extends": [
    "tslint-plugin-prettier",
    "tslint-config-prettier",
    "rxjs-tslint-rules"
  ],
  "rules": {
    "prettier": true,
    "adf-license-banner": [true, "**/*.ts", "./license-header.txt"],
    "ban": [
      true,
      "eval",
      "fdescribe",
      "fit",
      "xit",
      "xdescribe"
    ],
    "arrow-return-shorthand": true,
    "callable-types": true,
    "class-name": true,
    "forin": true,
    "import-blacklist": [true],
    "interface-over-type-literal": true,
    "label-position": true,
    "member-access": false,
    "member-ordering": [
      true,
      {
        "order": [
          "static-field",
          "instance-field",
          "static-method",
          "instance-method"
        ]
      }
    ],
    "no-arg": true,
    "no-bitwise": true,
    "no-console": [true, "log", "error", "debug", "info", "time", "timeEnd", "trace"],
    "no-construct": true,
    "no-debugger": true,
    "no-duplicate-imports": true,
    "no-duplicate-super": true,
    "no-empty": false,
    "no-empty-interface": true,
    "no-eval": true,
    "no-inferrable-types": [true, "ignore-params"],
    "no-misused-new": true,
    "no-non-null-assertion": true,
    "no-shadowed-variable": true,
    "no-string-literal": false,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-unnecessary-initializer": true,
    "no-unused-expression": true,
    "no-var-keyword": true,
    "no-trailing-whitespace": true,
    "object-literal-sort-keys": false,
    "prefer-const": true,
    "radix": true,
    "triple-equals": [true, "allow-null-check"],
    "unified-signatures": true,
    "variable-name": false,
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-separator",
      "check-type",
      "check-typecast",
      "check-module"
    ],
    "directive-selector": [true, "attribute", "aca", "camelCase"],
    "component-selector": [
      true,
      "element",
      ["app", "aca", "adf"],
      "kebab-case"
    ],
    "no-inputs-metadata-property": true,
    "no-outputs-metadata-property": true,
    "no-host-metadata-property": false,
    "no-input-rename": true,
    "no-output-rename": true,
    "use-lifecycle-interface": true,
    "use-pipe-transform-interface": true,
    "component-class-suffix": true,
    "directive-class-suffix": true,

    "template-accessibility-alt-text": true,
    "template-accessibility-elements-content": true,
    "template-accessibility-label-for": true,
    "template-accessibility-tabindex-no-positive": true,
    "template-accessibility-table-scope": true,
    "template-accessibility-valid-aria": true,
    "template-click-events-have-key-events": true,
    "template-mouse-events-have-key-events": true,
    "template-no-autofocus": true,
    "template-no-distracting-elements": true,
    "template-banana-in-box": true,
    "template-no-negated-async": false,

    "no-conflicting-lifecycle": true,
    "no-output-native": true,
    "no-output-on-prefix": true,

    "rxjs-collapse-imports": true,
    "rxjs-pipeable-operators-only": true,
    "rxjs-no-static-observable-methods": true,
    "rxjs-proper-imports": true,
    "rxjs-ban-operators": {
      "severity": "error"
    },
    "rxjs-no-unsafe-takeuntil": {
      "severity": "error"
    },
    "rxjs-no-create": {
      "severity": "error"
    },
    "rxjs-no-ignored-subscribe": {
      "severity": "error"
    },
    "rxjs-no-subject-unsubscribe": {
      "severity": "error"
    },
    "rxjs-no-subject-value": {
      "severity": "error"
    },
    "rxjs-no-unsafe-catch": {
      "options": [
        {
          "observable": "action(s|\\$)?"
        }
      ],
      "severity": "error"
    },
    "rxjs-no-unsafe-switchmap": {
      "options": [
        {
          "disallow": [
            "add",
            "create",
            "delete",
            "post",
            "put",
            "remove",
            "set",
            "update"
          ],
          "observable": "action(s|\\$)?"
        }
      ],
      "severity": "error"
    },

    "no-return-await": true,
    "file-name-casing": [
      true,
      "kebab-case"
    ]
  }
}
