eslint-plugin-stylelint-2 1.0.9

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 (268) hide show
  1. package/CHANGELOG.md +329 -0
  2. package/LICENSE +21 -0
  3. package/README.md +174 -0
  4. package/dist/_internal/rule-docs-url.d.ts +15 -0
  5. package/dist/_internal/rule-docs-url.d.ts.map +1 -0
  6. package/dist/_internal/rule-docs-url.js +15 -0
  7. package/dist/_internal/rule-docs-url.js.map +1 -0
  8. package/dist/_internal/rules-registry.d.ts +88 -0
  9. package/dist/_internal/rules-registry.d.ts.map +1 -0
  10. package/dist/_internal/rules-registry.js +85 -0
  11. package/dist/_internal/rules-registry.js.map +1 -0
  12. package/dist/_internal/stylelint-config-boolean-option-rule.d.ts +17 -0
  13. package/dist/_internal/stylelint-config-boolean-option-rule.d.ts.map +1 -0
  14. package/dist/_internal/stylelint-config-boolean-option-rule.js +90 -0
  15. package/dist/_internal/stylelint-config-boolean-option-rule.js.map +1 -0
  16. package/dist/_internal/stylelint-config-disallowed-option-rule.d.ts +16 -0
  17. package/dist/_internal/stylelint-config-disallowed-option-rule.d.ts.map +1 -0
  18. package/dist/_internal/stylelint-config-disallowed-option-rule.js +48 -0
  19. package/dist/_internal/stylelint-config-disallowed-option-rule.js.map +1 -0
  20. package/dist/_internal/stylelint-config-object.d.ts +62 -0
  21. package/dist/_internal/stylelint-config-object.d.ts.map +1 -0
  22. package/dist/_internal/stylelint-config-object.js +114 -0
  23. package/dist/_internal/stylelint-config-object.js.map +1 -0
  24. package/dist/_internal/stylelint-config-package-option-rule.d.ts +12 -0
  25. package/dist/_internal/stylelint-config-package-option-rule.d.ts.map +1 -0
  26. package/dist/_internal/stylelint-config-package-option-rule.js +66 -0
  27. package/dist/_internal/stylelint-config-package-option-rule.js.map +1 -0
  28. package/dist/_internal/stylelint-config-rules-object.d.ts +23 -0
  29. package/dist/_internal/stylelint-config-rules-object.d.ts.map +1 -0
  30. package/dist/_internal/stylelint-config-rules-object.js +47 -0
  31. package/dist/_internal/stylelint-config-rules-object.js.map +1 -0
  32. package/dist/_internal/stylelint-config-string-array-option-rule.d.ts +27 -0
  33. package/dist/_internal/stylelint-config-string-array-option-rule.d.ts.map +1 -0
  34. package/dist/_internal/stylelint-config-string-array-option-rule.js +234 -0
  35. package/dist/_internal/stylelint-config-string-array-option-rule.js.map +1 -0
  36. package/dist/_internal/stylelint-config-string-array-option.d.ts +32 -0
  37. package/dist/_internal/stylelint-config-string-array-option.d.ts.map +1 -0
  38. package/dist/_internal/stylelint-config-string-array-option.js +55 -0
  39. package/dist/_internal/stylelint-config-string-array-option.js.map +1 -0
  40. package/dist/_internal/stylelint-package-dependencies.d.ts +18 -0
  41. package/dist/_internal/stylelint-package-dependencies.d.ts.map +1 -0
  42. package/dist/_internal/stylelint-package-dependencies.js +107 -0
  43. package/dist/_internal/stylelint-package-dependencies.js.map +1 -0
  44. package/dist/_internal/stylelint-runner.d.ts +4 -0
  45. package/dist/_internal/stylelint-runner.d.ts.map +1 -0
  46. package/dist/_internal/stylelint-runner.js +93 -0
  47. package/dist/_internal/stylelint-runner.js.map +1 -0
  48. package/dist/_internal/stylelint-worker-types.d.ts +70 -0
  49. package/dist/_internal/stylelint-worker-types.d.ts.map +1 -0
  50. package/dist/_internal/stylelint-worker-types.js +2 -0
  51. package/dist/_internal/stylelint-worker-types.js.map +1 -0
  52. package/dist/_internal/stylelint-worker.d.ts +2 -0
  53. package/dist/_internal/stylelint-worker.d.ts.map +1 -0
  54. package/dist/_internal/stylelint-worker.js +113 -0
  55. package/dist/_internal/stylelint-worker.js.map +1 -0
  56. package/dist/_internal/stylelint2-config-references.d.ts +32 -0
  57. package/dist/_internal/stylelint2-config-references.d.ts.map +1 -0
  58. package/dist/_internal/stylelint2-config-references.js +65 -0
  59. package/dist/_internal/stylelint2-config-references.js.map +1 -0
  60. package/dist/_internal/typed-rule.d.ts +42 -0
  61. package/dist/_internal/typed-rule.d.ts.map +1 -0
  62. package/dist/_internal/typed-rule.js +53 -0
  63. package/dist/_internal/typed-rule.js.map +1 -0
  64. package/dist/plugin.cjs +1 -0
  65. package/dist/plugin.d.cts +10 -0
  66. package/dist/plugin.d.ts +36 -0
  67. package/dist/plugin.d.ts.map +1 -0
  68. package/dist/plugin.js +183 -0
  69. package/dist/plugin.js.map +1 -0
  70. package/dist/rules/disallow-stylelint-allow-empty-input.d.ts +9 -0
  71. package/dist/rules/disallow-stylelint-allow-empty-input.d.ts.map +1 -0
  72. package/dist/rules/disallow-stylelint-allow-empty-input.js +29 -0
  73. package/dist/rules/disallow-stylelint-allow-empty-input.js.map +1 -0
  74. package/dist/rules/disallow-stylelint-configuration-comment.d.ts +9 -0
  75. package/dist/rules/disallow-stylelint-configuration-comment.d.ts.map +1 -0
  76. package/dist/rules/disallow-stylelint-configuration-comment.js +29 -0
  77. package/dist/rules/disallow-stylelint-configuration-comment.js.map +1 -0
  78. package/dist/rules/disallow-stylelint-custom-syntax.d.ts +12 -0
  79. package/dist/rules/disallow-stylelint-custom-syntax.d.ts.map +1 -0
  80. package/dist/rules/disallow-stylelint-custom-syntax.js +32 -0
  81. package/dist/rules/disallow-stylelint-custom-syntax.js.map +1 -0
  82. package/dist/rules/disallow-stylelint-default-severity.d.ts +9 -0
  83. package/dist/rules/disallow-stylelint-default-severity.d.ts.map +1 -0
  84. package/dist/rules/disallow-stylelint-default-severity.js +28 -0
  85. package/dist/rules/disallow-stylelint-default-severity.js.map +1 -0
  86. package/dist/rules/disallow-stylelint-duplicate-extends.d.ts +9 -0
  87. package/dist/rules/disallow-stylelint-duplicate-extends.d.ts.map +1 -0
  88. package/dist/rules/disallow-stylelint-duplicate-extends.js +29 -0
  89. package/dist/rules/disallow-stylelint-duplicate-extends.js.map +1 -0
  90. package/dist/rules/disallow-stylelint-duplicate-plugins.d.ts +9 -0
  91. package/dist/rules/disallow-stylelint-duplicate-plugins.d.ts.map +1 -0
  92. package/dist/rules/disallow-stylelint-duplicate-plugins.js +29 -0
  93. package/dist/rules/disallow-stylelint-duplicate-plugins.js.map +1 -0
  94. package/dist/rules/disallow-stylelint-duplicate-rule-option-values.d.ts +10 -0
  95. package/dist/rules/disallow-stylelint-duplicate-rule-option-values.d.ts.map +1 -0
  96. package/dist/rules/disallow-stylelint-duplicate-rule-option-values.js +171 -0
  97. package/dist/rules/disallow-stylelint-duplicate-rule-option-values.js.map +1 -0
  98. package/dist/rules/disallow-stylelint-empty-rules-object.d.ts +7 -0
  99. package/dist/rules/disallow-stylelint-empty-rules-object.d.ts.map +1 -0
  100. package/dist/rules/disallow-stylelint-empty-rules-object.js +65 -0
  101. package/dist/rules/disallow-stylelint-empty-rules-object.js.map +1 -0
  102. package/dist/rules/disallow-stylelint-ignore-disables.d.ts +9 -0
  103. package/dist/rules/disallow-stylelint-ignore-disables.d.ts.map +1 -0
  104. package/dist/rules/disallow-stylelint-ignore-disables.js +28 -0
  105. package/dist/rules/disallow-stylelint-ignore-disables.js.map +1 -0
  106. package/dist/rules/disallow-stylelint-ignore-files.d.ts +9 -0
  107. package/dist/rules/disallow-stylelint-ignore-files.d.ts.map +1 -0
  108. package/dist/rules/disallow-stylelint-ignore-files.js +28 -0
  109. package/dist/rules/disallow-stylelint-ignore-files.js.map +1 -0
  110. package/dist/rules/disallow-stylelint-null-rule-config.d.ts +7 -0
  111. package/dist/rules/disallow-stylelint-null-rule-config.d.ts.map +1 -0
  112. package/dist/rules/disallow-stylelint-null-rule-config.js +86 -0
  113. package/dist/rules/disallow-stylelint-null-rule-config.js.map +1 -0
  114. package/dist/rules/disallow-stylelint-overrides-runtime-options.d.ts +7 -0
  115. package/dist/rules/disallow-stylelint-overrides-runtime-options.d.ts.map +1 -0
  116. package/dist/rules/disallow-stylelint-overrides-runtime-options.js +124 -0
  117. package/dist/rules/disallow-stylelint-overrides-runtime-options.js.map +1 -0
  118. package/dist/rules/disallow-stylelint-processors.d.ts +9 -0
  119. package/dist/rules/disallow-stylelint-processors.d.ts.map +1 -0
  120. package/dist/rules/disallow-stylelint-processors.js +29 -0
  121. package/dist/rules/disallow-stylelint-processors.js.map +1 -0
  122. package/dist/rules/disallow-stylelint-relative-extends-paths.d.ts +9 -0
  123. package/dist/rules/disallow-stylelint-relative-extends-paths.d.ts.map +1 -0
  124. package/dist/rules/disallow-stylelint-relative-extends-paths.js +28 -0
  125. package/dist/rules/disallow-stylelint-relative-extends-paths.js.map +1 -0
  126. package/dist/rules/disallow-stylelint-relative-plugin-paths.d.ts +9 -0
  127. package/dist/rules/disallow-stylelint-relative-plugin-paths.d.ts.map +1 -0
  128. package/dist/rules/disallow-stylelint-relative-plugin-paths.js +28 -0
  129. package/dist/rules/disallow-stylelint-relative-plugin-paths.js.map +1 -0
  130. package/dist/rules/prefer-stylelint-cache.d.ts +9 -0
  131. package/dist/rules/prefer-stylelint-cache.d.ts.map +1 -0
  132. package/dist/rules/prefer-stylelint-cache.js +28 -0
  133. package/dist/rules/prefer-stylelint-cache.js.map +1 -0
  134. package/dist/rules/prefer-stylelint-define-config.d.ts +7 -0
  135. package/dist/rules/prefer-stylelint-define-config.d.ts.map +1 -0
  136. package/dist/rules/prefer-stylelint-define-config.js +82 -0
  137. package/dist/rules/prefer-stylelint-define-config.js.map +1 -0
  138. package/dist/rules/prefer-stylelint-extends-array.d.ts +9 -0
  139. package/dist/rules/prefer-stylelint-extends-array.d.ts.map +1 -0
  140. package/dist/rules/prefer-stylelint-extends-array.js +29 -0
  141. package/dist/rules/prefer-stylelint-extends-array.js.map +1 -0
  142. package/dist/rules/prefer-stylelint-fix.d.ts +7 -0
  143. package/dist/rules/prefer-stylelint-fix.d.ts.map +1 -0
  144. package/dist/rules/prefer-stylelint-fix.js +90 -0
  145. package/dist/rules/prefer-stylelint-fix.js.map +1 -0
  146. package/dist/rules/prefer-stylelint-formatter.d.ts +10 -0
  147. package/dist/rules/prefer-stylelint-formatter.d.ts.map +1 -0
  148. package/dist/rules/prefer-stylelint-formatter.js +77 -0
  149. package/dist/rules/prefer-stylelint-formatter.js.map +1 -0
  150. package/dist/rules/prefer-stylelint-plugins-array.d.ts +9 -0
  151. package/dist/rules/prefer-stylelint-plugins-array.d.ts.map +1 -0
  152. package/dist/rules/prefer-stylelint-plugins-array.js +29 -0
  153. package/dist/rules/prefer-stylelint-plugins-array.js.map +1 -0
  154. package/dist/rules/prefer-stylelint-report-descriptionless-disables.d.ts +12 -0
  155. package/dist/rules/prefer-stylelint-report-descriptionless-disables.d.ts.map +1 -0
  156. package/dist/rules/prefer-stylelint-report-descriptionless-disables.js +32 -0
  157. package/dist/rules/prefer-stylelint-report-descriptionless-disables.js.map +1 -0
  158. package/dist/rules/prefer-stylelint-report-invalid-scope-disables.d.ts +12 -0
  159. package/dist/rules/prefer-stylelint-report-invalid-scope-disables.d.ts.map +1 -0
  160. package/dist/rules/prefer-stylelint-report-invalid-scope-disables.js +32 -0
  161. package/dist/rules/prefer-stylelint-report-invalid-scope-disables.js.map +1 -0
  162. package/dist/rules/prefer-stylelint-report-needless-disables.d.ts +9 -0
  163. package/dist/rules/prefer-stylelint-report-needless-disables.d.ts.map +1 -0
  164. package/dist/rules/prefer-stylelint-report-needless-disables.js +29 -0
  165. package/dist/rules/prefer-stylelint-report-needless-disables.js.map +1 -0
  166. package/dist/rules/prefer-stylelint-report-unscoped-disables.d.ts +9 -0
  167. package/dist/rules/prefer-stylelint-report-unscoped-disables.d.ts.map +1 -0
  168. package/dist/rules/prefer-stylelint-report-unscoped-disables.js +29 -0
  169. package/dist/rules/prefer-stylelint-report-unscoped-disables.js.map +1 -0
  170. package/dist/rules/require-stylelint-config-file-naming-convention.d.ts +13 -0
  171. package/dist/rules/require-stylelint-config-file-naming-convention.d.ts.map +1 -0
  172. package/dist/rules/require-stylelint-config-file-naming-convention.js +58 -0
  173. package/dist/rules/require-stylelint-config-file-naming-convention.js.map +1 -0
  174. package/dist/rules/require-stylelint-custom-syntax-in-overrides.d.ts +7 -0
  175. package/dist/rules/require-stylelint-custom-syntax-in-overrides.d.ts.map +1 -0
  176. package/dist/rules/require-stylelint-custom-syntax-in-overrides.js +100 -0
  177. package/dist/rules/require-stylelint-custom-syntax-in-overrides.js.map +1 -0
  178. package/dist/rules/require-stylelint-extends-packages-installed.d.ts +12 -0
  179. package/dist/rules/require-stylelint-extends-packages-installed.d.ts.map +1 -0
  180. package/dist/rules/require-stylelint-extends-packages-installed.js +31 -0
  181. package/dist/rules/require-stylelint-extends-packages-installed.js.map +1 -0
  182. package/dist/rules/require-stylelint-overrides-configuration.d.ts +7 -0
  183. package/dist/rules/require-stylelint-overrides-configuration.d.ts.map +1 -0
  184. package/dist/rules/require-stylelint-overrides-configuration.js +100 -0
  185. package/dist/rules/require-stylelint-overrides-configuration.js.map +1 -0
  186. package/dist/rules/require-stylelint-overrides-files-array.d.ts +7 -0
  187. package/dist/rules/require-stylelint-overrides-files-array.d.ts.map +1 -0
  188. package/dist/rules/require-stylelint-overrides-files-array.js +99 -0
  189. package/dist/rules/require-stylelint-overrides-files-array.js.map +1 -0
  190. package/dist/rules/require-stylelint-overrides-files.d.ts +7 -0
  191. package/dist/rules/require-stylelint-overrides-files.d.ts.map +1 -0
  192. package/dist/rules/require-stylelint-overrides-files.js +104 -0
  193. package/dist/rules/require-stylelint-overrides-files.js.map +1 -0
  194. package/dist/rules/require-stylelint-plugins-packages-installed.d.ts +12 -0
  195. package/dist/rules/require-stylelint-plugins-packages-installed.d.ts.map +1 -0
  196. package/dist/rules/require-stylelint-plugins-packages-installed.js +31 -0
  197. package/dist/rules/require-stylelint-plugins-packages-installed.js.map +1 -0
  198. package/dist/rules/require-stylelint-report-disables.d.ts +9 -0
  199. package/dist/rules/require-stylelint-report-disables.d.ts.map +1 -0
  200. package/dist/rules/require-stylelint-report-disables.js +29 -0
  201. package/dist/rules/require-stylelint-report-disables.js.map +1 -0
  202. package/dist/rules/require-stylelint-rules-object.d.ts +7 -0
  203. package/dist/rules/require-stylelint-rules-object.d.ts.map +1 -0
  204. package/dist/rules/require-stylelint-rules-object.js +65 -0
  205. package/dist/rules/require-stylelint-rules-object.js.map +1 -0
  206. package/dist/rules/sort-stylelint-extends.d.ts +9 -0
  207. package/dist/rules/sort-stylelint-extends.d.ts.map +1 -0
  208. package/dist/rules/sort-stylelint-extends.js +28 -0
  209. package/dist/rules/sort-stylelint-extends.js.map +1 -0
  210. package/dist/rules/sort-stylelint-plugins.d.ts +9 -0
  211. package/dist/rules/sort-stylelint-plugins.d.ts.map +1 -0
  212. package/dist/rules/sort-stylelint-plugins.js +28 -0
  213. package/dist/rules/sort-stylelint-plugins.js.map +1 -0
  214. package/dist/rules/sort-stylelint-rule-keys.d.ts +7 -0
  215. package/dist/rules/sort-stylelint-rule-keys.d.ts.map +1 -0
  216. package/dist/rules/sort-stylelint-rule-keys.js +129 -0
  217. package/dist/rules/sort-stylelint-rule-keys.js.map +1 -0
  218. package/dist/rules/stylelint.d.ts +15 -0
  219. package/dist/rules/stylelint.d.ts.map +1 -0
  220. package/dist/rules/stylelint.js +157 -0
  221. package/dist/rules/stylelint.js.map +1 -0
  222. package/docs/rules/disallow-stylelint-allow-empty-input.md +62 -0
  223. package/docs/rules/disallow-stylelint-configuration-comment.md +62 -0
  224. package/docs/rules/disallow-stylelint-custom-syntax.md +70 -0
  225. package/docs/rules/disallow-stylelint-default-severity.md +77 -0
  226. package/docs/rules/disallow-stylelint-duplicate-extends.md +61 -0
  227. package/docs/rules/disallow-stylelint-duplicate-plugins.md +61 -0
  228. package/docs/rules/disallow-stylelint-duplicate-rule-option-values.md +73 -0
  229. package/docs/rules/disallow-stylelint-empty-rules-object.md +62 -0
  230. package/docs/rules/disallow-stylelint-ignore-disables.md +78 -0
  231. package/docs/rules/disallow-stylelint-ignore-files.md +78 -0
  232. package/docs/rules/disallow-stylelint-null-rule-config.md +63 -0
  233. package/docs/rules/disallow-stylelint-overrides-runtime-options.md +82 -0
  234. package/docs/rules/disallow-stylelint-processors.md +62 -0
  235. package/docs/rules/disallow-stylelint-relative-extends-paths.md +61 -0
  236. package/docs/rules/disallow-stylelint-relative-plugin-paths.md +61 -0
  237. package/docs/rules/getting-started.md +130 -0
  238. package/docs/rules/overview.md +99 -0
  239. package/docs/rules/prefer-stylelint-cache.md +79 -0
  240. package/docs/rules/prefer-stylelint-define-config.md +90 -0
  241. package/docs/rules/prefer-stylelint-extends-array.md +61 -0
  242. package/docs/rules/prefer-stylelint-fix.md +79 -0
  243. package/docs/rules/prefer-stylelint-formatter.md +80 -0
  244. package/docs/rules/prefer-stylelint-plugins-array.md +61 -0
  245. package/docs/rules/prefer-stylelint-report-descriptionless-disables.md +85 -0
  246. package/docs/rules/prefer-stylelint-report-invalid-scope-disables.md +83 -0
  247. package/docs/rules/prefer-stylelint-report-needless-disables.md +83 -0
  248. package/docs/rules/prefer-stylelint-report-unscoped-disables.md +83 -0
  249. package/docs/rules/presets/all.md +39 -0
  250. package/docs/rules/presets/configs.md +40 -0
  251. package/docs/rules/presets/configuration.md +64 -0
  252. package/docs/rules/presets/index.md +82 -0
  253. package/docs/rules/presets/recommended.md +40 -0
  254. package/docs/rules/presets/stylelint-only.md +42 -0
  255. package/docs/rules/require-stylelint-config-file-naming-convention.md +61 -0
  256. package/docs/rules/require-stylelint-custom-syntax-in-overrides.md +77 -0
  257. package/docs/rules/require-stylelint-extends-packages-installed.md +61 -0
  258. package/docs/rules/require-stylelint-overrides-configuration.md +80 -0
  259. package/docs/rules/require-stylelint-overrides-files-array.md +78 -0
  260. package/docs/rules/require-stylelint-overrides-files.md +83 -0
  261. package/docs/rules/require-stylelint-plugins-packages-installed.md +61 -0
  262. package/docs/rules/require-stylelint-report-disables.md +67 -0
  263. package/docs/rules/require-stylelint-rules-object.md +61 -0
  264. package/docs/rules/sort-stylelint-extends.md +61 -0
  265. package/docs/rules/sort-stylelint-plugins.md +61 -0
  266. package/docs/rules/sort-stylelint-rule-keys.md +65 -0
  267. package/docs/rules/stylelint.md +100 -0
  268. package/package.json +577 -0
