linter-bundle 5.1.0 → 6.1.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 (195) hide show
  1. package/.linter-bundle.js +2 -0
  2. package/CHANGELOG.md +83 -9
  3. package/README.md +5 -3
  4. package/TODO.md +5 -0
  5. package/eslint/index.cjs +10 -4
  6. package/eslint/overrides-javascript.cjs +7 -1
  7. package/eslint/overrides-jest.cjs +1 -0
  8. package/eslint/overrides-jsdoc.cjs +1 -0
  9. package/eslint/rules/no-global-undefined-check.js +5 -3
  10. package/eslint/rules/no-unnecessary-typeof.js +26 -24
  11. package/eslint/rules/restricted-filenames.js +3 -1
  12. package/helper/ensure-type.cjs +2 -2
  13. package/helper/get-git-files.js +1 -1
  14. package/helper/get-outdated-dependencies.js +1 -1
  15. package/helper/get-outdated-overrides.js +1 -1
  16. package/helper/get-stylelint-path.js +1 -1
  17. package/helper/is-npm-or-yarn.js +1 -1
  18. package/helper/linter-bundle-config.js +22 -7
  19. package/helper/run-process.js +3 -3
  20. package/lint.js +31 -35
  21. package/package.json +27 -26
  22. package/stylelint/index.cjs +90 -5
  23. package/stylelint/plugins/stylelint-15.11.0-stylistic/LICENSE +20 -0
  24. package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/LICENSE +9 -0
  25. package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/index.cjs +122 -0
  26. package/stylelint/plugins/stylelint-15.11.0-stylistic/reference/selectors.cjs +327 -0
  27. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/README.md +110 -0
  28. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/index.cjs +66 -0
  29. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/README.md +117 -0
  30. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/index.cjs +55 -0
  31. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/README.md +63 -0
  32. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/index.cjs +87 -0
  33. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/README.md +50 -0
  34. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/index.cjs +70 -0
  35. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/atRuleNameSpaceChecker.cjs +56 -0
  36. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/README.md +238 -0
  37. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/index.cjs +130 -0
  38. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/README.md +196 -0
  39. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/index.cjs +154 -0
  40. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/README.md +93 -0
  41. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/index.cjs +133 -0
  42. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/README.md +174 -0
  43. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/index.cjs +111 -0
  44. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/README.md +138 -0
  45. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/index.cjs +184 -0
  46. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/README.md +191 -0
  47. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/index.cjs +118 -0
  48. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/README.md +218 -0
  49. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/index.cjs +141 -0
  50. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/README.md +58 -0
  51. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/index.cjs +95 -0
  52. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/README.md +72 -0
  53. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/index.cjs +95 -0
  54. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/README.md +67 -0
  55. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/index.cjs +96 -0
  56. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/README.md +141 -0
  57. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/index.cjs +109 -0
  58. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/README.md +120 -0
  59. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/index.cjs +75 -0
  60. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/README.md +147 -0
  61. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/index.cjs +97 -0
  62. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/README.md +130 -0
  63. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/index.cjs +106 -0
  64. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/README.md +108 -0
  65. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/index.cjs +147 -0
  66. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/README.md +78 -0
  67. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/index.cjs +99 -0
  68. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/README.md +111 -0
  69. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/index.cjs +75 -0
  70. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/README.md +72 -0
  71. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/index.cjs +74 -0
  72. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationBangSpaceChecker.cjs +63 -0
  73. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationColonSpaceChecker.cjs +58 -0
  74. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/findMediaOperator.cjs +32 -0
  75. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/README.md +113 -0
  76. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/index.cjs +61 -0
  77. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/README.md +129 -0
  78. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/index.cjs +61 -0
  79. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/README.md +144 -0
  80. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/index.cjs +62 -0
  81. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/README.md +144 -0
  82. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/index.cjs +62 -0
  83. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/README.md +78 -0
  84. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/index.cjs +115 -0
  85. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/README.md +144 -0
  86. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/index.cjs +282 -0
  87. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/README.md +140 -0
  88. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/index.cjs +182 -0
  89. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/README.md +80 -0
  90. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/index.cjs +198 -0
  91. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceChecker.cjs +125 -0
  92. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceFix.cjs +51 -0
  93. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/README.md +339 -0
  94. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/index.cjs +743 -0
  95. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/README.md +21 -0
  96. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/index.cjs +132 -0
  97. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/README.md +116 -0
  98. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/index.cjs +225 -0
  99. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/README.md +151 -0
  100. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/index.cjs +200 -0
  101. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/README.md +72 -0
  102. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/index.cjs +91 -0
  103. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/README.md +72 -0
  104. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/index.cjs +91 -0
  105. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/README.md +108 -0
  106. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/index.cjs +93 -0
  107. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/README.md +62 -0
  108. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/index.cjs +112 -0
  109. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/README.md +72 -0
  110. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/index.cjs +109 -0
  111. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/README.md +72 -0
  112. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/index.cjs +109 -0
  113. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/README.md +113 -0
  114. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/index.cjs +97 -0
  115. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/README.md +111 -0
  116. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/index.cjs +49 -0
  117. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/README.md +136 -0
  118. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/index.cjs +93 -0
  119. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/README.md +136 -0
  120. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/index.cjs +93 -0
  121. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaFeatureColonSpaceChecker.cjs +54 -0
  122. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaQueryListCommaWhitespaceChecker.cjs +73 -0
  123. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/README.md +34 -0
  124. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/index.cjs +63 -0
  125. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/README.md +79 -0
  126. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/index.cjs +302 -0
  127. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/README.md +78 -0
  128. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/index.cjs +246 -0
  129. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/README.md +34 -0
  130. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/index.cjs +62 -0
  131. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/README.md +74 -0
  132. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/index.cjs +197 -0
  133. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/README.md +40 -0
  134. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/index.cjs +139 -0
  135. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/README.md +192 -0
  136. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/index.cjs +95 -0
  137. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/README.md +112 -0
  138. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/index.cjs +214 -0
  139. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/README.md +162 -0
  140. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/index.cjs +109 -0
  141. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/README.md +162 -0
  142. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/index.cjs +88 -0
  143. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/README.md +78 -0
  144. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/index.cjs +67 -0
  145. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/README.md +78 -0
  146. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/index.cjs +67 -0
  147. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/README.md +40 -0
  148. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/index.cjs +95 -0
  149. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/README.md +120 -0
  150. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/index.cjs +126 -0
  151. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/README.md +112 -0
  152. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/index.cjs +101 -0
  153. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/README.md +110 -0
  154. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/index.cjs +92 -0
  155. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/README.md +110 -0
  156. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/index.cjs +92 -0
  157. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/README.md +103 -0
  158. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/index.cjs +74 -0
  159. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/README.md +108 -0
  160. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/index.cjs +104 -0
  161. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/README.md +62 -0
  162. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/index.cjs +162 -0
  163. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/README.md +128 -0
  164. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/index.cjs +90 -0
  165. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorAttributeOperatorSpaceChecker.cjs +95 -0
  166. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorCombinatorSpaceChecker.cjs +113 -0
  167. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorListCommaWhitespaceChecker.cjs +64 -0
  168. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/README.md +130 -0
  169. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/index.cjs +256 -0
  170. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/README.md +41 -0
  171. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/index.cjs +67 -0
  172. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/README.md +126 -0
  173. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/index.cjs +133 -0
  174. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/README.md +102 -0
  175. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/index.cjs +107 -0
  176. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/README.md +100 -0
  177. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/index.cjs +49 -0
  178. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/README.md +136 -0
  179. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/index.cjs +94 -0
  180. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/README.md +136 -0
  181. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/index.cjs +94 -0
  182. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/README.md +121 -0
  183. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/index.cjs +68 -0
  184. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/valueListCommaWhitespaceChecker.cjs +74 -0
  185. package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/LICENSE +13 -0
  186. package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/index.cjs +216 -0
  187. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/addEmptyLineAfter.cjs +30 -0
  188. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/hasEmptyBlock.cjs +14 -0
  189. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/nextNonCommentNode.cjs +21 -0
  190. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/removeEmptyLinesAfter.cjs +16 -0
  191. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/whitespaceChecker.cjs +361 -0
  192. package/stylelint/plugins/stylelint-selector-no-empty.js +8 -8
  193. package/stylelint/plugins/stylelint-selector-tag-no-without-class.js +4 -4
  194. package/stylelint/plugins/stylelint-high-performance-animation.js +0 -276
  195. package/stylelint/plugins/stylelint-stylistic.js +0 -188
