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,130 @@
1
+ ---
2
+ title: Getting Started
3
+ description: Enable eslint-plugin-stylelint-2 quickly in Flat Config.
4
+ ---
5
+
6
+ # Getting Started
7
+
8
+ Install the plugin and Stylelint:
9
+
10
+ ```bash
11
+ npm install --save-dev eslint-plugin-stylelint-2 eslint stylelint
12
+ ```
13
+
14
+ Then enable the recommended preset:
15
+
16
+ ```ts
17
+ import stylelint2 from "eslint-plugin-stylelint-2";
18
+
19
+ export default [
20
+ ...stylelint2.configs.recommended,
21
+ ];
22
+ ```
23
+
24
+ ## What `recommended` includes
25
+
26
+ `recommended` returns an array of flat config entries, not a single object.
27
+
28
+ It currently adds:
29
+
30
+ 1. a CSS-targeted config that enables `stylelint-2/stylelint`
31
+ 2. a config-file-targeted config that enables the Stylelint config authoring rules
32
+
33
+ ## Stylelint bridge only
34
+
35
+ If you only want the Stylelint bridge for stylesheet files:
36
+
37
+ ```ts
38
+ import stylelint2 from "eslint-plugin-stylelint-2";
39
+
40
+ export default [
41
+ stylelint2.configs.stylelintOnly,
42
+ ];
43
+ ```
44
+
45
+ ## Stylelint config files only
46
+
47
+ If you only want the config-authoring rules and no stylesheet bridge:
48
+
49
+ ```ts
50
+ import stylelint2 from "eslint-plugin-stylelint-2";
51
+
52
+ export default [
53
+ stylelint2.configs.configuration,
54
+ ];
55
+ ```
56
+
57
+ Legacy aliases remain supported:
58
+
59
+ - `stylelint2.configs.stylesheets` → `stylelint2.configs.stylelintOnly`
60
+ - `stylelint2.configs.configs` → `stylelint2.configs.configuration`
61
+
62
+ That preset currently enables:
63
+
64
+ - `stylelint-2/disallow-stylelint-allow-empty-input`
65
+ - `stylelint-2/disallow-stylelint-configuration-comment`
66
+ - `stylelint-2/disallow-stylelint-custom-syntax`
67
+ - `stylelint-2/disallow-stylelint-default-severity`
68
+ - `stylelint-2/disallow-stylelint-duplicate-extends`
69
+ - `stylelint-2/disallow-stylelint-duplicate-plugins`
70
+ - `stylelint-2/disallow-stylelint-duplicate-rule-option-values`
71
+ - `stylelint-2/disallow-stylelint-empty-rules-object`
72
+ - `stylelint-2/disallow-stylelint-ignore-disables`
73
+ - `stylelint-2/disallow-stylelint-ignore-files`
74
+ - `stylelint-2/disallow-stylelint-null-rule-config`
75
+ - `stylelint-2/disallow-stylelint-overrides-runtime-options`
76
+ - `stylelint-2/disallow-stylelint-processors`
77
+ - `stylelint-2/disallow-stylelint-relative-extends-paths`
78
+ - `stylelint-2/disallow-stylelint-relative-plugin-paths`
79
+ - `stylelint-2/prefer-stylelint-cache`
80
+ - `stylelint-2/prefer-stylelint-define-config`
81
+ - `stylelint-2/prefer-stylelint-extends-array`
82
+ - `stylelint-2/prefer-stylelint-fix`
83
+ - `stylelint-2/prefer-stylelint-formatter`
84
+ - `stylelint-2/prefer-stylelint-plugins-array`
85
+ - `stylelint-2/prefer-stylelint-report-descriptionless-disables`
86
+ - `stylelint-2/prefer-stylelint-report-invalid-scope-disables`
87
+ - `stylelint-2/prefer-stylelint-report-needless-disables`
88
+ - `stylelint-2/prefer-stylelint-report-unscoped-disables`
89
+ - `stylelint-2/require-stylelint-custom-syntax-in-overrides`
90
+ - `stylelint-2/require-stylelint-config-file-naming-convention`
91
+ - `stylelint-2/require-stylelint-extends-packages-installed`
92
+ - `stylelint-2/require-stylelint-overrides-configuration`
93
+ - `stylelint-2/require-stylelint-overrides-files-array`
94
+ - `stylelint-2/require-stylelint-overrides-files`
95
+ - `stylelint-2/require-stylelint-plugins-packages-installed`
96
+ - `stylelint-2/require-stylelint-report-disables`
97
+ - `stylelint-2/require-stylelint-rules-object`
98
+ - `stylelint-2/sort-stylelint-extends`
99
+ - `stylelint-2/sort-stylelint-plugins`
100
+ - `stylelint-2/sort-stylelint-rule-keys`
101
+
102
+ ## Adding Stylelint options
103
+
104
+ Pass rule options when you need a custom syntax or an explicit config file:
105
+
106
+ ```ts
107
+ import stylelint2 from "eslint-plugin-stylelint-2";
108
+
109
+ export default [
110
+ {
111
+ ...stylelint2.configs.stylelintOnly,
112
+ rules: {
113
+ "stylelint-2/stylelint": [
114
+ "error",
115
+ {
116
+ configFile: "./stylelint.config.mjs",
117
+ customSyntax: "postcss-scss",
118
+ ignoreDisables: true,
119
+ },
120
+ ],
121
+ },
122
+ },
123
+ ];
124
+ ```
125
+
126
+ ## When to use ESLint + Stylelint together
127
+
128
+ Use this plugin when you want ESLint to be the single command that reports and fixes both JavaScript/TypeScript issues and stylesheet issues.
129
+
130
+ If your team already runs Stylelint separately and is happy with that split, this plugin may be unnecessary overhead.
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: Overview
3
+ description: Overview of eslint-plugin-stylelint-2 and its Stylelint-to-ESLint workflow.
4
+ ---
5
+
6
+ # eslint-plugin-stylelint-2
7
+
8
+ `eslint-plugin-stylelint-2` lets you run Stylelint inside ESLint for CSS files and author Stylelint config files with a more predictable typed setup.
9
+
10
+ The current rule set focuses on three high-value workflows:
11
+
12
+ - surface Stylelint diagnostics through ESLint with autofix support
13
+ - disallow execution-only Stylelint config options that belong in the runner, not the shared config object
14
+ - disallow shared-config severity and file-ignore options that hide lint-policy changes globally
15
+ - standardize modern `stylelint-define-config` usage in Stylelint config modules
16
+ - require Stylelint config files to report disable comments that lack a reason
17
+ - require the full family of Stylelint disable-comment reporting safeguards in config files
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install --save-dev eslint-plugin-stylelint-2 eslint stylelint
23
+ ```
24
+
25
+ ## Quick start
26
+
27
+ ```ts
28
+ import stylelint2 from "eslint-plugin-stylelint-2";
29
+
30
+ export default [
31
+ ...stylelint2.configs.recommended,
32
+ ];
33
+ ```
34
+
35
+ `recommended` expands to two file-scoped flat config entries:
36
+
37
+ - one for CSS files using ESLint's `css/css` language
38
+ - one for Stylelint config files such as `stylelint.config.ts`
39
+
40
+ ## Included presets
41
+
42
+ | Preset | Purpose |
43
+ | ----------------------------------------------------------------- | ------------------------------------------------------------- |
44
+ | [`stylelint2.configs.recommended`](./presets/recommended.md) | Stylesheet linting plus Stylelint config authoring guidance |
45
+ | [`stylelint2.configs.stylelintOnly`](./presets/stylelint-only.md) | Only run the Stylelint bridge workflow for stylesheet files |
46
+ | [`stylelint2.configs.configuration`](./presets/configuration.md) | Only lint Stylelint config modules, with no stylesheet bridge |
47
+ | [`stylelint2.configs.all`](./presets/all.md) | Enable every preset entry currently shipped by this plugin |
48
+
49
+ Legacy aliases remain supported:
50
+
51
+ - `stylelint2.configs.stylesheets` → `stylelint2.configs.stylelintOnly`
52
+ - `stylelint2.configs.configs` → `stylelint2.configs.configuration`
53
+
54
+ ## Included rules
55
+
56
+ - [`stylelint`](./stylelint.md)
57
+ - [`disallow-stylelint-allow-empty-input`](./disallow-stylelint-allow-empty-input.md)
58
+ - [`disallow-stylelint-configuration-comment`](./disallow-stylelint-configuration-comment.md)
59
+ - [`disallow-stylelint-custom-syntax`](./disallow-stylelint-custom-syntax.md)
60
+ - [`disallow-stylelint-default-severity`](./disallow-stylelint-default-severity.md)
61
+ - [`disallow-stylelint-duplicate-extends`](./disallow-stylelint-duplicate-extends.md)
62
+ - [`disallow-stylelint-duplicate-plugins`](./disallow-stylelint-duplicate-plugins.md)
63
+ - [`disallow-stylelint-duplicate-rule-option-values`](./disallow-stylelint-duplicate-rule-option-values.md)
64
+ - [`disallow-stylelint-empty-rules-object`](./disallow-stylelint-empty-rules-object.md)
65
+ - [`disallow-stylelint-ignore-disables`](./disallow-stylelint-ignore-disables.md)
66
+ - [`disallow-stylelint-ignore-files`](./disallow-stylelint-ignore-files.md)
67
+ - [`disallow-stylelint-null-rule-config`](./disallow-stylelint-null-rule-config.md)
68
+ - [`disallow-stylelint-overrides-runtime-options`](./disallow-stylelint-overrides-runtime-options.md)
69
+ - [`disallow-stylelint-processors`](./disallow-stylelint-processors.md)
70
+ - [`disallow-stylelint-relative-extends-paths`](./disallow-stylelint-relative-extends-paths.md)
71
+ - [`disallow-stylelint-relative-plugin-paths`](./disallow-stylelint-relative-plugin-paths.md)
72
+ - [`prefer-stylelint-cache`](./prefer-stylelint-cache.md)
73
+ - [`prefer-stylelint-define-config`](./prefer-stylelint-define-config.md)
74
+ - [`prefer-stylelint-extends-array`](./prefer-stylelint-extends-array.md)
75
+ - [`prefer-stylelint-fix`](./prefer-stylelint-fix.md)
76
+ - [`prefer-stylelint-formatter`](./prefer-stylelint-formatter.md)
77
+ - [`prefer-stylelint-plugins-array`](./prefer-stylelint-plugins-array.md)
78
+ - [`prefer-stylelint-report-descriptionless-disables`](./prefer-stylelint-report-descriptionless-disables.md)
79
+ - [`prefer-stylelint-report-invalid-scope-disables`](./prefer-stylelint-report-invalid-scope-disables.md)
80
+ - [`prefer-stylelint-report-needless-disables`](./prefer-stylelint-report-needless-disables.md)
81
+ - [`prefer-stylelint-report-unscoped-disables`](./prefer-stylelint-report-unscoped-disables.md)
82
+ - [`require-stylelint-custom-syntax-in-overrides`](./require-stylelint-custom-syntax-in-overrides.md)
83
+ - [`require-stylelint-config-file-naming-convention`](./require-stylelint-config-file-naming-convention.md)
84
+ - [`require-stylelint-extends-packages-installed`](./require-stylelint-extends-packages-installed.md)
85
+ - [`require-stylelint-overrides-configuration`](./require-stylelint-overrides-configuration.md)
86
+ - [`require-stylelint-overrides-files-array`](./require-stylelint-overrides-files-array.md)
87
+ - [`require-stylelint-overrides-files`](./require-stylelint-overrides-files.md)
88
+ - [`require-stylelint-plugins-packages-installed`](./require-stylelint-plugins-packages-installed.md)
89
+ - [`require-stylelint-report-disables`](./require-stylelint-report-disables.md)
90
+ - [`require-stylelint-rules-object`](./require-stylelint-rules-object.md)
91
+ - [`sort-stylelint-extends`](./sort-stylelint-extends.md)
92
+ - [`sort-stylelint-plugins`](./sort-stylelint-plugins.md)
93
+ - [`sort-stylelint-rule-keys`](./sort-stylelint-rule-keys.md)
94
+
95
+ ## Next steps
96
+
97
+ - Read [Getting Started](./getting-started.md) for copy-paste setup examples.
98
+ - Review [Presets](./presets/index.md) to pick the right rollout path.
99
+ - Open each rule page before enabling stricter adoption in a larger codebase.
@@ -0,0 +1,79 @@
1
+ # prefer-stylelint-cache
2
+
3
+ Prefer enabling Stylelint's top-level `cache` option in authored Stylelint config files.
4
+
5
+ This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
6
+
7
+ ## Targeted pattern scope
8
+
9
+ This rule targets Stylelint config modules such as `stylelint.config.ts`, `stylelint.config.mjs`, and `.stylelintrc.js`.
10
+
11
+ It focuses on top-level exported config objects, including configs wrapped in `defineConfig(...)`.
12
+
13
+ ## What this rule reports
14
+
15
+ This rule reports Stylelint config objects that omit `cache`, or configure it as a disabled value.
16
+
17
+ ## Why this rule exists
18
+
19
+ If your team consistently runs Stylelint with caching enabled, an explicit top-level `cache` setting makes that default visible in the shared config instead of leaving it implicit in scattered scripts.
20
+
21
+ This rule is opinionated. It is useful when you want config files to advertise that fast repeated lint runs are part of the default workflow.
22
+
23
+ ## ❌ Incorrect
24
+
25
+ ```ts
26
+ export default {
27
+ rules: {},
28
+ };
29
+ ```
30
+
31
+ ## ✅ Correct
32
+
33
+ ```ts
34
+ export default {
35
+ cache: true,
36
+ rules: {},
37
+ };
38
+ ```
39
+
40
+ ## Behavior and migration notes
41
+
42
+ - This rule auto-fixes missing or disabled top-level `cache` configuration to `cache: true`.
43
+ - It preserves the rest of the config object.
44
+ - Use this rule only when cache-on-by-default is a deliberate repository policy.
45
+
46
+ ## Additional examples
47
+
48
+ ### ✅ Correct — cache policy at invocation level
49
+
50
+ ```json
51
+ {
52
+ "scripts": {
53
+ "lint:stylelint": "stylelint --cache \"src/**/*.{css,scss}\""
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## ESLint flat config example
59
+
60
+ ```ts
61
+ import stylelint2 from "eslint-plugin-stylelint-2";
62
+
63
+ export default [stylelint2.configs.configuration];
64
+ ```
65
+
66
+ ## When not to use it
67
+
68
+ Do not use this rule if your team prefers cache behavior to stay entirely at invocation scope or wants different runners to choose different cache strategies.
69
+
70
+ ## Package documentation
71
+
72
+ Stylelint package documentation:
73
+
74
+ > **Rule catalog ID:** R012
75
+
76
+ ## Further reading
77
+
78
+ - [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#cache)
79
+ - [Stylelint cache option](https://stylelint.io/user-guide/options/#cache)
@@ -0,0 +1,90 @@
1
+ # prefer-stylelint-define-config
2
+
3
+ Prefer wrapping exported Stylelint config objects in `defineConfig()` from `stylelint-define-config`.
4
+
5
+ ## Targeted pattern scope
6
+
7
+ This rule targets direct default object exports in Stylelint config files such as `stylelint.config.ts` and `.stylelintrc.js`.
8
+
9
+ It intentionally focuses on the narrow case that can be autofixed safely.
10
+
11
+ ## What this rule reports
12
+
13
+ This rule reports `export default { ... }` object exports in Stylelint config files when the object is not wrapped in `defineConfig(...)`.
14
+
15
+ ## Why this rule exists
16
+
17
+ `defineConfig()` makes the intent of a Stylelint config module explicit and improves tooling support for config authoring.
18
+
19
+ The helper also gives teams a single recognizable pattern for authored config modules instead of a mix of raw objects and helper-wrapped objects.
20
+
21
+ ## ❌ Incorrect
22
+
23
+ ```ts
24
+ export default {
25
+ rules: {
26
+ "color-no-invalid-hex": true,
27
+ },
28
+ };
29
+ ```
30
+
31
+ ## ✅ Correct
32
+
33
+ ```ts
34
+ import { defineConfig } from "stylelint-define-config";
35
+
36
+ export default defineConfig({
37
+ rules: {
38
+ "color-no-invalid-hex": true,
39
+ },
40
+ });
41
+ ```
42
+
43
+ ## Behavior and migration notes
44
+
45
+ - The current autofix rewrites direct object exports only.
46
+ - The rule does not try to rewrite CommonJS config modules.
47
+ - The rule does not try to rewrite `export default config` when `config` is declared elsewhere.
48
+
49
+ That restraint is deliberate. Broad config rewrites are easier to get wrong than direct object-export fixes.
50
+
51
+ ## Additional examples
52
+
53
+ ### ✅ Correct — already wrapped export
54
+
55
+ ```ts
56
+ import { defineConfig } from "stylelint-define-config";
57
+
58
+ const config = defineConfig({
59
+ rules: {
60
+ "color-no-invalid-hex": true,
61
+ },
62
+ });
63
+
64
+ export default config;
65
+ ```
66
+
67
+ ## ESLint flat config example
68
+
69
+ ```ts
70
+ import stylelint2 from "eslint-plugin-stylelint-2";
71
+
72
+ export default [
73
+ stylelint2.configs.configuration,
74
+ ];
75
+ ```
76
+
77
+ ## When not to use it
78
+
79
+ Do not use this rule if your project intentionally keeps Stylelint configs in CommonJS or uses a custom config factory that should stay unchanged.
80
+
81
+ ## Package documentation
82
+
83
+ Stylelint package documentation:
84
+
85
+ > **Rule catalog ID:** R002
86
+
87
+ ## Further reading
88
+
89
+ - [stylelint-define-config](https://www.npmjs.com/package/stylelint-define-config)
90
+ - [Stylelint configuration guide](https://stylelint.io/user-guide/configure)
@@ -0,0 +1,61 @@
1
+ # prefer-stylelint-extends-array
2
+
3
+ Prefer array form for top-level Stylelint `extends` 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 `extends` when it is defined as a single string instead of an array.
14
+
15
+ ## Why this rule exists
16
+
17
+ Array form is easier to append, reorder, and review safely in shared config files.
18
+
19
+ ## ❌ Incorrect
20
+
21
+ ```ts
22
+ export default {
23
+ extends: "stylelint-config-standard",
24
+ rules: {},
25
+ };
26
+ ```
27
+
28
+ ## ✅ Correct
29
+
30
+ ```ts
31
+ export default {
32
+ extends: ["stylelint-config-standard"],
33
+ rules: {},
34
+ };
35
+ ```
36
+
37
+ ## Behavior and migration notes
38
+
39
+ This rule auto-fixes scalar string form to a single-entry array.
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 enforces scalar `extends` syntax in every Stylelint config file.
52
+
53
+ ## Package documentation
54
+
55
+ Stylelint package documentation:
56
+
57
+ > **Rule catalog ID:** R021
58
+
59
+ ## Further reading
60
+
61
+ - [Stylelint extends](https://stylelint.io/user-guide/configure/#extends)
@@ -0,0 +1,79 @@
1
+ # prefer-stylelint-fix
2
+
3
+ Prefer enabling Stylelint's top-level `fix` option in authored Stylelint 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
+ This rule reports Stylelint config objects that omit `fix`, or configure it with a disabled value.
14
+
15
+ ## Why this rule exists
16
+
17
+ If your repository expects Stylelint autofix to be on by default, an explicit top-level `fix` setting makes that operational choice visible and consistent.
18
+
19
+ This rule is intentionally opinionated and best suited for repositories that want shared Stylelint config files to declare autofix-on behavior directly.
20
+
21
+ This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
22
+
23
+ ## ❌ Incorrect
24
+
25
+ ```ts
26
+ export default {
27
+ rules: {},
28
+ };
29
+ ```
30
+
31
+ ## ✅ Correct
32
+
33
+ ```ts
34
+ export default {
35
+ fix: true,
36
+ rules: {},
37
+ };
38
+ ```
39
+
40
+ ## Behavior and migration notes
41
+
42
+ - This rule auto-fixes missing or disabled top-level `fix` configuration to `fix: true`.
43
+ - Existing enabled values such as `"strict"` and `"lax"` are accepted.
44
+ - Use this rule only when enabling autofix in shared config is an intentional repository policy.
45
+
46
+ ## Additional examples
47
+
48
+ ### ✅ Correct — execution controls autofix
49
+
50
+ ```json
51
+ {
52
+ "scripts": {
53
+ "lint:styles": "eslint \"src/**/*.{css,scss}\""
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## ESLint flat config example
59
+
60
+ ```ts
61
+ import stylelint2 from "eslint-plugin-stylelint-2";
62
+
63
+ export default [stylelint2.configs.configuration];
64
+ ```
65
+
66
+ ## When not to use it
67
+
68
+ Do not use this rule if your team wants autofix to stay an invocation-only decision or needs different fix modes across environments.
69
+
70
+ ## Package documentation
71
+
72
+ Stylelint package documentation:
73
+
74
+ > **Rule catalog ID:** R011
75
+
76
+ ## Further reading
77
+
78
+ - [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#fix)
79
+ - [Stylelint autofix documentation](https://stylelint.io/user-guide/options/#fix)
@@ -0,0 +1,80 @@
1
+ # prefer-stylelint-formatter
2
+
3
+ Prefer explicit top-level Stylelint `formatter` configuration in authored Stylelint 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
+ This rule reports Stylelint config objects that omit `formatter`, or configure it with an unusable empty string.
14
+
15
+ ## Why this rule exists
16
+
17
+ If your team wants Stylelint output shape to be explicit across runners, an explicit shared `formatter` setting keeps that policy visible in the config instead of burying it in task wiring.
18
+
19
+ This is an opinionated rule. It is useful only when consistent formatter selection is part of your repository policy.
20
+
21
+ This rule is intentionally excluded from `stylelint2.configs.recommended` because it encodes an opinionated operational default rather than a broadly applicable config-hygiene rule.
22
+
23
+ ## ❌ Incorrect
24
+
25
+ ```ts
26
+ export default {
27
+ rules: {},
28
+ };
29
+ ```
30
+
31
+ ## ✅ Correct
32
+
33
+ ```ts
34
+ export default {
35
+ formatter: "json",
36
+ rules: {},
37
+ };
38
+ ```
39
+
40
+ ## Behavior and migration notes
41
+
42
+ - This rule reports missing or unusable top-level `formatter` configuration.
43
+ - It does not auto-fix because the correct formatter choice is repository-specific.
44
+ - Non-literal formatter expressions are accepted to avoid false positives in JavaScript-based config modules.
45
+
46
+ ## Additional examples
47
+
48
+ ### ✅ Correct — formatter belongs in the runner
49
+
50
+ ```ts
51
+ await stylelint.lint({
52
+ code,
53
+ formatter: "string",
54
+ });
55
+ ```
56
+
57
+ ## ESLint flat config example
58
+
59
+ ```ts
60
+ import stylelint2 from "eslint-plugin-stylelint-2";
61
+
62
+ export default [
63
+ stylelint2.configs.configuration,
64
+ ];
65
+ ```
66
+
67
+ ## When not to use it
68
+
69
+ Do not use this rule if your team prefers formatter choice to remain purely at invocation scope.
70
+
71
+ ## Package documentation
72
+
73
+ Stylelint package documentation:
74
+
75
+ > **Rule catalog ID:** R007
76
+
77
+ ## Further reading
78
+
79
+ - [Stylelint configuring guide](https://stylelint.io/user-guide/configure/#formatter)
80
+ - [Stylelint Node API](https://stylelint.io/user-guide/node-api/)
@@ -0,0 +1,61 @@
1
+ # prefer-stylelint-plugins-array
2
+
3
+ Prefer array form for 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` when it is defined as a single string instead of an array.
14
+
15
+ ## Why this rule exists
16
+
17
+ Array form makes plugin composition deterministic and easier to maintain in shared configuration.
18
+
19
+ ## ❌ Incorrect
20
+
21
+ ```ts
22
+ export default {
23
+ plugins: "stylelint-order",
24
+ rules: {},
25
+ };
26
+ ```
27
+
28
+ ## ✅ Correct
29
+
30
+ ```ts
31
+ export default {
32
+ plugins: ["stylelint-order"],
33
+ rules: {},
34
+ };
35
+ ```
36
+
37
+ ## Behavior and migration notes
38
+
39
+ This rule auto-fixes scalar string form to a single-entry array.
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 enforces scalar `plugins` syntax.
52
+
53
+ ## Package documentation
54
+
55
+ Stylelint package documentation:
56
+
57
+ > **Rule catalog ID:** R022
58
+
59
+ ## Further reading
60
+
61
+ - [Stylelint plugins](https://stylelint.io/user-guide/configure/#plugins)