eslint 5.8.0 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/cli-engine.js +128 -31
  3. package/lib/cli.js +6 -1
  4. package/lib/options.js +5 -0
  5. package/lib/rules/accessor-pairs.js +4 -0
  6. package/lib/rules/array-bracket-newline.js +5 -0
  7. package/lib/rules/array-bracket-spacing.js +5 -0
  8. package/lib/rules/array-callback-return.js +2 -0
  9. package/lib/rules/array-element-newline.js +4 -0
  10. package/lib/rules/arrow-body-style.js +2 -0
  11. package/lib/rules/arrow-parens.js +2 -0
  12. package/lib/rules/arrow-spacing.js +2 -0
  13. package/lib/rules/block-scoped-var.js +2 -0
  14. package/lib/rules/block-spacing.js +2 -0
  15. package/lib/rules/brace-style.js +2 -0
  16. package/lib/rules/callback-return.js +2 -0
  17. package/lib/rules/camelcase.js +2 -0
  18. package/lib/rules/capitalized-comments.js +4 -0
  19. package/lib/rules/class-methods-use-this.js +3 -0
  20. package/lib/rules/comma-dangle.js +4 -0
  21. package/lib/rules/comma-spacing.js +2 -0
  22. package/lib/rules/comma-style.js +5 -0
  23. package/lib/rules/complexity.js +2 -0
  24. package/lib/rules/computed-property-spacing.js +2 -0
  25. package/lib/rules/consistent-return.js +2 -0
  26. package/lib/rules/consistent-this.js +2 -0
  27. package/lib/rules/constructor-super.js +2 -0
  28. package/lib/rules/curly.js +2 -0
  29. package/lib/rules/default-case.js +2 -0
  30. package/lib/rules/dot-location.js +2 -0
  31. package/lib/rules/dot-notation.js +2 -0
  32. package/lib/rules/eol-last.js +5 -0
  33. package/lib/rules/eqeqeq.js +2 -0
  34. package/lib/rules/for-direction.js +4 -0
  35. package/lib/rules/func-call-spacing.js +4 -0
  36. package/lib/rules/func-name-matching.js +3 -0
  37. package/lib/rules/func-names.js +3 -0
  38. package/lib/rules/func-style.js +3 -0
  39. package/lib/rules/function-paren-newline.js +5 -0
  40. package/lib/rules/generator-star-spacing.js +3 -0
  41. package/lib/rules/getter-return.js +5 -0
  42. package/lib/rules/global-require.js +2 -0
  43. package/lib/rules/guard-for-in.js +2 -0
  44. package/lib/rules/handle-callback-err.js +2 -0
  45. package/lib/rules/id-blacklist.js +2 -0
  46. package/lib/rules/id-length.js +2 -0
  47. package/lib/rules/id-match.js +101 -27
  48. package/lib/rules/implicit-arrow-linebreak.js +4 -0
  49. package/lib/rules/indent-legacy.js +4 -1
  50. package/lib/rules/indent.js +2 -0
  51. package/lib/rules/init-declarations.js +2 -0
  52. package/lib/rules/jsx-quotes.js +2 -0
  53. package/lib/rules/key-spacing.js +4 -3
  54. package/lib/rules/keyword-spacing.js +2 -0
  55. package/lib/rules/line-comment-position.js +2 -0
  56. package/lib/rules/linebreak-style.js +2 -0
  57. package/lib/rules/lines-around-comment.js +2 -0
  58. package/lib/rules/lines-around-directive.js +6 -2
  59. package/lib/rules/lines-between-class-members.js +2 -0
  60. package/lib/rules/max-classes-per-file.js +4 -0
  61. package/lib/rules/max-depth.js +2 -0
  62. package/lib/rules/max-len.js +2 -0
  63. package/lib/rules/max-lines-per-function.js +2 -0
  64. package/lib/rules/max-lines.js +2 -0
  65. package/lib/rules/max-nested-callbacks.js +2 -0
  66. package/lib/rules/max-params.js +2 -0
  67. package/lib/rules/max-statements-per-line.js +2 -0
  68. package/lib/rules/max-statements.js +2 -0
  69. package/lib/rules/multiline-comment-style.js +3 -0
  70. package/lib/rules/multiline-ternary.js +3 -0
  71. package/lib/rules/new-cap.js +2 -0
  72. package/lib/rules/new-parens.js +2 -1
  73. package/lib/rules/newline-after-var.js +5 -2
  74. package/lib/rules/newline-before-return.js +5 -2
  75. package/lib/rules/newline-per-chained-call.js +4 -0
  76. package/lib/rules/no-alert.js +2 -0
  77. package/lib/rules/no-array-constructor.js +2 -0
  78. package/lib/rules/no-async-promise-executor.js +3 -0
  79. package/lib/rules/no-await-in-loop.js +4 -0
  80. package/lib/rules/no-bitwise.js +2 -0
  81. package/lib/rules/no-buffer-constructor.js +4 -0
  82. package/lib/rules/no-caller.js +2 -0
  83. package/lib/rules/no-case-declarations.js +2 -0
  84. package/lib/rules/no-catch-shadow.js +6 -3
  85. package/lib/rules/no-class-assign.js +2 -0
  86. package/lib/rules/no-compare-neg-zero.js +4 -0
  87. package/lib/rules/no-cond-assign.js +2 -0
  88. package/lib/rules/no-confusing-arrow.js +2 -0
  89. package/lib/rules/no-console.js +2 -0
  90. package/lib/rules/no-const-assign.js +2 -0
  91. package/lib/rules/no-constant-condition.js +2 -0
  92. package/lib/rules/no-continue.js +2 -0
  93. package/lib/rules/no-control-regex.js +4 -2
  94. package/lib/rules/no-debugger.js +4 -0
  95. package/lib/rules/no-delete-var.js +2 -0
  96. package/lib/rules/no-div-regex.js +2 -0
  97. package/lib/rules/no-dupe-args.js +2 -0
  98. package/lib/rules/no-dupe-class-members.js +2 -0
  99. package/lib/rules/no-dupe-keys.js +2 -0
  100. package/lib/rules/no-duplicate-case.js +2 -0
  101. package/lib/rules/no-duplicate-imports.js +2 -0
  102. package/lib/rules/no-else-return.js +2 -0
  103. package/lib/rules/no-empty-character-class.js +2 -0
  104. package/lib/rules/no-empty-function.js +2 -0
  105. package/lib/rules/no-empty-pattern.js +2 -0
  106. package/lib/rules/no-empty.js +2 -0
  107. package/lib/rules/no-eq-null.js +2 -0
  108. package/lib/rules/no-eval.js +2 -0
  109. package/lib/rules/no-ex-assign.js +2 -0
  110. package/lib/rules/no-extend-native.js +2 -0
  111. package/lib/rules/no-extra-bind.js +2 -1
  112. package/lib/rules/no-extra-boolean-cast.js +2 -1
  113. package/lib/rules/no-extra-label.js +2 -1
  114. package/lib/rules/no-extra-parens.js +5 -6
  115. package/lib/rules/no-extra-semi.js +2 -0
  116. package/lib/rules/no-fallthrough.js +2 -0
  117. package/lib/rules/no-floating-decimal.js +2 -1
  118. package/lib/rules/no-func-assign.js +2 -0
  119. package/lib/rules/no-global-assign.js +2 -0
  120. package/lib/rules/no-implicit-coercion.js +3 -0
  121. package/lib/rules/no-implicit-globals.js +2 -0
  122. package/lib/rules/no-implied-eval.js +2 -0
  123. package/lib/rules/no-inline-comments.js +2 -0
  124. package/lib/rules/no-inner-declarations.js +2 -0
  125. package/lib/rules/no-invalid-regexp.js +2 -0
  126. package/lib/rules/no-invalid-this.js +2 -0
  127. package/lib/rules/no-irregular-whitespace.js +2 -0
  128. package/lib/rules/no-iterator.js +2 -0
  129. package/lib/rules/no-label-var.js +2 -0
  130. package/lib/rules/no-labels.js +2 -0
  131. package/lib/rules/no-lone-blocks.js +2 -0
  132. package/lib/rules/no-lonely-if.js +2 -1
  133. package/lib/rules/no-loop-func.js +2 -0
  134. package/lib/rules/no-magic-numbers.js +3 -0
  135. package/lib/rules/no-misleading-character-class.js +4 -0
  136. package/lib/rules/no-mixed-operators.js +3 -0
  137. package/lib/rules/no-mixed-requires.js +2 -0
  138. package/lib/rules/no-mixed-spaces-and-tabs.js +2 -0
  139. package/lib/rules/no-multi-assign.js +3 -0
  140. package/lib/rules/no-multi-spaces.js +2 -0
  141. package/lib/rules/no-multi-str.js +2 -0
  142. package/lib/rules/no-multiple-empty-lines.js +2 -0
  143. package/lib/rules/no-native-reassign.js +4 -1
  144. package/lib/rules/no-negated-condition.js +2 -0
  145. package/lib/rules/no-negated-in-lhs.js +5 -2
  146. package/lib/rules/no-nested-ternary.js +2 -0
  147. package/lib/rules/no-new-func.js +2 -0
  148. package/lib/rules/no-new-object.js +2 -0
  149. package/lib/rules/no-new-require.js +2 -0
  150. package/lib/rules/no-new-symbol.js +2 -0
  151. package/lib/rules/no-new-wrappers.js +2 -0
  152. package/lib/rules/no-new.js +2 -0
  153. package/lib/rules/no-obj-calls.js +2 -0
  154. package/lib/rules/no-octal-escape.js +2 -0
  155. package/lib/rules/no-octal.js +2 -0
  156. package/lib/rules/no-param-reassign.js +2 -0
  157. package/lib/rules/no-path-concat.js +2 -0
  158. package/lib/rules/no-plusplus.js +2 -0
  159. package/lib/rules/no-process-env.js +2 -0
  160. package/lib/rules/no-process-exit.js +2 -0
  161. package/lib/rules/no-proto.js +2 -0
  162. package/lib/rules/no-prototype-builtins.js +2 -0
  163. package/lib/rules/no-redeclare.js +2 -0
  164. package/lib/rules/no-regex-spaces.js +2 -1
  165. package/lib/rules/no-restricted-globals.js +2 -0
  166. package/lib/rules/no-restricted-imports.js +40 -22
  167. package/lib/rules/no-restricted-modules.js +2 -0
  168. package/lib/rules/no-restricted-properties.js +2 -0
  169. package/lib/rules/no-restricted-syntax.js +2 -0
  170. package/lib/rules/no-return-assign.js +2 -0
  171. package/lib/rules/no-return-await.js +4 -0
  172. package/lib/rules/no-script-url.js +2 -0
  173. package/lib/rules/no-self-assign.js +2 -0
  174. package/lib/rules/no-self-compare.js +2 -0
  175. package/lib/rules/no-sequences.js +2 -0
  176. package/lib/rules/no-shadow-restricted-names.js +2 -0
  177. package/lib/rules/no-shadow.js +2 -0
  178. package/lib/rules/no-spaced-func.js +4 -1
  179. package/lib/rules/no-sparse-arrays.js +2 -0
  180. package/lib/rules/no-sync.js +2 -0
  181. package/lib/rules/no-tabs.js +2 -0
  182. package/lib/rules/no-template-curly-in-string.js +2 -0
  183. package/lib/rules/no-ternary.js +2 -0
  184. package/lib/rules/no-this-before-super.js +2 -0
  185. package/lib/rules/no-throw-literal.js +2 -0
  186. package/lib/rules/no-trailing-spaces.js +2 -0
  187. package/lib/rules/no-undef-init.js +2 -1
  188. package/lib/rules/no-undef.js +2 -0
  189. package/lib/rules/no-undefined.js +2 -0
  190. package/lib/rules/no-underscore-dangle.js +2 -0
  191. package/lib/rules/no-unexpected-multiline.js +2 -0
  192. package/lib/rules/no-unmodified-loop-condition.js +2 -0
  193. package/lib/rules/no-unneeded-ternary.js +2 -0
  194. package/lib/rules/no-unreachable.js +2 -1
  195. package/lib/rules/no-unsafe-finally.js +2 -0
  196. package/lib/rules/no-unsafe-negation.js +3 -0
  197. package/lib/rules/no-unused-expressions.js +2 -0
  198. package/lib/rules/no-unused-labels.js +2 -1
  199. package/lib/rules/no-unused-vars.js +36 -12
  200. package/lib/rules/no-use-before-define.js +2 -0
  201. package/lib/rules/no-useless-call.js +2 -0
  202. package/lib/rules/no-useless-computed-key.js +2 -1
  203. package/lib/rules/no-useless-concat.js +2 -0
  204. package/lib/rules/no-useless-constructor.js +2 -0
  205. package/lib/rules/no-useless-escape.js +2 -0
  206. package/lib/rules/no-useless-rename.js +4 -0
  207. package/lib/rules/no-useless-return.js +3 -0
  208. package/lib/rules/no-var.js +2 -0
  209. package/lib/rules/no-void.js +2 -0
  210. package/lib/rules/no-warning-comments.js +2 -0
  211. package/lib/rules/no-whitespace-before-property.js +2 -0
  212. package/lib/rules/no-with.js +2 -0
  213. package/lib/rules/nonblock-statement-body-position.js +4 -0
  214. package/lib/rules/object-curly-newline.js +4 -0
  215. package/lib/rules/object-curly-spacing.js +2 -0
  216. package/lib/rules/object-property-newline.js +3 -2
  217. package/lib/rules/object-shorthand.js +2 -0
  218. package/lib/rules/one-var-declaration-per-line.js +2 -0
  219. package/lib/rules/one-var.js +2 -0
  220. package/lib/rules/operator-assignment.js +2 -0
  221. package/lib/rules/operator-linebreak.js +2 -0
  222. package/lib/rules/padded-blocks.js +2 -0
  223. package/lib/rules/padding-line-between-statements.js +4 -0
  224. package/lib/rules/prefer-arrow-callback.js +2 -0
  225. package/lib/rules/prefer-const.js +53 -7
  226. package/lib/rules/prefer-destructuring.js +3 -0
  227. package/lib/rules/prefer-numeric-literals.js +2 -1
  228. package/lib/rules/prefer-object-spread.js +4 -0
  229. package/lib/rules/prefer-promise-reject-errors.js +4 -0
  230. package/lib/rules/prefer-reflect.js +4 -1
  231. package/lib/rules/prefer-rest-params.js +2 -0
  232. package/lib/rules/prefer-spread.js +2 -1
  233. package/lib/rules/prefer-template.js +2 -1
  234. package/lib/rules/quote-props.js +2 -0
  235. package/lib/rules/quotes.js +2 -0
  236. package/lib/rules/radix.js +2 -0
  237. package/lib/rules/require-atomic-updates.js +4 -0
  238. package/lib/rules/require-await.js +3 -0
  239. package/lib/rules/require-jsdoc.js +2 -0
  240. package/lib/rules/require-unicode-regexp.js +4 -0
  241. package/lib/rules/require-yield.js +2 -0
  242. package/lib/rules/rest-spread-spacing.js +4 -0
  243. package/lib/rules/semi-spacing.js +2 -0
  244. package/lib/rules/semi-style.js +3 -0
  245. package/lib/rules/semi.js +2 -0
  246. package/lib/rules/sort-imports.js +2 -0
  247. package/lib/rules/sort-keys.js +3 -0
  248. package/lib/rules/sort-vars.js +2 -0
  249. package/lib/rules/space-before-blocks.js +46 -35
  250. package/lib/rules/space-before-function-paren.js +2 -0
  251. package/lib/rules/space-in-parens.js +2 -0
  252. package/lib/rules/space-infix-ops.js +2 -0
  253. package/lib/rules/space-unary-ops.js +2 -0
  254. package/lib/rules/spaced-comment.js +2 -0
  255. package/lib/rules/strict.js +2 -0
  256. package/lib/rules/switch-colon-spacing.js +4 -0
  257. package/lib/rules/symbol-description.js +2 -0
  258. package/lib/rules/template-curly-spacing.js +2 -0
  259. package/lib/rules/template-tag-spacing.js +2 -0
  260. package/lib/rules/unicode-bom.js +2 -0
  261. package/lib/rules/use-isnan.js +2 -0
  262. package/lib/rules/valid-jsdoc.js +2 -0
  263. package/lib/rules/valid-typeof.js +2 -0
  264. package/lib/rules/vars-on-top.js +2 -0
  265. package/lib/rules/wrap-iife.js +2 -0
  266. package/lib/rules/wrap-regex.js +3 -1
  267. package/lib/rules/yield-star-spacing.js +2 -0
  268. package/lib/rules/yoda.js +2 -0
  269. package/package.json +3 -3
