eslint 8.3.0 → 8.4.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 (298) hide show
  1. package/README.md +6 -16
  2. package/conf/globals.js +144 -0
  3. package/lib/cli.js +1 -1
  4. package/lib/config/default-config.js +11 -2
  5. package/lib/config/flat-config-array.js +2 -2
  6. package/lib/config/flat-config-helpers.js +67 -0
  7. package/lib/config/flat-config-schema.js +13 -8
  8. package/lib/config/rule-validator.js +28 -27
  9. package/lib/eslint/eslint.js +11 -3
  10. package/lib/linter/linter.js +456 -44
  11. package/lib/options.js +6 -6
  12. package/lib/rules/accessor-pairs.js +1 -0
  13. package/lib/rules/array-bracket-newline.js +1 -0
  14. package/lib/rules/array-bracket-spacing.js +1 -0
  15. package/lib/rules/array-callback-return.js +1 -0
  16. package/lib/rules/array-element-newline.js +1 -0
  17. package/lib/rules/arrow-body-style.js +1 -0
  18. package/lib/rules/arrow-parens.js +1 -0
  19. package/lib/rules/arrow-spacing.js +1 -0
  20. package/lib/rules/block-scoped-var.js +1 -0
  21. package/lib/rules/block-spacing.js +1 -0
  22. package/lib/rules/brace-style.js +1 -0
  23. package/lib/rules/callback-return.js +1 -0
  24. package/lib/rules/camelcase.js +1 -0
  25. package/lib/rules/capitalized-comments.js +1 -0
  26. package/lib/rules/class-methods-use-this.js +1 -0
  27. package/lib/rules/comma-dangle.js +1 -0
  28. package/lib/rules/comma-spacing.js +1 -0
  29. package/lib/rules/comma-style.js +1 -0
  30. package/lib/rules/complexity.js +1 -0
  31. package/lib/rules/computed-property-spacing.js +1 -0
  32. package/lib/rules/consistent-return.js +1 -0
  33. package/lib/rules/consistent-this.js +1 -0
  34. package/lib/rules/constructor-super.js +1 -0
  35. package/lib/rules/curly.js +1 -0
  36. package/lib/rules/default-case-last.js +1 -0
  37. package/lib/rules/default-case.js +1 -0
  38. package/lib/rules/default-param-last.js +1 -0
  39. package/lib/rules/dot-location.js +1 -0
  40. package/lib/rules/dot-notation.js +1 -0
  41. package/lib/rules/eol-last.js +1 -0
  42. package/lib/rules/eqeqeq.js +1 -0
  43. package/lib/rules/for-direction.js +1 -0
  44. package/lib/rules/func-call-spacing.js +1 -0
  45. package/lib/rules/func-name-matching.js +1 -0
  46. package/lib/rules/func-names.js +1 -0
  47. package/lib/rules/func-style.js +1 -0
  48. package/lib/rules/function-call-argument-newline.js +1 -0
  49. package/lib/rules/function-paren-newline.js +1 -0
  50. package/lib/rules/generator-star-spacing.js +1 -0
  51. package/lib/rules/getter-return.js +1 -0
  52. package/lib/rules/global-require.js +1 -0
  53. package/lib/rules/grouped-accessor-pairs.js +1 -0
  54. package/lib/rules/guard-for-in.js +1 -0
  55. package/lib/rules/handle-callback-err.js +1 -0
  56. package/lib/rules/id-blacklist.js +1 -0
  57. package/lib/rules/id-denylist.js +1 -0
  58. package/lib/rules/id-length.js +1 -0
  59. package/lib/rules/id-match.js +1 -0
  60. package/lib/rules/implicit-arrow-linebreak.js +1 -0
  61. package/lib/rules/indent-legacy.js +1 -0
  62. package/lib/rules/indent.js +1 -0
  63. package/lib/rules/init-declarations.js +1 -0
  64. package/lib/rules/jsx-quotes.js +1 -0
  65. package/lib/rules/key-spacing.js +1 -0
  66. package/lib/rules/keyword-spacing.js +1 -0
  67. package/lib/rules/line-comment-position.js +1 -0
  68. package/lib/rules/linebreak-style.js +1 -0
  69. package/lib/rules/lines-around-comment.js +1 -0
  70. package/lib/rules/lines-around-directive.js +1 -0
  71. package/lib/rules/lines-between-class-members.js +1 -0
  72. package/lib/rules/max-classes-per-file.js +1 -0
  73. package/lib/rules/max-depth.js +1 -0
  74. package/lib/rules/max-len.js +1 -0
  75. package/lib/rules/max-lines-per-function.js +21 -2
  76. package/lib/rules/max-lines.js +1 -0
  77. package/lib/rules/max-nested-callbacks.js +1 -0
  78. package/lib/rules/max-params.js +1 -0
  79. package/lib/rules/max-statements-per-line.js +1 -0
  80. package/lib/rules/max-statements.js +1 -0
  81. package/lib/rules/multiline-comment-style.js +1 -0
  82. package/lib/rules/multiline-ternary.js +1 -0
  83. package/lib/rules/new-cap.js +1 -0
  84. package/lib/rules/new-parens.js +1 -0
  85. package/lib/rules/newline-after-var.js +1 -0
  86. package/lib/rules/newline-before-return.js +1 -0
  87. package/lib/rules/newline-per-chained-call.js +1 -0
  88. package/lib/rules/no-alert.js +1 -0
  89. package/lib/rules/no-array-constructor.js +1 -0
  90. package/lib/rules/no-async-promise-executor.js +1 -0
  91. package/lib/rules/no-await-in-loop.js +1 -0
  92. package/lib/rules/no-bitwise.js +1 -0
  93. package/lib/rules/no-buffer-constructor.js +1 -0
  94. package/lib/rules/no-caller.js +1 -0
  95. package/lib/rules/no-case-declarations.js +1 -0
  96. package/lib/rules/no-catch-shadow.js +1 -0
  97. package/lib/rules/no-class-assign.js +1 -0
  98. package/lib/rules/no-compare-neg-zero.js +1 -0
  99. package/lib/rules/no-cond-assign.js +1 -0
  100. package/lib/rules/no-confusing-arrow.js +1 -0
  101. package/lib/rules/no-console.js +1 -0
  102. package/lib/rules/no-const-assign.js +1 -0
  103. package/lib/rules/no-constant-condition.js +4 -1
  104. package/lib/rules/no-constructor-return.js +1 -0
  105. package/lib/rules/no-continue.js +1 -0
  106. package/lib/rules/no-control-regex.js +1 -0
  107. package/lib/rules/no-debugger.js +1 -0
  108. package/lib/rules/no-delete-var.js +1 -0
  109. package/lib/rules/no-div-regex.js +1 -0
  110. package/lib/rules/no-dupe-args.js +1 -0
  111. package/lib/rules/no-dupe-class-members.js +1 -0
  112. package/lib/rules/no-dupe-else-if.js +1 -0
  113. package/lib/rules/no-dupe-keys.js +1 -0
  114. package/lib/rules/no-duplicate-case.js +1 -0
  115. package/lib/rules/no-duplicate-imports.js +1 -0
  116. package/lib/rules/no-else-return.js +1 -0
  117. package/lib/rules/no-empty-character-class.js +1 -0
  118. package/lib/rules/no-empty-function.js +1 -0
  119. package/lib/rules/no-empty-pattern.js +1 -0
  120. package/lib/rules/no-empty.js +1 -0
  121. package/lib/rules/no-eq-null.js +1 -0
  122. package/lib/rules/no-eval.js +1 -0
  123. package/lib/rules/no-ex-assign.js +1 -0
  124. package/lib/rules/no-extend-native.js +1 -0
  125. package/lib/rules/no-extra-bind.js +1 -0
  126. package/lib/rules/no-extra-boolean-cast.js +1 -0
  127. package/lib/rules/no-extra-label.js +1 -0
  128. package/lib/rules/no-extra-parens.js +1 -0
  129. package/lib/rules/no-extra-semi.js +1 -0
  130. package/lib/rules/no-fallthrough.js +1 -0
  131. package/lib/rules/no-floating-decimal.js +1 -0
  132. package/lib/rules/no-func-assign.js +1 -0
  133. package/lib/rules/no-global-assign.js +1 -0
  134. package/lib/rules/no-implicit-coercion.js +1 -0
  135. package/lib/rules/no-implicit-globals.js +1 -0
  136. package/lib/rules/no-implied-eval.js +1 -0
  137. package/lib/rules/no-import-assign.js +1 -0
  138. package/lib/rules/no-inline-comments.js +1 -0
  139. package/lib/rules/no-inner-declarations.js +1 -0
  140. package/lib/rules/no-invalid-regexp.js +1 -0
  141. package/lib/rules/no-invalid-this.js +1 -0
  142. package/lib/rules/no-irregular-whitespace.js +1 -0
  143. package/lib/rules/no-iterator.js +1 -0
  144. package/lib/rules/no-label-var.js +1 -0
  145. package/lib/rules/no-labels.js +1 -0
  146. package/lib/rules/no-lone-blocks.js +1 -0
  147. package/lib/rules/no-lonely-if.js +1 -0
  148. package/lib/rules/no-loop-func.js +1 -0
  149. package/lib/rules/no-loss-of-precision.js +1 -0
  150. package/lib/rules/no-magic-numbers.js +1 -0
  151. package/lib/rules/no-misleading-character-class.js +1 -0
  152. package/lib/rules/no-mixed-operators.js +1 -0
  153. package/lib/rules/no-mixed-requires.js +1 -0
  154. package/lib/rules/no-mixed-spaces-and-tabs.js +1 -0
  155. package/lib/rules/no-multi-assign.js +1 -0
  156. package/lib/rules/no-multi-spaces.js +1 -0
  157. package/lib/rules/no-multi-str.js +1 -0
  158. package/lib/rules/no-multiple-empty-lines.js +1 -0
  159. package/lib/rules/no-native-reassign.js +1 -0
  160. package/lib/rules/no-negated-condition.js +1 -0
  161. package/lib/rules/no-negated-in-lhs.js +1 -0
  162. package/lib/rules/no-nested-ternary.js +1 -0
  163. package/lib/rules/no-new-func.js +1 -0
  164. package/lib/rules/no-new-object.js +1 -0
  165. package/lib/rules/no-new-require.js +1 -0
  166. package/lib/rules/no-new-symbol.js +1 -0
  167. package/lib/rules/no-new-wrappers.js +1 -0
  168. package/lib/rules/no-new.js +1 -0
  169. package/lib/rules/no-nonoctal-decimal-escape.js +1 -0
  170. package/lib/rules/no-obj-calls.js +1 -0
  171. package/lib/rules/no-octal-escape.js +1 -0
  172. package/lib/rules/no-octal.js +1 -0
  173. package/lib/rules/no-param-reassign.js +1 -0
  174. package/lib/rules/no-path-concat.js +1 -0
  175. package/lib/rules/no-plusplus.js +1 -0
  176. package/lib/rules/no-process-env.js +1 -0
  177. package/lib/rules/no-process-exit.js +1 -0
  178. package/lib/rules/no-promise-executor-return.js +1 -0
  179. package/lib/rules/no-proto.js +1 -0
  180. package/lib/rules/no-prototype-builtins.js +1 -0
  181. package/lib/rules/no-redeclare.js +1 -0
  182. package/lib/rules/no-regex-spaces.js +1 -0
  183. package/lib/rules/no-restricted-exports.js +1 -0
  184. package/lib/rules/no-restricted-globals.js +1 -0
  185. package/lib/rules/no-restricted-imports.js +1 -0
  186. package/lib/rules/no-restricted-modules.js +1 -0
  187. package/lib/rules/no-restricted-properties.js +1 -0
  188. package/lib/rules/no-restricted-syntax.js +1 -0
  189. package/lib/rules/no-return-assign.js +1 -0
  190. package/lib/rules/no-return-await.js +1 -0
  191. package/lib/rules/no-script-url.js +1 -0
  192. package/lib/rules/no-self-assign.js +1 -0
  193. package/lib/rules/no-self-compare.js +1 -0
  194. package/lib/rules/no-sequences.js +1 -0
  195. package/lib/rules/no-setter-return.js +1 -0
  196. package/lib/rules/no-shadow-restricted-names.js +1 -0
  197. package/lib/rules/no-shadow.js +1 -0
  198. package/lib/rules/no-spaced-func.js +1 -0
  199. package/lib/rules/no-sparse-arrays.js +1 -0
  200. package/lib/rules/no-sync.js +1 -0
  201. package/lib/rules/no-tabs.js +1 -0
  202. package/lib/rules/no-template-curly-in-string.js +1 -0
  203. package/lib/rules/no-ternary.js +1 -0
  204. package/lib/rules/no-this-before-super.js +1 -0
  205. package/lib/rules/no-throw-literal.js +1 -0
  206. package/lib/rules/no-trailing-spaces.js +1 -0
  207. package/lib/rules/no-undef-init.js +1 -0
  208. package/lib/rules/no-undef.js +1 -0
  209. package/lib/rules/no-undefined.js +1 -0
  210. package/lib/rules/no-underscore-dangle.js +1 -0
  211. package/lib/rules/no-unexpected-multiline.js +1 -0
  212. package/lib/rules/no-unmodified-loop-condition.js +1 -0
  213. package/lib/rules/no-unneeded-ternary.js +1 -0
  214. package/lib/rules/no-unreachable-loop.js +1 -0
  215. package/lib/rules/no-unreachable.js +1 -0
  216. package/lib/rules/no-unsafe-finally.js +1 -0
  217. package/lib/rules/no-unsafe-negation.js +1 -0
  218. package/lib/rules/no-unsafe-optional-chaining.js +1 -0
  219. package/lib/rules/no-unused-expressions.js +1 -0
  220. package/lib/rules/no-unused-labels.js +1 -0
  221. package/lib/rules/no-unused-private-class-members.js +1 -0
  222. package/lib/rules/no-unused-vars.js +1 -0
  223. package/lib/rules/no-use-before-define.js +1 -0
  224. package/lib/rules/no-useless-backreference.js +1 -0
  225. package/lib/rules/no-useless-call.js +1 -0
  226. package/lib/rules/no-useless-catch.js +1 -0
  227. package/lib/rules/no-useless-computed-key.js +1 -0
  228. package/lib/rules/no-useless-concat.js +1 -0
  229. package/lib/rules/no-useless-constructor.js +1 -0
  230. package/lib/rules/no-useless-escape.js +1 -0
  231. package/lib/rules/no-useless-rename.js +1 -0
  232. package/lib/rules/no-useless-return.js +1 -0
  233. package/lib/rules/no-var.js +1 -0
  234. package/lib/rules/no-void.js +1 -0
  235. package/lib/rules/no-warning-comments.js +1 -0
  236. package/lib/rules/no-whitespace-before-property.js +1 -0
  237. package/lib/rules/no-with.js +1 -0
  238. package/lib/rules/nonblock-statement-body-position.js +1 -0
  239. package/lib/rules/object-curly-newline.js +1 -0
  240. package/lib/rules/object-curly-spacing.js +1 -0
  241. package/lib/rules/object-property-newline.js +1 -0
  242. package/lib/rules/object-shorthand.js +1 -0
  243. package/lib/rules/one-var-declaration-per-line.js +1 -0
  244. package/lib/rules/one-var.js +1 -0
  245. package/lib/rules/operator-assignment.js +1 -0
  246. package/lib/rules/operator-linebreak.js +1 -0
  247. package/lib/rules/padded-blocks.js +1 -0
  248. package/lib/rules/padding-line-between-statements.js +1 -0
  249. package/lib/rules/prefer-arrow-callback.js +1 -0
  250. package/lib/rules/prefer-const.js +1 -0
  251. package/lib/rules/prefer-destructuring.js +1 -0
  252. package/lib/rules/prefer-exponentiation-operator.js +1 -0
  253. package/lib/rules/prefer-named-capture-group.js +1 -0
  254. package/lib/rules/prefer-numeric-literals.js +1 -0
  255. package/lib/rules/prefer-object-spread.js +1 -0
  256. package/lib/rules/prefer-promise-reject-errors.js +1 -0
  257. package/lib/rules/prefer-reflect.js +1 -0
  258. package/lib/rules/prefer-regex-literals.js +1 -0
  259. package/lib/rules/prefer-rest-params.js +1 -0
  260. package/lib/rules/prefer-spread.js +1 -0
  261. package/lib/rules/prefer-template.js +1 -0
  262. package/lib/rules/quote-props.js +1 -0
  263. package/lib/rules/quotes.js +1 -0
  264. package/lib/rules/radix.js +1 -0
  265. package/lib/rules/require-atomic-updates.js +1 -0
  266. package/lib/rules/require-await.js +1 -0
  267. package/lib/rules/require-jsdoc.js +1 -0
  268. package/lib/rules/require-unicode-regexp.js +1 -0
  269. package/lib/rules/require-yield.js +1 -0
  270. package/lib/rules/rest-spread-spacing.js +1 -0
  271. package/lib/rules/semi-spacing.js +1 -0
  272. package/lib/rules/semi-style.js +1 -0
  273. package/lib/rules/semi.js +1 -0
  274. package/lib/rules/sort-imports.js +1 -0
  275. package/lib/rules/sort-keys.js +1 -0
  276. package/lib/rules/sort-vars.js +1 -0
  277. package/lib/rules/space-before-blocks.js +1 -0
  278. package/lib/rules/space-before-function-paren.js +1 -0
  279. package/lib/rules/space-in-parens.js +1 -0
  280. package/lib/rules/space-infix-ops.js +1 -0
  281. package/lib/rules/space-unary-ops.js +1 -0
  282. package/lib/rules/spaced-comment.js +1 -0
  283. package/lib/rules/strict.js +1 -0
  284. package/lib/rules/switch-colon-spacing.js +1 -0
  285. package/lib/rules/symbol-description.js +1 -0
  286. package/lib/rules/template-curly-spacing.js +1 -0
  287. package/lib/rules/template-tag-spacing.js +1 -0
  288. package/lib/rules/unicode-bom.js +1 -0
  289. package/lib/rules/use-isnan.js +1 -0
  290. package/lib/rules/valid-jsdoc.js +1 -0
  291. package/lib/rules/valid-typeof.js +1 -0
  292. package/lib/rules/vars-on-top.js +1 -0
  293. package/lib/rules/wrap-iife.js +1 -0
  294. package/lib/rules/wrap-regex.js +1 -0
  295. package/lib/rules/yield-star-spacing.js +1 -0
  296. package/lib/rules/yoda.js +1 -0
  297. package/lib/shared/types.js +10 -0
  298. package/package.json +6 -6