@@ -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);
@@ -0,0 +1,111 @@
1
+ # declaration-colon-space-after
2
+
3
+ Require a single space or disallow whitespace after the colon of declarations.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```css
7
+ a { color: pink }
8
+ /** ↑
9
+ * The space after this colon */
10
+ ```
11
+
12
+ The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
13
+
14
+ ## Options
15
+
16
+ `string`: `"always"|"never"|"always-single-line"`
17
+
18
+ ### `"always"`
19
+
20
+ There _must always_ be a single space after the colon.
21
+
22
+ The following patterns are considered problems:
23
+
24
+ <!-- prettier-ignore -->
25
+ ```css
26
+ a { color :pink }
27
+ ```
28
+
29
+ <!-- prettier-ignore -->
30
+ ```css
31
+ a { color:pink }
32
+ ```
33
+
34
+ The following patterns are _not_ considered problems:
35
+
36
+ <!-- prettier-ignore -->
37
+ ```css
38
+ a { color : pink }
39
+ ```
40
+
41
+ <!-- prettier-ignore -->
42
+ ```css
43
+ a { color: pink }
44
+ ```
45
+
46
+ ### `"never"`
47
+
48
+ There _must never_ be whitespace after the colon.
49
+
50
+ The following patterns are considered problems:
51
+
52
+ <!-- prettier-ignore -->
53
+ ```css
54
+ a { color : pink }
55
+ ```
56
+
57
+ <!-- prettier-ignore -->
58
+ ```css
59
+ a { color: pink }
60
+ ```
61
+
62
+ The following patterns are _not_ considered problems:
63
+
64
+ <!-- prettier-ignore -->
65
+ ```css
66
+ a { color :pink }
67
+ ```
68
+
69
+ <!-- prettier-ignore -->
70
+ ```css
71
+ a { color:pink }
72
+ ```
73
+
74
+ ### `"always-single-line"`
75
+
76
+ There _must always_ be a single space after the colon _if the declaration's value is single-line_.
77
+
78
+ The following patterns are considered problems:
79
+
80
+ <!-- prettier-ignore -->
81
+ ```css
82
+ a {
83
+ box-shadow:0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
84
+ }
85
+ ```
86
+
87
+ The following patterns are _not_ considered problems:
88
+
89
+ <!-- prettier-ignore -->
90
+ ```css
91
+ a {
92
+ box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
93
+ }
94
+ ```
95
+
96
+ <!-- prettier-ignore -->
97
+ ```css
98
+ a {
99
+ box-shadow:
100
+ 0 0 0 1px #5b9dd9,
101
+ 0 0 2px 1px rgba(30, 140, 190, 0.8);
102
+ }
103
+ ```
104
+
105
+ <!-- prettier-ignore -->
106
+ ```css
107
+ a {
108
+ box-shadow:0 0 0 1px #5b9dd9,
109
+ 0 0 2px 1px rgba(30, 140, 190, 0.8);
110
+ }
111
+ ```
@@ -0,0 +1,75 @@
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 ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
7
+ const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
8
+
9
+ const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
10
+ const declarationColonSpaceChecker = require('../declarationColonSpaceChecker.cjs');
11
+
12
+ const ruleName = 'plugin/declaration-colon-space-after';
13
+
14
+ const messages = ruleMessages(ruleName, {
15
+ expectedAfter: () => 'Expected single space after ":"',
16
+ rejectedAfter: () => 'Unexpected whitespace after ":"',
17
+ expectedAfterSingleLine: () => 'Expected single space after ":" with a single-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-space-after/README.md',
22
+ fixable: true
23
+ };
24
+
25
+ /** @type {import('stylelint').Rule} */
26
+ const rule = (primary, _secondaryOptions, context) => {
27
+ const checker = whitespaceChecker('space', primary, messages);
28
+
29
+ return (root, result) => {
30
+ const validOptions = validateOptions(result, ruleName, {
31
+ actual: primary,
32
+ possible: ['always', 'never', 'always-single-line']
33
+ });
34
+
35
+ if (!validOptions) {
36
+ return;
37
+ }
38
+
39
+ declarationColonSpaceChecker({
40
+ root,
41
+ result,
42
+ locationChecker: checker.after,
43
+ checkedRuleName: ruleName,
44
+ fix: context.fix ?
45
+ (decl, index) => {
46
+ const colonIndex = index - declarationValueIndex(decl);
47
+ const between = decl.raws.between;
48
+
49
+ if (between == null) { throw new Error('`between` must be present'); }
50
+
51
+ if (primary.startsWith('always')) {
52
+ decl.raws.between =
53
+ between.slice(0, colonIndex) + between.slice(colonIndex).replace(/^:\s*/, ': ');
54
+
55
+ return true;
56
+ }
57
+
58
+ if (primary === 'never') {
59
+ decl.raws.between =
60
+ between.slice(0, colonIndex) + between.slice(colonIndex).replace(/^:\s*/, ':');
61
+
62
+ return true;
63
+ }
64
+
65
+ return false;
66
+ }
67
+ : null
68
+ });
69
+ };
70
+ };
71
+
72
+ rule.ruleName = ruleName;
73
+ rule.messages = messages;
74
+ rule.meta = meta;
75
+ module.exports = stylelint.createPlugin(ruleName, rule);
@@ -0,0 +1,72 @@
1
+ # declaration-colon-space-before
2
+
3
+ Require a single space or disallow whitespace before the colon of declarations.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```css
7
+ a { color :pink }
8
+ /** ↑
9
+ * The space before this colon */
10
+ ```
11
+
12
+ The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
13
+
14
+ ## Options
15
+
16
+ `string`: `"always"|"never"`
17
+
18
+ ### `"always"`
19
+
20
+ There _must always_ be a single space before the colon.
21
+
22
+ The following patterns are considered problems:
23
+
24
+ <!-- prettier-ignore -->
25
+ ```css
26
+ a { color: pink }
27
+ ```
28
+
29
+ <!-- prettier-ignore -->
30
+ ```css
31
+ a { color:pink }
32
+ ```
33
+
34
+ The following patterns are _not_ considered problems:
35
+
36
+ <!-- prettier-ignore -->
37
+ ```css
38
+ a { color : pink }
39
+ ```
40
+
41
+ <!-- prettier-ignore -->
42
+ ```css
43
+ a { color :pink }
44
+ ```
45
+
46
+ ### `"never"`
47
+
48
+ There _must never_ be whitespace before the colon.
49
+
50
+ The following patterns are considered problems:
51
+
52
+ <!-- prettier-ignore -->
53
+ ```css
54
+ a { color : pink }
55
+ ```
56
+
57
+ <!-- prettier-ignore -->
58
+ ```css
59
+ a { color :pink }
60
+ ```
61
+
62
+ The following patterns are _not_ considered problems:
63
+
64
+ <!-- prettier-ignore -->
65
+ ```css
66
+ a { color: pink }
67
+ ```
68
+
69
+ <!-- prettier-ignore -->
70
+ ```css
71
+ a { color:pink }
72
+ ```