eslint 8.18.0 → 8.21.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 (299) hide show
  1. package/README.md +3 -9
  2. package/lib/config/default-config.js +16 -7
  3. package/lib/config/flat-config-array.js +41 -2
  4. package/lib/config/flat-config-helpers.js +9 -1
  5. package/lib/eslint/eslint-helpers.js +621 -0
  6. package/lib/eslint/flat-eslint.js +1164 -0
  7. package/lib/eslint/index.js +3 -1
  8. package/lib/linter/linter.js +72 -4
  9. package/lib/rule-tester/flat-rule-tester.js +41 -38
  10. package/lib/rule-tester/rule-tester.js +42 -0
  11. package/lib/rules/accessor-pairs.js +1 -1
  12. package/lib/rules/array-bracket-newline.js +1 -1
  13. package/lib/rules/array-bracket-spacing.js +1 -1
  14. package/lib/rules/array-callback-return.js +1 -1
  15. package/lib/rules/array-element-newline.js +1 -1
  16. package/lib/rules/arrow-body-style.js +1 -1
  17. package/lib/rules/arrow-parens.js +1 -1
  18. package/lib/rules/arrow-spacing.js +1 -1
  19. package/lib/rules/block-scoped-var.js +1 -1
  20. package/lib/rules/block-spacing.js +1 -1
  21. package/lib/rules/brace-style.js +1 -1
  22. package/lib/rules/callback-return.js +1 -1
  23. package/lib/rules/camelcase.js +1 -1
  24. package/lib/rules/capitalized-comments.js +1 -1
  25. package/lib/rules/class-methods-use-this.js +1 -1
  26. package/lib/rules/comma-dangle.js +1 -1
  27. package/lib/rules/comma-spacing.js +36 -42
  28. package/lib/rules/comma-style.js +1 -1
  29. package/lib/rules/complexity.js +1 -1
  30. package/lib/rules/computed-property-spacing.js +1 -1
  31. package/lib/rules/consistent-return.js +1 -1
  32. package/lib/rules/consistent-this.js +1 -1
  33. package/lib/rules/constructor-super.js +1 -1
  34. package/lib/rules/curly.js +1 -1
  35. package/lib/rules/default-case-last.js +1 -1
  36. package/lib/rules/default-case.js +1 -1
  37. package/lib/rules/default-param-last.js +1 -1
  38. package/lib/rules/dot-location.js +1 -1
  39. package/lib/rules/dot-notation.js +1 -1
  40. package/lib/rules/eol-last.js +1 -1
  41. package/lib/rules/eqeqeq.js +1 -1
  42. package/lib/rules/for-direction.js +1 -1
  43. package/lib/rules/func-call-spacing.js +1 -1
  44. package/lib/rules/func-name-matching.js +1 -1
  45. package/lib/rules/func-names.js +1 -1
  46. package/lib/rules/func-style.js +1 -1
  47. package/lib/rules/function-call-argument-newline.js +1 -1
  48. package/lib/rules/function-paren-newline.js +1 -1
  49. package/lib/rules/generator-star-spacing.js +1 -1
  50. package/lib/rules/getter-return.js +1 -1
  51. package/lib/rules/global-require.js +1 -1
  52. package/lib/rules/grouped-accessor-pairs.js +1 -1
  53. package/lib/rules/guard-for-in.js +1 -1
  54. package/lib/rules/handle-callback-err.js +1 -1
  55. package/lib/rules/id-blacklist.js +1 -1
  56. package/lib/rules/id-denylist.js +1 -1
  57. package/lib/rules/id-length.js +1 -1
  58. package/lib/rules/id-match.js +1 -1
  59. package/lib/rules/implicit-arrow-linebreak.js +1 -1
  60. package/lib/rules/indent-legacy.js +1 -1
  61. package/lib/rules/indent.js +3 -3
  62. package/lib/rules/init-declarations.js +1 -1
  63. package/lib/rules/jsx-quotes.js +1 -1
  64. package/lib/rules/key-spacing.js +5 -2
  65. package/lib/rules/keyword-spacing.js +1 -1
  66. package/lib/rules/line-comment-position.js +1 -1
  67. package/lib/rules/linebreak-style.js +1 -1
  68. package/lib/rules/lines-around-comment.js +12 -5
  69. package/lib/rules/lines-around-directive.js +1 -1
  70. package/lib/rules/lines-between-class-members.js +1 -1
  71. package/lib/rules/max-classes-per-file.js +1 -1
  72. package/lib/rules/max-depth.js +1 -1
  73. package/lib/rules/max-len.js +1 -1
  74. package/lib/rules/max-lines-per-function.js +1 -1
  75. package/lib/rules/max-lines.js +1 -1
  76. package/lib/rules/max-nested-callbacks.js +1 -1
  77. package/lib/rules/max-params.js +1 -1
  78. package/lib/rules/max-statements-per-line.js +1 -1
  79. package/lib/rules/max-statements.js +1 -1
  80. package/lib/rules/multiline-comment-style.js +1 -1
  81. package/lib/rules/multiline-ternary.js +1 -1
  82. package/lib/rules/new-cap.js +1 -1
  83. package/lib/rules/new-parens.js +1 -1
  84. package/lib/rules/newline-after-var.js +1 -1
  85. package/lib/rules/newline-before-return.js +1 -1
  86. package/lib/rules/newline-per-chained-call.js +1 -1
  87. package/lib/rules/no-alert.js +1 -1
  88. package/lib/rules/no-array-constructor.js +1 -1
  89. package/lib/rules/no-async-promise-executor.js +1 -1
  90. package/lib/rules/no-await-in-loop.js +1 -1
  91. package/lib/rules/no-bitwise.js +1 -1
  92. package/lib/rules/no-buffer-constructor.js +1 -1
  93. package/lib/rules/no-caller.js +1 -1
  94. package/lib/rules/no-case-declarations.js +1 -1
  95. package/lib/rules/no-catch-shadow.js +1 -1
  96. package/lib/rules/no-class-assign.js +1 -1
  97. package/lib/rules/no-compare-neg-zero.js +1 -1
  98. package/lib/rules/no-cond-assign.js +1 -1
  99. package/lib/rules/no-confusing-arrow.js +1 -1
  100. package/lib/rules/no-console.js +1 -1
  101. package/lib/rules/no-const-assign.js +1 -1
  102. package/lib/rules/no-constant-binary-expression.js +1 -1
  103. package/lib/rules/no-constant-condition.js +1 -1
  104. package/lib/rules/no-constructor-return.js +1 -1
  105. package/lib/rules/no-continue.js +1 -1
  106. package/lib/rules/no-control-regex.js +1 -1
  107. package/lib/rules/no-debugger.js +1 -1
  108. package/lib/rules/no-delete-var.js +1 -1
  109. package/lib/rules/no-div-regex.js +1 -1
  110. package/lib/rules/no-dupe-args.js +1 -1
  111. package/lib/rules/no-dupe-class-members.js +1 -1
  112. package/lib/rules/no-dupe-else-if.js +1 -1
  113. package/lib/rules/no-dupe-keys.js +1 -1
  114. package/lib/rules/no-duplicate-case.js +1 -1
  115. package/lib/rules/no-duplicate-imports.js +1 -1
  116. package/lib/rules/no-else-return.js +1 -1
  117. package/lib/rules/no-empty-character-class.js +1 -1
  118. package/lib/rules/no-empty-function.js +1 -1
  119. package/lib/rules/no-empty-pattern.js +1 -1
  120. package/lib/rules/no-empty.js +1 -1
  121. package/lib/rules/no-eq-null.js +1 -1
  122. package/lib/rules/no-eval.js +1 -1
  123. package/lib/rules/no-ex-assign.js +1 -1
  124. package/lib/rules/no-extend-native.js +1 -1
  125. package/lib/rules/no-extra-bind.js +1 -1
  126. package/lib/rules/no-extra-boolean-cast.js +1 -1
  127. package/lib/rules/no-extra-label.js +1 -1
  128. package/lib/rules/no-extra-parens.js +1 -1
  129. package/lib/rules/no-extra-semi.js +1 -1
  130. package/lib/rules/no-fallthrough.js +1 -1
  131. package/lib/rules/no-floating-decimal.js +1 -1
  132. package/lib/rules/no-func-assign.js +1 -1
  133. package/lib/rules/no-global-assign.js +1 -1
  134. package/lib/rules/no-implicit-coercion.js +1 -1
  135. package/lib/rules/no-implicit-globals.js +1 -1
  136. package/lib/rules/no-implied-eval.js +1 -1
  137. package/lib/rules/no-import-assign.js +1 -1
  138. package/lib/rules/no-inline-comments.js +1 -1
  139. package/lib/rules/no-inner-declarations.js +1 -1
  140. package/lib/rules/no-invalid-regexp.js +1 -1
  141. package/lib/rules/no-invalid-this.js +1 -1
  142. package/lib/rules/no-irregular-whitespace.js +1 -1
  143. package/lib/rules/no-iterator.js +1 -1
  144. package/lib/rules/no-label-var.js +1 -1
  145. package/lib/rules/no-labels.js +1 -1
  146. package/lib/rules/no-lone-blocks.js +1 -1
  147. package/lib/rules/no-lonely-if.js +1 -1
  148. package/lib/rules/no-loop-func.js +1 -1
  149. package/lib/rules/no-loss-of-precision.js +1 -1
  150. package/lib/rules/no-magic-numbers.js +1 -1
  151. package/lib/rules/no-misleading-character-class.js +1 -1
  152. package/lib/rules/no-mixed-operators.js +1 -1
  153. package/lib/rules/no-mixed-requires.js +1 -1
  154. package/lib/rules/no-mixed-spaces-and-tabs.js +1 -1
  155. package/lib/rules/no-multi-assign.js +1 -1
  156. package/lib/rules/no-multi-spaces.js +1 -1
  157. package/lib/rules/no-multi-str.js +1 -1
  158. package/lib/rules/no-multiple-empty-lines.js +1 -1
  159. package/lib/rules/no-native-reassign.js +1 -1
  160. package/lib/rules/no-negated-condition.js +1 -1
  161. package/lib/rules/no-negated-in-lhs.js +1 -1
  162. package/lib/rules/no-nested-ternary.js +1 -1
  163. package/lib/rules/no-new-func.js +1 -1
  164. package/lib/rules/no-new-object.js +1 -1
  165. package/lib/rules/no-new-require.js +1 -1
  166. package/lib/rules/no-new-symbol.js +1 -1
  167. package/lib/rules/no-new-wrappers.js +1 -1
  168. package/lib/rules/no-new.js +1 -1
  169. package/lib/rules/no-nonoctal-decimal-escape.js +1 -1
  170. package/lib/rules/no-obj-calls.js +1 -1
  171. package/lib/rules/no-octal-escape.js +1 -1
  172. package/lib/rules/no-octal.js +1 -1
  173. package/lib/rules/no-param-reassign.js +1 -1
  174. package/lib/rules/no-path-concat.js +1 -1
  175. package/lib/rules/no-plusplus.js +1 -1
  176. package/lib/rules/no-process-env.js +1 -1
  177. package/lib/rules/no-process-exit.js +1 -1
  178. package/lib/rules/no-promise-executor-return.js +1 -1
  179. package/lib/rules/no-proto.js +1 -1
  180. package/lib/rules/no-prototype-builtins.js +1 -1
  181. package/lib/rules/no-redeclare.js +1 -1
  182. package/lib/rules/no-regex-spaces.js +1 -1
  183. package/lib/rules/no-restricted-exports.js +1 -1
  184. package/lib/rules/no-restricted-globals.js +1 -1
  185. package/lib/rules/no-restricted-imports.js +77 -12
  186. package/lib/rules/no-restricted-modules.js +1 -1
  187. package/lib/rules/no-restricted-properties.js +1 -1
  188. package/lib/rules/no-restricted-syntax.js +1 -1
  189. package/lib/rules/no-return-assign.js +1 -1
  190. package/lib/rules/no-return-await.js +1 -1
  191. package/lib/rules/no-script-url.js +1 -1
  192. package/lib/rules/no-self-assign.js +1 -1
  193. package/lib/rules/no-self-compare.js +1 -1
  194. package/lib/rules/no-sequences.js +1 -1
  195. package/lib/rules/no-setter-return.js +1 -1
  196. package/lib/rules/no-shadow-restricted-names.js +1 -1
  197. package/lib/rules/no-shadow.js +1 -1
  198. package/lib/rules/no-spaced-func.js +1 -1
  199. package/lib/rules/no-sparse-arrays.js +1 -1
  200. package/lib/rules/no-sync.js +1 -1
  201. package/lib/rules/no-tabs.js +1 -1
  202. package/lib/rules/no-template-curly-in-string.js +1 -1
  203. package/lib/rules/no-ternary.js +1 -1
  204. package/lib/rules/no-this-before-super.js +1 -1
  205. package/lib/rules/no-throw-literal.js +1 -1
  206. package/lib/rules/no-trailing-spaces.js +1 -1
  207. package/lib/rules/no-undef-init.js +1 -1
  208. package/lib/rules/no-undef.js +1 -1
  209. package/lib/rules/no-undefined.js +1 -1
  210. package/lib/rules/no-underscore-dangle.js +1 -1
  211. package/lib/rules/no-unexpected-multiline.js +1 -1
  212. package/lib/rules/no-unmodified-loop-condition.js +1 -1
  213. package/lib/rules/no-unneeded-ternary.js +1 -1
  214. package/lib/rules/no-unreachable-loop.js +1 -1
  215. package/lib/rules/no-unreachable.js +1 -1
  216. package/lib/rules/no-unsafe-finally.js +1 -1
  217. package/lib/rules/no-unsafe-negation.js +1 -1
  218. package/lib/rules/no-unsafe-optional-chaining.js +1 -1
  219. package/lib/rules/no-unused-expressions.js +1 -1
  220. package/lib/rules/no-unused-labels.js +1 -1
  221. package/lib/rules/no-unused-private-class-members.js +1 -1
  222. package/lib/rules/no-unused-vars.js +1 -1
  223. package/lib/rules/no-use-before-define.js +1 -1
  224. package/lib/rules/no-useless-backreference.js +1 -1
  225. package/lib/rules/no-useless-call.js +1 -1
  226. package/lib/rules/no-useless-catch.js +1 -1
  227. package/lib/rules/no-useless-computed-key.js +1 -1
  228. package/lib/rules/no-useless-concat.js +1 -1
  229. package/lib/rules/no-useless-constructor.js +1 -1
  230. package/lib/rules/no-useless-escape.js +1 -1
  231. package/lib/rules/no-useless-rename.js +1 -1
  232. package/lib/rules/no-useless-return.js +1 -1
  233. package/lib/rules/no-var.js +1 -1
  234. package/lib/rules/no-void.js +1 -1
  235. package/lib/rules/no-warning-comments.js +27 -41
  236. package/lib/rules/no-whitespace-before-property.js +1 -1
  237. package/lib/rules/no-with.js +1 -1
  238. package/lib/rules/nonblock-statement-body-position.js +1 -1
  239. package/lib/rules/object-curly-newline.js +1 -1
  240. package/lib/rules/object-curly-spacing.js +1 -1
  241. package/lib/rules/object-property-newline.js +1 -1
  242. package/lib/rules/object-shorthand.js +1 -1
  243. package/lib/rules/one-var-declaration-per-line.js +1 -1
  244. package/lib/rules/one-var.js +1 -1
  245. package/lib/rules/operator-assignment.js +1 -1
  246. package/lib/rules/operator-linebreak.js +1 -1
  247. package/lib/rules/padded-blocks.js +1 -1
  248. package/lib/rules/padding-line-between-statements.js +1 -1
  249. package/lib/rules/prefer-arrow-callback.js +1 -1
  250. package/lib/rules/prefer-const.js +1 -1
  251. package/lib/rules/prefer-destructuring.js +1 -1
  252. package/lib/rules/prefer-exponentiation-operator.js +1 -1
  253. package/lib/rules/prefer-named-capture-group.js +1 -1
  254. package/lib/rules/prefer-numeric-literals.js +1 -1
  255. package/lib/rules/prefer-object-has-own.js +1 -1
  256. package/lib/rules/prefer-object-spread.js +1 -1
  257. package/lib/rules/prefer-promise-reject-errors.js +1 -1
  258. package/lib/rules/prefer-reflect.js +1 -1
  259. package/lib/rules/prefer-regex-literals.js +1 -1
  260. package/lib/rules/prefer-rest-params.js +1 -1
  261. package/lib/rules/prefer-spread.js +1 -1
  262. package/lib/rules/prefer-template.js +1 -1
  263. package/lib/rules/quote-props.js +1 -1
  264. package/lib/rules/quotes.js +1 -1
  265. package/lib/rules/radix.js +1 -1
  266. package/lib/rules/require-atomic-updates.js +1 -1
  267. package/lib/rules/require-await.js +1 -1
  268. package/lib/rules/require-jsdoc.js +1 -1
  269. package/lib/rules/require-unicode-regexp.js +1 -1
  270. package/lib/rules/require-yield.js +1 -1
  271. package/lib/rules/rest-spread-spacing.js +1 -1
  272. package/lib/rules/semi-spacing.js +1 -1
  273. package/lib/rules/semi-style.js +1 -1
  274. package/lib/rules/semi.js +1 -1
  275. package/lib/rules/sort-imports.js +1 -1
  276. package/lib/rules/sort-keys.js +44 -1
  277. package/lib/rules/sort-vars.js +1 -1
  278. package/lib/rules/space-before-blocks.js +1 -1
  279. package/lib/rules/space-before-function-paren.js +1 -1
  280. package/lib/rules/space-in-parens.js +1 -1
  281. package/lib/rules/space-infix-ops.js +1 -1
  282. package/lib/rules/space-unary-ops.js +1 -1
  283. package/lib/rules/spaced-comment.js +1 -1
  284. package/lib/rules/strict.js +1 -1
  285. package/lib/rules/switch-colon-spacing.js +1 -1
  286. package/lib/rules/symbol-description.js +1 -1
  287. package/lib/rules/template-curly-spacing.js +1 -1
  288. package/lib/rules/template-tag-spacing.js +1 -1
  289. package/lib/rules/unicode-bom.js +1 -1
  290. package/lib/rules/use-isnan.js +1 -1
  291. package/lib/rules/valid-jsdoc.js +1 -1
  292. package/lib/rules/valid-typeof.js +1 -1
  293. package/lib/rules/vars-on-top.js +1 -1
  294. package/lib/rules/wrap-iife.js +1 -1
  295. package/lib/rules/wrap-regex.js +1 -1
  296. package/lib/rules/yield-star-spacing.js +1 -1
  297. package/lib/rules/yoda.js +1 -1
  298. package/lib/unsupported-api.js +4 -0
  299. package/package.json +13 -10
