linter-bundle 5.0.1 → 6.0.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 (197) hide show
  1. package/.linter-bundle.js +4 -0
  2. package/.linter-bundle.schema.json +125 -0
  3. package/CHANGELOG.md +79 -3
  4. package/README.md +5 -3
  5. package/TODO.md +10 -0
  6. package/eslint/index.cjs +6 -3
  7. package/eslint/overrides-javascript.cjs +1 -1
  8. package/eslint/overrides-jest.cjs +1 -0
  9. package/eslint/overrides-jsdoc.cjs +1 -0
  10. package/eslint/rules/no-global-undefined-check.js +5 -3
  11. package/eslint/rules/no-unnecessary-typeof.js +26 -24
  12. package/eslint/rules/restricted-filenames.js +3 -1
  13. package/helper/ensure-type.cjs +2 -2
  14. package/helper/get-git-files.js +1 -1
  15. package/helper/get-outdated-dependencies.js +1 -1
  16. package/helper/get-outdated-overrides.js +1 -1
  17. package/helper/get-stylelint-path.js +1 -1
  18. package/helper/is-npm-or-yarn.js +1 -1
  19. package/helper/linter-bundle-config.d.ts +7 -7
  20. package/helper/linter-bundle-config.js +28 -6
  21. package/helper/run-process.js +3 -3
  22. package/lint.js +31 -35
  23. package/package.json +27 -26
  24. package/stylelint/index.cjs +89 -5
  25. package/stylelint/plugins/stylelint-15.11.0-stylistic/LICENSE +20 -0
  26. package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/LICENSE +9 -0
  27. package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/index.cjs +122 -0
  28. package/stylelint/plugins/stylelint-15.11.0-stylistic/reference/selectors.cjs +327 -0
  29. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/README.md +110 -0
  30. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/index.cjs +66 -0
  31. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/README.md +117 -0
  32. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/index.cjs +55 -0
  33. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/README.md +63 -0
  34. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/index.cjs +87 -0
  35. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/README.md +50 -0
  36. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/index.cjs +70 -0
  37. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/atRuleNameSpaceChecker.cjs +56 -0
  38. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/README.md +238 -0
  39. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/index.cjs +130 -0
  40. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/README.md +196 -0
  41. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/index.cjs +154 -0
  42. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/README.md +93 -0
  43. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/index.cjs +133 -0
  44. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/README.md +174 -0
  45. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/index.cjs +111 -0
  46. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/README.md +138 -0
  47. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/index.cjs +184 -0
  48. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/README.md +191 -0
  49. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/index.cjs +118 -0
  50. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/README.md +218 -0
  51. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/index.cjs +141 -0
  52. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/README.md +58 -0
  53. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/index.cjs +95 -0
  54. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/README.md +72 -0
  55. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/index.cjs +95 -0
  56. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/README.md +67 -0
  57. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/index.cjs +96 -0
  58. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/README.md +141 -0
  59. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/index.cjs +109 -0
  60. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/README.md +120 -0
  61. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/index.cjs +75 -0
  62. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/README.md +147 -0
  63. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/index.cjs +97 -0
  64. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/README.md +130 -0
  65. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/index.cjs +106 -0
  66. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/README.md +108 -0
  67. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/index.cjs +147 -0
  68. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/README.md +78 -0
  69. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/index.cjs +99 -0
  70. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/README.md +111 -0
  71. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/index.cjs +75 -0
  72. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/README.md +72 -0
  73. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/index.cjs +74 -0
  74. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationBangSpaceChecker.cjs +63 -0
  75. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationColonSpaceChecker.cjs +58 -0
  76. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/findMediaOperator.cjs +32 -0
  77. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/README.md +113 -0
  78. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/index.cjs +61 -0
  79. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/README.md +129 -0
  80. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/index.cjs +61 -0
  81. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/README.md +144 -0
  82. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/index.cjs +62 -0
  83. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/README.md +144 -0
  84. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/index.cjs +62 -0
  85. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/README.md +78 -0
  86. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/index.cjs +115 -0
  87. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/README.md +144 -0
  88. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/index.cjs +282 -0
  89. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/README.md +140 -0
  90. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/index.cjs +182 -0
  91. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/README.md +80 -0
  92. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/index.cjs +198 -0
  93. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceChecker.cjs +125 -0
  94. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceFix.cjs +51 -0
  95. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/README.md +339 -0
  96. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/index.cjs +743 -0
  97. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/README.md +21 -0
  98. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/index.cjs +132 -0
  99. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/README.md +116 -0
  100. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/index.cjs +225 -0
  101. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/README.md +151 -0
  102. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/index.cjs +200 -0
  103. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/README.md +72 -0
  104. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/index.cjs +91 -0
  105. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/README.md +72 -0
  106. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/index.cjs +91 -0
  107. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/README.md +108 -0
  108. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/index.cjs +93 -0
  109. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/README.md +62 -0
  110. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/index.cjs +112 -0
  111. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/README.md +72 -0
  112. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/index.cjs +109 -0
  113. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/README.md +72 -0
  114. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/index.cjs +109 -0
  115. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/README.md +113 -0
  116. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/index.cjs +97 -0
  117. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/README.md +111 -0
  118. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/index.cjs +49 -0
  119. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/README.md +136 -0
  120. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/index.cjs +93 -0
  121. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/README.md +136 -0
  122. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/index.cjs +93 -0
  123. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaFeatureColonSpaceChecker.cjs +54 -0
  124. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaQueryListCommaWhitespaceChecker.cjs +73 -0
  125. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/README.md +34 -0
  126. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/index.cjs +63 -0
  127. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/README.md +79 -0
  128. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/index.cjs +302 -0
  129. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/README.md +78 -0
  130. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/index.cjs +246 -0
  131. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/README.md +34 -0
  132. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/index.cjs +62 -0
  133. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/README.md +74 -0
  134. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/index.cjs +197 -0
  135. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/README.md +40 -0
  136. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/index.cjs +139 -0
  137. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/README.md +192 -0
  138. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/index.cjs +95 -0
  139. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/README.md +112 -0
  140. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/index.cjs +214 -0
  141. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/README.md +162 -0
  142. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/index.cjs +109 -0
  143. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/README.md +162 -0
  144. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/index.cjs +88 -0
  145. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/README.md +78 -0
  146. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/index.cjs +67 -0
  147. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/README.md +78 -0
  148. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/index.cjs +67 -0
  149. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/README.md +40 -0
  150. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/index.cjs +95 -0
  151. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/README.md +120 -0
  152. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/index.cjs +126 -0
  153. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/README.md +112 -0
  154. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/index.cjs +101 -0
  155. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/README.md +110 -0
  156. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/index.cjs +92 -0
  157. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/README.md +110 -0
  158. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/index.cjs +92 -0
  159. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/README.md +103 -0
  160. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/index.cjs +74 -0
  161. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/README.md +108 -0
  162. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/index.cjs +104 -0
  163. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/README.md +62 -0
  164. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/index.cjs +162 -0
  165. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/README.md +128 -0
  166. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/index.cjs +90 -0
  167. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorAttributeOperatorSpaceChecker.cjs +95 -0
  168. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorCombinatorSpaceChecker.cjs +113 -0
  169. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorListCommaWhitespaceChecker.cjs +64 -0
  170. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/README.md +130 -0
  171. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/index.cjs +256 -0
  172. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/README.md +41 -0
  173. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/index.cjs +67 -0
  174. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/README.md +126 -0
  175. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/index.cjs +133 -0
  176. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/README.md +102 -0
  177. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/index.cjs +107 -0
  178. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/README.md +100 -0
  179. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/index.cjs +49 -0
  180. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/README.md +136 -0
  181. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/index.cjs +94 -0
  182. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/README.md +136 -0
  183. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/index.cjs +94 -0
  184. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/README.md +121 -0
  185. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/index.cjs +68 -0
  186. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/valueListCommaWhitespaceChecker.cjs +74 -0
  187. package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/LICENSE +13 -0
  188. package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/index.cjs +216 -0
  189. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/addEmptyLineAfter.cjs +30 -0
  190. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/hasEmptyBlock.cjs +14 -0
  191. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/nextNonCommentNode.cjs +21 -0
  192. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/removeEmptyLinesAfter.cjs +16 -0
  193. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/whitespaceChecker.cjs +361 -0
  194. package/stylelint/plugins/stylelint-selector-no-empty.js +8 -8
  195. package/stylelint/plugins/stylelint-selector-tag-no-without-class.js +4 -4
  196. package/stylelint/plugins/stylelint-high-performance-animation.js +0 -276
  197. package/stylelint/plugins/stylelint-stylistic.js +0 -188
