{
  "rules": {
    "@typescript-eslint/ban-ts-comment": "off",
    "@typescript-eslint/ban-ts-ignore": "off",
    "consistent-return": 0,
    "curly": 2,
    "dot-notation": 2,
    "eqeqeq": 2,
    "func-names": ["error", "always"],
    "guard-for-in": 2,
    "indent": [2, 2, {"SwitchCase": 1}],
    "linebreak-style": [2, "unix"],
    "new-cap": 1,
    "no-caller": 2,
    "no-catch-shadow": 2,
    "no-console": 2,
    "no-else-return": 2,
    "no-extend-native": 2,
    "no-extra-bind": 2,
    "no-eval": 2,
    "no-implicit-coercion": 2,
    "no-implied-eval": 2,
    "no-invalid-this": 2,
    "no-irregular-whitespace": 2,
    "no-labels": 2,
    "no-lone-blocks": 2,
    "no-lonely-if": 1,
    "no-loop-func": 2,
    "no-multi-spaces": 1,
    "no-multiple-empty-lines": 1,
    "no-native-reassign": 2,
    "no-nested-ternary": 2,
    "no-new": 2,
    "no-new-func": 2,
    "no-new-require": 2,
    "no-new-wrappers": 2,
    "no-return-assign": 2,
    "no-self-compare": 2,
    "no-sequences": 2,
    "no-shadow": 2,
    "no-shadow-restricted-names": 2,
    "no-throw-literal": 2,
    "no-undef": 2,
    "no-undef-init": 1,
    "no-unreachable": 2,
    "no-unused-expressions": [2, {"allowShortCircuit": true}],
    "no-useless-call": 2,
    "no-with": 2,
    "quotes": [2, "single"],
    "require-atomic-updates": 0,
    "semi": [2, "always"],
    "space-before-blocks": 2,
    "strict": [2, "global"],
    "vars-on-top": 2,
    "yoda": [2, "never"],
    "sort-keys": ["error", "asc"],
    "keyword-spacing": ["error", { "before": true, "after": true }],
    "object-curly-spacing": ["error", "always"],
    "space-before-function-paren": ["error", "always"],
    "comma-spacing": 2,
    "brace-style": ["error", "stroustrup"],
    "space-infix-ops": 2,
    "space-unary-ops": [2, { "words": true, "nonwords": false, "overrides": { "!": true } }],
    "key-spacing": ["error", { "afterColon": true }]
  },
  "overrides": [
    {
      "files": [
        "test/**/*.js",
        "features-legacy/**/*.js",
        "features/**/*.js"
      ],
      "rules": {
        "sort-keys": "off"
      }
    }
  ],
  "env": {
    "node": true,
    "es6": true,
    "mocha": true
  },
  "parserOptions": {
    "sourceType": "module",
    "ecmaFeatures": {
        "impliedStrict": false
    },
    "ecmaVersion": 2018
  },
  "extends": "eslint:recommended"
}