@@ -0,0 +1,61 @@
1
+ # sort-stylelint-plugins
2
+
3
+ Enforce sorted entries in top-level Stylelint `plugins` declarations.
4
+
5
+ ## Targeted pattern scope
6
+
7
+ This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
8
+
9
+ It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
10
+
11
+ ## What this rule reports
12
+
13
+ Reports `plugins` arrays whose string entries are not in ascending lexical order.
14
+
15
+ ## Why this rule exists
16
+
17
+ Sorted plugin arrays create deterministic diffs and improve scanability of shared config.
18
+
19
+ ## ❌ Incorrect
20
+
21
+ ```ts
22
+ export default {
23
+ plugins: ["stylelint-order", "stylelint-a11y"],
24
+ rules: {},
25
+ };
26
+ ```
27
+
28
+ ## ✅ Correct
29
+
30
+ ```ts
31
+ export default {
32
+ plugins: ["stylelint-a11y", "stylelint-order"],
33
+ rules: {},
34
+ };
35
+ ```
36
+
37
+ ## Behavior and migration notes
38
+
39
+ This rule auto-fixes by sorting `plugins` entries lexically.
40
+
41
+ ## ESLint flat config example
42
+
43
+ ```ts
44
+ import stylelint2 from "eslint-plugin-stylelint-2";
45
+
46
+ export default [stylelint2.configs.configuration];
47
+ ```
48
+
49
+ ## When not to use it
50
+
51
+ Do not use this rule if your repository intentionally uses non-lexical plugin ordering conventions.
52
+
53
+ ## Package documentation
54
+
55
+ Stylelint package documentation:
56
+
57
+ > **Rule catalog ID:** R026
58
+
59
+ ## Further reading
60
+
61
+ - [Stylelint plugins](https://stylelint.io/user-guide/configure/#plugins)
@@ -0,0 +1,65 @@
1
+ # sort-stylelint-rule-keys
2
+
3
+ Enforce sorted top-level Stylelint `rules` keys in shared config files.
4
+
5
+ ## Targeted pattern scope
6
+
7
+ This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
8
+
9
+ It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
10
+
11
+ ## What this rule reports
12
+
13
+ Reports `rules` objects whose keys are not in ascending lexical order.
14
+
15
+ ## Why this rule exists
16
+
17
+ Stable key ordering reduces diff noise and makes large shared rulesets easier to scan and review.
18
+
19
+ ## ❌ Incorrect
20
+
21
+ ```ts
22
+ export default {
23
+ rules: {
24
+ "color-named": "never",
25
+ "at-rule-no-unknown": true,
26
+ },
27
+ };
28
+ ```
29
+
30
+ ## ✅ Correct
31
+
32
+ ```ts
33
+ export default {
34
+ rules: {
35
+ "at-rule-no-unknown": true,
36
+ "color-named": "never",
37
+ },
38
+ };
39
+ ```
40
+
41
+ ## Behavior and migration notes
42
+
43
+ This rule auto-fixes when sorting can be done safely (for example, no nearby comments attached to rule entries).
44
+
45
+ ## ESLint flat config example
46
+
47
+ ```ts
48
+ import stylelint2 from "eslint-plugin-stylelint-2";
49
+
50
+ export default [stylelint2.configs.configuration];
51
+ ```
52
+
53
+ ## When not to use it
54
+
55
+ Do not use this rule if your team intentionally uses non-lexical grouping for rule keys.
56
+
57
+ ## Package documentation
58
+
59
+ Stylelint package documentation:
60
+
61
+ > **Rule catalog ID:** R031
62
+
63
+ ## Further reading
64
+
65
+ - [Stylelint rules](https://stylelint.io/user-guide/rules/list)
@@ -0,0 +1,100 @@
1
+ # stylelint
2
+
3
+ Run Stylelint against CSS files from ESLint and surface Stylelint autofixes through ESLint's fixer pipeline.
4
+
5
+ ## Targeted pattern scope
6
+
7
+ This rule targets complete CSS files linted through ESLint's `css/css` language support.
8
+
9
+ It does not look for one AST pattern inside a stylesheet. Instead, it forwards the whole file to Stylelint and converts Stylelint's findings into ESLint reports.
10
+
11
+ ## What this rule reports
12
+
13
+ This rule reports:
14
+
15
+ - Stylelint rule violations for the current stylesheet
16
+ - Stylelint parse errors for the current stylesheet
17
+ - Stylelint invalid option warnings and deprecation warnings
18
+
19
+ When Stylelint provides computed edit info for a warning, this rule exposes that edit as an ESLint autofix.
20
+
21
+ ## Why this rule exists
22
+
23
+ Projects often want ESLint to be the single command that editors, pre-commit hooks, and CI jobs run.
24
+
25
+ Without a bridge rule, stylesheet linting usually lives in a separate Stylelint command with a separate reporting flow. That split increases setup overhead and makes autofix workflows less consistent.
26
+
27
+ ## ❌ Incorrect
28
+
29
+ ```css
30
+ .button {
31
+ color: #ffffff;
32
+ }
33
+ ```
34
+
35
+ If the active Stylelint config prefers short hex colors, this stylesheet is reported through ESLint.
36
+
37
+ ## ✅ Correct
38
+
39
+ ```css
40
+ .button {
41
+ color: #fff;
42
+ }
43
+ ```
44
+
45
+ ## Behavior and migration notes
46
+
47
+ - This rule uses Stylelint's Node API under the hood.
48
+ - The rule is only as strict as the Stylelint config it resolves for the current file.
49
+ - If your Stylelint config provides computed edit info, `eslint --fix` can apply the corresponding change.
50
+ - Non-fixable Stylelint warnings are still reported.
51
+ - You can set `ignoreDisables: true` when you want Stylelint disable comments to be ignored for a specific ESLint run.
52
+
53
+ ## Additional examples
54
+
55
+ ### ✅ Correct — explicit Stylelint config file
56
+
57
+ ```ts
58
+ import stylelint2 from "eslint-plugin-stylelint-2";
59
+
60
+ export default [
61
+ {
62
+ ...stylelint2.configs.stylelintOnly,
63
+ rules: {
64
+ "stylelint-2/stylelint": [
65
+ "error",
66
+ {
67
+ configFile: "./stylelint.config.mjs",
68
+ ignoreDisables: true,
69
+ },
70
+ ],
71
+ },
72
+ },
73
+ ];
74
+ ```
75
+
76
+ ## ESLint flat config example
77
+
78
+ ```ts
79
+ import stylelint2 from "eslint-plugin-stylelint-2";
80
+
81
+ export default [
82
+ ...stylelint2.configs.recommended,
83
+ ];
84
+ ```
85
+
86
+ ## When not to use it
87
+
88
+ Do not use this rule if your team intentionally wants Stylelint to remain a separate command with separate editor integration.
89
+
90
+ ## Package documentation
91
+
92
+ Stylelint package documentation:
93
+
94
+ > **Rule catalog ID:** R001
95
+
96
+ ## Further reading
97
+
98
+ - [Stylelint Node.js API](https://stylelint.io/user-guide/node-api/)
99
+ - [Stylelint configuration guide](https://stylelint.io/user-guide/configure)
100
+ - [ESLint custom rules](https://eslint.org/docs/latest/extend/custom-rules)