@@ -0,0 +1,130 @@
1
+ # declaration-block-semicolon-space-before
2
+
3
+ Require a single space or disallow whitespace before the semicolons of declaration blocks.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```css
7
+ a { color: pink; }
8
+ /** ↑
9
+ * The space before this semicolon */
10
+ ```
11
+
12
+ This rule ignores semicolons that are preceded by Less mixins.
13
+
14
+ The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
15
+
16
+ ## Options
17
+
18
+ `string`: `"always"|"never"|"always-single-line"|"never-single-line"`
19
+
20
+ ### `"always"`
21
+
22
+ There _must always_ be a single space before the semicolons.
23
+
24
+ The following patterns are considered problems:
25
+
26
+ <!-- prettier-ignore -->
27
+ ```css
28
+ a { color: pink; }
29
+ ```
30
+
31
+ <!-- prettier-ignore -->
32
+ ```css
33
+ a { color: pink; top: 0; }
34
+ ```
35
+
36
+ The following patterns are _not_ considered problems:
37
+
38
+ <!-- prettier-ignore -->
39
+ ```css
40
+ a { color: pink ; }
41
+ ```
42
+
43
+ <!-- prettier-ignore -->
44
+ ```css
45
+ a { color: pink ; top: 0 ; }
46
+ ```
47
+
48
+ ### `"never"`
49
+
50
+ There _must never_ be whitespace before the semicolons.
51
+
52
+ The following patterns are considered problems:
53
+
54
+ <!-- prettier-ignore -->
55
+ ```css
56
+ a { color: pink ; }
57
+ ```
58
+
59
+ <!-- prettier-ignore -->
60
+ ```css
61
+ a { color: pink ; top: 0 ; }
62
+ ```
63
+
64
+ The following patterns are _not_ considered problems:
65
+
66
+ <!-- prettier-ignore -->
67
+ ```css
68
+ a { color: pink; }
69
+ ```
70
+
71
+ <!-- prettier-ignore -->
72
+ ```css
73
+ a { color: pink; top: 0; }
74
+ ```
75
+
76
+ ### `"always-single-line"`
77
+
78
+ There _must always_ be a single space before the semicolons in single-line declaration blocks.
79
+
80
+ The following patterns are considered problems:
81
+
82
+ <!-- prettier-ignore -->
83
+ ```css
84
+ a { color: pink; }
85
+ ```
86
+
87
+ The following patterns are _not_ considered problems:
88
+
89
+ <!-- prettier-ignore -->
90
+ ```css
91
+ a { color: pink ; }
92
+ ```
93
+
94
+ <!-- prettier-ignore -->
95
+ ```css
96
+ a { color: pink; top: 0; }
97
+ ```
98
+
99
+ <!-- prettier-ignore -->
100
+ ```css
101
+ a { color: pink ; top: 0 ; }
102
+ ```
103
+
104
+ ### `"never-single-line"`
105
+
106
+ There _must never_ be whitespace before the semicolons in single-line declaration blocks.
107
+
108
+ The following patterns are considered problems:
109
+
110
+ <!-- prettier-ignore -->
111
+ ```css
112
+ a { color: pink ; }
113
+ ```
114
+
115
+ The following patterns are _not_ considered problems:
116
+
117
+ <!-- prettier-ignore -->
118
+ ```css
119
+ a { color: pink; }
120
+ ```
121
+
122
+ <!-- prettier-ignore -->
123
+ ```css
124
+ a { color: pink; top: 0; }
125
+ ```
126
+
127
+ <!-- prettier-ignore -->
128
+ ```css
129
+ a { color: pink ; top: 0 ; }
130
+ ```
@@ -0,0 +1,106 @@
1
+ /* eslint-disable -- We want to keep as much of the original code as possible */
2
+ // @ts-nocheck
3
+
4
+ const stylelint = require('stylelint');
5
+ const blockString = require('stylelint/lib/utils/blockString.cjs');
6
+ const getDeclarationValue = require('stylelint/lib/utils/getDeclarationValue.cjs');
7
+ const report = require('stylelint/lib/utils/report.cjs');
8
+ const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
+ const setDeclarationValue = require('stylelint/lib/utils/setDeclarationValue.cjs');
10
+ const { isAtRule, isRule } = require('stylelint/lib/utils/typeGuards.cjs');
11
+ const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
12
+
13
+ const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
14
+
15
+ const ruleName = 'plugin/declaration-block-semicolon-space-before';
16
+
17
+ const messages = ruleMessages(ruleName, {
18
+ expectedBefore: () => 'Expected single space before ";"',
19
+ rejectedBefore: () => 'Unexpected whitespace before ";"',
20
+ expectedBeforeSingleLine: () => 'Expected single space before ";" in a single-line declaration block',
21
+ rejectedBeforeSingleLine: () => 'Unexpected whitespace before ";" in a single-line declaration block'
22
+ });
23
+
24
+ const meta = {
25
+ url: 'https://github.com/jens-duttke/linter-bundle/blob/main/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/README.md',
26
+ fixable: true
27
+ };
28
+
29
+ /** @type {import('stylelint').Rule} */
30
+ const rule = (primary, _secondaryOptions, context) => {
31
+ const checker = whitespaceChecker('space', primary, messages);
32
+
33
+ return (root, result) => {
34
+ const validOptions = validateOptions(result, ruleName, {
35
+ actual: primary,
36
+ possible: ['always', 'never', 'always-single-line', 'never-single-line']
37
+ });
38
+
39
+ if (!validOptions) {
40
+ return;
41
+ }
42
+
43
+ root.walkDecls((decl) => {
44
+ // Ignore last declaration if there's no trailing semicolon
45
+ const parentRule = decl.parent;
46
+
47
+ if (!parentRule) { throw new Error('A parent node must be present'); }
48
+
49
+ if (!isAtRule(parentRule) && !isRule(parentRule)) {
50
+ return;
51
+ }
52
+
53
+ if (!parentRule.raws.semicolon && parentRule.last === decl) {
54
+ return;
55
+ }
56
+
57
+ const declString = decl.toString();
58
+
59
+ checker.before({
60
+ source: declString,
61
+ index: declString.length,
62
+ lineCheckStr: blockString(parentRule),
63
+ err: (m) => {
64
+ if (context.fix) {
65
+ const value = getDeclarationValue(decl);
66
+
67
+ if (primary.startsWith('always')) {
68
+ if (decl.important) {
69
+ decl.raws.important = ' !important ';
70
+ }
71
+ else {
72
+ setDeclarationValue(decl, value.replace(/\s*$/, ' '));
73
+ }
74
+
75
+ return;
76
+ }
77
+
78
+ if (primary.startsWith('never')) {
79
+ if (decl.raws.important) {
80
+ decl.raws.important = decl.raws.important.replace(/\s*$/, '');
81
+ }
82
+ else {
83
+ setDeclarationValue(decl, value.replace(/\s*$/, ''));
84
+ }
85
+
86
+ return;
87
+ }
88
+ }
89
+
90
+ report({
91
+ message: m,
92
+ node: decl,
93
+ index: decl.toString().length - 1,
94
+ result,
95
+ ruleName
96
+ });
97
+ }
98
+ });
99
+ });
100
+ };
101
+ };
102
+
103
+ rule.ruleName = ruleName;
104
+ rule.messages = messages;
105
+ rule.meta = meta;
106
+ module.exports = stylelint.createPlugin(ruleName, rule);
@@ -0,0 +1,108 @@
1
+ # declaration-block-trailing-semicolon
2
+
3
+ Require or disallow a trailing semicolon within declaration blocks.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```css
7
+ a { background: orange; color: pink; }
8
+ /** ↑
9
+ * This semicolon */
10
+ ```
11
+
12
+ The trailing semicolon is the _last_ semicolon in a declaration block and it is optional.
13
+
14
+ This rule ignores:
15
+
16
+ - Less mixins
17
+ - trailing `//` comments
18
+ - declaration blocks containing nested (at-)rules
19
+
20
+ The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
21
+
22
+ ## Options
23
+
24
+ `string`: `"always"|"never"`
25
+
26
+ ### `"always"`
27
+
28
+ There _must always_ be a trailing semicolon.
29
+
30
+ The following patterns are considered problems:
31
+
32
+ <!-- prettier-ignore -->
33
+ ```css
34
+ a { color: pink }
35
+ ```
36
+
37
+ <!-- prettier-ignore -->
38
+ ```css
39
+ a { background: orange; color: pink }
40
+ ```
41
+
42
+ <!-- prettier-ignore -->
43
+ ```css
44
+ a { @include foo }
45
+ ```
46
+
47
+ The following patterns are _not_ considered problems:
48
+
49
+ <!-- prettier-ignore -->
50
+ ```css
51
+ a { color: pink; }
52
+ ```
53
+
54
+ <!-- prettier-ignore -->
55
+ ```css
56
+ a { background: orange; color: pink; }
57
+ ```
58
+
59
+ <!-- prettier-ignore -->
60
+ ```css
61
+ a { @include foo; }
62
+ ```
63
+
64
+ ### `"never"`
65
+
66
+ There _must never_ be a trailing semicolon.
67
+
68
+ The following patterns are considered problems:
69
+
70
+ <!-- prettier-ignore -->
71
+ ```css
72
+ a { color: pink; }
73
+ ```
74
+
75
+ <!-- prettier-ignore -->
76
+ ```css
77
+ a { background: orange; color: pink; }
78
+ ```
79
+
80
+ The following patterns are _not_ considered problems:
81
+
82
+ <!-- prettier-ignore -->
83
+ ```css
84
+ a { color: pink }
85
+ ```
86
+
87
+ <!-- prettier-ignore -->
88
+ ```css
89
+ a { background: orange; color: pink }
90
+ ```
91
+
92
+ ## Optional secondary options
93
+
94
+ ### `ignore: ["single-declaration"]`
95
+
96
+ Ignore declaration blocks that contain a single declaration.
97
+
98
+ The following patterns are _not_ considered problems:
99
+
100
+ <!-- prettier-ignore -->
101
+ ```css
102
+ a { color: pink }
103
+ ```
104
+
105
+ <!-- prettier-ignore -->
106
+ ```css
107
+ a { color: pink; }
108
+ ```
@@ -0,0 +1,147 @@
1
+ /* eslint-disable -- We want to keep as much of the original code as possible */
2
+ // @ts-nocheck
3
+
4
+ const stylelint = require('stylelint');
5
+ const hasBlock = require('stylelint/lib/utils/hasBlock.cjs');
6
+ const optionsMatches = require('stylelint/lib/utils/optionsMatches.cjs');
7
+ const report = require('stylelint/lib/utils/report.cjs');
8
+ const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
+ const { isAtRule } = require('stylelint/lib/utils/typeGuards.cjs');
10
+ const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
11
+
12
+ const ruleName = 'plugin/declaration-block-trailing-semicolon';
13
+
14
+ const messages = ruleMessages(ruleName, {
15
+ expected: 'Expected a trailing semicolon',
16
+ rejected: 'Unexpected trailing semicolon'
17
+ });
18
+
19
+ const meta = {
20
+ url: 'https://github.com/jens-duttke/linter-bundle/blob/main/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/README.md',
21
+ fixable: true
22
+ };
23
+
24
+ /** @type {import('stylelint').Rule} */
25
+ const rule = (primary, secondaryOptions, context) => (root, result) => {
26
+ const validOptions = validateOptions(
27
+ result,
28
+ ruleName,
29
+ {
30
+ actual: primary,
31
+ possible: ['always', 'never']
32
+ },
33
+ {
34
+ actual: secondaryOptions,
35
+ possible: {
36
+ ignore: ['single-declaration']
37
+ },
38
+ optional: true
39
+ }
40
+ );
41
+
42
+ if (!validOptions) {
43
+ return;
44
+ }
45
+
46
+ root.walkAtRules((atRule) => {
47
+ if (!atRule.parent) { throw new Error('A parent node must be present'); }
48
+
49
+ if (atRule.parent === root) {
50
+ return;
51
+ }
52
+
53
+ if (atRule !== atRule.parent.last) {
54
+ return;
55
+ }
56
+
57
+ if (hasBlock(atRule)) {
58
+ return;
59
+ }
60
+
61
+ checkLastNode(atRule);
62
+ });
63
+
64
+ root.walkDecls((decl) => {
65
+ if (!decl.parent) { throw new Error('A parent node must be present'); }
66
+
67
+ if (decl.parent.type === 'object') {
68
+ return;
69
+ }
70
+
71
+ if (decl !== decl.parent.last) {
72
+ return;
73
+ }
74
+
75
+ checkLastNode(decl);
76
+ });
77
+
78
+ /**
79
+ * @param {import('postcss').Node} node
80
+ */
81
+ function checkLastNode (node) {
82
+ if (!node.parent) { throw new Error('A parent node must be present'); }
83
+
84
+ const hasSemicolon = node.parent.raws.semicolon;
85
+ const ignoreSingleDeclaration = optionsMatches(
86
+ secondaryOptions,
87
+ 'ignore',
88
+ 'single-declaration'
89
+ );
90
+
91
+ if (ignoreSingleDeclaration && node.parent.first === node) {
92
+ return;
93
+ }
94
+
95
+ let message;
96
+
97
+ if (primary === 'always') {
98
+ if (hasSemicolon) {
99
+ return;
100
+ }
101
+
102
+ // auto-fix
103
+ if (context.fix) {
104
+ node.parent.raws.semicolon = true;
105
+
106
+ if (isAtRule(node)) {
107
+ node.raws.between = '';
108
+ node.parent.raws.after = ' ';
109
+ }
110
+
111
+ return;
112
+ }
113
+
114
+ message = messages.expected;
115
+ }
116
+ else if (primary === 'never') {
117
+ if (!hasSemicolon) {
118
+ return;
119
+ }
120
+
121
+ // auto-fix
122
+ if (context.fix) {
123
+ node.parent.raws.semicolon = false;
124
+
125
+ return;
126
+ }
127
+
128
+ message = messages.rejected;
129
+ }
130
+ else {
131
+ throw new Error(`Unexpected primary option: "${primary}"`);
132
+ }
133
+
134
+ report({
135
+ message,
136
+ node,
137
+ index: node.toString().trim().length - 1,
138
+ result,
139
+ ruleName
140
+ });
141
+ }
142
+ };
143
+
144
+ rule.ruleName = ruleName;
145
+ rule.messages = messages;
146
+ rule.meta = meta;
147
+ module.exports = stylelint.createPlugin(ruleName, rule);
@@ -0,0 +1,78 @@
1
+ # declaration-colon-newline-after
2
+
3
+ Require a newline or disallow whitespace after the colon of declarations.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```css
7
+ a {
8
+ box-shadow:
9
+ 0 0 0 1px #5b9dd9,
10
+ 0 0 2px 1px rgba(30, 140, 190, 0.8);
11
+ } /* ↑ */
12
+ /** ↑
13
+ * The newline after this colon */
14
+ ```
15
+
16
+ The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
17
+
18
+ ## Options
19
+
20
+ `string`: `"always"|"always-multi-line"`
21
+
22
+ ### `"always"`
23
+
24
+ There _must always_ be a newline after the colon.
25
+
26
+ The following patterns are considered problems:
27
+
28
+ <!-- prettier-ignore -->
29
+ ```css
30
+ a { color:pink; }
31
+ ```
32
+
33
+ <!-- prettier-ignore -->
34
+ ```css
35
+ a { color: pink; }
36
+ ```
37
+
38
+ The following patterns are _not_ considered problems:
39
+
40
+ <!-- prettier-ignore -->
41
+ ```css
42
+ a {
43
+ color:
44
+ pink;
45
+ }
46
+ ```
47
+
48
+ ### `"always-multi-line"`
49
+
50
+ There _must always_ be a newline after the colon _if the declaration's value is multi-line_.
51
+
52
+ The following patterns are considered problems:
53
+
54
+ <!-- prettier-ignore -->
55
+ ```css
56
+ a {
57
+ box-shadow: 0 0 0 1px #5b9dd9,
58
+ 0 0 2px 1px rgba(30, 140, 190, 0.8);
59
+ }
60
+ ```
61
+
62
+ The following patterns are _not_ considered problems:
63
+
64
+ <!-- prettier-ignore -->
65
+ ```css
66
+ a {
67
+ box-shadow:
68
+ 0 0 0 1px #5b9dd9,
69
+ 0 0 2px 1px rgba(30, 140, 190, 0.8);
70
+ }
71
+ ```
72
+
73
+ <!-- prettier-ignore -->
74
+ ```css
75
+ a {
76
+ color: pink;
77
+ }
78
+ ```
@@ -0,0 +1,99 @@
1
+ /* eslint-disable -- We want to keep as much of the original code as possible */
2
+ // @ts-nocheck
3
+
4
+ const stylelint = require('stylelint');
5
+ const declarationValueIndex = require('stylelint/lib/utils/declarationValueIndex.cjs');
6
+ const isStandardSyntaxDeclaration = require('stylelint/lib/utils/isStandardSyntaxDeclaration.cjs');
7
+ const report = require('stylelint/lib/utils/report.cjs');
8
+ const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
+ const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
10
+
11
+ const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
12
+
13
+ const ruleName = 'plugin/declaration-colon-newline-after';
14
+
15
+ const messages = ruleMessages(ruleName, {
16
+ expectedAfter: () => 'Expected newline after ":"',
17
+ expectedAfterMultiLine: () => 'Expected newline after ":" with a multi-line declaration'
18
+ });
19
+
20
+ const meta = {
21
+ url: 'https://github.com/jens-duttke/linter-bundle/blob/main/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/README.md',
22
+ fixable: true
23
+ };
24
+
25
+ /** @type {import('stylelint').Rule} */
26
+ const rule = (primary, _secondaryOptions, context) => {
27
+ const checker = whitespaceChecker('newline', primary, messages);
28
+
29
+ return (root, result) => {
30
+ const validOptions = validateOptions(result, ruleName, {
31
+ actual: primary,
32
+ possible: ['always', 'always-multi-line']
33
+ });
34
+
35
+ if (!validOptions) {
36
+ return;
37
+ }
38
+
39
+ root.walkDecls((decl) => {
40
+ if (!isStandardSyntaxDeclaration(decl)) {
41
+ return;
42
+ }
43
+
44
+ // Get the raw prop, and only the prop
45
+ const endOfPropertyIndex = declarationValueIndex(decl) + (decl.raws.between || '').length - 1;
46
+
47
+ // The extra characters tacked onto the end ensure that there is a character to check
48
+ // after the colon. Otherwise, with `background:pink` the character after the
49
+ const propertyPlusColon = `${decl.toString().slice(0, endOfPropertyIndex)}xxx`;
50
+
51
+ for (let i = 0, l = propertyPlusColon.length; i < l; i++) {
52
+ if (propertyPlusColon[i] !== ':') {
53
+ continue;
54
+ }
55
+
56
+ const indexToCheck = (/^[^\S\n\r]*\/\*/).test(propertyPlusColon.slice(i + 1)) ?
57
+ propertyPlusColon.indexOf('*/', i) + 1
58
+ : i;
59
+
60
+ checker.afterOneOnly({
61
+ source: propertyPlusColon,
62
+ index: indexToCheck,
63
+ lineCheckStr: decl.value,
64
+ err: (m) => {
65
+ if (context.fix) {
66
+ const between = decl.raws.between;
67
+
68
+ if (between == null) { throw new Error('`between` must be present'); }
69
+
70
+ const betweenStart = declarationValueIndex(decl) - between.length;
71
+ const sliceIndex = indexToCheck - betweenStart + 1;
72
+ const betweenBefore = between.slice(0, sliceIndex);
73
+ const betweenAfter = between.slice(sliceIndex);
74
+
75
+ decl.raws.between = (/^\s*\n/).test(betweenAfter) ?
76
+ betweenBefore + betweenAfter.replace(/^[^\S\n\r]*/, '')
77
+ : betweenBefore + context.newline + betweenAfter;
78
+
79
+ return;
80
+ }
81
+
82
+ report({
83
+ message: m,
84
+ node: decl,
85
+ index: indexToCheck,
86
+ result,
87
+ ruleName
88
+ });
89
+ }
90
+ });
91
+ }
92
+ });
93
+ };
94
+ };
95
+
96
+ rule.ruleName = ruleName;
97
+ rule.messages = messages;
98
+ rule.meta = meta;
99
+ module.exports = stylelint.createPlugin(ruleName, rule);