package/lib/options.js CHANGED
@@ -50,7 +50,7 @@ const optionator = require("optionator");
50
50
  * @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable directives
51
51
  * @property {string} [resolvePluginsRelativeTo] A folder where plugins should be resolved from, CWD by default
52
52
  * @property {Object} [rule] Specify rules
53
- * @property {string[]} [rulesdir] Use additional rules from this directory
53
+ * @property {string[]} [rulesdir] Load additional rules from this directory. Deprecated: Use rules from plugins
54
54
  * @property {boolean} stdin Lint code provided on <STDIN>
55
55
  * @property {string} [stdinFilename] Specify filename to process STDIN as
56
56
  * @property {boolean} quiet Report errors only
@@ -118,11 +118,6 @@ module.exports = optionator({
118
118
  {
119
119
  heading: "Specifying rules and plugins"
120
120
  },
121
- {
122
- option: "rulesdir",
123
- type: "[path::String]",
124
- description: "Use additional rules from this directory"
125
- },
126
121
  {
127
122
  option: "plugin",
128
123
  type: "[String]",
@@ -133,6 +128,11 @@ module.exports = optionator({
133
128
  type: "Object",
134
129
  description: "Specify rules"
135
130
  },
131
+ {
132
+ option: "rulesdir",
133
+ type: "[path::String]",
134
+ description: "Load additional rules from this directory. Deprecated: Use rules from plugins"
135
+ },
136
136
  {
137
137
  heading: "Fixing problems"
138
138
  },
@@ -134,6 +134,7 @@ function isPropertyDescriptor(node) {
134
134
  // Rule Definition
135
135
  //------------------------------------------------------------------------------
136
136
 
137
+ /** @type {import('../shared/types').Rule} */
137
138
  module.exports = {
138
139
  meta: {
139
140
  type: "suggestion",
@@ -11,6 +11,7 @@ const astUtils = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -10,6 +10,7 @@ const astUtils = require("./utils/ast-utils");
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "layout",
@@ -133,6 +133,7 @@ function getArrayMethodName(node) {
133
133
  // Rule Definition
134
134
  //------------------------------------------------------------------------------
135
135
 
136
+ /** @type {import('../shared/types').Rule} */
136
137
  module.exports = {
137
138
  meta: {
138
139
  type: "problem",
@@ -11,6 +11,7 @@ const astUtils = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -14,6 +14,7 @@ const astUtils = require("./utils/ast-utils");
14
14
  // Rule Definition
15
15
  //------------------------------------------------------------------------------
16
16
 
17
+ /** @type {import('../shared/types').Rule} */
17
18
  module.exports = {
18
19
  meta: {
19
20
  type: "suggestion",
@@ -27,6 +27,7 @@ function hasBlockBody(node) {
27
27
  // Rule Definition
28
28
  //------------------------------------------------------------------------------
29
29
 
30
+ /** @type {import('../shared/types').Rule} */
30
31
  module.exports = {
31
32
  meta: {
32
33
  type: "layout",
@@ -14,6 +14,7 @@ const astUtils = require("./utils/ast-utils");
14
14
  // Rule Definition
15
15
  //------------------------------------------------------------------------------
16
16
 
17
+ /** @type {import('../shared/types').Rule} */
17
18
  module.exports = {
18
19
  meta: {
19
20
  type: "layout",
@@ -8,6 +8,7 @@
8
8
  // Rule Definition
9
9
  //------------------------------------------------------------------------------
10
10
 
11
+ /** @type {import('../shared/types').Rule} */
11
12
  module.exports = {
12
13
  meta: {
13
14
  type: "suggestion",
@@ -11,6 +11,7 @@ const util = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -11,6 +11,7 @@ const astUtils = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  deprecated: true,
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "suggestion",
@@ -99,6 +99,7 @@ function createRegExpForIgnorePatterns(normalizedOptions) {
99
99
  // Rule Definition
100
100
  //------------------------------------------------------------------------------
101
101
 
102
+ /** @type {import('../shared/types').Rule} */
102
103
  module.exports = {
103
104
  meta: {
104
105
  type: "suggestion",
@@ -15,6 +15,7 @@ const astUtils = require("./utils/ast-utils");
15
15
  // Rule Definition
16
16
  //------------------------------------------------------------------------------
17
17
 
18
+ /** @type {import('../shared/types').Rule} */
18
19
  module.exports = {
19
20
  meta: {
20
21
  type: "suggestion",
@@ -70,6 +70,7 @@ function normalizeOptions(optionValue, ecmaVersion) {
70
70
  // Rule Definition
71
71
  //------------------------------------------------------------------------------
72
72
 
73
+ /** @type {import('../shared/types').Rule} */
73
74
  module.exports = {
74
75
  meta: {
75
76
  type: "layout",
@@ -10,6 +10,7 @@ const astUtils = require("./utils/ast-utils");
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "layout",
@@ -11,6 +11,7 @@ const astUtils = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -17,6 +17,7 @@ const { upperCaseFirst } = require("../shared/string-utils");
17
17
  // Rule Definition
18
18
  //------------------------------------------------------------------------------
19
19
 
20
+ /** @type {import('../shared/types').Rule} */
20
21
  module.exports = {
21
22
  meta: {
22
23
  type: "suggestion",
@@ -10,6 +10,7 @@ const astUtils = require("./utils/ast-utils");
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "layout",
@@ -40,6 +40,7 @@ function isClassConstructor(node) {
40
40
  // Rule Definition
41
41
  //------------------------------------------------------------------------------
42
42
 
43
+ /** @type {import('../shared/types').Rule} */
43
44
  module.exports = {
44
45
  meta: {
45
46
  type: "suggestion",
@@ -8,6 +8,7 @@
8
8
  // Rule Definition
9
9
  //------------------------------------------------------------------------------
10
10
 
11
+ /** @type {import('../shared/types').Rule} */
11
12
  module.exports = {
12
13
  meta: {
13
14
  type: "suggestion",
@@ -116,6 +116,7 @@ function isPossibleConstructor(node) {
116
116
  // Rule Definition
117
117
  //------------------------------------------------------------------------------
118
118
 
119
+ /** @type {import('../shared/types').Rule} */
119
120
  module.exports = {
120
121
  meta: {
121
122
  type: "problem",
@@ -14,6 +14,7 @@ const astUtils = require("./utils/ast-utils");
14
14
  // Rule Definition
15
15
  //------------------------------------------------------------------------------
16
16
 
17
+ /** @type {import('../shared/types').Rule} */
17
18
  module.exports = {
18
19
  meta: {
19
20
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "suggestion",
@@ -10,6 +10,7 @@ const DEFAULT_COMMENT_PATTERN = /^no default$/iu;
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "suggestion",
@@ -5,6 +5,7 @@
5
5
 
6
6
  "use strict";
7
7
 
8
+ /** @type {import('../shared/types').Rule} */
8
9
  module.exports = {
9
10
  meta: {
10
11
  type: "suggestion",
@@ -11,6 +11,7 @@ const astUtils = require("./utils/ast-utils");
11
11
  // Rule Definition
12
12
  //------------------------------------------------------------------------------
13
13
 
14
+ /** @type {import('../shared/types').Rule} */
14
15
  module.exports = {
15
16
  meta: {
16
17
  type: "layout",
@@ -20,6 +20,7 @@ const validIdentifier = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/u;
20
20
  // `null` literal must be handled separately.
21
21
  const literalTypesToCheck = new Set(["string", "boolean"]);
22
22
 
23
+ /** @type {import('../shared/types').Rule} */
23
24
  module.exports = {
24
25
  meta: {
25
26
  type: "suggestion",
@@ -8,6 +8,7 @@
8
8
  // Rule Definition
9
9
  //------------------------------------------------------------------------------
10
10
 
11
+ /** @type {import('../shared/types').Rule} */
11
12
  module.exports = {
12
13
  meta: {
13
14
  type: "layout",
@@ -15,6 +15,7 @@ const astUtils = require("./utils/ast-utils");
15
15
  // Rule Definition
16
16
  //------------------------------------------------------------------------------
17
17
 
18
+ /** @type {import('../shared/types').Rule} */
18
19
  module.exports = {
19
20
  meta: {
20
21
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "problem",
@@ -15,6 +15,7 @@ const astUtils = require("./utils/ast-utils");
15
15
  // Rule Definition
16
16
  //------------------------------------------------------------------------------
17
17
 
18
+ /** @type {import('../shared/types').Rule} */
18
19
  module.exports = {
19
20
  meta: {
20
21
  type: "layout",
@@ -68,6 +68,7 @@ const optionsObject = {
68
68
  additionalProperties: false
69
69
  };
70
70
 
71
+ /** @type {import('../shared/types').Rule} */
71
72
  module.exports = {
72
73
  meta: {
73
74
  type: "suggestion",
@@ -24,6 +24,7 @@ function isFunctionName(variable) {
24
24
  // Rule Definition
25
25
  //------------------------------------------------------------------------------
26
26
 
27
+ /** @type {import('../shared/types').Rule} */
27
28
  module.exports = {
28
29
  meta: {
29
30
  type: "suggestion",
@@ -8,6 +8,7 @@
8
8
  // Rule Definition
9
9
  //------------------------------------------------------------------------------
10
10
 
11
+ /** @type {import('../shared/types').Rule} */
11
12
  module.exports = {
12
13
  meta: {
13
14
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "layout",
@@ -14,6 +14,7 @@ const astUtils = require("./utils/ast-utils");
14
14
  // Rule Definition
15
15
  //------------------------------------------------------------------------------
16
16
 
17
+ /** @type {import('../shared/types').Rule} */
17
18
  module.exports = {
18
19
  meta: {
19
20
  type: "layout",
@@ -25,6 +25,7 @@ const OVERRIDE_SCHEMA = {
25
25
  ]
26
26
  };
27
27
 
28
+ /** @type {import('../shared/types').Rule} */
28
29
  module.exports = {
29
30
  meta: {
30
31
  type: "layout",
@@ -29,6 +29,7 @@ function isReachable(segment) {
29
29
  // Rule Definition
30
30
  //------------------------------------------------------------------------------
31
31
 
32
+ /** @type {import('../shared/types').Rule} */
32
33
  module.exports = {
33
34
  meta: {
34
35
  type: "problem",
@@ -48,6 +48,7 @@ function isShadowed(scope, node) {
48
48
  return reference && reference.resolved && reference.resolved.defs.length > 0;
49
49
  }
50
50
 
51
+ /** @type {import('../shared/types').Rule} */
51
52
  module.exports = {
52
53
  meta: {
53
54
  deprecated: true,
@@ -90,6 +90,7 @@ function isAccessorKind(node) {
90
90
  // Rule Definition
91
91
  //------------------------------------------------------------------------------
92
92
 
93
+ /** @type {import('../shared/types').Rule} */
93
94
  module.exports = {
94
95
  meta: {
95
96
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "suggestion",
@@ -10,6 +10,7 @@
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  deprecated: true,
@@ -110,6 +110,7 @@ function isShorthandPropertyDefinition(node) {
110
110
  // Rule Definition
111
111
  //------------------------------------------------------------------------------
112
112
 
113
+ /** @type {import('../shared/types').Rule} */
113
114
  module.exports = {
114
115
  meta: {
115
116
  deprecated: true,
@@ -93,6 +93,7 @@ function isPropertyNameInDestructuring(node) {
93
93
  // Rule Definition
94
94
  //------------------------------------------------------------------------------
95
95
 
96
+ /** @type {import('../shared/types').Rule} */
96
97
  module.exports = {
97
98
  meta: {
98
99
  type: "suggestion",
@@ -10,6 +10,7 @@
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "suggestion",
@@ -9,6 +9,7 @@ const { isCommentToken, isNotOpeningParenToken } = require("./utils/ast-utils");
9
9
  //------------------------------------------------------------------------------
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "layout",
@@ -20,6 +20,7 @@ const astUtils = require("./utils/ast-utils");
20
20
  //------------------------------------------------------------------------------
21
21
 
22
22
  /* istanbul ignore next: this rule has known coverage issues, but it's deprecated and shouldn't be updated in the future anyway. */
23
+ /** @type {import('../shared/types').Rule} */
23
24
  module.exports = {
24
25
  meta: {
25
26
  type: "layout",
@@ -494,6 +494,7 @@ const ELEMENT_LIST_SCHEMA = {
494
494
  ]
495
495
  };
496
496
 
497
+ /** @type {import('../shared/types').Rule} */
497
498
  module.exports = {
498
499
  meta: {
499
500
  type: "layout",
@@ -42,6 +42,7 @@ function isInitialized(node) {
42
42
  // Rule Definition
43
43
  //------------------------------------------------------------------------------
44
44
 
45
+ /** @type {import('../shared/types').Rule} */
45
46
  module.exports = {
46
47
  meta: {
47
48
  type: "suggestion",
@@ -36,6 +36,7 @@ const QUOTE_SETTINGS = {
36
36
  // Rule Definition
37
37
  //------------------------------------------------------------------------------
38
38
 
39
+ /** @type {import('../shared/types').Rule} */
39
40
  module.exports = {
40
41
  meta: {
41
42
  type: "layout",
@@ -133,6 +133,7 @@ function initOptions(toOptions, fromOptions) {
133
133
  // Rule Definition
134
134
  //------------------------------------------------------------------------------
135
135
 
136
+ /** @type {import('../shared/types').Rule} */
136
137
  module.exports = {
137
138
  meta: {
138
139
  type: "layout",
@@ -61,6 +61,7 @@ function isCloseParenOfTemplate(token) {
61
61
  // Rule Definition
62
62
  //------------------------------------------------------------------------------
63
63
 
64
+ /** @type {import('../shared/types').Rule} */
64
65
  module.exports = {
65
66
  meta: {
66
67
  type: "layout",
@@ -10,6 +10,7 @@ const astUtils = require("./utils/ast-utils");
10
10
  // Rule Definition
11
11
  //------------------------------------------------------------------------------
12
12
 
13
+ /** @type {import('../shared/types').Rule} */
13
14
  module.exports = {
14
15
  meta: {
15
16
  type: "layout",
@@ -15,6 +15,7 @@ const astUtils = require("./utils/ast-utils");
15
15
  // Rule Definition
16
16
  //------------------------------------------------------------------------------
17
17
 
18
+ /** @type {import('../shared/types').Rule} */
18
19
  module.exports = {
19
20
  meta: {
20
21
  type: "layout",
@@ -49,6 +49,7 @@ function getCommentLineNums(comments) {
49
49
  // Rule Definition
50
50
  //------------------------------------------------------------------------------
51
51
 
52
+ /** @type {import('../shared/types').Rule} */
52
53
  module.exports = {
53
54
  meta: {
54
55
  type: "layout",
@@ -12,6 +12,7 @@ const astUtils = require("./utils/ast-utils");
12
12
  // Rule Definition
13
13
  //------------------------------------------------------------------------------
14
14
 
15
+ /** @type {import('../shared/types').Rule} */
15
16
  module.exports = {
16
17
  meta: {
17
18
  type: "layout",
@@ -14,6 +14,7 @@ const astUtils = require("./utils/ast-utils");
14
14
  // Rule Definition
15
15
  //------------------------------------------------------------------------------
16
16
 
17
+ /** @type {import('../shared/types').Rule} */
17
18
  module.exports = {
18
19
  meta: {
19
20
  type: "layout",
@@ -13,6 +13,7 @@
13
13
  // Rule Definition
14
14
  //------------------------------------------------------------------------------
15
15
 
16
+ /** @type {import('../shared/types').Rule} */
16
17
  module.exports = {
17
18
  meta: {
18
19
  type: "suggestion",
@@ -9,6 +9,7 @@
9
9
  // Rule Definition
10
10
  //------------------------------------------------------------------------------
11
11
 
12
+ /** @type {import('../shared/types').Rule} */
12
13
  module.exports = {
13
14
  meta: {
14
15
  type: "suggestion",
@@ -63,6 +63,7 @@ const OPTIONS_OR_INTEGER_SCHEMA = {
63
63
  // Rule Definition
64
64
  //------------------------------------------------------------------------------
65
65
 
66
+ /** @type {import('../shared/types').Rule} */
66
67
  module.exports = {
67
68
  meta: {
68
69
  type: "layout",