eslint 9.20.1 → 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 +2 -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 +8 -4
  102. package/messages/config-plugin-missing.js +14 -0
  103. package/package.json +7 -7
@@ -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: "function-call-spacing",
37
+ url: "https://eslint.style/rules/js/function-call-spacing"
38
+ }
39
+ }
40
+ ]
41
+ },
24
42
  type: "layout",
25
43
 
26
44
  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: "function-call-argument-newline",
31
+ url: "https://eslint.style/rules/js/function-call-argument-newline"
32
+ }
33
+ }
34
+ ]
35
+ },
18
36
  type: "layout",
19
37
 
20
38
  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: "function-paren-newline",
36
+ url: "https://eslint.style/rules/js/function-paren-newline"
37
+ }
38
+ }
39
+ ]
40
+ },
23
41
  type: "layout",
24
42
 
25
43
  docs: {
@@ -29,8 +29,26 @@ const OVERRIDE_SCHEMA = {
29
29
  /** @type {import('../shared/types').Rule} */
30
30
  module.exports = {
31
31
  meta: {
32
- deprecated: true,
33
- replacedBy: [],
32
+ deprecated: {
33
+ message: "Formatting rules are being moved out of ESLint core.",
34
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
35
+ deprecatedSince: "8.53.0",
36
+ availableUntil: "10.0.0",
37
+ replacedBy: [
38
+ {
39
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
40
+ url: "https://eslint.style/guide/migration",
41
+ plugin: {
42
+ name: "@stylistic/eslint-plugin-js",
43
+ url: "https://eslint.style/packages/js"
44
+ },
45
+ rule: {
46
+ name: "generator-star-spacing",
47
+ url: "https://eslint.style/rules/js/generator-star-spacing"
48
+ }
49
+ }
50
+ ]
51
+ },
34
52
  type: "layout",
35
53
 
36
54
  docs: {
@@ -52,9 +52,25 @@ function isShadowed(scope, node) {
52
52
  /** @type {import('../shared/types').Rule} */
53
53
  module.exports = {
54
54
  meta: {
55
- deprecated: true,
56
-
57
- replacedBy: [],
55
+ deprecated: {
56
+ message: "Node.js rules were moved out of ESLint core.",
57
+ url: "https://eslint.org/docs/latest/use/migrating-to-7.0.0#deprecate-node-rules",
58
+ deprecatedSince: "7.0.0",
59
+ availableUntil: null,
60
+ replacedBy: [
61
+ {
62
+ message: "eslint-plugin-n now maintains deprecated Node.js-related rules.",
63
+ plugin: {
64
+ name: "eslint-plugin-n",
65
+ url: "https://github.com/eslint-community/eslint-plugin-n"
66
+ },
67
+ rule: {
68
+ name: "global-require",
69
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/global-require.md"
70
+ }
71
+ }
72
+ ]
73
+ },
58
74
 
59
75
  type: "suggestion",
60
76
 
@@ -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: "handle-callback-err",
30
+ url: "https://github.com/eslint-community/eslint-plugin-n/tree/master/docs/rules/handle-callback-err.md"
31
+ }
32
+ }
33
+ ]
34
+ },
19
35
 
20
36
  type: "suggestion",
21
37
 
@@ -113,8 +113,20 @@ function isShorthandPropertyDefinition(node) {
113
113
  /** @type {import('../shared/types').Rule} */
114
114
  module.exports = {
115
115
  meta: {
116
- deprecated: true,
117
- replacedBy: ["id-denylist"],
116
+ deprecated: {
117
+ message: "The rule was renamed.",
118
+ url: "https://eslint.org/blog/2020/07/eslint-v7.5.0-released/#deprecating-id-blacklist",
119
+ deprecatedSince: "7.5.0",
120
+ availableUntil: null,
121
+ replacedBy: [
122
+ {
123
+ rule: {
124
+ name: "id-denylist",
125
+ url: "https://eslint.org/docs/rules/id-denylist"
126
+ }
127
+ }
128
+ ]
129
+ },
118
130
 
119
131
  type: "suggestion",
120
132
 
@@ -13,8 +13,26 @@ const { isCommentToken, isNotOpeningParenToken } = require("./utils/ast-utils");
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: "implicit-arrow-linebreak",
31
+ url: "https://eslint.style/rules/js/implicit-arrow-linebreak"
32
+ }
33
+ }
34
+ ]
35
+ },
18
36
  type: "layout",
19
37
 
20
38
  docs: {
@@ -31,9 +31,25 @@ module.exports = {
31
31
  url: "https://eslint.org/docs/latest/rules/indent-legacy"
32
32
  },
33
33
 
34
- deprecated: true,
35
-
36
- replacedBy: ["indent"],
34
+ deprecated: {
35
+ message: "Formatting rules are being moved out of ESLint core.",
36
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
37
+ deprecatedSince: "4.0.0",
38
+ replacedBy: [
39
+ {
40
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
41
+ url: "https://eslint.style/guide/migration",
42
+ plugin: {
43
+ name: "@stylistic/eslint-plugin-js",
44
+ url: "https://eslint.style/packages/js"
45
+ },
46
+ rule: {
47
+ name: "indent",
48
+ url: "https://eslint.style/rules/js/indent"
49
+ }
50
+ }
51
+ ]
52
+ },
37
53
 
38
54
  fixable: "whitespace",
39
55
 
@@ -494,8 +494,26 @@ const ELEMENT_LIST_SCHEMA = {
494
494
  /** @type {import('../shared/types').Rule} */
495
495
  module.exports = {
496
496
  meta: {
497
- deprecated: true,
498
- replacedBy: [],
497
+ deprecated: {
498
+ message: "Formatting rules are being moved out of ESLint core.",
499
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
500
+ deprecatedSince: "8.53.0",
501
+ availableUntil: "10.0.0",
502
+ replacedBy: [
503
+ {
504
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
505
+ url: "https://eslint.style/guide/migration",
506
+ plugin: {
507
+ name: "@stylistic/eslint-plugin-js",
508
+ url: "https://eslint.style/packages/js"
509
+ },
510
+ rule: {
511
+ name: "indent",
512
+ url: "https://eslint.style/rules/js/indent"
513
+ }
514
+ }
515
+ ]
516
+ },
499
517
  type: "layout",
500
518
 
501
519
  docs: {
@@ -40,8 +40,26 @@ const QUOTE_SETTINGS = {
40
40
  /** @type {import('../shared/types').Rule} */
41
41
  module.exports = {
42
42
  meta: {
43
- deprecated: true,
44
- replacedBy: [],
43
+ deprecated: {
44
+ message: "Formatting rules are being moved out of ESLint core.",
45
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
46
+ deprecatedSince: "8.53.0",
47
+ availableUntil: "10.0.0",
48
+ replacedBy: [
49
+ {
50
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
51
+ url: "https://eslint.style/guide/migration",
52
+ plugin: {
53
+ name: "@stylistic/eslint-plugin-js",
54
+ url: "https://eslint.style/packages/js"
55
+ },
56
+ rule: {
57
+ name: "jsx-quotes",
58
+ url: "https://eslint.style/rules/js/jsx-quotes"
59
+ }
60
+ }
61
+ ]
62
+ },
45
63
  type: "layout",
46
64
 
47
65
  docs: {
@@ -134,8 +134,26 @@ function initOptions(toOptions, fromOptions) {
134
134
  /** @type {import('../shared/types').Rule} */
135
135
  module.exports = {
136
136
  meta: {
137
- deprecated: true,
138
- replacedBy: [],
137
+ deprecated: {
138
+ message: "Formatting rules are being moved out of ESLint core.",
139
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
140
+ deprecatedSince: "8.53.0",
141
+ availableUntil: "10.0.0",
142
+ replacedBy: [
143
+ {
144
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
145
+ url: "https://eslint.style/guide/migration",
146
+ plugin: {
147
+ name: "@stylistic/eslint-plugin-js",
148
+ url: "https://eslint.style/packages/js"
149
+ },
150
+ rule: {
151
+ name: "key-spacing",
152
+ url: "https://eslint.style/rules/js/key-spacing"
153
+ }
154
+ }
155
+ ]
156
+ },
139
157
  type: "layout",
140
158
 
141
159
  docs: {
@@ -65,8 +65,26 @@ function isCloseParenOfTemplate(token) {
65
65
  /** @type {import('../shared/types').Rule} */
66
66
  module.exports = {
67
67
  meta: {
68
- deprecated: true,
69
- replacedBy: [],
68
+ deprecated: {
69
+ message: "Formatting rules are being moved out of ESLint core.",
70
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
71
+ deprecatedSince: "8.53.0",
72
+ availableUntil: "10.0.0",
73
+ replacedBy: [
74
+ {
75
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
76
+ url: "https://eslint.style/guide/migration",
77
+ plugin: {
78
+ name: "@stylistic/eslint-plugin-js",
79
+ url: "https://eslint.style/packages/js"
80
+ },
81
+ rule: {
82
+ name: "keyword-spacing",
83
+ url: "https://eslint.style/rules/js/keyword-spacing"
84
+ }
85
+ }
86
+ ]
87
+ },
70
88
  type: "layout",
71
89
 
72
90
  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: "9.3.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: "line-comment-position",
32
+ url: "https://eslint.style/rules/js/line-comment-position"
33
+ }
34
+ }
35
+ ]
36
+ },
19
37
  type: "layout",
20
38
 
21
39
  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: "linebreak-style",
37
+ url: "https://eslint.style/rules/js/linebreak-style"
38
+ }
39
+ }
40
+ ]
41
+ },
24
42
  type: "layout",
25
43
 
26
44
  docs: {
@@ -53,8 +53,26 @@ function getCommentLineNums(comments) {
53
53
  /** @type {import('../shared/types').Rule} */
54
54
  module.exports = {
55
55
  meta: {
56
- deprecated: true,
57
- replacedBy: [],
56
+ deprecated: {
57
+ message: "Formatting rules are being moved out of ESLint core.",
58
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
59
+ deprecatedSince: "8.53.0",
60
+ availableUntil: "10.0.0",
61
+ replacedBy: [
62
+ {
63
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
64
+ url: "https://eslint.style/guide/migration",
65
+ plugin: {
66
+ name: "@stylistic/eslint-plugin-js",
67
+ url: "https://eslint.style/packages/js"
68
+ },
69
+ rule: {
70
+ name: "lines-around-comment",
71
+ url: "https://eslint.style/rules/js/lines-around-comment"
72
+ }
73
+ }
74
+ ]
75
+ },
58
76
  type: "layout",
59
77
 
60
78
  docs: {
@@ -49,8 +49,26 @@ module.exports = {
49
49
  expected: "Expected newline {{location}} \"{{value}}\" directive.",
50
50
  unexpected: "Unexpected newline {{location}} \"{{value}}\" directive."
51
51
  },
52
- deprecated: true,
53
- replacedBy: ["padding-line-between-statements"]
52
+ deprecated: {
53
+ message: "The rule was replaced with a more general rule.",
54
+ url: "https://eslint.org/blog/2017/06/eslint-v4.0.0-released/",
55
+ deprecatedSince: "4.0.0",
56
+ availableUntil: null,
57
+ replacedBy: [
58
+ {
59
+ message: "The new rule moved to a plugin.",
60
+ url: "https://eslint.org/docs/latest/rules/padding-line-between-statements#examples",
61
+ plugin: {
62
+ name: "@stylistic/eslint-plugin-js",
63
+ url: "https://eslint.style/packages/js"
64
+ },
65
+ rule: {
66
+ name: "padding-line-between-statements",
67
+ url: "https://eslint.style/rules/js/padding-line-between-statements"
68
+ }
69
+ }
70
+ ]
71
+ }
54
72
  },
55
73
 
56
74
  create(context) {
@@ -33,8 +33,26 @@ const ClassMemberTypes = {
33
33
  /** @type {import('../shared/types').Rule} */
34
34
  module.exports = {
35
35
  meta: {
36
- deprecated: true,
37
- replacedBy: [],
36
+ deprecated: {
37
+ message: "Formatting rules are being moved out of ESLint core.",
38
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
39
+ deprecatedSince: "8.53.0",
40
+ availableUntil: "10.0.0",
41
+ replacedBy: [
42
+ {
43
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
44
+ url: "https://eslint.style/guide/migration",
45
+ plugin: {
46
+ name: "@stylistic/eslint-plugin-js",
47
+ url: "https://eslint.style/packages/js"
48
+ },
49
+ rule: {
50
+ name: "lines-between-class-members",
51
+ url: "https://eslint.style/rules/js/lines-between-class-members"
52
+ }
53
+ }
54
+ ]
55
+ },
38
56
  type: "layout",
39
57
 
40
58
  docs: {
@@ -67,8 +67,26 @@ const OPTIONS_OR_INTEGER_SCHEMA = {
67
67
  /** @type {import('../shared/types').Rule} */
68
68
  module.exports = {
69
69
  meta: {
70
- deprecated: true,
71
- replacedBy: [],
70
+ deprecated: {
71
+ message: "Formatting rules are being moved out of ESLint core.",
72
+ url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
73
+ deprecatedSince: "8.53.0",
74
+ availableUntil: "10.0.0",
75
+ replacedBy: [
76
+ {
77
+ message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
78
+ url: "https://eslint.style/guide/migration",
79
+ plugin: {
80
+ name: "@stylistic/eslint-plugin-js",
81
+ url: "https://eslint.style/packages/js"
82
+ },
83
+ rule: {
84
+ name: "max-len",
85
+ url: "https://eslint.style/rules/js/max-len"
86
+ }
87
+ }
88
+ ]
89
+ },
72
90
  type: "layout",
73
91
 
74
92
  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: "max-statements-per-line",
36
+ url: "https://eslint.style/rules/js/max-statements-per-line"
37
+ }
38
+ }
39
+ ]
40
+ },
23
41
  type: "layout",
24
42
 
25
43
  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: "9.3.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: "multiline-comment-style",
32
+ url: "https://eslint.style/rules/js/multiline-comment-style"
33
+ }
34
+ }
35
+ ]
36
+ },
19
37
  type: "suggestion",
20
38
  docs: {
21
39
  description: "Enforce a particular style for multiline comments",
@@ -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: "multiline-ternary",
33
+ url: "https://eslint.style/rules/js/multiline-ternary"
34
+ }
35
+ }
36
+ ]
37
+ },
20
38
  type: "layout",
21
39
 
22
40
  docs: {