eslint 9.20.0 → 9.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 (103) hide show
  1. package/README.md +13 -2
  2. package/conf/rule-type-list.json +82 -18
  3. package/lib/cli.js +23 -0
  4. package/lib/config/rule-validator.js +12 -2
  5. package/lib/eslint/eslint.js +7 -1
  6. package/lib/options.js +6 -0
  7. package/lib/rules/array-bracket-newline.js +20 -2
  8. package/lib/rules/array-bracket-spacing.js +20 -2
  9. package/lib/rules/array-element-newline.js +20 -2
  10. package/lib/rules/arrow-parens.js +20 -2
  11. package/lib/rules/arrow-spacing.js +20 -2
  12. package/lib/rules/block-spacing.js +20 -2
  13. package/lib/rules/brace-style.js +20 -2
  14. package/lib/rules/callback-return.js +19 -3
  15. package/lib/rules/comma-dangle.js +20 -2
  16. package/lib/rules/comma-spacing.js +20 -2
  17. package/lib/rules/comma-style.js +20 -2
  18. package/lib/rules/computed-property-spacing.js +20 -2
  19. package/lib/rules/dot-location.js +20 -2
  20. package/lib/rules/eol-last.js +20 -2
  21. package/lib/rules/func-call-spacing.js +20 -2
  22. package/lib/rules/function-call-argument-newline.js +20 -2
  23. package/lib/rules/function-paren-newline.js +20 -2
  24. package/lib/rules/generator-star-spacing.js +20 -2
  25. package/lib/rules/global-require.js +19 -3
  26. package/lib/rules/handle-callback-err.js +19 -3
  27. package/lib/rules/id-blacklist.js +14 -2
  28. package/lib/rules/implicit-arrow-linebreak.js +20 -2
  29. package/lib/rules/indent-legacy.js +19 -3
  30. package/lib/rules/indent.js +20 -2
  31. package/lib/rules/jsx-quotes.js +20 -2
  32. package/lib/rules/key-spacing.js +20 -2
  33. package/lib/rules/keyword-spacing.js +20 -2
  34. package/lib/rules/line-comment-position.js +20 -2
  35. package/lib/rules/linebreak-style.js +20 -2
  36. package/lib/rules/lines-around-comment.js +20 -2
  37. package/lib/rules/lines-around-directive.js +20 -2
  38. package/lib/rules/lines-between-class-members.js +20 -2
  39. package/lib/rules/max-len.js +20 -2
  40. package/lib/rules/max-statements-per-line.js +20 -2
  41. package/lib/rules/multiline-comment-style.js +20 -2
  42. package/lib/rules/multiline-ternary.js +20 -2
  43. package/lib/rules/new-parens.js +20 -2
  44. package/lib/rules/newline-after-var.js +20 -3
  45. package/lib/rules/newline-before-return.js +20 -2
  46. package/lib/rules/newline-per-chained-call.js +20 -2
  47. package/lib/rules/no-buffer-constructor.js +19 -3
  48. package/lib/rules/no-catch-shadow.js +14 -3
  49. package/lib/rules/no-confusing-arrow.js +20 -2
  50. package/lib/rules/no-extra-parens.js +20 -2
  51. package/lib/rules/no-extra-semi.js +20 -2
  52. package/lib/rules/no-floating-decimal.js +20 -2
  53. package/lib/rules/no-mixed-operators.js +20 -2
  54. package/lib/rules/no-mixed-requires.js +19 -3
  55. package/lib/rules/no-mixed-spaces-and-tabs.js +20 -2
  56. package/lib/rules/no-multi-spaces.js +20 -2
  57. package/lib/rules/no-multiple-empty-lines.js +20 -2
  58. package/lib/rules/no-native-reassign.js +14 -3
  59. package/lib/rules/no-negated-in-lhs.js +14 -3
  60. package/lib/rules/no-new-object.js +14 -5
  61. package/lib/rules/no-new-require.js +19 -3
  62. package/lib/rules/no-new-symbol.js +14 -5
  63. package/lib/rules/no-path-concat.js +19 -3
  64. package/lib/rules/no-process-env.js +19 -3
  65. package/lib/rules/no-process-exit.js +19 -3
  66. package/lib/rules/no-restricted-modules.js +19 -3
  67. package/lib/rules/no-return-await.js +7 -3
  68. package/lib/rules/no-spaced-func.js +20 -3
  69. package/lib/rules/no-sync.js +19 -3
  70. package/lib/rules/no-tabs.js +20 -2
  71. package/lib/rules/no-trailing-spaces.js +20 -2
  72. package/lib/rules/no-whitespace-before-property.js +20 -2
  73. package/lib/rules/nonblock-statement-body-position.js +20 -2
  74. package/lib/rules/object-curly-newline.js +20 -2
  75. package/lib/rules/object-curly-spacing.js +20 -2
  76. package/lib/rules/object-property-newline.js +20 -2
  77. package/lib/rules/one-var-declaration-per-line.js +20 -2
  78. package/lib/rules/operator-linebreak.js +20 -2
  79. package/lib/rules/padded-blocks.js +20 -2
  80. package/lib/rules/padding-line-between-statements.js +20 -2
  81. package/lib/rules/prefer-reflect.js +7 -3
  82. package/lib/rules/quote-props.js +20 -2
  83. package/lib/rules/quotes.js +20 -2
  84. package/lib/rules/rest-spread-spacing.js +20 -2
  85. package/lib/rules/semi-spacing.js +20 -2
  86. package/lib/rules/semi-style.js +20 -2
  87. package/lib/rules/semi.js +20 -2
  88. package/lib/rules/space-before-blocks.js +20 -2
  89. package/lib/rules/space-before-function-paren.js +20 -2
  90. package/lib/rules/space-in-parens.js +20 -2
  91. package/lib/rules/space-infix-ops.js +20 -2
  92. package/lib/rules/space-unary-ops.js +20 -2
  93. package/lib/rules/spaced-comment.js +20 -2
  94. package/lib/rules/switch-colon-spacing.js +20 -2
  95. package/lib/rules/template-curly-spacing.js +20 -2
  96. package/lib/rules/template-tag-spacing.js +20 -2
  97. package/lib/rules/wrap-iife.js +20 -2
  98. package/lib/rules/wrap-regex.js +20 -2
  99. package/lib/rules/yield-star-spacing.js +20 -2
  100. package/lib/shared/types.js +19 -1
  101. package/lib/types/index.d.ts +13 -5
  102. package/messages/config-plugin-missing.js +14 -0
  103. package/package.json +7 -7
