| 
						 | 
						- module.exports = {
 -   rules: {
 -     // enforces getter/setter pairs in objects
 -     // https://eslint.org/docs/rules/accessor-pairs
 -     'accessor-pairs': 'off',
 - 
 -     // enforces return statements in callbacks of array's methods
 -     // https://eslint.org/docs/rules/array-callback-return
 -     'array-callback-return': ['error', { allowImplicit: true }],
 - 
 -     // treat var statements as if they were block scoped
 -     // https://eslint.org/docs/rules/block-scoped-var
 -     'block-scoped-var': 'error',
 - 
 -     // specify the maximum cyclomatic complexity allowed in a program
 -     // https://eslint.org/docs/rules/complexity
 -     complexity: ['off', 20],
 - 
 -     // enforce that class methods use "this"
 -     // https://eslint.org/docs/rules/class-methods-use-this
 -     'class-methods-use-this': ['error', {
 -       exceptMethods: [],
 -     }],
 - 
 -     // require return statements to either always or never specify values
 -     // https://eslint.org/docs/rules/consistent-return
 -     'consistent-return': 'error',
 - 
 -     // specify curly brace conventions for all control statements
 -     // https://eslint.org/docs/rules/curly
 -     curly: ['error', 'multi-line'], // multiline
 - 
 -     // require default case in switch statements
 -     // https://eslint.org/docs/rules/default-case
 -     'default-case': ['error', { commentPattern: '^no default$' }],
 - 
 -     // Enforce default clauses in switch statements to be last
 -     // https://eslint.org/docs/rules/default-case-last
 -     'default-case-last': 'error',
 - 
 -     // https://eslint.org/docs/rules/default-param-last
 -     'default-param-last': 'error',
 - 
 -     // encourages use of dot notation whenever possible
 -     // https://eslint.org/docs/rules/dot-notation
 -     'dot-notation': ['error', { allowKeywords: true }],
 - 
 -     // enforces consistent newlines before or after dots
 -     // https://eslint.org/docs/rules/dot-location
 -     'dot-location': ['error', 'property'],
 - 
 -     // require the use of === and !==
 -     // https://eslint.org/docs/rules/eqeqeq
 -     eqeqeq: ['error', 'always', { null: 'ignore' }],
 - 
 -     // Require grouped accessor pairs in object literals and classes
 -     // https://eslint.org/docs/rules/grouped-accessor-pairs
 -     'grouped-accessor-pairs': 'error',
 - 
 -     // make sure for-in loops have an if statement
 -     // https://eslint.org/docs/rules/guard-for-in
 -     'guard-for-in': 'error',
 - 
 -     // enforce a maximum number of classes per file
 -     // https://eslint.org/docs/rules/max-classes-per-file
 -     'max-classes-per-file': ['error', 1],
 - 
 -     // disallow the use of alert, confirm, and prompt
 -     // https://eslint.org/docs/rules/no-alert
 -     'no-alert': 'warn',
 - 
 -     // disallow use of arguments.caller or arguments.callee
 -     // https://eslint.org/docs/rules/no-caller
 -     'no-caller': 'error',
 - 
 -     // disallow lexical declarations in case/default clauses
 -     // https://eslint.org/docs/rules/no-case-declarations
 -     'no-case-declarations': 'error',
 - 
 -     // Disallow returning value in constructor
 -     // https://eslint.org/docs/rules/no-constructor-return
 -     'no-constructor-return': 'error',
 - 
 -     // disallow division operators explicitly at beginning of regular expression
 -     // https://eslint.org/docs/rules/no-div-regex
 -     'no-div-regex': 'off',
 - 
 -     // disallow else after a return in an if
 -     // https://eslint.org/docs/rules/no-else-return
 -     'no-else-return': ['error', { allowElseIf: false }],
 - 
 -     // disallow empty functions, except for standalone funcs/arrows
 -     // https://eslint.org/docs/rules/no-empty-function
 -     'no-empty-function': ['error', {
 -       allow: [
 -         'arrowFunctions',
 -         'functions',
 -         'methods',
 -       ]
 -     }],
 - 
 -     // disallow empty destructuring patterns
 -     // https://eslint.org/docs/rules/no-empty-pattern
 -     'no-empty-pattern': 'error',
 - 
 -     // disallow comparisons to null without a type-checking operator
 -     // https://eslint.org/docs/rules/no-eq-null
 -     'no-eq-null': 'off',
 - 
 -     // disallow use of eval()
 -     // https://eslint.org/docs/rules/no-eval
 -     'no-eval': 'error',
 - 
 -     // disallow adding to native types
 -     // https://eslint.org/docs/rules/no-extend-native
 -     'no-extend-native': 'error',
 - 
 -     // disallow unnecessary function binding
 -     // https://eslint.org/docs/rules/no-extra-bind
 -     'no-extra-bind': 'error',
 - 
 -     // disallow Unnecessary Labels
 -     // https://eslint.org/docs/rules/no-extra-label
 -     'no-extra-label': 'error',
 - 
 -     // disallow fallthrough of case statements
 -     // https://eslint.org/docs/rules/no-fallthrough
 -     'no-fallthrough': 'error',
 - 
 -     // disallow the use of leading or trailing decimal points in numeric literals
 -     // https://eslint.org/docs/rules/no-floating-decimal
 -     'no-floating-decimal': 'error',
 - 
 -     // disallow reassignments of native objects or read-only globals
 -     // https://eslint.org/docs/rules/no-global-assign
 -     'no-global-assign': ['error', { exceptions: [] }],
 - 
 -     // deprecated in favor of no-global-assign
 -     // https://eslint.org/docs/rules/no-native-reassign
 -     'no-native-reassign': 'off',
 - 
 -     // disallow implicit type conversions
 -     // https://eslint.org/docs/rules/no-implicit-coercion
 -     'no-implicit-coercion': ['off', {
 -       boolean: false,
 -       number: true,
 -       string: true,
 -       allow: [],
 -     }],
 - 
 -     // disallow var and named functions in global scope
 -     // https://eslint.org/docs/rules/no-implicit-globals
 -     'no-implicit-globals': 'off',
 - 
 -     // disallow use of eval()-like methods
 -     // https://eslint.org/docs/rules/no-implied-eval
 -     'no-implied-eval': 'error',
 - 
 -     // disallow this keywords outside of classes or class-like objects
 -     // https://eslint.org/docs/rules/no-invalid-this
 -     'no-invalid-this': 'off',
 - 
 -     // disallow usage of __iterator__ property
 -     // https://eslint.org/docs/rules/no-iterator
 -     'no-iterator': 'error',
 - 
 -     // disallow use of labels for anything other than loops and switches
 -     // https://eslint.org/docs/rules/no-labels
 -     'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
 - 
 -     // disallow unnecessary nested blocks
 -     // https://eslint.org/docs/rules/no-lone-blocks
 -     'no-lone-blocks': 'error',
 - 
 -     // disallow creation of functions within loops
 -     // https://eslint.org/docs/rules/no-loop-func
 -     'no-loop-func': 'error',
 - 
 -     // disallow magic numbers
 -     // https://eslint.org/docs/rules/no-magic-numbers
 -     'no-magic-numbers': ['off', {
 -       ignore: [],
 -       ignoreArrayIndexes: true,
 -       enforceConst: true,
 -       detectObjects: false,
 -     }],
 - 
 -     // disallow use of multiple spaces
 -     // https://eslint.org/docs/rules/no-multi-spaces
 -     'no-multi-spaces': ['error', {
 -       ignoreEOLComments: false,
 -     }],
 - 
 -     // disallow use of multiline strings
 -     // https://eslint.org/docs/rules/no-multi-str
 -     'no-multi-str': 'error',
 - 
 -     // disallow use of new operator when not part of the assignment or comparison
 -     // https://eslint.org/docs/rules/no-new
 -     'no-new': 'error',
 - 
 -     // disallow use of new operator for Function object
 -     // https://eslint.org/docs/rules/no-new-func
 -     'no-new-func': 'error',
 - 
 -     // disallows creating new instances of String, Number, and Boolean
 -     // https://eslint.org/docs/rules/no-new-wrappers
 -     'no-new-wrappers': 'error',
 - 
 -     // Disallow \8 and \9 escape sequences in string literals
 -     // https://eslint.org/docs/rules/no-nonoctal-decimal-escape
 -     'no-nonoctal-decimal-escape': 'error',
 - 
 -     // disallow use of (old style) octal literals
 -     // https://eslint.org/docs/rules/no-octal
 -     'no-octal': 'error',
 - 
 -     // disallow use of octal escape sequences in string literals, such as
 -     // var foo = 'Copyright \251';
 -     // https://eslint.org/docs/rules/no-octal-escape
 -     'no-octal-escape': 'error',
 - 
 -     // disallow reassignment of function parameters
 -     // disallow parameter object manipulation except for specific exclusions
 -     // rule: https://eslint.org/docs/rules/no-param-reassign.html
 -     'no-param-reassign': ['error', {
 -       props: true,
 -       ignorePropertyModificationsFor: [
 -         'acc', // for reduce accumulators
 -         'accumulator', // for reduce accumulators
 -         'e', // for e.returnvalue
 -         'ctx', // for Koa routing
 -         'context', // for Koa routing
 -         'req', // for Express requests
 -         'request', // for Express requests
 -         'res', // for Express responses
 -         'response', // for Express responses
 -         '$scope', // for Angular 1 scopes
 -         'staticContext', // for ReactRouter context
 -       ]
 -     }],
 - 
 -     // disallow usage of __proto__ property
 -     // https://eslint.org/docs/rules/no-proto
 -     'no-proto': 'error',
 - 
 -     // disallow declaring the same variable more than once
 -     // https://eslint.org/docs/rules/no-redeclare
 -     'no-redeclare': 'error',
 - 
 -     // disallow certain object properties
 -     // https://eslint.org/docs/rules/no-restricted-properties
 -     'no-restricted-properties': ['error', {
 -       object: 'arguments',
 -       property: 'callee',
 -       message: 'arguments.callee is deprecated',
 -     }, {
 -       object: 'global',
 -       property: 'isFinite',
 -       message: 'Please use Number.isFinite instead',
 -     }, {
 -       object: 'self',
 -       property: 'isFinite',
 -       message: 'Please use Number.isFinite instead',
 -     }, {
 -       object: 'window',
 -       property: 'isFinite',
 -       message: 'Please use Number.isFinite instead',
 -     }, {
 -       object: 'global',
 -       property: 'isNaN',
 -       message: 'Please use Number.isNaN instead',
 -     }, {
 -       object: 'self',
 -       property: 'isNaN',
 -       message: 'Please use Number.isNaN instead',
 -     }, {
 -       object: 'window',
 -       property: 'isNaN',
 -       message: 'Please use Number.isNaN instead',
 -     }, {
 -       property: '__defineGetter__',
 -       message: 'Please use Object.defineProperty instead.',
 -     }, {
 -       property: '__defineSetter__',
 -       message: 'Please use Object.defineProperty instead.',
 -     }, {
 -       object: 'Math',
 -       property: 'pow',
 -       message: 'Use the exponentiation operator (**) instead.',
 -     }],
 - 
 -     // disallow use of assignment in return statement
 -     // https://eslint.org/docs/rules/no-return-assign
 -     'no-return-assign': ['error', 'always'],
 - 
 -     // disallow redundant `return await`
 -     // https://eslint.org/docs/rules/no-return-await
 -     'no-return-await': 'error',
 - 
 -     // disallow use of `javascript:` urls.
 -     // https://eslint.org/docs/rules/no-script-url
 -     'no-script-url': 'error',
 - 
 -     // disallow self assignment
 -     // https://eslint.org/docs/rules/no-self-assign
 -     'no-self-assign': ['error', {
 -       props: true,
 -     }],
 - 
 -     // disallow comparisons where both sides are exactly the same
 -     // https://eslint.org/docs/rules/no-self-compare
 -     'no-self-compare': 'error',
 - 
 -     // disallow use of comma operator
 -     // https://eslint.org/docs/rules/no-sequences
 -     'no-sequences': 'error',
 - 
 -     // restrict what can be thrown as an exception
 -     // https://eslint.org/docs/rules/no-throw-literal
 -     'no-throw-literal': 'error',
 - 
 -     // disallow unmodified conditions of loops
 -     // https://eslint.org/docs/rules/no-unmodified-loop-condition
 -     'no-unmodified-loop-condition': 'off',
 - 
 -     // disallow usage of expressions in statement position
 -     // https://eslint.org/docs/rules/no-unused-expressions
 -     'no-unused-expressions': ['error', {
 -       allowShortCircuit: false,
 -       allowTernary: false,
 -       allowTaggedTemplates: false,
 -     }],
 - 
 -     // disallow unused labels
 -     // https://eslint.org/docs/rules/no-unused-labels
 -     'no-unused-labels': 'error',
 - 
 -     // disallow unnecessary .call() and .apply()
 -     // https://eslint.org/docs/rules/no-useless-call
 -     'no-useless-call': 'off',
 - 
 -     // Disallow unnecessary catch clauses
 -     // https://eslint.org/docs/rules/no-useless-catch
 -     'no-useless-catch': 'error',
 - 
 -     // disallow useless string concatenation
 -     // https://eslint.org/docs/rules/no-useless-concat
 -     'no-useless-concat': 'error',
 - 
 -     // disallow unnecessary string escaping
 -     // https://eslint.org/docs/rules/no-useless-escape
 -     'no-useless-escape': 'error',
 - 
 -     // disallow redundant return; keywords
 -     // https://eslint.org/docs/rules/no-useless-return
 -     'no-useless-return': 'error',
 - 
 -     // disallow use of void operator
 -     // https://eslint.org/docs/rules/no-void
 -     'no-void': 'error',
 - 
 -     // disallow usage of configurable warning terms in comments: e.g. todo
 -     // https://eslint.org/docs/rules/no-warning-comments
 -     'no-warning-comments': ['off', { terms: ['todo', 'fixme', 'xxx'], location: 'start' }],
 - 
 -     // disallow use of the with statement
 -     // https://eslint.org/docs/rules/no-with
 -     'no-with': 'error',
 - 
 -     // require using Error objects as Promise rejection reasons
 -     // https://eslint.org/docs/rules/prefer-promise-reject-errors
 -     'prefer-promise-reject-errors': ['error', { allowEmptyReject: true }],
 - 
 -     // Suggest using named capture group in regular expression
 -     // https://eslint.org/docs/rules/prefer-named-capture-group
 -     'prefer-named-capture-group': 'off',
 - 
 -     // https://eslint.org/docs/rules/prefer-regex-literals
 -     'prefer-regex-literals': ['error', {
 -       disallowRedundantWrapping: true,
 -     }],
 - 
 -     // require use of the second argument for parseInt()
 -     // https://eslint.org/docs/rules/radix
 -     radix: 'error',
 - 
 -     // require `await` in `async function` (note: this is a horrible rule that should never be used)
 -     // https://eslint.org/docs/rules/require-await
 -     'require-await': 'off',
 - 
 -     // Enforce the use of u flag on RegExp
 -     // https://eslint.org/docs/rules/require-unicode-regexp
 -     'require-unicode-regexp': 'off',
 - 
 -     // requires to declare all vars on top of their containing scope
 -     // https://eslint.org/docs/rules/vars-on-top
 -     'vars-on-top': 'error',
 - 
 -     // require immediate function invocation to be wrapped in parentheses
 -     // https://eslint.org/docs/rules/wrap-iife.html
 -     'wrap-iife': ['error', 'outside', { functionPrototypeMethods: false }],
 - 
 -     // require or disallow Yoda conditions
 -     // https://eslint.org/docs/rules/yoda
 -     yoda: 'error'
 -   }
 - };
 
 
  |