@@ -14,7 +14,7 @@ module.exports = {
14
14
  type: "problem",
15
15
 
16
16
  docs: {
17
- description: "disallow template literal placeholder syntax in regular strings",
17
+ description: "Disallow template literal placeholder syntax in regular strings",
18
18
  recommended: false,
19
19
  url: "https://eslint.org/docs/rules/no-template-curly-in-string"
20
20
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "suggestion",
16
16
 
17
17
  docs: {
18
- description: "disallow ternary operators",
18
+ description: "Disallow ternary operators",
19
19
  recommended: false,
20
20
  url: "https://eslint.org/docs/rules/no-ternary"
21
21
  },
@@ -40,7 +40,7 @@ module.exports = {
40
40
  type: "problem",
41
41
 
42
42
  docs: {
43
- description: "disallow `this`/`super` before calling `super()` in constructors",
43
+ description: "Disallow `this`/`super` before calling `super()` in constructors",
44
44
  recommended: true,
45
45
  url: "https://eslint.org/docs/rules/no-this-before-super"
46
46
  },
@@ -17,7 +17,7 @@ module.exports = {
17
17
  type: "suggestion",
18
18
 
19
19
  docs: {
20
- description: "disallow throwing literals as exceptions",
20
+ description: "Disallow throwing literals as exceptions",
21
21
  recommended: false,
22
22
  url: "https://eslint.org/docs/rules/no-throw-literal"
23
23
  },
@@ -20,7 +20,7 @@ module.exports = {
20
20
  type: "layout",
21
21
 
22
22
  docs: {
23
- description: "disallow trailing whitespace at the end of lines",
23
+ description: "Disallow trailing whitespace at the end of lines",
24
24
  recommended: false,
25
25
  url: "https://eslint.org/docs/rules/no-trailing-spaces"
26
26
  },
@@ -17,7 +17,7 @@ module.exports = {
17
17
  type: "suggestion",
18
18
 
19
19
  docs: {
20
- description: "disallow initializing variables to `undefined`",
20
+ description: "Disallow initializing variables to `undefined`",
21
21
  recommended: false,
22
22
  url: "https://eslint.org/docs/rules/no-undef-init"
23
23
  },
@@ -29,7 +29,7 @@ module.exports = {
29
29
  type: "problem",
30
30
 
31
31
  docs: {
32
- description: "disallow the use of undeclared variables unless mentioned in `/*global */` comments",
32
+ description: "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
33
33
  recommended: true,
34
34
  url: "https://eslint.org/docs/rules/no-undef"
35
35
  },
@@ -14,7 +14,7 @@ module.exports = {
14
14
  type: "suggestion",
15
15
 
16
16
  docs: {
17
- description: "disallow the use of `undefined` as an identifier",
17
+ description: "Disallow the use of `undefined` as an identifier",
18
18
  recommended: false,
19
19
  url: "https://eslint.org/docs/rules/no-undefined"
20
20
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "suggestion",
16
16
 
17
17
  docs: {
18
- description: "disallow dangling underscores in identifiers",
18
+ description: "Disallow dangling underscores in identifiers",
19
19
  recommended: false,
20
20
  url: "https://eslint.org/docs/rules/no-underscore-dangle"
21
21
  },
@@ -20,7 +20,7 @@ module.exports = {
20
20
  type: "problem",
21
21
 
22
22
  docs: {
23
- description: "disallow confusing multiline expressions",
23
+ description: "Disallow confusing multiline expressions",
24
24
  recommended: true,
25
25
  url: "https://eslint.org/docs/rules/no-unexpected-multiline"
26
26
  },
@@ -162,7 +162,7 @@ module.exports = {
162
162
  type: "problem",
163
163
 
164
164
  docs: {
165
- description: "disallow unmodified loop conditions",
165
+ description: "Disallow unmodified loop conditions",
166
166
  recommended: false,
167
167
  url: "https://eslint.org/docs/rules/no-unmodified-loop-condition"
168
168
  },
@@ -29,7 +29,7 @@ module.exports = {
29
29
  type: "suggestion",
30
30
 
31
31
  docs: {
32
- description: "disallow ternary operators when simpler alternatives exist",
32
+ description: "Disallow ternary operators when simpler alternatives exist",
33
33
  recommended: false,
34
34
  url: "https://eslint.org/docs/rules/no-unneeded-ternary"
35
35
  },
@@ -59,7 +59,7 @@ module.exports = {
59
59
  type: "problem",
60
60
 
61
61
  docs: {
62
- description: "disallow loops with a body that allows only one iteration",
62
+ description: "Disallow loops with a body that allows only one iteration",
63
63
  recommended: false,
64
64
  url: "https://eslint.org/docs/rules/no-unreachable-loop"
65
65
  },
@@ -111,7 +111,7 @@ module.exports = {
111
111
  type: "problem",
112
112
 
113
113
  docs: {
114
- description: "disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
114
+ description: "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
115
115
  recommended: true,
116
116
  url: "https://eslint.org/docs/rules/no-unreachable"
117
117
  },
@@ -24,7 +24,7 @@ module.exports = {
24
24
  type: "problem",
25
25
 
26
26
  docs: {
27
- description: "disallow control flow statements in `finally` blocks",
27
+ description: "Disallow control flow statements in `finally` blocks",
28
28
  recommended: true,
29
29
  url: "https://eslint.org/docs/rules/no-unsafe-finally"
30
30
  },
@@ -52,7 +52,7 @@ module.exports = {
52
52
  type: "problem",
53
53
 
54
54
  docs: {
55
- description: "disallow negating the left operand of relational operators",
55
+ description: "Disallow negating the left operand of relational operators",
56
56
  recommended: true,
57
57
  url: "https://eslint.org/docs/rules/no-unsafe-negation"
58
58
  },
@@ -24,7 +24,7 @@ module.exports = {
24
24
  type: "problem",
25
25
 
26
26
  docs: {
27
- description: "disallow use of optional chaining in contexts where the `undefined` value is not allowed",
27
+ description: "Disallow use of optional chaining in contexts where the `undefined` value is not allowed",
28
28
  recommended: true,
29
29
  url: "https://eslint.org/docs/rules/no-unsafe-optional-chaining"
30
30
  },
@@ -30,7 +30,7 @@ module.exports = {
30
30
  type: "suggestion",
31
31
 
32
32
  docs: {
33
- description: "disallow unused expressions",
33
+ description: "Disallow unused expressions",
34
34
  recommended: false,
35
35
  url: "https://eslint.org/docs/rules/no-unused-expressions"
36
36
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "suggestion",
16
16
 
17
17
  docs: {
18
- description: "disallow unused labels",
18
+ description: "Disallow unused labels",
19
19
  recommended: true,
20
20
  url: "https://eslint.org/docs/rules/no-unused-labels"
21
21
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "problem",
16
16
 
17
17
  docs: {
18
- description: "disallow unused private class members",
18
+ description: "Disallow unused private class members",
19
19
  recommended: false,
20
20
  url: "https://eslint.org/docs/rules/no-unused-private-class-members"
21
21
  },
@@ -33,7 +33,7 @@ module.exports = {
33
33
  type: "problem",
34
34
 
35
35
  docs: {
36
- description: "disallow unused variables",
36
+ description: "Disallow unused variables",
37
37
  recommended: true,
38
38
  url: "https://eslint.org/docs/rules/no-unused-vars"
39
39
  },
@@ -226,7 +226,7 @@ module.exports = {
226
226
  type: "problem",
227
227
 
228
228
  docs: {
229
- description: "disallow the use of variables before they are defined",
229
+ description: "Disallow the use of variables before they are defined",
230
230
  recommended: false,
231
231
  url: "https://eslint.org/docs/rules/no-use-before-define"
232
232
  },
@@ -64,7 +64,7 @@ module.exports = {
64
64
  type: "problem",
65
65
 
66
66
  docs: {
67
- description: "disallow useless backreferences in regular expressions",
67
+ description: "Disallow useless backreferences in regular expressions",
68
68
  recommended: true,
69
69
  url: "https://eslint.org/docs/rules/no-useless-backreference"
70
70
  },
@@ -55,7 +55,7 @@ module.exports = {
55
55
  type: "suggestion",
56
56
 
57
57
  docs: {
58
- description: "disallow unnecessary calls to `.call()` and `.apply()`",
58
+ description: "Disallow unnecessary calls to `.call()` and `.apply()`",
59
59
  recommended: false,
60
60
  url: "https://eslint.org/docs/rules/no-useless-call"
61
61
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "suggestion",
16
16
 
17
17
  docs: {
18
- description: "disallow unnecessary `catch` clauses",
18
+ description: "Disallow unnecessary `catch` clauses",
19
19
  recommended: true,
20
20
  url: "https://eslint.org/docs/rules/no-useless-catch"
21
21
  },
@@ -91,7 +91,7 @@ module.exports = {
91
91
  type: "suggestion",
92
92
 
93
93
  docs: {
94
- description: "disallow unnecessary computed property keys in objects and classes",
94
+ description: "Disallow unnecessary computed property keys in objects and classes",
95
95
  recommended: false,
96
96
  url: "https://eslint.org/docs/rules/no-useless-computed-key"
97
97
  },
@@ -70,7 +70,7 @@ module.exports = {
70
70
  type: "suggestion",
71
71
 
72
72
  docs: {
73
- description: "disallow unnecessary concatenation of literals or template literals",
73
+ description: "Disallow unnecessary concatenation of literals or template literals",
74
74
  recommended: false,
75
75
  url: "https://eslint.org/docs/rules/no-useless-concat"
76
76
  },
@@ -138,7 +138,7 @@ module.exports = {
138
138
  type: "suggestion",
139
139
 
140
140
  docs: {
141
- description: "disallow unnecessary constructors",
141
+ description: "Disallow unnecessary constructors",
142
142
  recommended: false,
143
143
  url: "https://eslint.org/docs/rules/no-useless-constructor"
144
144
  },
@@ -84,7 +84,7 @@ module.exports = {
84
84
  type: "suggestion",
85
85
 
86
86
  docs: {
87
- description: "disallow unnecessary escape characters",
87
+ description: "Disallow unnecessary escape characters",
88
88
  recommended: true,
89
89
  url: "https://eslint.org/docs/rules/no-useless-escape"
90
90
  },
@@ -21,7 +21,7 @@ module.exports = {
21
21
  type: "suggestion",
22
22
 
23
23
  docs: {
24
- description: "disallow renaming import, export, and destructured assignments to the same name",
24
+ description: "Disallow renaming import, export, and destructured assignments to the same name",
25
25
  recommended: false,
26
26
  url: "https://eslint.org/docs/rules/no-useless-rename"
27
27
  },
@@ -67,7 +67,7 @@ module.exports = {
67
67
  type: "suggestion",
68
68
 
69
69
  docs: {
70
- description: "disallow redundant return statements",
70
+ description: "Disallow redundant return statements",
71
71
  recommended: false,
72
72
  url: "https://eslint.org/docs/rules/no-useless-return"
73
73
  },
@@ -185,7 +185,7 @@ module.exports = {
185
185
  type: "suggestion",
186
186
 
187
187
  docs: {
188
- description: "require `let` or `const` instead of `var`",
188
+ description: "Require `let` or `const` instead of `var`",
189
189
  recommended: false,
190
190
  url: "https://eslint.org/docs/rules/no-var"
191
191
  },
@@ -14,7 +14,7 @@ module.exports = {
14
14
  type: "suggestion",
15
15
 
16
16
  docs: {
17
- description: "disallow `void` operators",
17
+ description: "Disallow `void` operators",
18
18
  recommended: false,
19
19
  url: "https://eslint.org/docs/rules/no-void"
20
20
  },
@@ -20,7 +20,7 @@ module.exports = {
20
20
  type: "suggestion",
21
21
 
22
22
  docs: {
23
- description: "disallow specified warning terms in comments",
23
+ description: "Disallow specified warning terms in comments",
24
24
  recommended: false,
25
25
  url: "https://eslint.org/docs/rules/no-warning-comments"
26
26
  },
@@ -64,59 +64,45 @@ module.exports = {
64
64
  */
65
65
  function convertToRegExp(term) {
66
66
  const escaped = escapeRegExp(term);
67
- const wordBoundary = "\\b";
68
- const eitherOrWordBoundary = `|${wordBoundary}`;
69
- let prefix;
70
67
 
71
68
  /*
72
- * If the term ends in a word character (a-z0-9_), ensure a word
73
- * boundary at the end, so that substrings do not get falsely
74
- * matched. eg "todo" in a string such as "mastodon".
75
- * If the term ends in a non-word character, then \b won't match on
76
- * the boundary to the next non-word character, which would likely
77
- * be a space. For example `/\bFIX!\b/.test('FIX! blah') === false`.
78
- * In these cases, use no bounding match. Same applies for the
79
- * prefix, handled below.
69
+ * When matching at the start, ignore leading whitespace, and
70
+ * there's no need to worry about word boundaries.
71
+ *
72
+ * These expressions for the prefix and suffix are designed as follows:
73
+ * ^ handles any terms at the beginning of a comment.
74
+ * e.g. terms ["TODO"] matches `//TODO something`
75
+ * $ handles any terms at the end of a comment
76
+ * e.g. terms ["TODO"] matches `// something TODO`
77
+ * \s* handles optional leading spaces (for "start" location only)
78
+ * e.g. terms ["TODO"] matches `// TODO something`
79
+ * \b handles terms preceded/followed by word boundary
80
+ * e.g. terms: ["!FIX", "FIX!"] matches `// FIX!something` or `// something!FIX`
81
+ * terms: ["FIX"] matches `// FIX!` or `// !FIX`, but not `// fixed or affix`
80
82
  */
81
- const suffix = /\w$/u.test(term) ? "\\b" : "";
83
+ const wordBoundary = "\\b";
82
84
 
83
- if (location === "start") {
85
+ let prefix = "";
84
86
 
85
- /*
86
- * When matching at the start, ignore leading whitespace, and
87
- * there's no need to worry about word boundaries.
88
- */
87
+ if (location === "start") {
89
88
  prefix = "^\\s*";
90
89
  } else if (/^\w/u.test(term)) {
91
90
  prefix = wordBoundary;
92
- } else {
93
- prefix = "";
94
91
  }
95
92
 
96
- if (location === "start") {
97
-
98
- /*
99
- * For location "start" the regex should be
100
- * ^\s*TERM\b. This checks the word boundary
101
- * at the beginning of the comment.
102
- */
103
- return new RegExp(prefix + escaped + suffix, "iu");
104
- }
93
+ const suffix = /\w$/u.test(term) ? wordBoundary : "";
94
+ const flags = "iu"; // Case-insensitive with Unicode case folding.
105
95
 
106
96
  /*
107
- * For location "anywhere" the regex should be
108
- * \bTERM\b|\bTERM\b, this checks the entire comment
109
- * for the term.
97
+ * For location "start", the typical regex is:
98
+ * /^\s*ESCAPED_TERM\b/iu.
99
+ *
100
+ * For location "anywhere" the typical regex is
101
+ * /\bESCAPED_TERM\b/iu
102
+ *
103
+ * If it starts or ends with non-word character, the prefix and suffix empty, respectively.
110
104
  */
111
- return new RegExp(
112
- prefix +
113
- escaped +
114
- suffix +
115
- eitherOrWordBoundary +
116
- term +
117
- wordBoundary,
118
- "iu"
119
- );
105
+ return new RegExp(`${prefix}${escaped}${suffix}`, flags);
120
106
  }
121
107
 
122
108
  const warningRegExps = warningTerms.map(convertToRegExp);
@@ -20,7 +20,7 @@ module.exports = {
20
20
  type: "layout",
21
21
 
22
22
  docs: {
23
- description: "disallow whitespace before properties",
23
+ description: "Disallow whitespace before properties",
24
24
  recommended: false,
25
25
  url: "https://eslint.org/docs/rules/no-whitespace-before-property"
26
26
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "suggestion",
16
16
 
17
17
  docs: {
18
- description: "disallow `with` statements",
18
+ description: "Disallow `with` statements",
19
19
  recommended: true,
20
20
  url: "https://eslint.org/docs/rules/no-with"
21
21
  },
@@ -16,7 +16,7 @@ module.exports = {
16
16
  type: "layout",
17
17
 
18
18
  docs: {
19
- description: "enforce the location of single-line statements",
19
+ description: "Enforce the location of single-line statements",
20
20
  recommended: false,
21
21
  url: "https://eslint.org/docs/rules/nonblock-statement-body-position"
22
22
  },
@@ -150,7 +150,7 @@ module.exports = {
150
150
  type: "layout",
151
151
 
152
152
  docs: {
153
- description: "enforce consistent line breaks after opening and before closing braces",
153
+ description: "Enforce consistent line breaks after opening and before closing braces",
154
154
  recommended: false,
155
155
  url: "https://eslint.org/docs/rules/object-curly-newline"
156
156
  },
@@ -16,7 +16,7 @@ module.exports = {
16
16
  type: "layout",
17
17
 
18
18
  docs: {
19
- description: "enforce consistent spacing inside braces",
19
+ description: "Enforce consistent spacing inside braces",
20
20
  recommended: false,
21
21
  url: "https://eslint.org/docs/rules/object-curly-spacing"
22
22
  },
@@ -15,7 +15,7 @@ module.exports = {
15
15
  type: "layout",
16
16
 
17
17
  docs: {
18
- description: "enforce placing object properties on separate lines",
18
+ description: "Enforce placing object properties on separate lines",
19
19
  recommended: false,
20
20
  url: "https://eslint.org/docs/rules/object-property-newline"
21
21
  },
@@ -28,7 +28,7 @@ module.exports = {
28
28
  type: "suggestion",
29
29
 
30
30
  docs: {
31
- description: "require or disallow method and property shorthand syntax for object literals",
31
+ description: "Require or disallow method and property shorthand syntax for object literals",
32
32
  recommended: false,
33
33
  url: "https://eslint.org/docs/rules/object-shorthand"
34
34
  },
@@ -14,7 +14,7 @@ module.exports = {
14
14
  type: "suggestion",
15
15
 
16
16
  docs: {
17
- description: "require or disallow newlines around variable declarations",
17
+ description: "Require or disallow newlines around variable declarations",
18
18
  recommended: false,
19
19
  url: "https://eslint.org/docs/rules/one-var-declaration-per-line"
20
20
  },
@@ -34,7 +34,7 @@ module.exports = {
34
34
  type: "suggestion",
35
35
 
36
36
  docs: {
37
- description: "enforce variables to be declared either together or separately in functions",
37
+ description: "Enforce variables to be declared either together or separately in functions",
38
38
  recommended: false,
39
39
  url: "https://eslint.org/docs/rules/one-var"
40
40
  },
@@ -63,7 +63,7 @@ module.exports = {
63
63
  type: "suggestion",
64
64
 
65
65
  docs: {
66
- description: "require or disallow assignment operator shorthand where possible",
66
+ description: "Require or disallow assignment operator shorthand where possible",
67
67
  recommended: false,
68
68
  url: "https://eslint.org/docs/rules/operator-assignment"
69
69
  },
@@ -21,7 +21,7 @@ module.exports = {
21
21
  type: "layout",
22
22
 
23
23
  docs: {
24
- description: "enforce consistent linebreak style for operators",
24
+ description: "Enforce consistent linebreak style for operators",
25
25
  recommended: false,
26
26
  url: "https://eslint.org/docs/rules/operator-linebreak"
27
27
  },
@@ -21,7 +21,7 @@ module.exports = {
21
21
  type: "layout",
22
22
 
23
23
  docs: {
24
- description: "require or disallow padding within blocks",
24
+ description: "Require or disallow padding within blocks",
25
25
  recommended: false,
26
26
  url: "https://eslint.org/docs/rules/padded-blocks"
27
27
  },
@@ -431,7 +431,7 @@ module.exports = {
431
431
  type: "layout",
432
432
 
433
433
  docs: {
434
- description: "require or disallow padding lines between statements",
434
+ description: "Require or disallow padding lines between statements",
435
435
  recommended: false,
436
436
  url: "https://eslint.org/docs/rules/padding-line-between-statements"
437
437
  },
@@ -151,7 +151,7 @@ module.exports = {
151
151
  type: "suggestion",
152
152
 
153
153
  docs: {
154
- description: "require using arrow functions for callbacks",
154
+ description: "Require using arrow functions for callbacks",
155
155
  recommended: false,
156
156
  url: "https://eslint.org/docs/rules/prefer-arrow-callback"
157
157
  },
@@ -332,7 +332,7 @@ module.exports = {
332
332
  type: "suggestion",
333
333
 
334
334
  docs: {
335
- description: "require `const` declarations for variables that are never reassigned after declared",
335
+ description: "Require `const` declarations for variables that are never reassigned after declared",
336
336
  recommended: false,
337
337
  url: "https://eslint.org/docs/rules/prefer-const"
338
338
  },
@@ -26,7 +26,7 @@ module.exports = {
26
26
  type: "suggestion",
27
27
 
28
28
  docs: {
29
- description: "require destructuring from arrays and/or objects",
29
+ description: "Require destructuring from arrays and/or objects",
30
30
  recommended: false,
31
31
  url: "https://eslint.org/docs/rules/prefer-destructuring"
32
32
  },
@@ -90,7 +90,7 @@ module.exports = {
90
90
  type: "suggestion",
91
91
 
92
92
  docs: {
93
- description: "disallow the use of `Math.pow` in favor of the `**` operator",
93
+ description: "Disallow the use of `Math.pow` in favor of the `**` operator",
94
94
  recommended: false,
95
95
  url: "https://eslint.org/docs/rules/prefer-exponentiation-operator"
96
96
  },
@@ -33,7 +33,7 @@ module.exports = {
33
33
  type: "suggestion",
34
34
 
35
35
  docs: {
36
- description: "enforce using named capture group in regular expression",
36
+ description: "Enforce using named capture group in regular expression",
37
37
  recommended: false,
38
38
  url: "https://eslint.org/docs/rules/prefer-named-capture-group"
39
39
  },