summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2018-11-09 14:00:16 -0500
committerRich Trott <rtrott@gmail.com>2018-11-12 14:14:31 -0800
commitd72d43f9bf7b8d8977af15d8bd6e3321264c10ca (patch)
tree4acb58c9cc519925bfd84272e45d0d243b929dd1 /tools/node_modules/eslint/lib
parent0229e378e80948428cf7baa7b176939e879497cc (diff)
downloadandroid-node-v8-d72d43f9bf7b8d8977af15d8bd6e3321264c10ca.tar.gz
android-node-v8-d72d43f9bf7b8d8977af15d8bd6e3321264c10ca.tar.bz2
android-node-v8-d72d43f9bf7b8d8977af15d8bd6e3321264c10ca.zip
tools: update ESLint to 5.9.0
Update ESLint to 5.9.0. PR-URL: https://github.com/nodejs/node/pull/24280 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'tools/node_modules/eslint/lib')
-rw-r--r--tools/node_modules/eslint/lib/cli-engine.js159
-rw-r--r--tools/node_modules/eslint/lib/cli.js7
-rw-r--r--tools/node_modules/eslint/lib/options.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/accessor-pairs.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/array-bracket-newline.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/array-bracket-spacing.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/array-callback-return.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/array-element-newline.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-body-style.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-parens.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/block-scoped-var.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/block-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/brace-style.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/callback-return.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/camelcase.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/capitalized-comments.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/class-methods-use-this.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-dangle.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-style.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/complexity.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/computed-property-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/consistent-return.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/consistent-this.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/constructor-super.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/curly.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/default-case.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/dot-location.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/dot-notation.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/eol-last.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/eqeqeq.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/for-direction.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/func-call-spacing.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/func-name-matching.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-names.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/function-paren-newline.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/generator-star-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/getter-return.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/global-require.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/guard-for-in.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/handle-callback-err.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/id-blacklist.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/id-length.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/id-match.js128
-rw-r--r--tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/indent-legacy.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/indent.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/init-declarations.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/jsx-quotes.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/key-spacing.js7
-rw-r--r--tools/node_modules/eslint/lib/rules/keyword-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/line-comment-position.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/linebreak-style.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-around-comment.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-around-directive.js8
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-between-class-members.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-classes-per-file.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/max-depth.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-len.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-lines-per-function.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-lines.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-nested-callbacks.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-params.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-statements-per-line.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/max-statements.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/multiline-comment-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/multiline-ternary.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/new-cap.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/new-parens.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-after-var.js7
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-before-return.js7
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-per-chained-call.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-alert.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-array-constructor.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-async-promise-executor.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-await-in-loop.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-bitwise.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-buffer-constructor.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-caller.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-case-declarations.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-catch-shadow.js9
-rw-r--r--tools/node_modules/eslint/lib/rules/no-class-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-cond-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-confusing-arrow.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-console.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-const-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-constant-condition.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-continue.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-control-regex.js6
-rw-r--r--tools/node_modules/eslint/lib/rules/no-debugger.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-delete-var.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-div-regex.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-args.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-class-members.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-keys.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-duplicate-case.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-duplicate-imports.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-else-return.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-character-class.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-function.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-pattern.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-eq-null.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-eval.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-ex-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extend-native.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-bind.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-label.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-parens.js11
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-semi.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-fallthrough.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-floating-decimal.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-func-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-global-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implicit-coercion.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implicit-globals.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implied-eval.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-inline-comments.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-inner-declarations.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-invalid-regexp.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-invalid-this.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-iterator.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-label-var.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-labels.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-lone-blocks.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-lonely-if.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-loop-func.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-magic-numbers.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-misleading-character-class.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-operators.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-requires.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-spaces.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-str.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-native-reassign.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/no-negated-condition.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js7
-rw-r--r--tools/node_modules/eslint/lib/rules/no-nested-ternary.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-func.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-object.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-require.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-symbol.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-wrappers.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-obj-calls.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-octal-escape.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-octal.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-param-reassign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-path-concat.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-plusplus.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-process-env.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-process-exit.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-proto.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-prototype-builtins.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-redeclare.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-regex-spaces.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-globals.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-imports.js62
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-modules.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-properties.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-syntax.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-return-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-return-await.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-script-url.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-self-assign.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-self-compare.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sequences.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-shadow.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-spaced-func.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sparse-arrays.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sync.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-tabs.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-ternary.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-this-before-super.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-throw-literal.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-trailing-spaces.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undef-init.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undef.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undefined.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-underscore-dangle.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unreachable.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unsafe-finally.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unsafe-negation.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-expressions.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-labels.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-vars.js48
-rw-r--r--tools/node_modules/eslint/lib/rules/no-use-before-define.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-call.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-computed-key.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-concat.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-constructor.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-escape.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-rename.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-var.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-void.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-warning-comments.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/no-with.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/object-curly-newline.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/object-curly-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/object-property-newline.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/object-shorthand.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/one-var.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/operator-assignment.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/operator-linebreak.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/padded-blocks.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/padding-line-between-statements.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-const.js60
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-destructuring.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-object-spread.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-reflect.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-rest-params.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-spread.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-template.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/quote-props.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/quotes.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/radix.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/require-atomic-updates.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/require-await.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/require-jsdoc.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/require-unicode-regexp.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/require-yield.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/rest-spread-spacing.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/semi-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/semi-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/semi.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-imports.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-keys.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-vars.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/space-before-blocks.js81
-rw-r--r--tools/node_modules/eslint/lib/rules/space-before-function-paren.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/space-in-parens.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/space-infix-ops.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/space-unary-ops.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/spaced-comment.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/strict.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/switch-colon-spacing.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/symbol-description.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/template-curly-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/template-tag-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/unicode-bom.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/use-isnan.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/valid-jsdoc.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/valid-typeof.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/vars-on-top.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/wrap-iife.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/wrap-regex.js4
-rw-r--r--tools/node_modules/eslint/lib/rules/yield-star-spacing.js2
-rw-r--r--tools/node_modules/eslint/lib/rules/yoda.js2
267 files changed, 1053 insertions, 178 deletions
diff --git a/tools/node_modules/eslint/lib/cli-engine.js b/tools/node_modules/eslint/lib/cli-engine.js
index 5b52459ac8..652d68b59b 100644
--- a/tools/node_modules/eslint/lib/cli-engine.js
+++ b/tools/node_modules/eslint/lib/cli-engine.js
@@ -19,8 +19,10 @@ const fs = require("fs"),
path = require("path"),
defaultOptions = require("../conf/default-cli-options"),
Linter = require("./linter"),
+ lodash = require("lodash"),
IgnoredPaths = require("./ignored-paths"),
Config = require("./config"),
+ ConfigOps = require("./config/config-ops"),
LintResultCache = require("./util/lint-result-cache"),
globUtils = require("./util/glob-utils"),
validator = require("./config/config-validator"),
@@ -31,6 +33,7 @@ const fs = require("fs"),
const debug = require("debug")("eslint:cli-engine");
const resolver = new ModuleResolver();
+const validFixTypes = new Set(["problem", "suggestion", "layout"]);
//------------------------------------------------------------------------------
// Typedefs
@@ -48,6 +51,7 @@ const resolver = new ModuleResolver();
* @property {string[]} envs An array of environments to load.
* @property {string[]} extensions An array of file extensions to check.
* @property {boolean|Function} fix Execute in autofix mode. If a function, should return a boolean.
+ * @property {string[]} fixTypes Array of rule types to apply fixes for.
* @property {string[]} globals An array of global variables to declare.
* @property {boolean} ignore False disables use of .eslintignore.
* @property {string} ignorePath The ignore file to use instead of .eslintignore.
@@ -85,6 +89,21 @@ const resolver = new ModuleResolver();
//------------------------------------------------------------------------------
/**
+ * Determines if each fix type in an array is supported by ESLint and throws
+ * an error if not.
+ * @param {string[]} fixTypes An array of fix types to check.
+ * @returns {void}
+ * @throws {Error} If an invalid fix type is found.
+ */
+function validateFixTypes(fixTypes) {
+ for (const fixType of fixTypes) {
+ if (!validFixTypes.has(fixType)) {
+ throw new Error(`Invalid fix type "${fixType}" found.`);
+ }
+ }
+}
+
+/**
* It will calculate the error and warning count for collection of messages per file
* @param {Object[]} messages - Collection of messages
* @returns {Object} Contains the stats
@@ -142,7 +161,7 @@ function calculateStatsPerRun(results) {
* @param {boolean} allowInlineConfig Allow/ignore comments that change config.
* @param {boolean} reportUnusedDisableDirectives Allow/ignore comments that change config.
* @param {Linter} linter Linter context
- * @returns {LintResult} The results for linting on this text.
+ * @returns {{rules: LintResult, config: Object}} The results for linting on this text and the fully-resolved config for it.
* @private
*/
function processText(text, configHelper, filename, fix, allowInlineConfig, reportUnusedDisableDirectives, linter) {
@@ -174,7 +193,6 @@ function processText(text, configHelper, filename, fix, allowInlineConfig, repor
}
const autofixingEnabled = typeof fix !== "undefined" && (!processor || processor.supportsAutofix);
-
const fixedResult = linter.verifyAndFix(text, config, {
filename: effectiveFilename,
allowInlineConfig,
@@ -183,7 +201,6 @@ function processText(text, configHelper, filename, fix, allowInlineConfig, repor
preprocess: processor && (rawText => processor.preprocess(rawText, effectiveFilename)),
postprocess: processor && (problemLists => processor.postprocess(problemLists, effectiveFilename))
});
-
const stats = calculateStatsPerFile(fixedResult.messages);
const result = {
@@ -203,7 +220,7 @@ function processText(text, configHelper, filename, fix, allowInlineConfig, repor
result.source = text;
}
- return result;
+ return { result, config };
}
/**
@@ -213,24 +230,22 @@ function processText(text, configHelper, filename, fix, allowInlineConfig, repor
* @param {Object} configHelper The configuration options for ESLint.
* @param {Object} options The CLIEngine options object.
* @param {Linter} linter Linter context
- * @returns {LintResult} The results for linting on this file.
+ * @returns {{rules: LintResult, config: Object}} The results for linting on this text and the fully-resolved config for it.
* @private
*/
function processFile(filename, configHelper, options, linter) {
- const text = fs.readFileSync(path.resolve(filename), "utf8"),
- result = processText(
- text,
- configHelper,
- filename,
- options.fix,
- options.allowInlineConfig,
- options.reportUnusedDisableDirectives,
- linter
- );
-
- return result;
-
+ const text = fs.readFileSync(path.resolve(filename), "utf8");
+
+ return processText(
+ text,
+ configHelper,
+ filename,
+ options.fix,
+ options.allowInlineConfig,
+ options.reportUnusedDisableDirectives,
+ linter
+ );
}
/**
@@ -272,6 +287,33 @@ function createIgnoreResult(filePath, baseDir) {
};
}
+/**
+ * Produces rule warnings (i.e. deprecation) from configured rules
+ * @param {(Array<string>|Set<string>)} usedRules - Rules configured
+ * @param {Map} loadedRules - Map of loaded rules
+ * @returns {Array<Object>} Contains rule warnings
+ * @private
+ */
+function createRuleDeprecationWarnings(usedRules, loadedRules) {
+ const usedDeprecatedRules = [];
+
+ usedRules.forEach(name => {
+ const loadedRule = loadedRules.get(name);
+
+ if (loadedRule && loadedRule.meta && loadedRule.meta.deprecated) {
+ const deprecatedRule = { ruleId: name };
+ const replacedBy = lodash.get(loadedRule, "meta.replacedBy", []);
+
+ if (replacedBy.every(newRule => lodash.isString(newRule))) {
+ deprecatedRule.replacedBy = replacedBy;
+ }
+
+ usedDeprecatedRules.push(deprecatedRule);
+ }
+ });
+
+ return usedDeprecatedRules;
+}
/**
* Checks if the given message is an error message.
@@ -429,6 +471,33 @@ class CLIEngine {
*/
this._lintResultCache = new LintResultCache(cacheFile, this.config);
}
+
+ // setup special filter for fixes
+ if (this.options.fix && this.options.fixTypes && this.options.fixTypes.length > 0) {
+
+ debug(`Using fix types ${this.options.fixTypes}`);
+
+ // throw an error if any invalid fix types are found
+ validateFixTypes(this.options.fixTypes);
+
+ // convert to Set for faster lookup
+ const fixTypes = new Set(this.options.fixTypes);
+
+ // save original value of options.fix in case it's a function
+ const originalFix = (typeof this.options.fix === "function")
+ ? this.options.fix : () => this.options.fix;
+
+ // create a cache of rules (but don't populate until needed)
+ this._rulesCache = null;
+
+ this.options.fix = lintResult => {
+ const rule = this._rulesCache.get(lintResult.ruleId);
+ const matches = rule.meta && fixTypes.has(rule.meta.type);
+
+ return matches && originalFix(lintResult);
+ };
+ }
+
}
getRules() {
@@ -511,6 +580,7 @@ class CLIEngine {
const startTime = Date.now();
const fileList = globUtils.listFilesToProcess(patterns, options);
+ const allUsedRules = new Set();
const results = fileList.map(fileInfo => {
if (fileInfo.ignored) {
return createIgnoreResult(fileInfo.filename, options.cwd);
@@ -532,9 +602,20 @@ class CLIEngine {
}
}
+ // if there's a cache, populate it
+ if ("_rulesCache" in this) {
+ this._rulesCache = this.getRules();
+ }
+
debug(`Processing ${fileInfo.filename}`);
- return processFile(fileInfo.filename, configHelper, options, this.linter);
+ const { result, config } = processFile(fileInfo.filename, configHelper, options, this.linter);
+
+ Object.keys(config.rules)
+ .filter(ruleId => ConfigOps.getRuleSeverity(config.rules[ruleId]))
+ .forEach(ruleId => allUsedRules.add(ruleId));
+
+ return result;
});
if (options.cache) {
@@ -555,6 +636,8 @@ class CLIEngine {
const stats = calculateStatsPerRun(results);
+ const usedDeprecatedRules = createRuleDeprecationWarnings(allUsedRules, this.getRules());
+
debug(`Linting complete in: ${Date.now() - startTime}ms`);
return {
@@ -562,7 +645,8 @@ class CLIEngine {
errorCount: stats.errorCount,
warningCount: stats.warningCount,
fixableErrorCount: stats.fixableErrorCount,
- fixableWarningCount: stats.fixableWarningCount
+ fixableWarningCount: stats.fixableWarningCount,
+ usedDeprecatedRules
};
}
@@ -585,22 +669,34 @@ class CLIEngine {
const resolvedFilename = filename && !path.isAbsolute(filename)
? path.resolve(options.cwd, filename)
: filename;
+ let usedDeprecatedRules;
if (resolvedFilename && ignoredPaths.contains(resolvedFilename)) {
if (warnIgnored) {
results.push(createIgnoreResult(resolvedFilename, options.cwd));
}
+ usedDeprecatedRules = [];
} else {
- results.push(
- processText(
- text,
- configHelper,
- resolvedFilename,
- options.fix,
- options.allowInlineConfig,
- options.reportUnusedDisableDirectives,
- this.linter
- )
+
+ // if there's a cache, populate it
+ if ("_rulesCache" in this) {
+ this._rulesCache = this.getRules();
+ }
+
+ const { result, config } = processText(
+ text,
+ configHelper,
+ resolvedFilename,
+ options.fix,
+ options.allowInlineConfig,
+ options.reportUnusedDisableDirectives,
+ this.linter
+ );
+
+ results.push(result);
+ usedDeprecatedRules = createRuleDeprecationWarnings(
+ Object.keys(config.rules).filter(rule => ConfigOps.getRuleSeverity(config.rules[rule])),
+ this.getRules()
);
}
@@ -611,7 +707,8 @@ class CLIEngine {
errorCount: stats.errorCount,
warningCount: stats.warningCount,
fixableErrorCount: stats.fixableErrorCount,
- fixableWarningCount: stats.fixableWarningCount
+ fixableWarningCount: stats.fixableWarningCount,
+ usedDeprecatedRules
};
}
diff --git a/tools/node_modules/eslint/lib/cli.js b/tools/node_modules/eslint/lib/cli.js
index f854015fe9..f67eb7274f 100644
--- a/tools/node_modules/eslint/lib/cli.js
+++ b/tools/node_modules/eslint/lib/cli.js
@@ -64,6 +64,7 @@ function translateOptions(cliOptions) {
cacheFile: cliOptions.cacheFile,
cacheLocation: cliOptions.cacheLocation,
fix: (cliOptions.fix || cliOptions.fixDryRun) && (cliOptions.quiet ? quietFixPredicate : true),
+ fixTypes: cliOptions.fixType,
allowInlineConfig: cliOptions.inlineConfig,
reportUnusedDisableDirectives: cliOptions.reportUnusedDisableDirectives
};
@@ -187,8 +188,12 @@ const cli = {
return 2;
}
- const engine = new CLIEngine(translateOptions(currentOptions));
+ if (currentOptions.fixType && !currentOptions.fix && !currentOptions.fixDryRun) {
+ log.error("The --fix-type option requires either --fix or --fix-dry-run.");
+ return 2;
+ }
+ const engine = new CLIEngine(translateOptions(currentOptions));
const report = useStdin ? engine.executeOnText(text, currentOptions.stdinFilename, true) : engine.executeOnFiles(files);
if (currentOptions.fix) {
diff --git a/tools/node_modules/eslint/lib/options.js b/tools/node_modules/eslint/lib/options.js
index 9265d151d5..ee7357a296 100644
--- a/tools/node_modules/eslint/lib/options.js
+++ b/tools/node_modules/eslint/lib/options.js
@@ -98,6 +98,11 @@ module.exports = optionator({
description: "Automatically fix problems without saving the changes to the file system"
},
{
+ option: "fix-type",
+ type: "Array",
+ description: "Specify the types of fixes to apply (problem, suggestion, layout)"
+ },
+ {
heading: "Ignoring files"
},
{
diff --git a/tools/node_modules/eslint/lib/rules/accessor-pairs.js b/tools/node_modules/eslint/lib/rules/accessor-pairs.js
index 6860729543..032e894305 100644
--- a/tools/node_modules/eslint/lib/rules/accessor-pairs.js
+++ b/tools/node_modules/eslint/lib/rules/accessor-pairs.js
@@ -72,12 +72,15 @@ function isPropertyDescriptor(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce getter and setter pairs in objects",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/accessor-pairs"
},
+
schema: [{
type: "object",
properties: {
@@ -90,6 +93,7 @@ module.exports = {
},
additionalProperties: false
}],
+
messages: {
getter: "Getter is not present.",
setter: "Setter is not present."
diff --git a/tools/node_modules/eslint/lib/rules/array-bracket-newline.js b/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
index e8f7c502ef..a458e69f76 100644
--- a/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
+++ b/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
@@ -13,13 +13,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce linebreaks after opening and before closing array brackets",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/array-bracket-newline"
},
+
fixable: "whitespace",
+
schema: [
{
oneOf: [
@@ -42,6 +46,7 @@ module.exports = {
]
}
],
+
messages: {
unexpectedOpeningLinebreak: "There should be no linebreak after '['.",
unexpectedClosingLinebreak: "There should be no linebreak before ']'.",
diff --git a/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js b/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
index f46c3978df..4bead37a12 100644
--- a/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
@@ -12,13 +12,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing inside array brackets",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/array-bracket-spacing"
},
+
fixable: "whitespace",
+
schema: [
{
enum: ["always", "never"]
@@ -39,6 +43,7 @@ module.exports = {
additionalProperties: false
}
],
+
messages: {
unexpectedSpaceAfter: "There should be no space after '{{tokenValue}}'.",
unexpectedSpaceBefore: "There should be no space before '{{tokenValue}}'.",
diff --git a/tools/node_modules/eslint/lib/rules/array-callback-return.js b/tools/node_modules/eslint/lib/rules/array-callback-return.js
index 4d374cf224..bfee39b037 100644
--- a/tools/node_modules/eslint/lib/rules/array-callback-return.js
+++ b/tools/node_modules/eslint/lib/rules/array-callback-return.js
@@ -141,6 +141,8 @@ function isCallbackOfArrayMethod(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "enforce `return` statements in callbacks of array methods",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/array-element-newline.js b/tools/node_modules/eslint/lib/rules/array-element-newline.js
index c4caf8c71c..440290917d 100644
--- a/tools/node_modules/eslint/lib/rules/array-element-newline.js
+++ b/tools/node_modules/eslint/lib/rules/array-element-newline.js
@@ -13,13 +13,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce line breaks after each array element",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/array-element-newline"
},
+
fixable: "whitespace",
+
schema: [
{
oneOf: [
diff --git a/tools/node_modules/eslint/lib/rules/arrow-body-style.js b/tools/node_modules/eslint/lib/rules/arrow-body-style.js
index 92068c75c4..c2ce3b59e4 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-body-style.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-body-style.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require braces around arrow function bodies",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/arrow-parens.js b/tools/node_modules/eslint/lib/rules/arrow-parens.js
index 7a6ef6f8be..637a0c1f1f 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-parens.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-parens.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require parentheses around arrow function arguments",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/arrow-spacing.js b/tools/node_modules/eslint/lib/rules/arrow-spacing.js
index a1db18fc91..87d381840a 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-spacing.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before and after the arrow in arrow functions",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/block-scoped-var.js b/tools/node_modules/eslint/lib/rules/block-scoped-var.js
index 1000fbc83c..053cfc334c 100644
--- a/tools/node_modules/eslint/lib/rules/block-scoped-var.js
+++ b/tools/node_modules/eslint/lib/rules/block-scoped-var.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce the use of variables within the scope they are defined",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/block-spacing.js b/tools/node_modules/eslint/lib/rules/block-spacing.js
index 838c2c7016..6496f8596d 100644
--- a/tools/node_modules/eslint/lib/rules/block-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/block-spacing.js
@@ -13,6 +13,8 @@ const util = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow or enforce spaces inside of blocks after opening block and before closing block",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/brace-style.js b/tools/node_modules/eslint/lib/rules/brace-style.js
index 236a01096a..d172124d2f 100644
--- a/tools/node_modules/eslint/lib/rules/brace-style.js
+++ b/tools/node_modules/eslint/lib/rules/brace-style.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent brace style for blocks",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/callback-return.js b/tools/node_modules/eslint/lib/rules/callback-return.js
index f55fed87db..c5263cde46 100644
--- a/tools/node_modules/eslint/lib/rules/callback-return.js
+++ b/tools/node_modules/eslint/lib/rules/callback-return.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `return` statements after callbacks",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/camelcase.js b/tools/node_modules/eslint/lib/rules/camelcase.js
index 41040450f9..8aeb4b5bd0 100644
--- a/tools/node_modules/eslint/lib/rules/camelcase.js
+++ b/tools/node_modules/eslint/lib/rules/camelcase.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce camelcase naming convention",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/capitalized-comments.js b/tools/node_modules/eslint/lib/rules/capitalized-comments.js
index 8fabde287c..86427ba7ac 100644
--- a/tools/node_modules/eslint/lib/rules/capitalized-comments.js
+++ b/tools/node_modules/eslint/lib/rules/capitalized-comments.js
@@ -108,13 +108,17 @@ function createRegExpForIgnorePatterns(normalizedOptions) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce or disallow capitalization of the first letter of a comment",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/capitalized-comments"
},
+
fixable: "code",
+
schema: [
{ enum: ["always", "never"] },
{
diff --git a/tools/node_modules/eslint/lib/rules/class-methods-use-this.js b/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
index b7d94135bb..a15ab6b89e 100644
--- a/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
+++ b/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
@@ -11,12 +11,15 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce that class methods utilize `this`",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/class-methods-use-this"
},
+
schema: [{
type: "object",
properties: {
diff --git a/tools/node_modules/eslint/lib/rules/comma-dangle.js b/tools/node_modules/eslint/lib/rules/comma-dangle.js
index 9bc6c3fa8c..96799b3079 100644
--- a/tools/node_modules/eslint/lib/rules/comma-dangle.js
+++ b/tools/node_modules/eslint/lib/rules/comma-dangle.js
@@ -76,13 +76,17 @@ function normalizeOptions(optionValue) {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow trailing commas",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/comma-dangle"
},
+
fixable: "code",
+
schema: {
definitions: {
value: {
diff --git a/tools/node_modules/eslint/lib/rules/comma-spacing.js b/tools/node_modules/eslint/lib/rules/comma-spacing.js
index d3f82b3a4b..2db0035b54 100644
--- a/tools/node_modules/eslint/lib/rules/comma-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/comma-spacing.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before and after commas",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/comma-style.js b/tools/node_modules/eslint/lib/rules/comma-style.js
index 7f996b344d..2586cf66e9 100644
--- a/tools/node_modules/eslint/lib/rules/comma-style.js
+++ b/tools/node_modules/eslint/lib/rules/comma-style.js
@@ -13,13 +13,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent comma style",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/comma-style"
},
+
fixable: "code",
+
schema: [
{
enum: ["first", "last"]
@@ -37,6 +41,7 @@ module.exports = {
additionalProperties: false
}
],
+
messages: {
unexpectedLineBeforeAndAfterComma: "Bad line breaking before and after ','.",
expectedCommaFirst: "',' should be placed first.",
diff --git a/tools/node_modules/eslint/lib/rules/complexity.js b/tools/node_modules/eslint/lib/rules/complexity.js
index bc66d303b6..af583c0279 100644
--- a/tools/node_modules/eslint/lib/rules/complexity.js
+++ b/tools/node_modules/eslint/lib/rules/complexity.js
@@ -20,6 +20,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum cyclomatic complexity allowed in a program",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/computed-property-spacing.js b/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
index 060b2c5b40..188d863d0d 100644
--- a/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing inside computed property brackets",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/consistent-return.js b/tools/node_modules/eslint/lib/rules/consistent-return.js
index 6185d094fb..ffd7ef2058 100644
--- a/tools/node_modules/eslint/lib/rules/consistent-return.js
+++ b/tools/node_modules/eslint/lib/rules/consistent-return.js
@@ -53,6 +53,8 @@ function isClassConstructor(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `return` statements to either always or never specify values",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/consistent-this.js b/tools/node_modules/eslint/lib/rules/consistent-this.js
index 5cc3a647da..4bdcdfdc10 100644
--- a/tools/node_modules/eslint/lib/rules/consistent-this.js
+++ b/tools/node_modules/eslint/lib/rules/consistent-this.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce consistent naming when capturing the current execution context",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/constructor-super.js b/tools/node_modules/eslint/lib/rules/constructor-super.js
index 3cbc2f59f8..e4cdb099b3 100644
--- a/tools/node_modules/eslint/lib/rules/constructor-super.js
+++ b/tools/node_modules/eslint/lib/rules/constructor-super.js
@@ -92,6 +92,8 @@ function isPossibleConstructor(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "require `super()` calls in constructors",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/curly.js b/tools/node_modules/eslint/lib/rules/curly.js
index ad8da821c1..ee12da7135 100644
--- a/tools/node_modules/eslint/lib/rules/curly.js
+++ b/tools/node_modules/eslint/lib/rules/curly.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce consistent brace style for all control statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/default-case.js b/tools/node_modules/eslint/lib/rules/default-case.js
index cf123198f4..3061265ed8 100644
--- a/tools/node_modules/eslint/lib/rules/default-case.js
+++ b/tools/node_modules/eslint/lib/rules/default-case.js
@@ -12,6 +12,8 @@ const DEFAULT_COMMENT_PATTERN = /^no default$/i;
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `default` cases in `switch` statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/dot-location.js b/tools/node_modules/eslint/lib/rules/dot-location.js
index 34d2d4eaab..0eefec2eaf 100644
--- a/tools/node_modules/eslint/lib/rules/dot-location.js
+++ b/tools/node_modules/eslint/lib/rules/dot-location.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent newlines before and after dots",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/dot-notation.js b/tools/node_modules/eslint/lib/rules/dot-notation.js
index a7062df8a5..55ccea4ce3 100644
--- a/tools/node_modules/eslint/lib/rules/dot-notation.js
+++ b/tools/node_modules/eslint/lib/rules/dot-notation.js
@@ -19,6 +19,8 @@ const keywords = require("../util/keywords");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce dot notation whenever possible",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/eol-last.js b/tools/node_modules/eslint/lib/rules/eol-last.js
index 3ecf422739..84f4d45f17 100644
--- a/tools/node_modules/eslint/lib/rules/eol-last.js
+++ b/tools/node_modules/eslint/lib/rules/eol-last.js
@@ -16,18 +16,23 @@ const lodash = require("lodash");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow newline at the end of files",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/eol-last"
},
+
fixable: "whitespace",
+
schema: [
{
enum: ["always", "never", "unix", "windows"]
}
],
+
messages: {
missing: "Newline required at end of file but not found.",
unexpected: "Newline not allowed at end of file."
diff --git a/tools/node_modules/eslint/lib/rules/eqeqeq.js b/tools/node_modules/eslint/lib/rules/eqeqeq.js
index 2c5e9ae9e4..715c5ce7c0 100644
--- a/tools/node_modules/eslint/lib/rules/eqeqeq.js
+++ b/tools/node_modules/eslint/lib/rules/eqeqeq.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require the use of `===` and `!==`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/for-direction.js b/tools/node_modules/eslint/lib/rules/for-direction.js
index b93c4c2caa..db079b2679 100644
--- a/tools/node_modules/eslint/lib/rules/for-direction.js
+++ b/tools/node_modules/eslint/lib/rules/for-direction.js
@@ -11,14 +11,18 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "enforce \"for\" loop update clause moving the counter in the right direction.",
category: "Possible Errors",
recommended: true,
url: "https://eslint.org/docs/rules/for-direction"
},
+
fixable: null,
schema: [],
+
messages: {
incorrectDirection: "The update clause in this loop moves the variable in the wrong direction."
}
diff --git a/tools/node_modules/eslint/lib/rules/func-call-spacing.js b/tools/node_modules/eslint/lib/rules/func-call-spacing.js
index 9aae3e2517..c49aa9e59f 100644
--- a/tools/node_modules/eslint/lib/rules/func-call-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/func-call-spacing.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow spacing between function identifiers and their invocations",
category: "Stylistic Issues",
@@ -25,6 +27,7 @@ module.exports = {
},
fixable: "whitespace",
+
schema: {
anyOf: [
{
@@ -58,6 +61,7 @@ module.exports = {
}
]
},
+
messages: {
unexpected: "Unexpected newline between function name and paren.",
missing: "Missing space between function name and paren."
diff --git a/tools/node_modules/eslint/lib/rules/func-name-matching.js b/tools/node_modules/eslint/lib/rules/func-name-matching.js
index 89c07c3514..f14c998dc7 100644
--- a/tools/node_modules/eslint/lib/rules/func-name-matching.js
+++ b/tools/node_modules/eslint/lib/rules/func-name-matching.js
@@ -70,6 +70,8 @@ const optionsObject = {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require function names to match the name of the variable or property to which they are assigned",
category: "Stylistic Issues",
@@ -88,6 +90,7 @@ module.exports = {
items: [optionsObject]
}]
},
+
messages: {
matchProperty: "Function name `{{funcName}}` should match property name `{{name}}`",
matchVariable: "Function name `{{funcName}}` should match variable name `{{name}}`",
diff --git a/tools/node_modules/eslint/lib/rules/func-names.js b/tools/node_modules/eslint/lib/rules/func-names.js
index 31f3029181..4ccbae0f0c 100644
--- a/tools/node_modules/eslint/lib/rules/func-names.js
+++ b/tools/node_modules/eslint/lib/rules/func-names.js
@@ -26,6 +26,8 @@ function isFunctionName(variable) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow named `function` expressions",
category: "Stylistic Issues",
@@ -58,6 +60,7 @@ module.exports = {
}
]
},
+
messages: {
unnamed: "Unexpected unnamed {{name}}.",
named: "Unexpected named {{name}}."
diff --git a/tools/node_modules/eslint/lib/rules/func-style.js b/tools/node_modules/eslint/lib/rules/func-style.js
index ff48792d29..b7e368cbd2 100644
--- a/tools/node_modules/eslint/lib/rules/func-style.js
+++ b/tools/node_modules/eslint/lib/rules/func-style.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce the consistent use of either `function` declarations or expressions",
category: "Stylistic Issues",
@@ -31,6 +33,7 @@ module.exports = {
additionalProperties: false
}
],
+
messages: {
expression: "Expected a function expression.",
declaration: "Expected a function declaration."
diff --git a/tools/node_modules/eslint/lib/rules/function-paren-newline.js b/tools/node_modules/eslint/lib/rules/function-paren-newline.js
index d78e88038e..37256484f4 100644
--- a/tools/node_modules/eslint/lib/rules/function-paren-newline.js
+++ b/tools/node_modules/eslint/lib/rules/function-paren-newline.js
@@ -16,13 +16,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent line breaks inside function parentheses",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/function-paren-newline"
},
+
fixable: "whitespace",
+
schema: [
{
oneOf: [
@@ -42,6 +46,7 @@ module.exports = {
]
}
],
+
messages: {
expectedBefore: "Expected newline before ')'.",
expectedAfter: "Expected newline after '('.",
diff --git a/tools/node_modules/eslint/lib/rules/generator-star-spacing.js b/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
index 97868dd3fa..6f860290ce 100644
--- a/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
@@ -27,6 +27,8 @@ const OVERRIDE_SCHEMA = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing around `*` operators in generator functions",
category: "ECMAScript 6",
@@ -56,6 +58,7 @@ module.exports = {
]
}
],
+
messages: {
missingBefore: "Missing space before *.",
missingAfter: "Missing space after *.",
diff --git a/tools/node_modules/eslint/lib/rules/getter-return.js b/tools/node_modules/eslint/lib/rules/getter-return.js
index 452ba49f59..dc3d9d6b62 100644
--- a/tools/node_modules/eslint/lib/rules/getter-return.js
+++ b/tools/node_modules/eslint/lib/rules/getter-return.js
@@ -44,13 +44,17 @@ function getId(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "enforce `return` statements in getters",
category: "Possible Errors",
recommended: true,
url: "https://eslint.org/docs/rules/getter-return"
},
+
fixable: null,
+
schema: [
{
type: "object",
@@ -62,6 +66,7 @@ module.exports = {
additionalProperties: false
}
],
+
messages: {
expected: "Expected to return a value in {{name}}.",
expectedAlways: "Expected {{name}} to always return a value."
diff --git a/tools/node_modules/eslint/lib/rules/global-require.js b/tools/node_modules/eslint/lib/rules/global-require.js
index a5f5335d01..6576cfb6a1 100644
--- a/tools/node_modules/eslint/lib/rules/global-require.js
+++ b/tools/node_modules/eslint/lib/rules/global-require.js
@@ -48,6 +48,8 @@ function isShadowed(scope, node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `require()` calls to be placed at top-level module scope",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/guard-for-in.js b/tools/node_modules/eslint/lib/rules/guard-for-in.js
index 0f85e4984a..6e8452a484 100644
--- a/tools/node_modules/eslint/lib/rules/guard-for-in.js
+++ b/tools/node_modules/eslint/lib/rules/guard-for-in.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `for-in` loops to include an `if` statement",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/handle-callback-err.js b/tools/node_modules/eslint/lib/rules/handle-callback-err.js
index f6e6c108ce..c62016d589 100644
--- a/tools/node_modules/eslint/lib/rules/handle-callback-err.js
+++ b/tools/node_modules/eslint/lib/rules/handle-callback-err.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require error handling in callbacks",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/id-blacklist.js b/tools/node_modules/eslint/lib/rules/id-blacklist.js
index ba9b5d4b39..7b8facbabe 100644
--- a/tools/node_modules/eslint/lib/rules/id-blacklist.js
+++ b/tools/node_modules/eslint/lib/rules/id-blacklist.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified identifiers",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/id-length.js b/tools/node_modules/eslint/lib/rules/id-length.js
index eaed26217d..d72eb08876 100644
--- a/tools/node_modules/eslint/lib/rules/id-length.js
+++ b/tools/node_modules/eslint/lib/rules/id-length.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce minimum and maximum identifier lengths",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/id-match.js b/tools/node_modules/eslint/lib/rules/id-match.js
index 608ef17d11..4755c779ca 100644
--- a/tools/node_modules/eslint/lib/rules/id-match.js
+++ b/tools/node_modules/eslint/lib/rules/id-match.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require identifiers to match a specified regular expression",
category: "Stylistic Issues",
@@ -27,6 +29,12 @@ module.exports = {
properties: {
properties: {
type: "boolean"
+ },
+ onlyDeclarations: {
+ type: "boolean"
+ },
+ ignoreDestructuring: {
+ type: "boolean"
}
}
}
@@ -36,15 +44,25 @@ module.exports = {
create(context) {
//--------------------------------------------------------------------------
- // Helpers
+ // Options
//--------------------------------------------------------------------------
-
const pattern = context.options[0] || "^.+$",
regexp = new RegExp(pattern);
const options = context.options[1] || {},
properties = !!options.properties,
- onlyDeclarations = !!options.onlyDeclarations;
+ onlyDeclarations = !!options.onlyDeclarations,
+ ignoreDestructuring = !!options.ignoreDestructuring;
+
+ //--------------------------------------------------------------------------
+ // Helpers
+ //--------------------------------------------------------------------------
+
+ // contains reported nodes to avoid reporting twice on destructuring with shorthand notation
+ const reported = new Map();
+ const ALLOWED_PARENT_TYPES = new Set(["CallExpression", "NewExpression"]);
+ const DECLARATION_TYPES = new Set(["FunctionDeclaration", "VariableDeclarator"]);
+ const IMPORT_TYPES = new Set(["ImportSpecifier", "ImportNamespaceSpecifier", "ImportDefaultSpecifier"]);
/**
* Checks if a string matches the provided pattern
@@ -57,6 +75,26 @@ module.exports = {
}
/**
+ * Checks if a parent of a node is an ObjectPattern.
+ * @param {ASTNode} node The node to check.
+ * @returns {boolean} if the node is inside an ObjectPattern
+ * @private
+ */
+ function isInsideObjectPattern(node) {
+ let { parent } = node;
+
+ while (parent) {
+ if (parent.type === "ObjectPattern") {
+ return true;
+ }
+
+ parent = parent.parent;
+ }
+
+ return false;
+ }
+
+ /**
* Verifies if we should report an error or not based on the effective
* parent node and the identifier name.
* @param {ASTNode} effectiveParent The effective parent node of the node to be reported
@@ -64,9 +102,8 @@ module.exports = {
* @returns {boolean} whether an error should be reported or not
*/
function shouldReport(effectiveParent, name) {
- return effectiveParent.type !== "CallExpression" &&
- effectiveParent.type !== "NewExpression" &&
- isInvalid(name);
+ return (!onlyDeclarations || DECLARATION_TYPES.has(effectiveParent.type)) &&
+ !ALLOWED_PARENT_TYPES.has(effectiveParent.type) && isInvalid(name);
}
/**
@@ -76,14 +113,17 @@ module.exports = {
* @private
*/
function report(node) {
- context.report({
- node,
- message: "Identifier '{{name}}' does not match the pattern '{{pattern}}'.",
- data: {
- name: node.name,
- pattern
- }
- });
+ if (!reported.has(node)) {
+ context.report({
+ node,
+ message: "Identifier '{{name}}' does not match the pattern '{{pattern}}'.",
+ data: {
+ name: node.name,
+ pattern
+ }
+ });
+ reported.set(node, true);
+ }
}
return {
@@ -106,36 +146,70 @@ module.exports = {
report(node);
}
- // Report AssignmentExpressions only if they are the left side of the assignment
+ // Report AssignmentExpressions left side's assigned variable id
} else if (effectiveParent.type === "AssignmentExpression" &&
- (effectiveParent.right.type !== "MemberExpression" ||
effectiveParent.left.type === "MemberExpression" &&
- effectiveParent.left.property.name === name)) {
+ effectiveParent.left.property.name === node.name) {
+ if (isInvalid(name)) {
+ report(node);
+ }
+
+ // Report AssignmentExpressions only if they are the left side of the assignment
+ } else if (effectiveParent.type === "AssignmentExpression" && effectiveParent.right.type !== "MemberExpression") {
if (isInvalid(name)) {
report(node);
}
}
- } else if (parent.type === "Property") {
+ /*
+ * Properties have their own rules, and
+ * AssignmentPattern nodes can be treated like Properties:
+ * e.g.: const { no_camelcased = false } = bar;
+ */
+ } else if (parent.type === "Property" || parent.type === "AssignmentPattern") {
+
+ if (parent.parent && parent.parent.type === "ObjectPattern") {
+ if (parent.shorthand && parent.value.left && isInvalid(name)) {
+
+ report(node);
+ }
+
+ const assignmentKeyEqualsValue = parent.key.name === parent.value.name;
- if (!properties || parent.key.name !== name) {
+ // prevent checking righthand side of destructured object
+ if (!assignmentKeyEqualsValue && parent.key === node) {
+ return;
+ }
+
+ const valueIsInvalid = parent.value.name && isInvalid(name);
+
+ // ignore destructuring if the option is set, unless a new identifier is created
+ if (valueIsInvalid && !(assignmentKeyEqualsValue && ignoreDestructuring)) {
+ report(node);
+ }
+ }
+
+ // never check properties or always ignore destructuring
+ if (!properties || (ignoreDestructuring && isInsideObjectPattern(node))) {
return;
}
- if (shouldReport(effectiveParent, name)) {
+ // don't check right hand side of AssignmentExpression to prevent duplicate warnings
+ if (parent.right !== node && shouldReport(effectiveParent, name)) {
report(node);
}
- } else {
- const isDeclaration = effectiveParent.type === "FunctionDeclaration" || effectiveParent.type === "VariableDeclarator";
+ // Check if it's an import specifier
+ } else if (IMPORT_TYPES.has(parent.type)) {
- if (onlyDeclarations && !isDeclaration) {
- return;
- }
-
- if (shouldReport(effectiveParent, name)) {
+ // Report only if the local imported identifier is invalid
+ if (parent.local && parent.local.name === node.name && isInvalid(name)) {
report(node);
}
+
+ // Report anything that is invalid that isn't a CallExpression
+ } else if (shouldReport(effectiveParent, name)) {
+ report(node);
}
}
diff --git a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
index a7ad1122b5..cd729f8ad9 100644
--- a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
+++ b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
@@ -9,13 +9,17 @@
//------------------------------------------------------------------------------
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce the location of arrow function bodies",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/implicit-arrow-linebreak"
},
+
fixable: "whitespace",
+
schema: [
{
enum: ["beside", "below"]
diff --git a/tools/node_modules/eslint/lib/rules/indent-legacy.js b/tools/node_modules/eslint/lib/rules/indent-legacy.js
index e6dc92163b..16687b521e 100644
--- a/tools/node_modules/eslint/lib/rules/indent-legacy.js
+++ b/tools/node_modules/eslint/lib/rules/indent-legacy.js
@@ -21,16 +21,19 @@ const astUtils = require("../util/ast-utils");
/* istanbul ignore next: this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway. */
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent indentation",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["indent"],
url: "https://eslint.org/docs/rules/indent-legacy"
},
deprecated: true,
+ replacedBy: ["indent"],
+
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/indent.js b/tools/node_modules/eslint/lib/rules/indent.js
index 940c080a03..dc9fbaf908 100644
--- a/tools/node_modules/eslint/lib/rules/indent.js
+++ b/tools/node_modules/eslint/lib/rules/indent.js
@@ -490,6 +490,8 @@ const ELEMENT_LIST_SCHEMA = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent indentation",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/init-declarations.js b/tools/node_modules/eslint/lib/rules/init-declarations.js
index 412b96dc0a..755090917f 100644
--- a/tools/node_modules/eslint/lib/rules/init-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/init-declarations.js
@@ -44,6 +44,8 @@ function isInitialized(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow initialization in variable declarations",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/jsx-quotes.js b/tools/node_modules/eslint/lib/rules/jsx-quotes.js
index 3dd9567d73..603d55330b 100644
--- a/tools/node_modules/eslint/lib/rules/jsx-quotes.js
+++ b/tools/node_modules/eslint/lib/rules/jsx-quotes.js
@@ -38,6 +38,8 @@ const QUOTE_SETTINGS = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce the consistent use of either double or single quotes in JSX attributes",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/key-spacing.js b/tools/node_modules/eslint/lib/rules/key-spacing.js
index 75578b2c74..2d1315fde0 100644
--- a/tools/node_modules/eslint/lib/rules/key-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/key-spacing.js
@@ -128,6 +128,8 @@ const messages = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing between keys and values in object literal properties",
category: "Stylistic Issues",
@@ -360,10 +362,9 @@ module.exports = {
*/
function isKeyValueProperty(property) {
return !(
- property.method ||
+ (property.method ||
property.shorthand ||
- property.kind !== "init" ||
- property.type !== "Property" // Could be "ExperimentalSpreadProperty" or "SpreadElement"
+ property.kind !== "init" || property.type !== "Property") // Could be "ExperimentalSpreadProperty" or "SpreadElement"
);
}
diff --git a/tools/node_modules/eslint/lib/rules/keyword-spacing.js b/tools/node_modules/eslint/lib/rules/keyword-spacing.js
index 2a66779e7a..66ce2cb34c 100644
--- a/tools/node_modules/eslint/lib/rules/keyword-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/keyword-spacing.js
@@ -65,6 +65,8 @@ function isCloseParenOfTemplate(token) {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before and after keywords",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/line-comment-position.js b/tools/node_modules/eslint/lib/rules/line-comment-position.js
index 7f45a94b6b..7c791d5f27 100644
--- a/tools/node_modules/eslint/lib/rules/line-comment-position.js
+++ b/tools/node_modules/eslint/lib/rules/line-comment-position.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce position of line comments",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/linebreak-style.js b/tools/node_modules/eslint/lib/rules/linebreak-style.js
index cd432dbcca..5345d53f28 100644
--- a/tools/node_modules/eslint/lib/rules/linebreak-style.js
+++ b/tools/node_modules/eslint/lib/rules/linebreak-style.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent linebreak style",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/lines-around-comment.js b/tools/node_modules/eslint/lib/rules/lines-around-comment.js
index 67fd2032b3..30175cd366 100644
--- a/tools/node_modules/eslint/lib/rules/lines-around-comment.js
+++ b/tools/node_modules/eslint/lib/rules/lines-around-comment.js
@@ -52,6 +52,8 @@ function getCommentLineNums(comments) {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require empty lines around comments",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/lines-around-directive.js b/tools/node_modules/eslint/lib/rules/lines-around-directive.js
index e8d613a41f..02bbe13b4f 100644
--- a/tools/node_modules/eslint/lib/rules/lines-around-directive.js
+++ b/tools/node_modules/eslint/lib/rules/lines-around-directive.js
@@ -14,13 +14,15 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow newlines around directives",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"],
url: "https://eslint.org/docs/rules/lines-around-directive"
},
+
schema: [{
oneOf: [
{
@@ -41,8 +43,10 @@ module.exports = {
}
]
}],
+
fixable: "whitespace",
- deprecated: true
+ deprecated: true,
+ replacedBy: ["padding-line-between-statements"]
},
create(context) {
diff --git a/tools/node_modules/eslint/lib/rules/lines-between-class-members.js b/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
index 8d4e6dd8c1..5c1e69277a 100644
--- a/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
+++ b/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow an empty line between class members",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-classes-per-file.js b/tools/node_modules/eslint/lib/rules/max-classes-per-file.js
index bf6b4ba31c..3193a731c9 100644
--- a/tools/node_modules/eslint/lib/rules/max-classes-per-file.js
+++ b/tools/node_modules/eslint/lib/rules/max-classes-per-file.js
@@ -15,18 +15,22 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum number of classes per file",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/max-classes-per-file"
},
+
schema: [
{
type: "integer",
minimum: 1
}
],
+
messages: {
maximumExceeded: "Number of classes per file must not exceed {{ max }}"
}
diff --git a/tools/node_modules/eslint/lib/rules/max-depth.js b/tools/node_modules/eslint/lib/rules/max-depth.js
index 368dcfa668..34d58b0d31 100644
--- a/tools/node_modules/eslint/lib/rules/max-depth.js
+++ b/tools/node_modules/eslint/lib/rules/max-depth.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum depth that blocks can be nested",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-len.js b/tools/node_modules/eslint/lib/rules/max-len.js
index 88a388309b..13dd72160c 100644
--- a/tools/node_modules/eslint/lib/rules/max-len.js
+++ b/tools/node_modules/eslint/lib/rules/max-len.js
@@ -65,6 +65,8 @@ const OPTIONS_OR_INTEGER_SCHEMA = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce a maximum line length",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-lines-per-function.js b/tools/node_modules/eslint/lib/rules/max-lines-per-function.js
index ccf6304e4b..8c64a20bcc 100644
--- a/tools/node_modules/eslint/lib/rules/max-lines-per-function.js
+++ b/tools/node_modules/eslint/lib/rules/max-lines-per-function.js
@@ -69,6 +69,8 @@ function getCommentLineNumbers(comments) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum number of line of code in a function",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-lines.js b/tools/node_modules/eslint/lib/rules/max-lines.js
index 7eb959795a..730e05ab41 100644
--- a/tools/node_modules/eslint/lib/rules/max-lines.js
+++ b/tools/node_modules/eslint/lib/rules/max-lines.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum number of lines per file",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js b/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
index 8cc80ae7aa..d4ecb4e2a5 100644
--- a/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
+++ b/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum depth that callbacks can be nested",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-params.js b/tools/node_modules/eslint/lib/rules/max-params.js
index 4089e8ae89..f678974acf 100644
--- a/tools/node_modules/eslint/lib/rules/max-params.js
+++ b/tools/node_modules/eslint/lib/rules/max-params.js
@@ -19,6 +19,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum number of parameters in function definitions",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-statements-per-line.js b/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
index 566f04ab53..f3fb8e9d5c 100644
--- a/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
+++ b/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce a maximum number of statements allowed per line",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/max-statements.js b/tools/node_modules/eslint/lib/rules/max-statements.js
index 525790df80..e32dedad63 100644
--- a/tools/node_modules/eslint/lib/rules/max-statements.js
+++ b/tools/node_modules/eslint/lib/rules/max-statements.js
@@ -19,6 +19,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a maximum number of statements allowed in function blocks",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/multiline-comment-style.js b/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
index 5dd39e00a7..73eab7c574 100644
--- a/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
+++ b/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
@@ -12,12 +12,15 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce a particular style for multiline comments",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/multiline-comment-style"
},
+
fixable: "whitespace",
schema: [{ enum: ["starred-block", "separate-lines", "bare-block"] }]
},
diff --git a/tools/node_modules/eslint/lib/rules/multiline-ternary.js b/tools/node_modules/eslint/lib/rules/multiline-ternary.js
index 6a22a1113c..d1d577a4ff 100644
--- a/tools/node_modules/eslint/lib/rules/multiline-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/multiline-ternary.js
@@ -13,12 +13,15 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce newlines between operands of ternary expressions",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/multiline-ternary"
},
+
schema: [
{
enum: ["always", "always-multiline", "never"]
diff --git a/tools/node_modules/eslint/lib/rules/new-cap.js b/tools/node_modules/eslint/lib/rules/new-cap.js
index cc33e3b817..834f4605ed 100644
--- a/tools/node_modules/eslint/lib/rules/new-cap.js
+++ b/tools/node_modules/eslint/lib/rules/new-cap.js
@@ -74,6 +74,8 @@ function calculateCapIsNewExceptions(config) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require constructor names to begin with a capital letter",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/new-parens.js b/tools/node_modules/eslint/lib/rules/new-parens.js
index fab302000c..0637a8fbca 100644
--- a/tools/node_modules/eslint/lib/rules/new-parens.js
+++ b/tools/node_modules/eslint/lib/rules/new-parens.js
@@ -21,6 +21,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require parentheses when invoking a constructor with no arguments",
category: "Stylistic Issues",
@@ -29,7 +31,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/newline-after-var.js b/tools/node_modules/eslint/lib/rules/newline-after-var.js
index 62ccb3db29..83fd420d73 100644
--- a/tools/node_modules/eslint/lib/rules/newline-after-var.js
+++ b/tools/node_modules/eslint/lib/rules/newline-after-var.js
@@ -18,11 +18,12 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow an empty line after variable declarations",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"],
url: "https://eslint.org/docs/rules/newline-after-var"
},
@@ -34,7 +35,9 @@ module.exports = {
fixable: "whitespace",
- deprecated: true
+ deprecated: true,
+
+ replacedBy: ["padding-line-between-statements"]
},
create(context) {
diff --git a/tools/node_modules/eslint/lib/rules/newline-before-return.js b/tools/node_modules/eslint/lib/rules/newline-before-return.js
index 5bc1f7031b..2743bf7a8b 100644
--- a/tools/node_modules/eslint/lib/rules/newline-before-return.js
+++ b/tools/node_modules/eslint/lib/rules/newline-before-return.js
@@ -11,16 +11,19 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require an empty line before `return` statements",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"],
url: "https://eslint.org/docs/rules/newline-before-return"
},
+
fixable: "whitespace",
schema: [],
- deprecated: true
+ deprecated: true,
+ replacedBy: ["padding-line-between-statements"]
},
create(context) {
diff --git a/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js b/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
index 2adcdfe45a..9d99313768 100644
--- a/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
+++ b/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
@@ -14,13 +14,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require a newline after each call in a method chain",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/newline-per-chained-call"
},
+
fixable: "whitespace",
+
schema: [{
type: "object",
properties: {
diff --git a/tools/node_modules/eslint/lib/rules/no-alert.js b/tools/node_modules/eslint/lib/rules/no-alert.js
index 1c08460f34..21f10b3c39 100644
--- a/tools/node_modules/eslint/lib/rules/no-alert.js
+++ b/tools/node_modules/eslint/lib/rules/no-alert.js
@@ -74,6 +74,8 @@ function isGlobalThisReferenceOrGlobalWindow(scope, node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `alert`, `confirm`, and `prompt`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-array-constructor.js b/tools/node_modules/eslint/lib/rules/no-array-constructor.js
index 51676f7821..90c6d6bbd5 100644
--- a/tools/node_modules/eslint/lib/rules/no-array-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-array-constructor.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `Array` constructors",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-async-promise-executor.js b/tools/node_modules/eslint/lib/rules/no-async-promise-executor.js
index 55d489eb6d..fc65f539a3 100644
--- a/tools/node_modules/eslint/lib/rules/no-async-promise-executor.js
+++ b/tools/node_modules/eslint/lib/rules/no-async-promise-executor.js
@@ -10,12 +10,15 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow using an async function as a Promise executor",
category: "Possible Errors",
recommended: false,
url: "https://eslint.org/docs/rules/no-async-promise-executor"
},
+
fixable: null,
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-await-in-loop.js b/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
index ef0bda90bf..9ca89866a6 100644
--- a/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
+++ b/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
@@ -55,13 +55,17 @@ function isLooped(node, parent) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow `await` inside of loops",
category: "Possible Errors",
recommended: false,
url: "https://eslint.org/docs/rules/no-await-in-loop"
},
+
schema: [],
+
messages: {
unexpectedAwait: "Unexpected `await` inside a loop."
}
diff --git a/tools/node_modules/eslint/lib/rules/no-bitwise.js b/tools/node_modules/eslint/lib/rules/no-bitwise.js
index 36bbdaf349..df492937c0 100644
--- a/tools/node_modules/eslint/lib/rules/no-bitwise.js
+++ b/tools/node_modules/eslint/lib/rules/no-bitwise.js
@@ -22,6 +22,8 @@ const BITWISE_OPERATORS = [
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow bitwise operators",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js b/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
index 51f78edb1f..bf4c8891ad 100644
--- a/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
@@ -10,13 +10,17 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow use of the `Buffer()` constructor",
category: "Node.js and CommonJS",
recommended: false,
url: "https://eslint.org/docs/rules/no-buffer-constructor"
},
+
schema: [],
+
messages: {
deprecated: "{{expr}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead."
}
diff --git a/tools/node_modules/eslint/lib/rules/no-caller.js b/tools/node_modules/eslint/lib/rules/no-caller.js
index 9756b212ff..1703ad867d 100644
--- a/tools/node_modules/eslint/lib/rules/no-caller.js
+++ b/tools/node_modules/eslint/lib/rules/no-caller.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `arguments.caller` or `arguments.callee`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-case-declarations.js b/tools/node_modules/eslint/lib/rules/no-case-declarations.js
index c05795200e..1d54e22162 100644
--- a/tools/node_modules/eslint/lib/rules/no-case-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/no-case-declarations.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow lexical declarations in case clauses",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
index f749490f31..60a0493b34 100644
--- a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
+++ b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
@@ -18,15 +18,18 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `catch` clause parameters from shadowing variables in the outer scope",
category: "Variables",
recommended: false,
- url: "https://eslint.org/docs/rules/no-catch-shadow",
- replacedBy: ["no-shadow"]
+ url: "https://eslint.org/docs/rules/no-catch-shadow"
},
- deprecated: true,
+ replacedBy: ["no-shadow"],
+
+ deprecated: true,
schema: [],
messages: {
diff --git a/tools/node_modules/eslint/lib/rules/no-class-assign.js b/tools/node_modules/eslint/lib/rules/no-class-assign.js
index 9b28d40d4a..7bc65df1ba 100644
--- a/tools/node_modules/eslint/lib/rules/no-class-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-class-assign.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow reassigning class members",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js b/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
index 6903bd0654..f5c8d5f417 100644
--- a/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
+++ b/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
@@ -10,14 +10,18 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow comparing against -0",
category: "Possible Errors",
recommended: true,
url: "https://eslint.org/docs/rules/no-compare-neg-zero"
},
+
fixable: null,
schema: [],
+
messages: {
unexpected: "Do not use the '{{operator}}' operator to compare against -0."
}
diff --git a/tools/node_modules/eslint/lib/rules/no-cond-assign.js b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
index caf9563e95..aed3e4a7a9 100644
--- a/tools/node_modules/eslint/lib/rules/no-cond-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
@@ -19,6 +19,8 @@ const NODE_DESCRIPTIONS = {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow assignment operators in conditional expressions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js b/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
index 503174e9a6..f18ec19453 100644
--- a/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
+++ b/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
@@ -27,6 +27,8 @@ function isConditional(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow arrow functions where they could be confused with comparisons",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-console.js b/tools/node_modules/eslint/lib/rules/no-console.js
index 5fb3a159be..d3a2e34475 100644
--- a/tools/node_modules/eslint/lib/rules/no-console.js
+++ b/tools/node_modules/eslint/lib/rules/no-console.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `console`",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-const-assign.js b/tools/node_modules/eslint/lib/rules/no-const-assign.js
index 3188bd34d3..32f8154cc2 100644
--- a/tools/node_modules/eslint/lib/rules/no-const-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-const-assign.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow reassigning `const` variables",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-constant-condition.js b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
index 48b1fbf689..88984c36e7 100644
--- a/tools/node_modules/eslint/lib/rules/no-constant-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow constant expressions in conditions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-continue.js b/tools/node_modules/eslint/lib/rules/no-continue.js
index 3075b77f9f..96718d17a3 100644
--- a/tools/node_modules/eslint/lib/rules/no-continue.js
+++ b/tools/node_modules/eslint/lib/rules/no-continue.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `continue` statements",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-control-regex.js b/tools/node_modules/eslint/lib/rules/no-control-regex.js
index 24bb6be667..24e6b197be 100644
--- a/tools/node_modules/eslint/lib/rules/no-control-regex.js
+++ b/tools/node_modules/eslint/lib/rules/no-control-regex.js
@@ -6,7 +6,7 @@
"use strict";
const RegExpValidator = require("regexpp").RegExpValidator;
-const collector = new class {
+const collector = new (class {
constructor() {
this.ecmaVersion = 2018;
this._source = "";
@@ -41,7 +41,7 @@ const collector = new class {
}
return this._controlChars;
}
-}();
+})();
//------------------------------------------------------------------------------
// Rule Definition
@@ -49,6 +49,8 @@ const collector = new class {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow control characters in regular expressions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-debugger.js b/tools/node_modules/eslint/lib/rules/no-debugger.js
index 5d63bb7e14..95a28a8621 100644
--- a/tools/node_modules/eslint/lib/rules/no-debugger.js
+++ b/tools/node_modules/eslint/lib/rules/no-debugger.js
@@ -11,14 +11,18 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow the use of `debugger`",
category: "Possible Errors",
recommended: true,
url: "https://eslint.org/docs/rules/no-debugger"
},
+
fixable: null,
schema: [],
+
messages: {
unexpected: "Unexpected 'debugger' statement."
}
diff --git a/tools/node_modules/eslint/lib/rules/no-delete-var.js b/tools/node_modules/eslint/lib/rules/no-delete-var.js
index f54a396ec2..aeab951d75 100644
--- a/tools/node_modules/eslint/lib/rules/no-delete-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-delete-var.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow deleting variables",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-div-regex.js b/tools/node_modules/eslint/lib/rules/no-div-regex.js
index c050249fd6..408e006528 100644
--- a/tools/node_modules/eslint/lib/rules/no-div-regex.js
+++ b/tools/node_modules/eslint/lib/rules/no-div-regex.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow division operators explicitly at the beginning of regular expressions",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-args.js b/tools/node_modules/eslint/lib/rules/no-dupe-args.js
index e5a7f4154e..4e42336ae3 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-args.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-args.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow duplicate arguments in `function` definitions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js b/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
index d0fc359736..97f63a2896 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow duplicate class members",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-keys.js b/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
index 31493bd048..9b9c02f5ef 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
@@ -84,6 +84,8 @@ class ObjectInfo {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow duplicate keys in object literals",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-duplicate-case.js b/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
index 128b1fc1b1..93c8548f91 100644
--- a/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
+++ b/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow duplicate case labels",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js b/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
index 32071da15f..1d5bdfdc1a 100644
--- a/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
+++ b/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
@@ -101,6 +101,8 @@ function handleExports(context, importsInFile, exportsInFile) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow duplicate module imports",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-else-return.js b/tools/node_modules/eslint/lib/rules/no-else-return.js
index 1000fa807a..eebdec76e0 100644
--- a/tools/node_modules/eslint/lib/rules/no-else-return.js
+++ b/tools/node_modules/eslint/lib/rules/no-else-return.js
@@ -18,6 +18,8 @@ const FixTracker = require("../util/fix-tracker");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `else` blocks after `return` statements in `if` statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-character-class.js b/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
index e3f06b069a..6d2fb3c501 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
@@ -29,6 +29,8 @@ const regex = /^\/([^\\[]|\\.|\[([^\\\]]|\\.)+])*\/[gimuys]*$/;
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow empty character classes in regular expressions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-function.js b/tools/node_modules/eslint/lib/rules/no-empty-function.js
index c8039314ab..a443796e4e 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-function.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-function.js
@@ -90,6 +90,8 @@ function getKind(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow empty functions",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-pattern.js b/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
index 939710560f..9f34bfde92 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow empty destructuring patterns",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-empty.js b/tools/node_modules/eslint/lib/rules/no-empty.js
index 2f4c258a26..9d72969e67 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow empty block statements",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-eq-null.js b/tools/node_modules/eslint/lib/rules/no-eq-null.js
index eadd16de37..b8dead96d2 100644
--- a/tools/node_modules/eslint/lib/rules/no-eq-null.js
+++ b/tools/node_modules/eslint/lib/rules/no-eq-null.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `null` comparisons without type-checking operators",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-eval.js b/tools/node_modules/eslint/lib/rules/no-eval.js
index c3ea87d466..39d91e776e 100644
--- a/tools/node_modules/eslint/lib/rules/no-eval.js
+++ b/tools/node_modules/eslint/lib/rules/no-eval.js
@@ -76,6 +76,8 @@ function isMember(node, name) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `eval()`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-ex-assign.js b/tools/node_modules/eslint/lib/rules/no-ex-assign.js
index 1c7beccf89..4cc179a6e8 100644
--- a/tools/node_modules/eslint/lib/rules/no-ex-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-ex-assign.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow reassigning exceptions in `catch` clauses",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-extend-native.js b/tools/node_modules/eslint/lib/rules/no-extend-native.js
index a1bf49f132..13895f0d06 100644
--- a/tools/node_modules/eslint/lib/rules/no-extend-native.js
+++ b/tools/node_modules/eslint/lib/rules/no-extend-native.js
@@ -24,6 +24,8 @@ const propertyDefinitionMethods = new Set(["defineProperty", "defineProperties"]
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow extending native types",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-bind.js b/tools/node_modules/eslint/lib/rules/no-extra-bind.js
index 6d6cad13e9..abbe1868e8 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-bind.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-bind.js
@@ -22,6 +22,8 @@ const SIDE_EFFECT_FREE_NODE_TYPES = new Set(["Literal", "Identifier", "ThisExpre
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary calls to `.bind()`",
category: "Best Practices",
@@ -30,7 +32,6 @@ module.exports = {
},
schema: [],
-
fixable: "code",
messages: {
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
index 5eac6b53fe..615603177a 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary boolean casts",
category: "Possible Errors",
@@ -25,7 +27,6 @@ module.exports = {
},
schema: [],
-
fixable: "code",
messages: {
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-label.js b/tools/node_modules/eslint/lib/rules/no-extra-label.js
index 9310e90f71..f8acf7b283 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-label.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-label.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary labels",
category: "Best Practices",
@@ -25,7 +27,6 @@ module.exports = {
},
schema: [],
-
fixable: "code",
messages: {
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-parens.js b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
index 47c58946cf..3a21b69580 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-parens.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils.js");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow unnecessary parentheses",
category: "Possible Errors",
@@ -382,8 +384,7 @@ module.exports = {
* Allow extra parens around a new expression if
* there are intervening parentheses.
*/
- callee.type === "MemberExpression" &&
- doesMemberExpressionContainCallExpression(callee)
+ (callee.type === "MemberExpression" && doesMemberExpressionContainCallExpression(callee))
)
) {
report(node.callee);
@@ -574,15 +575,13 @@ module.exports = {
* If `let` is the only thing on the left side of the loop, it's the loop variable: `for ((let) of foo);`
* Removing it will cause a syntax error, because it will be parsed as the start of a VariableDeclarator.
*/
- firstLeftToken.range[1] === node.left.range[1] ||
-
- /*
+ (firstLeftToken.range[1] === node.left.range[1] || /*
* If `let` is followed by a `[` token, it's a property access on the `let` value: `for ((let[foo]) of bar);`
* Removing it will cause the property access to be parsed as a destructuring declaration of `foo` instead.
*/
astUtils.isOpeningBracketToken(
sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken)
- )
+ ))
)
) {
tokensToIgnore.add(firstLeftToken);
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-semi.js b/tools/node_modules/eslint/lib/rules/no-extra-semi.js
index 4d40b5e153..d87a181672 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-semi.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-semi.js
@@ -18,6 +18,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary semicolons",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-fallthrough.js b/tools/node_modules/eslint/lib/rules/no-fallthrough.js
index ce4f91ad96..b7fa221050 100644
--- a/tools/node_modules/eslint/lib/rules/no-fallthrough.js
+++ b/tools/node_modules/eslint/lib/rules/no-fallthrough.js
@@ -55,6 +55,8 @@ function hasBlankLinesBetween(node, token) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow fallthrough of `case` statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-floating-decimal.js b/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
index a62846cc10..c835d6a545 100644
--- a/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
+++ b/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow leading or trailing decimal points in numeric literals",
category: "Best Practices",
@@ -25,7 +27,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-func-assign.js b/tools/node_modules/eslint/lib/rules/no-func-assign.js
index 029f6a9d7d..ae96ab01f4 100644
--- a/tools/node_modules/eslint/lib/rules/no-func-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-func-assign.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow reassigning `function` declarations",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-global-assign.js b/tools/node_modules/eslint/lib/rules/no-global-assign.js
index 3397bdbe00..73f36b25e4 100644
--- a/tools/node_modules/eslint/lib/rules/no-global-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-global-assign.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow assignments to native objects or read-only global variables",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
index 3bfe3f0d3a..826d9398ca 100644
--- a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
+++ b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
@@ -152,6 +152,8 @@ function getNonEmptyOperand(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow shorthand type conversions",
category: "Best Practices",
@@ -160,6 +162,7 @@ module.exports = {
},
fixable: "code",
+
schema: [{
type: "object",
properties: {
diff --git a/tools/node_modules/eslint/lib/rules/no-implicit-globals.js b/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
index c4717b6a37..2eea2b2846 100644
--- a/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
+++ b/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow variable and `function` declarations in the global scope",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-implied-eval.js b/tools/node_modules/eslint/lib/rules/no-implied-eval.js
index de294bc885..d31b5dfee8 100644
--- a/tools/node_modules/eslint/lib/rules/no-implied-eval.js
+++ b/tools/node_modules/eslint/lib/rules/no-implied-eval.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `eval()`-like methods",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-inline-comments.js b/tools/node_modules/eslint/lib/rules/no-inline-comments.js
index 2fb2190922..c282d16e75 100644
--- a/tools/node_modules/eslint/lib/rules/no-inline-comments.js
+++ b/tools/node_modules/eslint/lib/rules/no-inline-comments.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow inline comments after code",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-inner-declarations.js b/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
index 032c0a0f09..60508d3e86 100644
--- a/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow variable or `function` declarations in nested blocks",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js b/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
index 7169e0ca77..74659001fd 100644
--- a/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
+++ b/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
@@ -19,6 +19,8 @@ const undefined1 = void 0;
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow invalid regular expression strings in `RegExp` constructors",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-invalid-this.js b/tools/node_modules/eslint/lib/rules/no-invalid-this.js
index 480deebc14..e9be444526 100644
--- a/tools/node_modules/eslint/lib/rules/no-invalid-this.js
+++ b/tools/node_modules/eslint/lib/rules/no-invalid-this.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `this` keywords outside of classes or class-like objects",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
index de6934c635..7920ebdc56 100644
--- a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
+++ b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
@@ -27,6 +27,8 @@ const LINE_BREAK = astUtils.createGlobalLinebreakMatcher();
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow irregular whitespace outside of strings and comments",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-iterator.js b/tools/node_modules/eslint/lib/rules/no-iterator.js
index ca12fcda47..82319a3fb1 100644
--- a/tools/node_modules/eslint/lib/rules/no-iterator.js
+++ b/tools/node_modules/eslint/lib/rules/no-iterator.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of the `__iterator__` property",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-label-var.js b/tools/node_modules/eslint/lib/rules/no-label-var.js
index 3f5aba4fc1..fdba2defc3 100644
--- a/tools/node_modules/eslint/lib/rules/no-label-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-label-var.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow labels that share a name with a variable",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-labels.js b/tools/node_modules/eslint/lib/rules/no-labels.js
index bd6ec57a35..34db20725b 100644
--- a/tools/node_modules/eslint/lib/rules/no-labels.js
+++ b/tools/node_modules/eslint/lib/rules/no-labels.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow labeled statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-lone-blocks.js b/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
index 5e22aacf00..6b51795863 100644
--- a/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary nested blocks",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-lonely-if.js b/tools/node_modules/eslint/lib/rules/no-lonely-if.js
index 3ecc41e8cf..4bbb5399ff 100644
--- a/tools/node_modules/eslint/lib/rules/no-lonely-if.js
+++ b/tools/node_modules/eslint/lib/rules/no-lonely-if.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `if` statements as the only statement in `else` blocks",
category: "Stylistic Issues",
@@ -18,7 +20,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-loop-func.js b/tools/node_modules/eslint/lib/rules/no-loop-func.js
index d103cb5335..e6063806a5 100644
--- a/tools/node_modules/eslint/lib/rules/no-loop-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-loop-func.js
@@ -154,6 +154,8 @@ function isSafe(loopNode, reference) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `function` declarations and expressions inside loop statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
index b70ca82675..84c08dfb08 100644
--- a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
+++ b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow magic numbers",
category: "Best Practices",
@@ -40,6 +42,7 @@ module.exports = {
},
additionalProperties: false
}],
+
messages: {
useConst: "Number constants declarations must use 'const'.",
noMagic: "No magic number: {{raw}}."
diff --git a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js
index e410efed9c..4fa650ed52 100644
--- a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js
+++ b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js
@@ -101,13 +101,17 @@ const kinds = Object.keys(hasCharacterSequence);
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow characters which are made with multiple code points in character class syntax",
category: "Possible Errors",
recommended: false,
url: "https://eslint.org/docs/rules/no-misleading-character-class"
},
+
schema: [],
+
messages: {
surrogatePairWithoutUFlag: "Unexpected surrogate pair in character class. Use 'u' flag.",
combiningClass: "Unexpected combined character in character class.",
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
index d4ead20062..22ed65f5b1 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
@@ -71,12 +71,15 @@ function includesBothInAGroup(groups, left, right) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow mixed binary operators",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/no-mixed-operators"
},
+
schema: [
{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
index 1058f3a511..438ac668a8 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `require` calls to be mixed with regular variable declarations",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js b/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
index 7cb4b4ceea..1fc0b6074b 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow mixed spaces and tabs for indentation",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-assign.js b/tools/node_modules/eslint/lib/rules/no-multi-assign.js
index ca3f778ac6..8524a1a571 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-assign.js
@@ -12,12 +12,15 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow use of chained assignment expressions",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/no-multi-assign"
},
+
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
index 41bcd4fb61..f1792c31ed 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow multiple spaces",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-str.js b/tools/node_modules/eslint/lib/rules/no-multi-str.js
index ee0aaaa4c0..844842392d 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-str.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-str.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow multiline strings",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js b/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
index a111786a30..f945cfeffe 100644
--- a/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
+++ b/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow multiple empty lines",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-native-reassign.js b/tools/node_modules/eslint/lib/rules/no-native-reassign.js
index b1064b0bb3..9ecfb4da7c 100644
--- a/tools/node_modules/eslint/lib/rules/no-native-reassign.js
+++ b/tools/node_modules/eslint/lib/rules/no-native-reassign.js
@@ -12,16 +12,19 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow assignments to native objects or read-only global variables",
category: "Best Practices",
recommended: false,
- replacedBy: ["no-global-assign"],
url: "https://eslint.org/docs/rules/no-native-reassign"
},
deprecated: true,
+ replacedBy: ["no-global-assign"],
+
schema: [
{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/no-negated-condition.js b/tools/node_modules/eslint/lib/rules/no-negated-condition.js
index 254dcb5c23..e55a828748 100644
--- a/tools/node_modules/eslint/lib/rules/no-negated-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-negated-condition.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow negated conditions",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js b/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
index 7f08814c94..0084ad1570 100644
--- a/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
+++ b/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
@@ -12,15 +12,18 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow negating the left operand in `in` expressions",
category: "Possible Errors",
recommended: false,
- replacedBy: ["no-unsafe-negation"],
url: "https://eslint.org/docs/rules/no-negated-in-lhs"
},
- deprecated: true,
+ replacedBy: ["no-unsafe-negation"],
+
+ deprecated: true,
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-nested-ternary.js b/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
index 15e72f20d1..87a11e8796 100644
--- a/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow nested ternary expressions",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-new-func.js b/tools/node_modules/eslint/lib/rules/no-new-func.js
index 8ee327baa1..23e92f7bf3 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-func.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `new` operators with the `Function` object",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-new-object.js b/tools/node_modules/eslint/lib/rules/no-new-object.js
index 3f68cbc1b5..f5cc28664f 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-object.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-object.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `Object` constructors",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-new-require.js b/tools/node_modules/eslint/lib/rules/no-new-require.js
index f74daa7569..1eae065943 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-require.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-require.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `new` operators with calls to `require`",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-new-symbol.js b/tools/node_modules/eslint/lib/rules/no-new-symbol.js
index a537268e38..ccf757ed6a 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-symbol.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-symbol.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow `new` operators with the `Symbol` object",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
index e8d516212b..ae2aeec034 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-new.js b/tools/node_modules/eslint/lib/rules/no-new.js
index f9121bc18f..2e0702597e 100644
--- a/tools/node_modules/eslint/lib/rules/no-new.js
+++ b/tools/node_modules/eslint/lib/rules/no-new.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `new` operators outside of assignments or comparisons",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-obj-calls.js b/tools/node_modules/eslint/lib/rules/no-obj-calls.js
index 320343cb2c..92492b7a26 100644
--- a/tools/node_modules/eslint/lib/rules/no-obj-calls.js
+++ b/tools/node_modules/eslint/lib/rules/no-obj-calls.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow calling global object properties as functions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-octal-escape.js b/tools/node_modules/eslint/lib/rules/no-octal-escape.js
index e9509b87f8..fc073b1403 100644
--- a/tools/node_modules/eslint/lib/rules/no-octal-escape.js
+++ b/tools/node_modules/eslint/lib/rules/no-octal-escape.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow octal escape sequences in string literals",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-octal.js b/tools/node_modules/eslint/lib/rules/no-octal.js
index d782c23a39..db1fa40aa5 100644
--- a/tools/node_modules/eslint/lib/rules/no-octal.js
+++ b/tools/node_modules/eslint/lib/rules/no-octal.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow octal literals",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-param-reassign.js b/tools/node_modules/eslint/lib/rules/no-param-reassign.js
index be1a559178..243bb6412c 100644
--- a/tools/node_modules/eslint/lib/rules/no-param-reassign.js
+++ b/tools/node_modules/eslint/lib/rules/no-param-reassign.js
@@ -12,6 +12,8 @@ const stopNodePattern = /(?:Statement|Declaration|Function(?:Expression)?|Progra
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow reassigning `function` parameters",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-path-concat.js b/tools/node_modules/eslint/lib/rules/no-path-concat.js
index 1dee7bda11..dad56a4f56 100644
--- a/tools/node_modules/eslint/lib/rules/no-path-concat.js
+++ b/tools/node_modules/eslint/lib/rules/no-path-concat.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow string concatenation with `__dirname` and `__filename`",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-plusplus.js b/tools/node_modules/eslint/lib/rules/no-plusplus.js
index f754b36721..4c854de1a0 100644
--- a/tools/node_modules/eslint/lib/rules/no-plusplus.js
+++ b/tools/node_modules/eslint/lib/rules/no-plusplus.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the unary operators `++` and `--`",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-process-env.js b/tools/node_modules/eslint/lib/rules/no-process-env.js
index 71b27ffd72..a66d9709b0 100644
--- a/tools/node_modules/eslint/lib/rules/no-process-env.js
+++ b/tools/node_modules/eslint/lib/rules/no-process-env.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `process.env`",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-process-exit.js b/tools/node_modules/eslint/lib/rules/no-process-exit.js
index 2d22d7fd96..fcfc6b2af5 100644
--- a/tools/node_modules/eslint/lib/rules/no-process-exit.js
+++ b/tools/node_modules/eslint/lib/rules/no-process-exit.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `process.exit()`",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-proto.js b/tools/node_modules/eslint/lib/rules/no-proto.js
index e37c6c22e6..80b9650941 100644
--- a/tools/node_modules/eslint/lib/rules/no-proto.js
+++ b/tools/node_modules/eslint/lib/rules/no-proto.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of the `__proto__` property",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
index f52847f44d..1713953067 100644
--- a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
+++ b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow calling some `Object.prototype` methods directly on objects",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-redeclare.js b/tools/node_modules/eslint/lib/rules/no-redeclare.js
index 79ab21137e..e88436d7c5 100644
--- a/tools/node_modules/eslint/lib/rules/no-redeclare.js
+++ b/tools/node_modules/eslint/lib/rules/no-redeclare.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow variable redeclaration",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-regex-spaces.js b/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
index 089e060286..d0f7293d20 100644
--- a/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow multiple spaces in regular expressions",
category: "Possible Errors",
@@ -21,7 +23,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-globals.js b/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
index 72b02c032a..1a2629a8ec 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
@@ -17,6 +17,8 @@ const DEFAULT_MESSAGE_TEMPLATE = "Unexpected use of '{{name}}'.",
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified global variables",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-imports.js b/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
index fdebb8ca3a..b8fcca1aaf 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
@@ -53,6 +53,8 @@ const arrayOfStringsOrObjects = {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified modules when loaded by `import`",
category: "ECMAScript 6",
@@ -234,31 +236,47 @@ module.exports = {
return restrictedPatterns.length > 0 && restrictedPatternsMatcher.ignores(importSource);
}
- return {
- ImportDeclaration(node) {
- const importSource = node.source.value.trim();
- const importNames = node.specifiers.reduce((set, specifier) => {
- if (specifier.type === "ImportDefaultSpecifier") {
- set.add("default");
- } else if (specifier.type === "ImportNamespaceSpecifier") {
- set.add("*");
- } else {
- set.add(specifier.imported.name);
- }
- return set;
- }, new Set());
-
- if (isRestrictedForEverythingImported(importSource, importNames)) {
- reportPathForEverythingImported(importSource, node);
+ /**
+ * Checks a node to see if any problems should be reported.
+ * @param {ASTNode} node The node to check.
+ * @returns {void}
+ * @private
+ */
+ function checkNode(node) {
+ const importSource = node.source.value.trim();
+ const importNames = node.specifiers ? node.specifiers.reduce((set, specifier) => {
+ if (specifier.type === "ImportDefaultSpecifier") {
+ set.add("default");
+ } else if (specifier.type === "ImportNamespaceSpecifier") {
+ set.add("*");
+ } else if (specifier.imported) {
+ set.add(specifier.imported.name);
+ } else if (specifier.local) {
+ set.add(specifier.local.name);
}
+ return set;
+ }, new Set()) : new Set();
- if (isRestrictedPath(importSource, importNames)) {
- reportPath(node);
- }
- if (isRestrictedPattern(importSource)) {
- reportPathForPatterns(node);
- }
+ if (isRestrictedForEverythingImported(importSource, importNames)) {
+ reportPathForEverythingImported(importSource, node);
+ }
+
+ if (isRestrictedPath(importSource, importNames)) {
+ reportPath(node);
+ }
+ if (isRestrictedPattern(importSource)) {
+ reportPathForPatterns(node);
}
+ }
+
+ return {
+ ImportDeclaration: checkNode,
+ ExportNamedDeclaration(node) {
+ if (node.source) {
+ checkNode(node);
+ }
+ },
+ ExportAllDeclaration: checkNode
};
}
};
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-modules.js b/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
index d63d2ce4f4..ef8748a7d0 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
@@ -47,6 +47,8 @@ const arrayOfStringsOrObjects = {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified modules when loaded by `require`",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-properties.js b/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
index c0f1cfb6d3..eede6ad1c1 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow certain properties on certain objects",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js b/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
index c472d9432e..74eea14789 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified syntax",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-return-assign.js b/tools/node_modules/eslint/lib/rules/no-return-assign.js
index 519f9e0d03..b3c39ea2b8 100644
--- a/tools/node_modules/eslint/lib/rules/no-return-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-return-assign.js
@@ -22,6 +22,8 @@ const SENTINEL_TYPE = /^(?:[a-zA-Z]+?Statement|ArrowFunctionExpression|FunctionE
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow assignment operators in `return` statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-return-await.js b/tools/node_modules/eslint/lib/rules/no-return-await.js
index 5f531a1831..24cb45ee5a 100644
--- a/tools/node_modules/eslint/lib/rules/no-return-await.js
+++ b/tools/node_modules/eslint/lib/rules/no-return-await.js
@@ -14,6 +14,8 @@ const message = "Redundant use of `await` on a return value.";
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary `return await`",
category: "Best Practices",
@@ -22,7 +24,9 @@ module.exports = {
url: "https://eslint.org/docs/rules/no-return-await"
},
+
fixable: null,
+
schema: [
]
},
diff --git a/tools/node_modules/eslint/lib/rules/no-script-url.js b/tools/node_modules/eslint/lib/rules/no-script-url.js
index ba74dafb8e..40e9bfe8b2 100644
--- a/tools/node_modules/eslint/lib/rules/no-script-url.js
+++ b/tools/node_modules/eslint/lib/rules/no-script-url.js
@@ -13,6 +13,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `javascript:` urls",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-self-assign.js b/tools/node_modules/eslint/lib/rules/no-self-assign.js
index 87d1f2ff4f..d493855efe 100644
--- a/tools/node_modules/eslint/lib/rules/no-self-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-self-assign.js
@@ -165,6 +165,8 @@ function eachSelfAssignment(left, right, props, report) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow assignments where both sides are exactly the same",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-self-compare.js b/tools/node_modules/eslint/lib/rules/no-self-compare.js
index 6ebc3870fe..8986240ec5 100644
--- a/tools/node_modules/eslint/lib/rules/no-self-compare.js
+++ b/tools/node_modules/eslint/lib/rules/no-self-compare.js
@@ -12,6 +12,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow comparisons where both sides are exactly the same",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-sequences.js b/tools/node_modules/eslint/lib/rules/no-sequences.js
index e74943d810..2570912f34 100644
--- a/tools/node_modules/eslint/lib/rules/no-sequences.js
+++ b/tools/node_modules/eslint/lib/rules/no-sequences.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow comma operators",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
index 70052f56f2..9bdd508680 100644
--- a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
+++ b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow identifiers from shadowing restricted names",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-shadow.js b/tools/node_modules/eslint/lib/rules/no-shadow.js
index 955fc05e58..f910230d6a 100644
--- a/tools/node_modules/eslint/lib/rules/no-shadow.js
+++ b/tools/node_modules/eslint/lib/rules/no-shadow.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow variable declarations from shadowing variables declared in the outer scope",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-spaced-func.js b/tools/node_modules/eslint/lib/rules/no-spaced-func.js
index 42d1e4b243..8535881f43 100644
--- a/tools/node_modules/eslint/lib/rules/no-spaced-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-spaced-func.js
@@ -12,16 +12,19 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow spacing between function identifiers and their applications (deprecated)",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["func-call-spacing"],
url: "https://eslint.org/docs/rules/no-spaced-func"
},
deprecated: true,
+ replacedBy: ["func-call-spacing"],
+
fixable: "whitespace",
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
index 1cc6f7ccba..985109c36b 100644
--- a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
+++ b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow sparse arrays",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-sync.js b/tools/node_modules/eslint/lib/rules/no-sync.js
index eb7b787d38..a0096e3d04 100644
--- a/tools/node_modules/eslint/lib/rules/no-sync.js
+++ b/tools/node_modules/eslint/lib/rules/no-sync.js
@@ -13,6 +13,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow synchronous methods",
category: "Node.js and CommonJS",
diff --git a/tools/node_modules/eslint/lib/rules/no-tabs.js b/tools/node_modules/eslint/lib/rules/no-tabs.js
index c22a94da38..0002f55929 100644
--- a/tools/node_modules/eslint/lib/rules/no-tabs.js
+++ b/tools/node_modules/eslint/lib/rules/no-tabs.js
@@ -18,6 +18,8 @@ const anyNonWhitespaceRegex = /\S/;
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow all tabs",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js b/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
index ed74fcc6f7..c286ec6900 100644
--- a/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
+++ b/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow template literal placeholder syntax in regular strings",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-ternary.js b/tools/node_modules/eslint/lib/rules/no-ternary.js
index 4dcc8db069..890f2abfa0 100644
--- a/tools/node_modules/eslint/lib/rules/no-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-ternary.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow ternary operators",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-this-before-super.js b/tools/node_modules/eslint/lib/rules/no-this-before-super.js
index 8a489879ed..93fb094e9b 100644
--- a/tools/node_modules/eslint/lib/rules/no-this-before-super.js
+++ b/tools/node_modules/eslint/lib/rules/no-this-before-super.js
@@ -36,6 +36,8 @@ function isConstructorFunction(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow `this`/`super` before calling `super()` in constructors",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-throw-literal.js b/tools/node_modules/eslint/lib/rules/no-throw-literal.js
index 301354b6b2..c4a6b86bfb 100644
--- a/tools/node_modules/eslint/lib/rules/no-throw-literal.js
+++ b/tools/node_modules/eslint/lib/rules/no-throw-literal.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow throwing literals as exceptions",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js b/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
index cca7af2aac..18f0340ef0 100644
--- a/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow trailing whitespace at the end of lines",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-undef-init.js b/tools/node_modules/eslint/lib/rules/no-undef-init.js
index f00b05d4ff..67f3944d47 100644
--- a/tools/node_modules/eslint/lib/rules/no-undef-init.js
+++ b/tools/node_modules/eslint/lib/rules/no-undef-init.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow initializing variables to `undefined`",
category: "Variables",
@@ -21,7 +23,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-undef.js b/tools/node_modules/eslint/lib/rules/no-undef.js
index c8347d50d1..f923644eca 100644
--- a/tools/node_modules/eslint/lib/rules/no-undef.js
+++ b/tools/node_modules/eslint/lib/rules/no-undef.js
@@ -25,6 +25,8 @@ function hasTypeOfOperator(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow the use of undeclared variables unless mentioned in `/*global */` comments",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-undefined.js b/tools/node_modules/eslint/lib/rules/no-undefined.js
index 8491ab5d54..b92f670063 100644
--- a/tools/node_modules/eslint/lib/rules/no-undefined.js
+++ b/tools/node_modules/eslint/lib/rules/no-undefined.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow the use of `undefined` as an identifier",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
index c76488a943..926803b992 100644
--- a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
+++ b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow dangling underscores in identifiers",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js b/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
index 181a00b2d0..3bed96fc77 100644
--- a/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
+++ b/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow confusing multiline expressions",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js b/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
index fecd8ba5cc..95898c5f19 100644
--- a/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
@@ -165,6 +165,8 @@ function updateModifiedFlag(conditions, modifiers) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow unmodified loop conditions",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
index 6b58b018da..3a7dd5fad7 100644
--- a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
@@ -24,6 +24,8 @@ const OPERATOR_INVERSES = {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow ternary operators when simpler alternatives exist",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-unreachable.js b/tools/node_modules/eslint/lib/rules/no-unreachable.js
index 80d246307c..8ea2583f7c 100644
--- a/tools/node_modules/eslint/lib/rules/no-unreachable.js
+++ b/tools/node_modules/eslint/lib/rules/no-unreachable.js
@@ -101,6 +101,8 @@ class ConsecutiveRange {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
category: "Possible Errors",
@@ -180,7 +182,6 @@ module.exports = {
ContinueStatement: reportIfUnreachable,
DebuggerStatement: reportIfUnreachable,
DoWhileStatement: reportIfUnreachable,
- EmptyStatement: reportIfUnreachable,
ExpressionStatement: reportIfUnreachable,
ForInStatement: reportIfUnreachable,
ForOfStatement: reportIfUnreachable,
diff --git a/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js b/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
index 1ebdd2e377..ab612ae652 100644
--- a/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
+++ b/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
@@ -20,6 +20,8 @@ const SENTINEL_NODE_TYPE_CONTINUE = /^(?:Program|(?:Function|Class)(?:Declaratio
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow control flow statements in `finally` blocks",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js b/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
index b04f80106c..3a0402eb0d 100644
--- a/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
+++ b/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
@@ -41,12 +41,15 @@ function isNegation(node) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow negating the left operand of relational operators",
category: "Possible Errors",
recommended: true,
url: "https://eslint.org/docs/rules/no-unsafe-negation"
},
+
schema: [],
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
index fedfac17d1..854298b411 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unused expressions",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-labels.js b/tools/node_modules/eslint/lib/rules/no-unused-labels.js
index 3e1dcb6601..c9e097df45 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-labels.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-labels.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unused labels",
category: "Best Practices",
@@ -19,7 +21,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-vars.js b/tools/node_modules/eslint/lib/rules/no-unused-vars.js
index 6f36813aca..e76e325103 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-vars.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-vars.js
@@ -18,6 +18,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow unused variables",
category: "Variables",
@@ -224,6 +226,32 @@ module.exports = {
}
/**
+ * Gets a list of function definitions for a specified variable.
+ * @param {Variable} variable - eslint-scope variable object.
+ * @returns {ASTNode[]} Function nodes.
+ * @private
+ */
+ function getFunctionDefinitions(variable) {
+ const functionDefinitions = [];
+
+ variable.defs.forEach(def => {
+ const { type, node } = def;
+
+ // FunctionDeclarations
+ if (type === "FunctionName") {
+ functionDefinitions.push(node);
+ }
+
+ // FunctionExpressions
+ if (type === "Variable" && node.init &&
+ (node.init.type === "FunctionExpression" || node.init.type === "ArrowFunctionExpression")) {
+ functionDefinitions.push(node.init);
+ }
+ });
+ return functionDefinitions;
+ }
+
+ /**
* Checks the position of given nodes.
*
* @param {ASTNode} inner - A node which is expected as inside.
@@ -372,22 +400,18 @@ module.exports = {
return ref.isRead() && (
// self update. e.g. `a += 1`, `a++`
- (
- parent.type === "AssignmentExpression" &&
+ (// in RHS of an assignment for itself. e.g. `a = a + 1`
+ ((
+ parent.type === "AssignmentExpression" &&
granpa.type === "ExpressionStatement" &&
parent.left === id
- ) ||
+ ) ||
(
parent.type === "UpdateExpression" &&
granpa.type === "ExpressionStatement"
- ) ||
-
- // in RHS of an assignment for itself. e.g. `a = a + 1`
- (
- rhsNode &&
- isInside(id, rhsNode) &&
- !isInsideOfStorableFunction(id, rhsNode)
- )
+ ) || rhsNode &&
+ isInside(id, rhsNode) &&
+ !isInsideOfStorableFunction(id, rhsNode)))
);
}
@@ -435,7 +459,7 @@ module.exports = {
* @private
*/
function isUsedVariable(variable) {
- const functionNodes = variable.defs.filter(def => def.type === "FunctionName").map(def => def.node),
+ const functionNodes = getFunctionDefinitions(variable),
isFunctionDefinition = functionNodes.length > 0;
let rhsNode = null;
diff --git a/tools/node_modules/eslint/lib/rules/no-use-before-define.js b/tools/node_modules/eslint/lib/rules/no-use-before-define.js
index 64d8257027..500cd3a410 100644
--- a/tools/node_modules/eslint/lib/rules/no-use-before-define.js
+++ b/tools/node_modules/eslint/lib/rules/no-use-before-define.js
@@ -136,6 +136,8 @@ function isInInitializer(variable, reference) {
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow the use of variables before they are defined",
category: "Variables",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-call.js b/tools/node_modules/eslint/lib/rules/no-useless-call.js
index 0778b374f4..74e8bec08b 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-call.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-call.js
@@ -49,6 +49,8 @@ function isValidThisArg(expectedThis, thisArg, sourceCode) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary calls to `.call()` and `.apply()`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js b/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
index 189f50853c..ef1f856f3e 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
@@ -18,6 +18,8 @@ const MESSAGE_UNNECESSARY_COMPUTED = "Unnecessarily computed property [{{propert
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary computed property keys in object literals",
category: "ECMAScript 6",
@@ -26,7 +28,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
create(context) {
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-concat.js b/tools/node_modules/eslint/lib/rules/no-useless-concat.js
index e8e36aa1c1..df31011903 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-concat.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-concat.js
@@ -66,6 +66,8 @@ function getRight(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary concatenation of literals or template literals",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-constructor.js b/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
index 59e40bef8f..c10376450e 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
@@ -142,6 +142,8 @@ function isRedundantSuperCall(body, ctorParams) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary constructors",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-escape.js b/tools/node_modules/eslint/lib/rules/no-useless-escape.js
index 7f4b87ed92..c3c0421cc0 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-escape.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-escape.js
@@ -79,6 +79,8 @@ function parseRegExp(regExpText) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow unnecessary escape characters",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-rename.js b/tools/node_modules/eslint/lib/rules/no-useless-rename.js
index 83a03deb63..337f875b45 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-rename.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-rename.js
@@ -11,13 +11,17 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow renaming import, export, and destructured assignments to the same name",
category: "ECMAScript 6",
recommended: false,
url: "https://eslint.org/docs/rules/no-useless-rename"
},
+
fixable: "code",
+
schema: [
{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-return.js b/tools/node_modules/eslint/lib/rules/no-useless-return.js
index b5b8ebc32a..bb11b4b361 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-return.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-return.js
@@ -66,12 +66,15 @@ function isInFinally(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow redundant return statements",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/no-useless-return"
},
+
fixable: "code",
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-var.js b/tools/node_modules/eslint/lib/rules/no-var.js
index 2c32a023dc..edaed98f62 100644
--- a/tools/node_modules/eslint/lib/rules/no-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-var.js
@@ -180,6 +180,8 @@ function hasReferenceInTDZ(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `let` or `const` instead of `var`",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/no-void.js b/tools/node_modules/eslint/lib/rules/no-void.js
index 1d3d887da6..d2b5d2f963 100644
--- a/tools/node_modules/eslint/lib/rules/no-void.js
+++ b/tools/node_modules/eslint/lib/rules/no-void.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `void` operators",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-warning-comments.js b/tools/node_modules/eslint/lib/rules/no-warning-comments.js
index 5ff76e3a39..9ea39b490f 100644
--- a/tools/node_modules/eslint/lib/rules/no-warning-comments.js
+++ b/tools/node_modules/eslint/lib/rules/no-warning-comments.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow specified warning terms in comments",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js b/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
index 4b71a9ec17..1ecc51db67 100644
--- a/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
+++ b/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "disallow whitespace before properties",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/no-with.js b/tools/node_modules/eslint/lib/rules/no-with.js
index d72dcdfb21..ecdf22c7d9 100644
--- a/tools/node_modules/eslint/lib/rules/no-with.js
+++ b/tools/node_modules/eslint/lib/rules/no-with.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `with` statements",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js b/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
index e447ef886b..01763cea92 100644
--- a/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
+++ b/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
@@ -12,13 +12,17 @@ const POSITION_SCHEMA = { enum: ["beside", "below", "any"] };
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce the location of single-line statements",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/nonblock-statement-body-position"
},
+
fixable: "whitespace",
+
schema: [
POSITION_SCHEMA,
{
diff --git a/tools/node_modules/eslint/lib/rules/object-curly-newline.js b/tools/node_modules/eslint/lib/rules/object-curly-newline.js
index 494e78cff4..c460ea56bc 100644
--- a/tools/node_modules/eslint/lib/rules/object-curly-newline.js
+++ b/tools/node_modules/eslint/lib/rules/object-curly-newline.js
@@ -134,13 +134,17 @@ function areLineBreaksRequired(node, options, first, last) {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent line breaks inside braces",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/object-curly-newline"
},
+
fixable: "whitespace",
+
schema: [
{
oneOf: [
diff --git a/tools/node_modules/eslint/lib/rules/object-curly-spacing.js b/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
index e7c847a6a9..bde4f14253 100644
--- a/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing inside braces",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/object-property-newline.js b/tools/node_modules/eslint/lib/rules/object-property-newline.js
index 65baf0a95e..3e2c017157 100644
--- a/tools/node_modules/eslint/lib/rules/object-property-newline.js
+++ b/tools/node_modules/eslint/lib/rules/object-property-newline.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce placing object properties on separate lines",
category: "Stylistic Issues",
@@ -38,8 +40,7 @@ module.exports = {
create(context) {
const allowSameLine = context.options[0] && (
- Boolean(context.options[0].allowAllPropertiesOnSameLine) ||
- Boolean(context.options[0].allowMultiplePropertiesPerLine) // Deprecated
+ (Boolean(context.options[0].allowAllPropertiesOnSameLine) || Boolean(context.options[0].allowMultiplePropertiesPerLine)) // Deprecated
);
const errorMessage = allowSameLine
? "Object properties must go on a new line if they aren't all on the same line."
diff --git a/tools/node_modules/eslint/lib/rules/object-shorthand.js b/tools/node_modules/eslint/lib/rules/object-shorthand.js
index 21f039f8b6..ff6a51a4d1 100644
--- a/tools/node_modules/eslint/lib/rules/object-shorthand.js
+++ b/tools/node_modules/eslint/lib/rules/object-shorthand.js
@@ -24,6 +24,8 @@ const astUtils = require("../util/ast-utils");
//------------------------------------------------------------------------------
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow method and property shorthand syntax for object literals",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js b/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
index e17529b6be..e7e40d66c0 100644
--- a/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
+++ b/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow newlines around variable declarations",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/one-var.js b/tools/node_modules/eslint/lib/rules/one-var.js
index 3efd0f27f7..44f05fb700 100644
--- a/tools/node_modules/eslint/lib/rules/one-var.js
+++ b/tools/node_modules/eslint/lib/rules/one-var.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce variables to be declared either together or separately in functions",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/operator-assignment.js b/tools/node_modules/eslint/lib/rules/operator-assignment.js
index 8e4b7025ed..8bb01737dd 100644
--- a/tools/node_modules/eslint/lib/rules/operator-assignment.js
+++ b/tools/node_modules/eslint/lib/rules/operator-assignment.js
@@ -89,6 +89,8 @@ function canBeFixed(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow assignment operator shorthand where possible",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/operator-linebreak.js b/tools/node_modules/eslint/lib/rules/operator-linebreak.js
index be2709a1bd..cd6e996b1b 100644
--- a/tools/node_modules/eslint/lib/rules/operator-linebreak.js
+++ b/tools/node_modules/eslint/lib/rules/operator-linebreak.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent linebreak style for operators",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/padded-blocks.js b/tools/node_modules/eslint/lib/rules/padded-blocks.js
index 370d47bccf..7c0b56ba7f 100644
--- a/tools/node_modules/eslint/lib/rules/padded-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/padded-blocks.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow padding within blocks",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js b/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
index 4af85fef01..3e55a2516d 100644
--- a/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
+++ b/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
@@ -400,13 +400,17 @@ const StatementTypes = {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow padding lines between statements",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/padding-line-between-statements"
},
+
fixable: "whitespace",
+
schema: {
definitions: {
paddingType: {
diff --git a/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js b/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
index 1bc140b101..b4bbf33f29 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
@@ -132,6 +132,8 @@ function hasDuplicateParams(paramsList) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require using arrow functions for callbacks",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/prefer-const.js b/tools/node_modules/eslint/lib/rules/prefer-const.js
index 8b3bc5e0e4..a40ad35395 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-const.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-const.js
@@ -330,6 +330,8 @@ function findUp(node, type, shouldStop) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `const` declarations for variables that are never reassigned after declared",
category: "ECMAScript 6",
@@ -357,6 +359,8 @@ module.exports = {
const shouldMatchAnyDestructuredVariable = options.destructuring !== "all";
const ignoreReadBeforeAssign = options.ignoreReadBeforeAssign === true;
const variables = [];
+ let reportCount = 0;
+ let name = "";
/**
* Reports given identifier nodes if all of the nodes should be declared
@@ -377,14 +381,41 @@ module.exports = {
if (nodes.length && (shouldMatchAnyDestructuredVariable || nodesToReport.length === nodes.length)) {
const varDeclParent = findUp(nodes[0], "VariableDeclaration", parentNode => parentNode.type.endsWith("Statement"));
- const shouldFix = varDeclParent &&
+ const isVarDecParentNull = varDeclParent === null;
+
+ if (!isVarDecParentNull && varDeclParent.declarations.length > 0) {
+ const firstDeclaration = varDeclParent.declarations[0];
+
+ if (firstDeclaration.init) {
+ const firstDecParent = firstDeclaration.init.parent;
+
+ /*
+ * First we check the declaration type and then depending on
+ * if the type is a "VariableDeclarator" or its an "ObjectPattern"
+ * we compare the name from the first identifier, if the names are different
+ * we assign the new name and reset the count of reportCount and nodeCount in
+ * order to check each block for the number of reported errors and base our fix
+ * based on comparing nodes.length and nodesToReport.length.
+ */
+
+ if (firstDecParent.type === "VariableDeclarator") {
+
+ if (firstDecParent.id.name !== name) {
+ name = firstDecParent.id.name;
+ reportCount = 0;
+ }
+
+ if (firstDecParent.id.type === "ObjectPattern") {
+ if (firstDecParent.init.name !== name) {
+ name = firstDecParent.init.name;
+ reportCount = 0;
+ }
+ }
+ }
+ }
+ }
- /*
- * If there are multiple variable declarations, like {let a = 1, b = 2}, then
- * do not attempt to fix if one of the declarations should be `const`. It's
- * too hard to know how the developer would want to automatically resolve the issue.
- */
- varDeclParent.declarations.length === 1 &&
+ let shouldFix = varDeclParent &&
// Don't do a fix unless the variable is initialized (or it's in a for-in or for-of loop)
(varDeclParent.parent.type === "ForInStatement" || varDeclParent.parent.type === "ForOfStatement" || varDeclParent.declarations[0].init) &&
@@ -396,6 +427,21 @@ module.exports = {
*/
nodesToReport.length === nodes.length;
+ if (!isVarDecParentNull && varDeclParent.declarations && varDeclParent.declarations.length !== 1) {
+
+ if (varDeclParent && varDeclParent.declarations && varDeclParent.declarations.length >= 1) {
+
+ /*
+ * Add nodesToReport.length to a count, then comparing the count to the length
+ * of the declarations in the current block.
+ */
+
+ reportCount += nodesToReport.length;
+
+ shouldFix = shouldFix && (reportCount === varDeclParent.declarations.length);
+ }
+ }
+
nodesToReport.forEach(node => {
context.report({
node,
diff --git a/tools/node_modules/eslint/lib/rules/prefer-destructuring.js b/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
index 112ea64613..119fae5608 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
@@ -10,12 +10,15 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require destructuring from arrays and/or objects",
category: "ECMAScript 6",
recommended: false,
url: "https://eslint.org/docs/rules/prefer-destructuring"
},
+
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js b/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
index 051a91c81c..ca7358aa01 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
@@ -38,6 +38,8 @@ function isParseInt(calleeNode) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
category: "ECMAScript 6",
@@ -46,7 +48,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/prefer-object-spread.js b/tools/node_modules/eslint/lib/rules/prefer-object-spread.js
index 8e54de2496..a8dac696be 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-object-spread.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-object-spread.js
@@ -212,6 +212,8 @@ function defineFixer(node, sourceCode) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description:
"disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.",
@@ -219,8 +221,10 @@ module.exports = {
recommended: false,
url: "https://eslint.org/docs/rules/prefer-object-spread"
},
+
schema: [],
fixable: "code",
+
messages: {
useSpreadMessage: "Use an object spread instead of `Object.assign` eg: `{ ...foo }`",
useLiteralMessage: "Use an object literal instead of `Object.assign`. eg: `{ foo: bar }`"
diff --git a/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js b/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
index e3d298a743..0db5ae874c 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
@@ -12,13 +12,17 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require using Error objects as Promise rejection reasons",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/prefer-promise-reject-errors"
},
+
fixable: null,
+
schema: [
{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/prefer-reflect.js b/tools/node_modules/eslint/lib/rules/prefer-reflect.js
index 765163e0eb..796bbdf05f 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-reflect.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-reflect.js
@@ -11,16 +11,19 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `Reflect` methods where applicable",
category: "ECMAScript 6",
recommended: false,
- replacedBy: [],
url: "https://eslint.org/docs/rules/prefer-reflect"
},
deprecated: true,
+ replacedBy: [],
+
schema: [
{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/prefer-rest-params.js b/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
index 133456e4d1..95a562c4a2 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
@@ -62,6 +62,8 @@ function isNotNormalMemberAccess(reference) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require rest parameters instead of `arguments`",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/prefer-spread.js b/tools/node_modules/eslint/lib/rules/prefer-spread.js
index 9bf69c80f7..790fd3b82a 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-spread.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-spread.js
@@ -49,6 +49,8 @@ function isValidThisArg(expectedThis, thisArg, context) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require spread operators instead of `.apply()`",
category: "ECMAScript 6",
@@ -57,7 +59,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/prefer-template.js b/tools/node_modules/eslint/lib/rules/prefer-template.js
index 0471d61cae..386674a92e 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-template.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-template.js
@@ -141,6 +141,8 @@ function endsWithTemplateCurly(node) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require template literals instead of string concatenation",
category: "ECMAScript 6",
@@ -149,7 +151,6 @@ module.exports = {
},
schema: [],
-
fixable: "code"
},
diff --git a/tools/node_modules/eslint/lib/rules/quote-props.js b/tools/node_modules/eslint/lib/rules/quote-props.js
index 36739494da..7184bd34d3 100644
--- a/tools/node_modules/eslint/lib/rules/quote-props.js
+++ b/tools/node_modules/eslint/lib/rules/quote-props.js
@@ -17,6 +17,8 @@ const espree = require("espree"),
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require quotes around object literal property names",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/quotes.js b/tools/node_modules/eslint/lib/rules/quotes.js
index 8dd61c3e37..e0db17fcb7 100644
--- a/tools/node_modules/eslint/lib/rules/quotes.js
+++ b/tools/node_modules/eslint/lib/rules/quotes.js
@@ -76,6 +76,8 @@ const AVOID_ESCAPE = "avoid-escape";
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce the consistent use of either backticks, double, or single quotes",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/radix.js b/tools/node_modules/eslint/lib/rules/radix.js
index f71220beb4..5d3805d0a7 100644
--- a/tools/node_modules/eslint/lib/rules/radix.js
+++ b/tools/node_modules/eslint/lib/rules/radix.js
@@ -78,6 +78,8 @@ function isDefaultRadix(radix) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce the consistent use of the radix argument when using `parseInt()`",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/require-atomic-updates.js b/tools/node_modules/eslint/lib/rules/require-atomic-updates.js
index c6cf0d7477..e8dbe17b88 100644
--- a/tools/node_modules/eslint/lib/rules/require-atomic-updates.js
+++ b/tools/node_modules/eslint/lib/rules/require-atomic-updates.js
@@ -12,14 +12,18 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
category: "Possible Errors",
recommended: false,
url: "https://eslint.org/docs/rules/require-atomic-updates"
},
+
fixable: null,
schema: [],
+
messages: {
nonAtomicUpdate: "Possible race condition: `{{value}}` might be reassigned based on an outdated value of `{{value}}`."
}
diff --git a/tools/node_modules/eslint/lib/rules/require-await.js b/tools/node_modules/eslint/lib/rules/require-await.js
index de39f372fd..5e614c5025 100644
--- a/tools/node_modules/eslint/lib/rules/require-await.js
+++ b/tools/node_modules/eslint/lib/rules/require-await.js
@@ -31,12 +31,15 @@ function capitalizeFirstLetter(text) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "disallow async functions which have no `await` expression",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/require-await"
},
+
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/require-jsdoc.js b/tools/node_modules/eslint/lib/rules/require-jsdoc.js
index 91b90b7d10..949314993b 100644
--- a/tools/node_modules/eslint/lib/rules/require-jsdoc.js
+++ b/tools/node_modules/eslint/lib/rules/require-jsdoc.js
@@ -6,6 +6,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require JSDoc comments",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/require-unicode-regexp.js b/tools/node_modules/eslint/lib/rules/require-unicode-regexp.js
index 55ca4ff89a..880405e9a2 100644
--- a/tools/node_modules/eslint/lib/rules/require-unicode-regexp.js
+++ b/tools/node_modules/eslint/lib/rules/require-unicode-regexp.js
@@ -22,15 +22,19 @@ const {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce the use of `u` flag on RegExp",
category: "Best Practices",
recommended: false,
url: "https://eslint.org/docs/rules/require-unicode-regexp"
},
+
messages: {
requireUFlag: "Use the 'u' flag."
},
+
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/require-yield.js b/tools/node_modules/eslint/lib/rules/require-yield.js
index 83a29876f0..7bb7cf9a87 100644
--- a/tools/node_modules/eslint/lib/rules/require-yield.js
+++ b/tools/node_modules/eslint/lib/rules/require-yield.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require generator functions to contain `yield`",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js b/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
index e87d881298..04539395ef 100644
--- a/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
@@ -11,13 +11,17 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce spacing between rest and spread operators and their expressions",
category: "ECMAScript 6",
recommended: false,
url: "https://eslint.org/docs/rules/rest-spread-spacing"
},
+
fixable: "whitespace",
+
schema: [
{
enum: ["always", "never"]
diff --git a/tools/node_modules/eslint/lib/rules/semi-spacing.js b/tools/node_modules/eslint/lib/rules/semi-spacing.js
index 75b53055a6..56ae687d85 100644
--- a/tools/node_modules/eslint/lib/rules/semi-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/semi-spacing.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before and after semicolons",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/semi-style.js b/tools/node_modules/eslint/lib/rules/semi-style.js
index 34899bb544..dd76b68f82 100644
--- a/tools/node_modules/eslint/lib/rules/semi-style.js
+++ b/tools/node_modules/eslint/lib/rules/semi-style.js
@@ -65,12 +65,15 @@ function isLastChild(node) {
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce location of semicolons",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/semi-style"
},
+
schema: [{ enum: ["last", "first"] }],
fixable: "whitespace"
},
diff --git a/tools/node_modules/eslint/lib/rules/semi.js b/tools/node_modules/eslint/lib/rules/semi.js
index 129d106414..e8f4c959d4 100644
--- a/tools/node_modules/eslint/lib/rules/semi.js
+++ b/tools/node_modules/eslint/lib/rules/semi.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow semicolons instead of ASI",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/sort-imports.js b/tools/node_modules/eslint/lib/rules/sort-imports.js
index 8735be5d30..76997cc73d 100644
--- a/tools/node_modules/eslint/lib/rules/sort-imports.js
+++ b/tools/node_modules/eslint/lib/rules/sort-imports.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce sorted import declarations within modules",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/sort-keys.js b/tools/node_modules/eslint/lib/rules/sort-keys.js
index 6e538f7329..0668e617d3 100644
--- a/tools/node_modules/eslint/lib/rules/sort-keys.js
+++ b/tools/node_modules/eslint/lib/rules/sort-keys.js
@@ -73,12 +73,15 @@ const isValidOrders = {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require object keys to be sorted",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/sort-keys"
},
+
schema: [
{
enum: ["asc", "desc"]
diff --git a/tools/node_modules/eslint/lib/rules/sort-vars.js b/tools/node_modules/eslint/lib/rules/sort-vars.js
index 334deb0657..b6a2c86779 100644
--- a/tools/node_modules/eslint/lib/rules/sort-vars.js
+++ b/tools/node_modules/eslint/lib/rules/sort-vars.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require variables within the same declaration block to be sorted",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/space-before-blocks.js b/tools/node_modules/eslint/lib/rules/space-before-blocks.js
index 4f22ae6b65..872338effc 100644
--- a/tools/node_modules/eslint/lib/rules/space-before-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/space-before-blocks.js
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before blocks",
category: "Stylistic Issues",
@@ -32,13 +34,13 @@ module.exports = {
type: "object",
properties: {
keywords: {
- enum: ["always", "never"]
+ enum: ["always", "never", "off"]
},
functions: {
- enum: ["always", "never"]
+ enum: ["always", "never", "off"]
},
classes: {
- enum: ["always", "never"]
+ enum: ["always", "never", "off"]
}
},
additionalProperties: false
@@ -51,18 +53,27 @@ module.exports = {
create(context) {
const config = context.options[0],
sourceCode = context.getSourceCode();
- let checkFunctions = true,
- checkKeywords = true,
- checkClasses = true;
+ let alwaysFunctions = true,
+ alwaysKeywords = true,
+ alwaysClasses = true,
+ neverFunctions = false,
+ neverKeywords = false,
+ neverClasses = false;
if (typeof config === "object") {
- checkFunctions = config.functions !== "never";
- checkKeywords = config.keywords !== "never";
- checkClasses = config.classes !== "never";
+ alwaysFunctions = config.functions === "always";
+ alwaysKeywords = config.keywords === "always";
+ alwaysClasses = config.classes === "always";
+ neverFunctions = config.functions === "never";
+ neverKeywords = config.keywords === "never";
+ neverClasses = config.classes === "never";
} else if (config === "never") {
- checkFunctions = false;
- checkKeywords = false;
- checkClasses = false;
+ alwaysFunctions = false;
+ alwaysKeywords = false;
+ alwaysClasses = false;
+ neverFunctions = true;
+ neverKeywords = true;
+ neverClasses = true;
}
/**
@@ -88,35 +99,35 @@ module.exports = {
const hasSpace = sourceCode.isSpaceBetweenTokens(precedingToken, node);
const parent = context.getAncestors().pop();
let requireSpace;
+ let requireNoSpace;
if (parent.type === "FunctionExpression" || parent.type === "FunctionDeclaration") {
- requireSpace = checkFunctions;
+ requireSpace = alwaysFunctions;
+ requireNoSpace = neverFunctions;
} else if (node.type === "ClassBody") {
- requireSpace = checkClasses;
+ requireSpace = alwaysClasses;
+ requireNoSpace = neverClasses;
} else {
- requireSpace = checkKeywords;
+ requireSpace = alwaysKeywords;
+ requireNoSpace = neverKeywords;
}
- if (requireSpace) {
- if (!hasSpace) {
- context.report({
- node,
- message: "Missing space before opening brace.",
- fix(fixer) {
- return fixer.insertTextBefore(node, " ");
- }
- });
- }
- } else {
- if (hasSpace) {
- context.report({
- node,
- message: "Unexpected space before opening brace.",
- fix(fixer) {
- return fixer.removeRange([precedingToken.range[1], node.range[0]]);
- }
- });
- }
+ if (requireSpace && !hasSpace) {
+ context.report({
+ node,
+ message: "Missing space before opening brace.",
+ fix(fixer) {
+ return fixer.insertTextBefore(node, " ");
+ }
+ });
+ } else if (requireNoSpace && hasSpace) {
+ context.report({
+ node,
+ message: "Unexpected space before opening brace.",
+ fix(fixer) {
+ return fixer.removeRange([precedingToken.range[1], node.range[0]]);
+ }
+ });
}
}
}
diff --git a/tools/node_modules/eslint/lib/rules/space-before-function-paren.js b/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
index 81697d64f1..64ba72bf9e 100644
--- a/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
+++ b/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before `function` definition opening parenthesis",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/space-in-parens.js b/tools/node_modules/eslint/lib/rules/space-in-parens.js
index aa13743803..88f4f0b50e 100644
--- a/tools/node_modules/eslint/lib/rules/space-in-parens.js
+++ b/tools/node_modules/eslint/lib/rules/space-in-parens.js
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing inside parentheses",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/space-infix-ops.js b/tools/node_modules/eslint/lib/rules/space-infix-ops.js
index 17b49cc118..45b76795ea 100644
--- a/tools/node_modules/eslint/lib/rules/space-infix-ops.js
+++ b/tools/node_modules/eslint/lib/rules/space-infix-ops.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require spacing around infix operators",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/space-unary-ops.js b/tools/node_modules/eslint/lib/rules/space-unary-ops.js
index 5032b46c3b..b56fa4f2fa 100644
--- a/tools/node_modules/eslint/lib/rules/space-unary-ops.js
+++ b/tools/node_modules/eslint/lib/rules/space-unary-ops.js
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce consistent spacing before or after unary operators",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/spaced-comment.js b/tools/node_modules/eslint/lib/rules/spaced-comment.js
index 6fbe2aac79..d4c86d27cf 100644
--- a/tools/node_modules/eslint/lib/rules/spaced-comment.js
+++ b/tools/node_modules/eslint/lib/rules/spaced-comment.js
@@ -151,6 +151,8 @@ function createNeverStylePattern(markers) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce consistent spacing after the `//` or `/*` in a comment",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/strict.js b/tools/node_modules/eslint/lib/rules/strict.js
index 8b5757738d..bec1baf465 100644
--- a/tools/node_modules/eslint/lib/rules/strict.js
+++ b/tools/node_modules/eslint/lib/rules/strict.js
@@ -80,6 +80,8 @@ function isSimpleParameterList(params) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow strict mode directives",
category: "Strict Mode",
diff --git a/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js b/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
index 23dfff6133..e94b329210 100644
--- a/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
@@ -17,12 +17,15 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "enforce spacing around colons of switch statements",
category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/switch-colon-spacing"
},
+
schema: [
{
type: "object",
@@ -33,6 +36,7 @@ module.exports = {
additionalProperties: false
}
],
+
fixable: "whitespace"
},
diff --git a/tools/node_modules/eslint/lib/rules/symbol-description.js b/tools/node_modules/eslint/lib/rules/symbol-description.js
index 271012b542..7bb4e2dec6 100644
--- a/tools/node_modules/eslint/lib/rules/symbol-description.js
+++ b/tools/node_modules/eslint/lib/rules/symbol-description.js
@@ -18,6 +18,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require symbol descriptions",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/template-curly-spacing.js b/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
index 6702d730cd..ea801cbe5d 100644
--- a/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
@@ -24,6 +24,8 @@ const CLOSE_PAREN = /^\}/;
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow spacing around embedded expressions of template strings",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/template-tag-spacing.js b/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
index aee7ac108b..f258cde3d8 100644
--- a/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow spacing between template tags and their literals",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/unicode-bom.js b/tools/node_modules/eslint/lib/rules/unicode-bom.js
index 03b2d5ae68..20f48e22b3 100644
--- a/tools/node_modules/eslint/lib/rules/unicode-bom.js
+++ b/tools/node_modules/eslint/lib/rules/unicode-bom.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow Unicode byte order mark (BOM)",
category: "Stylistic Issues",
diff --git a/tools/node_modules/eslint/lib/rules/use-isnan.js b/tools/node_modules/eslint/lib/rules/use-isnan.js
index 5bad5b3c6d..343ca04544 100644
--- a/tools/node_modules/eslint/lib/rules/use-isnan.js
+++ b/tools/node_modules/eslint/lib/rules/use-isnan.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "require calls to `isNaN()` when checking for `NaN`",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
index 42d66a8a79..b434491bfa 100644
--- a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
+++ b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
@@ -16,6 +16,8 @@ const doctrine = require("doctrine");
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "enforce valid JSDoc comments",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/valid-typeof.js b/tools/node_modules/eslint/lib/rules/valid-typeof.js
index ac4e74f20b..e3245e8f30 100644
--- a/tools/node_modules/eslint/lib/rules/valid-typeof.js
+++ b/tools/node_modules/eslint/lib/rules/valid-typeof.js
@@ -10,6 +10,8 @@
module.exports = {
meta: {
+ type: "problem",
+
docs: {
description: "enforce comparing `typeof` expressions against valid strings",
category: "Possible Errors",
diff --git a/tools/node_modules/eslint/lib/rules/vars-on-top.js b/tools/node_modules/eslint/lib/rules/vars-on-top.js
index 0489aa61fc..d69c223388 100644
--- a/tools/node_modules/eslint/lib/rules/vars-on-top.js
+++ b/tools/node_modules/eslint/lib/rules/vars-on-top.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require `var` declarations be placed at the top of their containing scope",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/wrap-iife.js b/tools/node_modules/eslint/lib/rules/wrap-iife.js
index d006d30a00..ce272235b4 100644
--- a/tools/node_modules/eslint/lib/rules/wrap-iife.js
+++ b/tools/node_modules/eslint/lib/rules/wrap-iife.js
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require parentheses around immediate `function` invocations",
category: "Best Practices",
diff --git a/tools/node_modules/eslint/lib/rules/wrap-regex.js b/tools/node_modules/eslint/lib/rules/wrap-regex.js
index 1816e0e9e6..4ecbcecbbe 100644
--- a/tools/node_modules/eslint/lib/rules/wrap-regex.js
+++ b/tools/node_modules/eslint/lib/rules/wrap-regex.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require parenthesis around regex literals",
category: "Stylistic Issues",
@@ -19,8 +21,8 @@ module.exports = {
},
schema: [],
-
fixable: "code",
+
messages: {
requireParens: "Wrap the regexp literal in parens to disambiguate the slash."
}
diff --git a/tools/node_modules/eslint/lib/rules/yield-star-spacing.js b/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
index 33a37f0d99..e7712a51db 100644
--- a/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
@@ -11,6 +11,8 @@
module.exports = {
meta: {
+ type: "layout",
+
docs: {
description: "require or disallow spacing around the `*` in `yield*` expressions",
category: "ECMAScript 6",
diff --git a/tools/node_modules/eslint/lib/rules/yoda.js b/tools/node_modules/eslint/lib/rules/yoda.js
index 35368dd4df..8789c001ef 100644
--- a/tools/node_modules/eslint/lib/rules/yoda.js
+++ b/tools/node_modules/eslint/lib/rules/yoda.js
@@ -152,6 +152,8 @@ function same(a, b) {
module.exports = {
meta: {
+ type: "suggestion",
+
docs: {
description: "require or disallow \"Yoda\" conditions",
category: "Best Practices",