@@ -12,9 +12,25 @@
12
12
  /** @type {import('../shared/types').Rule} */
13
13
  module.exports = {
14
14
  meta: {
15
- deprecated: true,
16
-
17
- replacedBy: [],
15
+ deprecated: {
16
+ message: "Node.js rules were moved out of ESLint core.",
17
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
18
+ deprecatedSince: "7.0.0",
19
+ availableUntil: null,
20
+ replacedBy: [
21
+ {
22
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
23
+ plugin: {
24
+ name: "eslint-plugin-n",
25
+ url: "https://github.com/eslint-community/eslint-plugin-n"
26
+ },
27
+ rule: {
28
+ name: "no-process-env",
29
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-process-env.md"
30
+ }
31
+ }
32
+ ]
33
+ },
18
34
 
19
35
  type: "suggestion",
20
36
 
@@ -12,9 +12,25 @@
12
12
  /** @type {import('../shared/types').Rule} */
13
13
  module.exports = {
14
14
  meta: {
15
- deprecated: true,
16
-
17
- replacedBy: [],
15
+ deprecated: {
16
+ message: "Node.js rules were moved out of ESLint core.",
17
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
18
+ deprecatedSince: "7.0.0",
19
+ availableUntil: null,
20
+ replacedBy: [
21
+ {
22
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
23
+ plugin: {
24
+ name: "eslint-plugin-n",
25
+ url: "https://github.com/eslint-community/eslint-plugin-n"
26
+ },
27
+ rule: {
28
+ name: "no-process-exit",
29
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-process-exit.md"
30
+ }
31
+ }
32
+ ]
33
+ },
18
34
 
19
35
  type: "suggestion",
20
36
 
@@ -48,9 +48,25 @@ const arrayOfStringsOrObjects = {
48
48
  /** @type {import('../shared/types').Rule} */
49
49
  module.exports = {
50
50
  meta: {
51
- deprecated: true,
52
-
53
- replacedBy: [],
51
+ deprecated: {
52
+ message: "Node.js rules were moved out of ESLint core.",
53
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
54
+ deprecatedSince: "7.0.0",
55
+ availableUntil: null,
56
+ replacedBy: [
57
+ {
58
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
59
+ plugin: {
60
+ name: "eslint-plugin-n",
61
+ url: "https://github.com/eslint-community/eslint-plugin-n"
62
+ },
63
+ rule: {
64
+ name: "no-restricted-require",
65
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-restricted-require.md"
66
+ }
67
+ }
68
+ ]
69
+ },
54
70
 
55
71
  type: "suggestion",
56
72
 
@@ -27,9 +27,13 @@ module.exports = {
27
27
 
28
28
  fixable: null,
29
29
 
30
- deprecated: true,
31
-
32
- replacedBy: [],
30
+ deprecated: {
31
+ message: "The original assumption of the rule no longer holds true because of engine optimization.",
32
+ url: "https://eslint.org/docs/latest/rules/no-return-await",
33
+ deprecatedSince: "8.46.0",
34
+ availableUntil: null,
35
+ replacedBy: []
36
+ },
33
37
 
34
38
  schema: [
35
39
  ],
@@ -21,9 +21,26 @@ module.exports = {
21
21
  url: "https://eslint.org/docs/latest/rules/no-spaced-func"
22
22
  },
23
23
 
24
- deprecated: true,
25
-
26
- replacedBy: ["func-call-spacing"],
24
+ deprecated: {
25
+ message: "Formatting rules are being moved out of ESLint core.",
26
+ url: "https://eslint.org/blog/2016/08/eslint-v3.3.0-released/#deprecated-rules",
27
+ deprecatedSince: "3.3.0",
28
+ availableUntil: "10.0.0",
29
+ replacedBy: [
30
+ {
31
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
32
+ url: "https://eslint.style/guide/migration",
33
+ plugin: {
34
+ name: "@stylistic/eslint-plugin-js",
35
+ url: "https://eslint.style/packages/js"
36
+ },
37
+ rule: {
38
+ name: "function-call-spacing",
39
+ url: "https://eslint.style/rules/js/function-call-spacing"
40
+ }
41
+ }
42
+ ]
43
+ },
27
44
 
28
45
  fixable: "whitespace",
29
46
  schema: [],
@@ -13,9 +13,25 @@
13
13
  /** @type {import('../shared/types').Rule} */
14
14
  module.exports = {
15
15
  meta: {
16
- deprecated: true,
17
-
18
- replacedBy: [],
16
+ deprecated: {
17
+ message: "Node.js rules were moved out of ESLint core.",
18
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
19
+ deprecatedSince: "7.0.0",
20
+ availableUntil: null,
21
+ replacedBy: [
22
+ {
23
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
24
+ plugin: {
25
+ name: "eslint-plugin-n",
26
+ url: "https://github.com/eslint-community/eslint-plugin-n"
27
+ },
28
+ rule: {
29
+ name: "no-sync",
30
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/no-sync.md"
31
+ }
32
+ }
33
+ ]
34
+ },
19
35
 
20
36
  type: "suggestion",
21
37
 
@@ -20,8 +20,26 @@ const anyNonWhitespaceRegex = /\S/u;
20
20
  /** @type {import('../shared/types').Rule} */
21
21
  module.exports = {
22
22
  meta: {
23
- deprecated: true,
24
- replacedBy: [],
23
+ deprecated: {
24
+ message: "Formatting rules are being moved out of ESLint core.",
25
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
26
+ deprecatedSince: "8.53.0",
27
+ availableUntil: "10.0.0",
28
+ replacedBy: [
29
+ {
30
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
31
+ url: "https://eslint.style/guide/migration",
32
+ plugin: {
33
+ name: "@stylistic/eslint-plugin-js",
34
+ url: "https://eslint.style/packages/js"
35
+ },
36
+ rule: {
37
+ name: "no-tabs",
38
+ url: "https://eslint.style/rules/js/no-tabs"
39
+ }
40
+ }
41
+ ]
42
+ },
25
43
  type: "layout",
26
44
 
27
45
  docs: {
@@ -18,8 +18,26 @@ const astUtils = require("./utils/ast-utils");
18
18
  /** @type {import('../shared/types').Rule} */
19
19
  module.exports = {
20
20
  meta: {
21
- deprecated: true,
22
- replacedBy: [],
21
+ deprecated: {
22
+ message: "Formatting rules are being moved out of ESLint core.",
23
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
24
+ deprecatedSince: "8.53.0",
25
+ availableUntil: "10.0.0",
26
+ replacedBy: [
27
+ {
28
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
29
+ url: "https://eslint.style/guide/migration",
30
+ plugin: {
31
+ name: "@stylistic/eslint-plugin-js",
32
+ url: "https://eslint.style/packages/js"
33
+ },
34
+ rule: {
35
+ name: "no-trailing-spaces",
36
+ url: "https://eslint.style/rules/js/no-trailing-spaces"
37
+ }
38
+ }
39
+ ]
40
+ },
23
41
  type: "layout",
24
42
 
25
43
  docs: {
@@ -18,8 +18,26 @@ const astUtils = require("./utils/ast-utils");
18
18
  /** @type {import('../shared/types').Rule} */
19
19
  module.exports = {
20
20
  meta: {
21
- deprecated: true,
22
- replacedBy: [],
21
+ deprecated: {
22
+ message: "Formatting rules are being moved out of ESLint core.",
23
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
24
+ deprecatedSince: "8.53.0",
25
+ availableUntil: "10.0.0",
26
+ replacedBy: [
27
+ {
28
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
29
+ url: "https://eslint.style/guide/migration",
30
+ plugin: {
31
+ name: "@stylistic/eslint-plugin-js",
32
+ url: "https://eslint.style/packages/js"
33
+ },
34
+ rule: {
35
+ name: "no-whitespace-before-property",
36
+ url: "https://eslint.style/rules/js/no-whitespace-before-property"
37
+ }
38
+ }
39
+ ]
40
+ },
23
41
  type: "layout",
24
42
 
25
43
  docs: {
@@ -14,8 +14,26 @@ const POSITION_SCHEMA = { enum: ["beside", "below", "any"] };
14
14
  /** @type {import('../shared/types').Rule} */
15
15
  module.exports = {
16
16
  meta: {
17
- deprecated: true,
18
- replacedBy: [],
17
+ deprecated: {
18
+ message: "Formatting rules are being moved out of ESLint core.",
19
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
20
+ deprecatedSince: "8.53.0",
21
+ availableUntil: "10.0.0",
22
+ replacedBy: [
23
+ {
24
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
25
+ url: "https://eslint.style/guide/migration",
26
+ plugin: {
27
+ name: "@stylistic/eslint-plugin-js",
28
+ url: "https://eslint.style/packages/js"
29
+ },
30
+ rule: {
31
+ name: "nonblock-statement-body-position",
32
+ url: "https://eslint.style/rules/js/nonblock-statement-body-position"
33
+ }
34
+ }
35
+ ]
36
+ },
19
37
  type: "layout",
20
38
 
21
39
  docs: {
@@ -148,8 +148,26 @@ function areLineBreaksRequired(node, options, first, last) {
148
148
  /** @type {import('../shared/types').Rule} */
149
149
  module.exports = {
150
150
  meta: {
151
- deprecated: true,
152
- replacedBy: [],
151
+ deprecated: {
152
+ message: "Formatting rules are being moved out of ESLint core.",
153
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
154
+ deprecatedSince: "8.53.0",
155
+ availableUntil: "10.0.0",
156
+ replacedBy: [
157
+ {
158
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
159
+ url: "https://eslint.style/guide/migration",
160
+ plugin: {
161
+ name: "@stylistic/eslint-plugin-js",
162
+ url: "https://eslint.style/packages/js"
163
+ },
164
+ rule: {
165
+ name: "object-curly-newline",
166
+ url: "https://eslint.style/rules/js/object-curly-newline"
167
+ }
168
+ }
169
+ ]
170
+ },
153
171
  type: "layout",
154
172
 
155
173
  docs: {
@@ -14,8 +14,26 @@ const astUtils = require("./utils/ast-utils");
14
14
  /** @type {import('../shared/types').Rule} */
15
15
  module.exports = {
16
16
  meta: {
17
- deprecated: true,
18
- replacedBy: [],
17
+ deprecated: {
18
+ message: "Formatting rules are being moved out of ESLint core.",
19
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
20
+ deprecatedSince: "8.53.0",
21
+ availableUntil: "10.0.0",
22
+ replacedBy: [
23
+ {
24
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
25
+ url: "https://eslint.style/guide/migration",
26
+ plugin: {
27
+ name: "@stylistic/eslint-plugin-js",
28
+ url: "https://eslint.style/packages/js"
29
+ },
30
+ rule: {
31
+ name: "object-curly-spacing",
32
+ url: "https://eslint.style/rules/js/object-curly-spacing"
33
+ }
34
+ }
35
+ ]
36
+ },
19
37
  type: "layout",
20
38
 
21
39
  docs: {
@@ -13,8 +13,26 @@
13
13
  /** @type {import('../shared/types').Rule} */
14
14
  module.exports = {
15
15
  meta: {
16
- deprecated: true,
17
- replacedBy: [],
16
+ deprecated: {
17
+ message: "Formatting rules are being moved out of ESLint core.",
18
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
19
+ deprecatedSince: "8.53.0",
20
+ availableUntil: "10.0.0",
21
+ replacedBy: [
22
+ {
23
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
24
+ url: "https://eslint.style/guide/migration",
25
+ plugin: {
26
+ name: "@stylistic/eslint-plugin-js",
27
+ url: "https://eslint.style/packages/js"
28
+ },
29
+ rule: {
30
+ name: "object-property-newline",
31
+ url: "https://eslint.style/rules/js/object-property-newline"
32
+ }
33
+ }
34
+ ]
35
+ },
18
36
  type: "layout",
19
37
 
20
38
  docs: {
@@ -12,8 +12,26 @@
12
12
  /** @type {import('../shared/types').Rule} */
13
13
  module.exports = {
14
14
  meta: {
15
- deprecated: true,
16
- replacedBy: [],
15
+ deprecated: {
16
+ message: "Formatting rules are being moved out of ESLint core.",
17
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
18
+ deprecatedSince: "8.53.0",
19
+ availableUntil: "10.0.0",
20
+ replacedBy: [
21
+ {
22
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
23
+ url: "https://eslint.style/guide/migration",
24
+ plugin: {
25
+ name: "@stylistic/eslint-plugin-js",
26
+ url: "https://eslint.style/packages/js"
27
+ },
28
+ rule: {
29
+ name: "one-var-declaration-per-line",
30
+ url: "https://eslint.style/rules/js/one-var-declaration-per-line"
31
+ }
32
+ }
33
+ ]
34
+ },
17
35
  type: "suggestion",
18
36
 
19
37
  docs: {
@@ -19,8 +19,26 @@ const astUtils = require("./utils/ast-utils");
19
19
  /** @type {import('../shared/types').Rule} */
20
20
  module.exports = {
21
21
  meta: {
22
- deprecated: true,
23
- replacedBy: [],
22
+ deprecated: {
23
+ message: "Formatting rules are being moved out of ESLint core.",
24
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
25
+ deprecatedSince: "8.53.0",
26
+ availableUntil: "10.0.0",
27
+ replacedBy: [
28
+ {
29
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
30
+ url: "https://eslint.style/guide/migration",
31
+ plugin: {
32
+ name: "@stylistic/eslint-plugin-js",
33
+ url: "https://eslint.style/packages/js"
34
+ },
35
+ rule: {
36
+ name: "operator-linebreak",
37
+ url: "https://eslint.style/rules/js/operator-linebreak"
38
+ }
39
+ }
40
+ ]
41
+ },
24
42
  type: "layout",
25
43
 
26
44
  docs: {
@@ -19,8 +19,26 @@ const astUtils = require("./utils/ast-utils");
19
19
  /** @type {import('../shared/types').Rule} */
20
20
  module.exports = {
21
21
  meta: {
22
- deprecated: true,
23
- replacedBy: [],
22
+ deprecated: {
23
+ message: "Formatting rules are being moved out of ESLint core.",
24
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
25
+ deprecatedSince: "8.53.0",
26
+ availableUntil: "10.0.0",
27
+ replacedBy: [
28
+ {
29
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
30
+ url: "https://eslint.style/guide/migration",
31
+ plugin: {
32
+ name: "@stylistic/eslint-plugin-js",
33
+ url: "https://eslint.style/packages/js"
34
+ },
35
+ rule: {
36
+ name: "padded-blocks",
37
+ url: "https://eslint.style/rules/js/padded-blocks"
38
+ }
39
+ }
40
+ ]
41
+ },
24
42
  type: "layout",
25
43
 
26
44
  docs: {
@@ -384,8 +384,26 @@ const StatementTypes = {
384
384
  /** @type {import('../shared/types').Rule} */
385
385
  module.exports = {
386
386
  meta: {
387
- deprecated: true,
388
- replacedBy: [],
387
+ deprecated: {
388
+ message: "Formatting rules are being moved out of ESLint core.",
389
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
390
+ deprecatedSince: "8.53.0",
391
+ availableUntil: "10.0.0",
392
+ replacedBy: [
393
+ {
394
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
395
+ url: "https://eslint.style/guide/migration",
396
+ plugin: {
397
+ name: "@stylistic/eslint-plugin-js",
398
+ url: "https://eslint.style/packages/js"
399
+ },
400
+ rule: {
401
+ name: "padding-line-between-statements",
402
+ url: "https://eslint.style/rules/js/padding-line-between-statements"
403
+ }
404
+ }
405
+ ]
406
+ },
389
407
  type: "layout",
390
408
 
391
409
  docs: {
@@ -20,9 +20,13 @@ module.exports = {
20
20
  url: "https://eslint.org/docs/latest/rules/prefer-reflect"
21
21
  },
22
22
 
23
- deprecated: true,
24
-
25
- replacedBy: [],
23
+ deprecated: {
24
+ message: "The original intention of this rule was misguided.",
25
+ url: "https://eslint.org/docs/latest/rules/prefer-reflect",
26
+ deprecatedSince: "3.9.0",
27
+ availableUntil: null,
28
+ replacedBy: []
29
+ },
26
30
 
27
31
  schema: [
28
32
  {
@@ -20,8 +20,26 @@ const keywords = require("./utils/keywords");
20
20
  /** @type {import('../shared/types').Rule} */
21
21
  module.exports = {
22
22
  meta: {
23
- deprecated: true,
24
- replacedBy: [],
23
+ deprecated: {
24
+ message: "Formatting rules are being moved out of ESLint core.",
25
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
26
+ deprecatedSince: "8.53.0",
27
+ availableUntil: "10.0.0",
28
+ replacedBy: [
29
+ {
30
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
31
+ url: "https://eslint.style/guide/migration",
32
+ plugin: {
33
+ name: "@stylistic/eslint-plugin-js",
34
+ url: "https://eslint.style/packages/js"
35
+ },
36
+ rule: {
37
+ name: "quote-props",
38
+ url: "https://eslint.style/rules/js/quote-props"
39
+ }
40
+ }
41
+ ]
42
+ },
25
43
  type: "suggestion",
26
44
 
27
45
  docs: {
@@ -78,8 +78,26 @@ const AVOID_ESCAPE = "avoid-escape";
78
78
  /** @type {import('../shared/types').Rule} */
79
79
  module.exports = {
80
80
  meta: {
81
- deprecated: true,
82
- replacedBy: [],
81
+ deprecated: {
82
+ message: "Formatting rules are being moved out of ESLint core.",
83
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
84
+ deprecatedSince: "8.53.0",
85
+ availableUntil: "10.0.0",
86
+ replacedBy: [
87
+ {
88
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
89
+ url: "https://eslint.style/guide/migration",
90
+ plugin: {
91
+ name: "@stylistic/eslint-plugin-js",
92
+ url: "https://eslint.style/packages/js"
93
+ },
94
+ rule: {
95
+ name: "quotes",
96
+ url: "https://eslint.style/rules/js/quotes"
97
+ }
98
+ }
99
+ ]
100
+ },
83
101
  type: "layout",
84
102
 
85
103
  docs: {
@@ -13,8 +13,26 @@
13
13
  /** @type {import('../shared/types').Rule} */
14
14
  module.exports = {
15
15
  meta: {
16
- deprecated: true,
17
- replacedBy: [],
16
+ deprecated: {
17
+ message: "Formatting rules are being moved out of ESLint core.",
18
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
19
+ deprecatedSince: "8.53.0",
20
+ availableUntil: "10.0.0",
21
+ replacedBy: [
22
+ {
23
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
24
+ url: "https://eslint.style/guide/migration",
25
+ plugin: {
26
+ name: "@stylistic/eslint-plugin-js",
27
+ url: "https://eslint.style/packages/js"
28
+ },
29
+ rule: {
30
+ name: "rest-spread-spacing",
31
+ url: "https://eslint.style/rules/js/rest-spread-spacing"
32
+ }
33
+ }
34
+ ]
35
+ },
18
36
  type: "layout",
19
37
 
20
38
  docs: {
@@ -15,8 +15,26 @@ const astUtils = require("./utils/ast-utils");
15
15
  /** @type {import('../shared/types').Rule} */
16
16
  module.exports = {
17
17
  meta: {
18
- deprecated: true,
19
- replacedBy: [],
18
+ deprecated: {
19
+ message: "Formatting rules are being moved out of ESLint core.",
20
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
21
+ deprecatedSince: "8.53.0",
22
+ availableUntil: "10.0.0",
23
+ replacedBy: [
24
+ {
25
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
26
+ url: "https://eslint.style/guide/migration",
27
+ plugin: {
28
+ name: "@stylistic/eslint-plugin-js",
29
+ url: "https://eslint.style/packages/js"
30
+ },
31
+ rule: {
32
+ name: "semi-spacing",
33
+ url: "https://eslint.style/rules/js/semi-spacing"
34
+ }
35
+ }
36
+ ]
37
+ },
20
38
  type: "layout",
21
39
 
22
40
  docs: {