@@ -24,6 +24,8 @@ const propertyDefinitionMethods = new Set(["defineProperty", "defineProperties"]
24
24
 
25
25
  module.exports = {
26
26
  meta: {
27
+ type: "suggestion",
28
+
27
29
  docs: {
28
30
  description: "disallow extending native types",
29
31
  category: "Best Practices",
@@ -22,6 +22,8 @@ const SIDE_EFFECT_FREE_NODE_TYPES = new Set(["Literal", "Identifier", "ThisExpre
22
22
 
23
23
  module.exports = {
24
24
  meta: {
25
+ type: "suggestion",
26
+
25
27
  docs: {
26
28
  description: "disallow unnecessary calls to `.bind()`",
27
29
  category: "Best Practices",
@@ -30,7 +32,6 @@ module.exports = {
30
32
  },
31
33
 
32
34
  schema: [],
33
-
34
35
  fixable: "code",
35
36
 
36
37
  messages: {
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow unnecessary boolean casts",
22
24
  category: "Possible Errors",
@@ -25,7 +27,6 @@ module.exports = {
25
27
  },
26
28
 
27
29
  schema: [],
28
-
29
30
  fixable: "code",
30
31
 
31
32
  messages: {
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow unnecessary labels",
22
24
  category: "Best Practices",
@@ -25,7 +27,6 @@ module.exports = {
25
27
  },
26
28
 
27
29
  schema: [],
28
-
29
30
  fixable: "code",
30
31
 
31
32
  messages: {
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils.js");
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "layout",
16
+
15
17
  docs: {
16
18
  description: "disallow unnecessary parentheses",
17
19
  category: "Possible Errors",
@@ -382,8 +384,7 @@ module.exports = {
382
384
  * Allow extra parens around a new expression if
383
385
  * there are intervening parentheses.
384
386
  */
385
- callee.type === "MemberExpression" &&
386
- doesMemberExpressionContainCallExpression(callee)
387
+ (callee.type === "MemberExpression" && doesMemberExpressionContainCallExpression(callee))
387
388
  )
388
389
  ) {
389
390
  report(node.callee);
@@ -574,15 +575,13 @@ module.exports = {
574
575
  * If `let` is the only thing on the left side of the loop, it's the loop variable: `for ((let) of foo);`
575
576
  * Removing it will cause a syntax error, because it will be parsed as the start of a VariableDeclarator.
576
577
  */
577
- firstLeftToken.range[1] === node.left.range[1] ||
578
-
579
- /*
578
+ (firstLeftToken.range[1] === node.left.range[1] || /*
580
579
  * If `let` is followed by a `[` token, it's a property access on the `let` value: `for ((let[foo]) of bar);`
581
580
  * Removing it will cause the property access to be parsed as a destructuring declaration of `foo` instead.
582
581
  */
583
582
  astUtils.isOpeningBracketToken(
584
583
  sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken)
585
- )
584
+ ))
586
585
  )
587
586
  ) {
588
587
  tokensToIgnore.add(firstLeftToken);
@@ -18,6 +18,8 @@ const astUtils = require("../util/ast-utils");
18
18
 
19
19
  module.exports = {
20
20
  meta: {
21
+ type: "suggestion",
22
+
21
23
  docs: {
22
24
  description: "disallow unnecessary semicolons",
23
25
  category: "Possible Errors",
@@ -55,6 +55,8 @@ function hasBlankLinesBetween(node, token) {
55
55
 
56
56
  module.exports = {
57
57
  meta: {
58
+ type: "problem",
59
+
58
60
  docs: {
59
61
  description: "disallow fallthrough of `case` statements",
60
62
  category: "Best Practices",
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow leading or trailing decimal points in numeric literals",
22
24
  category: "Best Practices",
@@ -25,7 +27,6 @@ module.exports = {
25
27
  },
26
28
 
27
29
  schema: [],
28
-
29
30
  fixable: "code"
30
31
  },
31
32
 
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
13
13
 
14
14
  module.exports = {
15
15
  meta: {
16
+ type: "problem",
17
+
16
18
  docs: {
17
19
  description: "disallow reassigning `function` declarations",
18
20
  category: "Possible Errors",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow assignments to native objects or read-only global variables",
16
18
  category: "Best Practices",
@@ -152,6 +152,8 @@ function getNonEmptyOperand(node) {
152
152
 
153
153
  module.exports = {
154
154
  meta: {
155
+ type: "suggestion",
156
+
155
157
  docs: {
156
158
  description: "disallow shorthand type conversions",
157
159
  category: "Best Practices",
@@ -160,6 +162,7 @@ module.exports = {
160
162
  },
161
163
 
162
164
  fixable: "code",
165
+
163
166
  schema: [{
164
167
  type: "object",
165
168
  properties: {
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow variable and `function` declarations in the global scope",
16
18
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow the use of `eval()`-like methods",
16
18
  category: "Best Practices",
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils");
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow inline comments after code",
17
19
  category: "Stylistic Issues",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "problem",
15
+
14
16
  docs: {
15
17
  description: "disallow variable or `function` declarations in nested blocks",
16
18
  category: "Possible Errors",
@@ -19,6 +19,8 @@ const undefined1 = void 0;
19
19
 
20
20
  module.exports = {
21
21
  meta: {
22
+ type: "problem",
23
+
22
24
  docs: {
23
25
  description: "disallow invalid regular expression strings in `RegExp` constructors",
24
26
  category: "Possible Errors",
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow `this` keywords outside of classes or class-like objects",
22
24
  category: "Best Practices",
@@ -27,6 +27,8 @@ const LINE_BREAK = astUtils.createGlobalLinebreakMatcher();
27
27
 
28
28
  module.exports = {
29
29
  meta: {
30
+ type: "problem",
31
+
30
32
  docs: {
31
33
  description: "disallow irregular whitespace outside of strings and comments",
32
34
  category: "Possible Errors",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow the use of the `__iterator__` property",
16
18
  category: "Best Practices",
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow labels that share a name with a variable",
22
24
  category: "Variables",
@@ -16,6 +16,8 @@ const astUtils = require("../util/ast-utils");
16
16
 
17
17
  module.exports = {
18
18
  meta: {
19
+ type: "suggestion",
20
+
19
21
  docs: {
20
22
  description: "disallow labeled statements",
21
23
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow unnecessary nested blocks",
16
18
  category: "Best Practices",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "suggestion",
14
+
13
15
  docs: {
14
16
  description: "disallow `if` statements as the only statement in `else` blocks",
15
17
  category: "Stylistic Issues",
@@ -18,7 +20,6 @@ module.exports = {
18
20
  },
19
21
 
20
22
  schema: [],
21
-
22
23
  fixable: "code"
23
24
  },
24
25
 
@@ -154,6 +154,8 @@ function isSafe(loopNode, reference) {
154
154
 
155
155
  module.exports = {
156
156
  meta: {
157
+ type: "suggestion",
158
+
157
159
  docs: {
158
160
  description: "disallow `function` declarations and expressions inside loop statements",
159
161
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow magic numbers",
16
18
  category: "Best Practices",
@@ -40,6 +42,7 @@ module.exports = {
40
42
  },
41
43
  additionalProperties: false
42
44
  }],
45
+
43
46
  messages: {
44
47
  useConst: "Number constants declarations must use 'const'.",
45
48
  noMagic: "No magic number: {{raw}}."
@@ -101,13 +101,17 @@ const kinds = Object.keys(hasCharacterSequence);
101
101
 
102
102
  module.exports = {
103
103
  meta: {
104
+ type: "problem",
105
+
104
106
  docs: {
105
107
  description: "disallow characters which are made with multiple code points in character class syntax",
106
108
  category: "Possible Errors",
107
109
  recommended: false,
108
110
  url: "https://eslint.org/docs/rules/no-misleading-character-class"
109
111
  },
112
+
110
113
  schema: [],
114
+
111
115
  messages: {
112
116
  surrogatePairWithoutUFlag: "Unexpected surrogate pair in character class. Use 'u' flag.",
113
117
  combiningClass: "Unexpected combined character in character class.",
@@ -71,12 +71,15 @@ function includesBothInAGroup(groups, left, right) {
71
71
 
72
72
  module.exports = {
73
73
  meta: {
74
+ type: "suggestion",
75
+
74
76
  docs: {
75
77
  description: "disallow mixed binary operators",
76
78
  category: "Stylistic Issues",
77
79
  recommended: false,
78
80
  url: "https://eslint.org/docs/rules/no-mixed-operators"
79
81
  },
82
+
80
83
  schema: [
81
84
  {
82
85
  type: "object",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow `require` calls to be mixed with regular variable declarations",
16
18
  category: "Node.js and CommonJS",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "layout",
14
+
13
15
  docs: {
14
16
  description: "disallow mixed spaces and tabs for indentation",
15
17
  category: "Stylistic Issues",
@@ -12,12 +12,15 @@
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow use of chained assignment expressions",
17
19
  category: "Stylistic Issues",
18
20
  recommended: false,
19
21
  url: "https://eslint.org/docs/rules/no-multi-assign"
20
22
  },
23
+
21
24
  schema: []
22
25
  },
23
26
 
@@ -13,6 +13,8 @@ const astUtils = require("../util/ast-utils");
13
13
 
14
14
  module.exports = {
15
15
  meta: {
16
+ type: "layout",
17
+
16
18
  docs: {
17
19
  description: "disallow multiple spaces",
18
20
  category: "Best Practices",
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
17
17
 
18
18
  module.exports = {
19
19
  meta: {
20
+ type: "suggestion",
21
+
20
22
  docs: {
21
23
  description: "disallow multiline strings",
22
24
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "layout",
15
+
14
16
  docs: {
15
17
  description: "disallow multiple empty lines",
16
18
  category: "Stylistic Issues",
@@ -12,16 +12,19 @@
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow assignments to native objects or read-only global variables",
17
19
  category: "Best Practices",
18
20
  recommended: false,
19
- replacedBy: ["no-global-assign"],
20
21
  url: "https://eslint.org/docs/rules/no-native-reassign"
21
22
  },
22
23
 
23
24
  deprecated: true,
24
25
 
26
+ replacedBy: ["no-global-assign"],
27
+
25
28
  schema: [
26
29
  {
27
30
  type: "object",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "suggestion",
14
+
13
15
  docs: {
14
16
  description: "disallow negated conditions",
15
17
  category: "Stylistic Issues",
@@ -12,15 +12,18 @@
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "problem",
16
+
15
17
  docs: {
16
18
  description: "disallow negating the left operand in `in` expressions",
17
19
  category: "Possible Errors",
18
20
  recommended: false,
19
- replacedBy: ["no-unsafe-negation"],
20
21
  url: "https://eslint.org/docs/rules/no-negated-in-lhs"
21
22
  },
22
- deprecated: true,
23
23
 
24
+ replacedBy: ["no-unsafe-negation"],
25
+
26
+ deprecated: true,
24
27
  schema: []
25
28
  },
26
29
 
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow nested ternary expressions",
16
18
  category: "Stylistic Issues",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow `new` operators with the `Function` object",
16
18
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow `Object` constructors",
16
18
  category: "Stylistic Issues",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow `new` operators with calls to `require`",
16
18
  category: "Node.js and CommonJS",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "problem",
15
+
14
16
  docs: {
15
17
  description: "disallow `new` operators with the `Symbol` object",
16
18
  category: "ECMAScript 6",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
16
18
  category: "Best Practices",
@@ -12,6 +12,8 @@
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow `new` operators outside of assignments or comparisons",
17
19
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "problem",
15
+
14
16
  docs: {
15
17
  description: "disallow calling global object properties as functions",
16
18
  category: "Possible Errors",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow octal escape sequences in string literals",
16
18
  category: "Best Practices",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow octal literals",
16
18
  category: "Best Practices",
@@ -12,6 +12,8 @@ const stopNodePattern = /(?:Statement|Declaration|Function(?:Expression)?|Progra
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow reassigning `function` parameters",
17
19
  category: "Best Practices",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "suggestion",
14
+
13
15
  docs: {
14
16
  description: "disallow string concatenation with `__dirname` and `__filename`",
15
17
  category: "Node.js and CommonJS",
@@ -12,6 +12,8 @@
12
12
 
13
13
  module.exports = {
14
14
  meta: {
15
+ type: "suggestion",
16
+
15
17
  docs: {
16
18
  description: "disallow the unary operators `++` and `--`",
17
19
  category: "Stylistic Issues",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "suggestion",
14
+
13
15
  docs: {
14
16
  description: "disallow the use of `process.env`",
15
17
  category: "Node.js and CommonJS",
@@ -10,6 +10,8 @@
10
10
 
11
11
  module.exports = {
12
12
  meta: {
13
+ type: "suggestion",
14
+
13
15
  docs: {
14
16
  description: "disallow the use of `process.exit()`",
15
17
  category: "Node.js and CommonJS",
@@ -11,6 +11,8 @@
11
11
 
12
12
  module.exports = {
13
13
  meta: {
14
+ type: "suggestion",
15
+
14
16
  docs: {
15
17
  description: "disallow the use of the `__proto__` property",
16
18
  category: "Best Practices",