@alexlit/lint-kit 103.0.0 → 105.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 (146) hide show
  1. package/.lintstagedrc.js +1 -2
  2. package/.markdownlintrc.js +1 -1
  3. package/.stylelintrc.js +1 -4
  4. package/README.md +1 -1
  5. package/package.json +16 -14
  6. package/packages/config-commitlint/CHANGELOG.md +7 -0
  7. package/packages/config-commitlint/README.md +28 -0
  8. package/packages/config-commitlint/index.js +3 -0
  9. package/packages/config-commitlint/package.json +38 -0
  10. package/packages/config-eslint/CHANGELOG.md +37 -0
  11. package/packages/config-eslint/README.md +69 -0
  12. package/packages/config-eslint/TODO.md +6 -0
  13. package/packages/config-eslint/dictionaries/index.js +462 -0
  14. package/packages/config-eslint/dictionaries/programming/bash.js +25 -0
  15. package/packages/config-eslint/dictionaries/programming/django.js +2345 -0
  16. package/packages/config-eslint/dictionaries/programming/elixir.js +64 -0
  17. package/packages/config-eslint/dictionaries/programming/go.js +7748 -0
  18. package/packages/config-eslint/dictionaries/programming/java.js +33527 -0
  19. package/packages/config-eslint/dictionaries/programming/latex.js +675 -0
  20. package/packages/config-eslint/dictionaries/programming/lua.js +394 -0
  21. package/packages/config-eslint/dictionaries/programming/php.js +9788 -0
  22. package/packages/config-eslint/dictionaries/programming/python.js +367 -0
  23. package/packages/config-eslint/dictionaries/programming/ruby.js +357 -0
  24. package/packages/config-eslint/dictionaries/programming/rust.js +115 -0
  25. package/packages/config-eslint/dictionaries/programming/scala.js +2755 -0
  26. package/packages/config-eslint/dictionaries/specialized/html-symbol-entities.js +1118 -0
  27. package/packages/config-eslint/dictionaries/specialized/lorem-ipsum.js +359 -0
  28. package/packages/config-eslint/index.js +225 -0
  29. package/packages/config-eslint/package.json +87 -0
  30. package/packages/config-eslint/plugins/array-func.js +21 -0
  31. package/packages/config-eslint/plugins/compat.js +8 -0
  32. package/packages/config-eslint/plugins/decorator-position.js +16 -0
  33. package/packages/config-eslint/plugins/eslint-comments.js +10 -0
  34. package/packages/config-eslint/plugins/etc.js +14 -0
  35. package/packages/config-eslint/plugins/ext.js +13 -0
  36. package/packages/config-eslint/plugins/filenames.js +39 -0
  37. package/packages/config-eslint/plugins/import.js +72 -0
  38. package/packages/config-eslint/plugins/jsdoc.js +33 -0
  39. package/packages/config-eslint/plugins/jsx-a11y.js +6 -0
  40. package/packages/config-eslint/plugins/lit-a11y.js +6 -0
  41. package/packages/config-eslint/plugins/lit.js +10 -0
  42. package/packages/config-eslint/plugins/more.js +18 -0
  43. package/packages/config-eslint/plugins/no-await-in-promise.js +6 -0
  44. package/packages/config-eslint/plugins/no-constructor-bind.js +9 -0
  45. package/packages/config-eslint/plugins/no-explicit-type-exports.js +8 -0
  46. package/packages/config-eslint/plugins/no-inferred-method-name.js +8 -0
  47. package/packages/config-eslint/plugins/no-loops.js +8 -0
  48. package/packages/config-eslint/plugins/no-secrets.js +13 -0
  49. package/packages/config-eslint/plugins/no-use-extend-native.js +6 -0
  50. package/packages/config-eslint/plugins/nuxt.js +10 -0
  51. package/packages/config-eslint/plugins/optional/node.js +6 -0
  52. package/packages/config-eslint/plugins/prettier.js +25 -0
  53. package/packages/config-eslint/plugins/promise.js +11 -0
  54. package/packages/config-eslint/plugins/quasar.js +6 -0
  55. package/packages/config-eslint/plugins/regexp.js +8 -0
  56. package/packages/config-eslint/plugins/security.js +11 -0
  57. package/packages/config-eslint/plugins/simple-import-sort.js +9 -0
  58. package/packages/config-eslint/plugins/sonar.js +6 -0
  59. package/packages/config-eslint/plugins/sort-class-members.js +299 -0
  60. package/packages/config-eslint/plugins/sort-destructure-keys.js +11 -0
  61. package/packages/config-eslint/plugins/sort-keys-fix.js +8 -0
  62. package/packages/config-eslint/plugins/spellcheck.js +19 -0
  63. package/packages/config-eslint/plugins/sql.js +27 -0
  64. package/packages/config-eslint/plugins/tanstack-query.js +5 -0
  65. package/packages/config-eslint/plugins/testing-library.js +10 -0
  66. package/packages/config-eslint/plugins/typescript/allow-boolean-property-list.const.js +38 -0
  67. package/packages/config-eslint/plugins/typescript/boolean-prefixes.const.js +11 -0
  68. package/packages/config-eslint/plugins/typescript/english-verbs.const.js +3368 -0
  69. package/packages/config-eslint/plugins/typescript/index.js +154 -0
  70. package/packages/config-eslint/plugins/typescript-sort-keys.js +6 -0
  71. package/packages/config-eslint/plugins/unicorn.js +66 -0
  72. package/packages/config-eslint/plugins/unused-imports.js +18 -0
  73. package/packages/config-eslint/plugins/vitest.js +17 -0
  74. package/packages/config-eslint/plugins/vue-i18n.js +35 -0
  75. package/packages/config-eslint/plugins/vue.js +268 -0
  76. package/packages/config-eslint/plugins/vuejs-accessibility.js +21 -0
  77. package/packages/config-eslint/plugins/wc.js +6 -0
  78. package/packages/config-eslint/plugins/write-good-comments.js +9 -0
  79. package/packages/config-htmllint/CHANGELOG.md +7 -0
  80. package/packages/config-htmllint/README.md +20 -0
  81. package/packages/config-htmllint/index.js +30 -0
  82. package/packages/config-htmllint/package.json +39 -0
  83. package/packages/config-htmllint/test/html.html +335 -0
  84. package/packages/config-markdownlint/CHANGELOG.md +9 -0
  85. package/packages/config-markdownlint/README.md +16 -0
  86. package/packages/config-markdownlint/index.js +17 -0
  87. package/packages/config-markdownlint/package.json +37 -0
  88. package/packages/config-markdownlint/test/deepin-2.md +106 -0
  89. package/packages/config-npmlint/CHANGELOG.md +7 -0
  90. package/packages/config-npmlint/README.md +18 -0
  91. package/packages/config-npmlint/index.json +3 -0
  92. package/packages/config-npmlint/package.json +42 -0
  93. package/packages/config-prettier/CHANGELOG.md +7 -0
  94. package/packages/config-prettier/README.md +16 -0
  95. package/packages/config-prettier/index.js +31 -0
  96. package/packages/config-prettier/package.json +48 -0
  97. package/packages/config-prettier/plugins/jsdoc.js +6 -0
  98. package/packages/config-prettier/plugins/pug.js +7 -0
  99. package/packages/config-prettier/plugins/sort-json.js +4 -0
  100. package/packages/config-prettier/plugins/svelte.js +7 -0
  101. package/packages/config-prettier/plugins/xml.js +4 -0
  102. package/packages/config-prettier/test/Migrations.sol +19 -0
  103. package/packages/config-prettier/test/jsdoc.js +27 -0
  104. package/packages/config-prettier/test/json.json +28 -0
  105. package/packages/config-prettier/test/pug.jade +14 -0
  106. package/packages/config-prettier/test/ruby.example +13 -0
  107. package/packages/config-prettier/test/sql.sql +6 -0
  108. package/packages/config-prettier/test/svelte.svelte +20 -0
  109. package/packages/config-prettier/test/svg.svg +67 -0
  110. package/packages/config-prettier/test/twig.twig +17 -0
  111. package/packages/config-prettier/test/xml.xml +43 -0
  112. package/packages/config-stylelint/CHANGELOG.md +7 -0
  113. package/packages/config-stylelint/README.md +38 -0
  114. package/packages/config-stylelint/index.js +145 -0
  115. package/packages/config-stylelint/package.json +60 -0
  116. package/packages/config-stylelint/plugins/a11y.js +12 -0
  117. package/packages/config-stylelint/plugins/at-rule-no-children.js +13 -0
  118. package/packages/config-stylelint/plugins/color-format.js +10 -0
  119. package/packages/config-stylelint/plugins/declaration-block-no-ignored-properties.js +8 -0
  120. package/packages/config-stylelint/plugins/high-performance-animation.js +14 -0
  121. package/packages/config-stylelint/plugins/no-nested-media.js +8 -0
  122. package/packages/config-stylelint/plugins/no-unresolved-module.js +25 -0
  123. package/packages/config-stylelint/plugins/no-unsupported-browser-features.js +15 -0
  124. package/packages/config-stylelint/plugins/optional/gamut.js +8 -0
  125. package/packages/config-stylelint/plugins/optional/logical-css.js +10 -0
  126. package/packages/config-stylelint/plugins/optional/no-indistinguishable-colors.js +8 -0
  127. package/packages/config-stylelint/plugins/optional/use-logical-spec.js +8 -0
  128. package/packages/config-stylelint/plugins/order.js +486 -0
  129. package/packages/config-stylelint/plugins/prettier.js +8 -0
  130. package/packages/config-stylelint/plugins/scss.js +83 -0
  131. package/packages/config-stylelint/plugins/selector-no-empty.js +8 -0
  132. package/packages/config-stylelint/plugins/use-nesting.js +8 -0
  133. package/packages/config-stylelint/plugins/vue.js +5 -0
  134. package/packages/config-stylelint/test/button.scss +7 -0
  135. package/packages/config-stylelint/test/comp-vue.vue +36 -0
  136. package/packages/config-stylelint/test/logical.scss +35 -0
  137. package/packages/config-stylelint/test/scss.scss +457 -0
  138. package/packages/config-stylelint/test/tailwind.css +8 -0
  139. package/scripts/lint.sh +7 -5
  140. package/scripts/semver.sh +17 -4
  141. package/scripts/up.sh +24 -4
  142. package/scripts/init.sh +0 -46
  143. package/scripts/ou.sh +0 -45
  144. package/scripts/publish.sh +0 -5
  145. package/scripts/upgrade.sh +0 -19
  146. package/scripts/version.sh +0 -4
@@ -0,0 +1,31 @@
1
+ /* eslint-disable spellcheck/spell-checker, global-require */
2
+ module.exports = {
3
+ endOfLine: 'lf',
4
+
5
+ plugins: [
6
+ '@prettier/plugin-php',
7
+ '@prettier/plugin-pug',
8
+ '@prettier/plugin-ruby',
9
+ '@prettier/plugin-xml',
10
+
11
+ 'prettier-plugin-jsdoc',
12
+ 'prettier-plugin-packagejson',
13
+ 'prettier-plugin-sh',
14
+ 'prettier-plugin-solidity',
15
+ 'prettier-plugin-sort-json',
16
+ 'prettier-plugin-sql',
17
+ 'prettier-plugin-svelte',
18
+ ],
19
+
20
+ proseWrap: 'always',
21
+ singleQuote: true,
22
+ tabWidth: 2,
23
+ trailingComma: 'all',
24
+ vueIndentScriptAndStyle: true,
25
+
26
+ ...require('./plugins/jsdoc'),
27
+ ...require('./plugins/pug'),
28
+ ...require('./plugins/sort-json'),
29
+ ...require('./plugins/svelte'),
30
+ ...require('./plugins/xml'),
31
+ };
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@alexlit/config-prettier",
3
+ "version": "14.0.1",
4
+ "private": false,
5
+ "description": "prettier config",
6
+ "keywords": [
7
+ "prettier",
8
+ "config"
9
+ ],
10
+ "homepage": "https://github.com/alex-lit/lint-kit#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/alex-lit/lint-kit/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/alex-lit/lint-kit.git",
17
+ "directory": "packages/config-prettier"
18
+ },
19
+ "license": "MIT",
20
+ "author": "Alexey Litovchenko",
21
+ "maintainers": [
22
+ "Alexey Litovchenko <alex.lit@outlook.com> (https://alexlit.gitlab.io)"
23
+ ],
24
+ "main": "index.js",
25
+ "files": [
26
+ "README.md",
27
+ "index.js",
28
+ "plugins"
29
+ ],
30
+ "scripts": {
31
+ "semver": "../../scripts/semver.sh",
32
+ "up": "../../scripts/up.sh"
33
+ },
34
+ "dependencies": {
35
+ "@prettier/plugin-php": "^0.21.0",
36
+ "@prettier/plugin-pug": "^3.0.0",
37
+ "@prettier/plugin-ruby": "^4.0.2",
38
+ "@prettier/plugin-xml": "^3.2.1",
39
+ "prettier": "^3.0.3",
40
+ "prettier-plugin-jsdoc": "^1.1.1",
41
+ "prettier-plugin-packagejson": "^2.4.6",
42
+ "prettier-plugin-sh": "^0.13.1",
43
+ "prettier-plugin-solidity": "^1.1.3",
44
+ "prettier-plugin-sort-json": "^3.1.0",
45
+ "prettier-plugin-sql": "^0.15.1",
46
+ "prettier-plugin-svelte": "^3.0.3"
47
+ }
48
+ }
@@ -0,0 +1,6 @@
1
+ /** @see [prettier-plugin-jsdoc](https://github.com/hosseinmd/prettier-plugin-jsdoc) */
2
+ module.exports = {
3
+ jsdocCommentLineStrategy: 'singleLine',
4
+ jsdocSeparateReturnsFromParam: true,
5
+ jsdocSeparateTagGroups: true,
6
+ };
@@ -0,0 +1,7 @@
1
+ /** @see [plugin-pug](https://github.com/prettier/plugin-pug) */
2
+ module.exports = {
3
+ pugCommentPreserveSpaces: 'trim-all',
4
+ pugSingleQuote: false,
5
+ pugSortAttributes: 'asc',
6
+ pugWrapAttributesThreshold: 3,
7
+ };
@@ -0,0 +1,4 @@
1
+ /** @see [prettier-plugin-sort-json]https://github.com/Gudahtt/prettier-plugin-sort-json) */
2
+ module.exports = {
3
+ jsonRecursiveSort: true,
4
+ };
@@ -0,0 +1,7 @@
1
+ /** @see [prettier-plugin-svelte](https://github.com/sveltejs/prettier-plugin-svelte) */
2
+ module.exports = {
3
+ svelteAllowShorthand: false,
4
+ svelteIndentScriptAndStyle: true,
5
+ svelteSortOrder: 'options-scripts-markup-styles',
6
+ svelteStrictMode: true,
7
+ };
@@ -0,0 +1,4 @@
1
+ /** @see [plugin-xml](https://github.com/prettier/plugin-xml) */
2
+ module.exports = {
3
+ xmlWhitespaceSensitivity: 'ignore',
4
+ };
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.4.22 <0.9.0;
3
+
4
+ contract Migrations {
5
+ address public owner = msg.sender;
6
+ uint256 public last_completed_migration;
7
+
8
+ modifier restricted() {
9
+ require(
10
+ msg.sender == owner,
11
+ "This function is restricted to the contract's owner"
12
+ );
13
+ _;
14
+ }
15
+
16
+ function setCompleted(uint256 completed) public restricted {
17
+ last_completed_migration = completed;
18
+ }
19
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable unicorn/no-empty-file */
2
+ /**
3
+ * In these configuration files, the rule plugin1/rule1 comes from the plugin
4
+ * named plugin1. You can also use this format with configuration comments, such
5
+ * as:
6
+ *
7
+ * Hello.
8
+ *
9
+ * @example
10
+ * <h1>test</h1>;
11
+ *
12
+ * @type {React.FC<{ message: string }>}
13
+ *
14
+ * @param x Test
15
+ * @param x.dsf Test
16
+ * @param {any} var An example text that is long and spans lines followed by a
17
+ * list
18
+ *
19
+ * - Item 1.
20
+ * - Item 2.
21
+ * - Item 3.
22
+ *
23
+ * And more text to come.
24
+ *
25
+ * @returns {Promise} A return value.
26
+ */
27
+ export const x = 1;
@@ -0,0 +1,28 @@
1
+ {
2
+ "[vue]": {
3
+ "editor.codeActionsOnSave": {
4
+ "source.fixAll.eslint": true,
5
+ "source.fixAll.stylelint": true,
6
+ "xxxint": true
7
+ },
8
+ "editor.formatOnPaste": false,
9
+ "editor.formatOnSave": false,
10
+ "editor.formatOnType": false
11
+ },
12
+ "cSpell.allowCompoundWords": true,
13
+ "breadcrumbs.enabled": true,
14
+ "cSpell.enableFiletypes": [
15
+ "browserslist",
16
+ "gitignore",
17
+ "postcss",
18
+ "shellscript",
19
+ "vue",
20
+ "vue-html",
21
+ "vue-postcss"
22
+ ],
23
+ "emmet.preferences": {
24
+ "bem.elementSeparator": "__",
25
+ "bem.modifierSeparator": "--",
26
+ "bem.shortElementPrefix": ":"
27
+ }
28
+ }
@@ -0,0 +1,14 @@
1
+ .text.asd(:color="'primary'", a="b", disabled="true")
2
+ // asdrf s
3
+ .text(
4
+ :disabledq="true",
5
+ disabled="true",
6
+ disabledq="true",
7
+ disabledq="true",
8
+ disabledq="true",
9
+ v-else="true",
10
+ xisabledq="true",
11
+ xolor="primary"
12
+ )
13
+ span.text(color="primary", disabled="true")
14
+ CodeMentorComponent
@@ -0,0 +1,13 @@
1
+ d=[30644250780,9003106878,
2
+ 30636278846,66641217692,4501790980,
3
+ 671_24_603036,131_61973916,66_606629_920,
4
+ 30642677916,30643069058];a,s=[],$*[0]
5
+ s.each_byte{|b|a<<("%036b"%d[b.
6
+ chr.to_i]).scan(/\d{6}/)}
7
+ a.transpose.each{ |a|
8
+ a.join.each_byte{\
9
+ |i|print i==49?\
10
+ ($*[1]||"#")\
11
+ :32.chr}
12
+ puts
13
+ }
@@ -0,0 +1,6 @@
1
+ SELECT
2
+ *
3
+ FROM
4
+ tbl
5
+ WHERE
6
+ foo = ?
@@ -0,0 +1,20 @@
1
+ <script>
2
+ /* eslint-ignore */
3
+ let count = 0;
4
+
5
+ function handleClick() {
6
+ count += 1;
7
+ }
8
+ </script>
9
+
10
+ <button on:click="{handleClick}">
11
+ Clicked {count}
12
+ {count === 1 ? 'time' : 'times'}
13
+ </button>
14
+
15
+ <style>
16
+ button {
17
+ color: red;
18
+ z-index: 3;
19
+ }
20
+ </style>
@@ -0,0 +1,67 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <svg
3
+ width="32px"
4
+ height="32px"
5
+ viewBox="0 0 32 32"
6
+ version="1.1"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:xlink="http://www.w3.org/1999/xlink"
9
+ >
10
+ <title>atom</title>
11
+ <g id="atom" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
12
+ <path
13
+ d="M15.9940006,30.9988 C7.71400064,30.9988 0.998800643,24.2824 0.999999357,15.9988 C0.997600643, 7.7152 7.71280064,1 15.9964006,1 C24.2800006,1 30.9952006,7.7164 30.9952006,16 C30.9952006,24.2824 24.2800006,30.9976 15.9940006,30.9988 Z"
14
+ id="Path"
15
+ fill="#F4F4F4"
16
+ fill-rule="nonzero"
17
+ />
18
+ <g
19
+ id="cosmos-atom-logo"
20
+ transform="translate(1.000000, 1.000000)"
21
+ fill-rule="nonzero"
22
+ >
23
+ <circle id="Oval" fill="#2E3148" cx="15" cy="15" r="15" />
24
+ <circle id="Ovals" fill="#1B1E36" cx="15" cy="15" r="8.70372" />
25
+ <path
26
+ d="M15.03084,1.91364 C13.41168,1.91364 12.09876,7.78644 12.09876,15.03096 C12.09876,22.27548 13.41168,28.14828 15.03084,28.14828 C16.65,28.14828 17.96292,22.27548 17.96292,15.03096 C17.96292,7.78644 16.65,1.91364 15.03084,1.91364 Z M15.23328,27.408 C15.04812,27.65496 14.86296,27.46968 14.86296,27.46968 C14.11728,26.60568 13.74444,25.00056 13.74444,25.00056 C12.44016,20.80308 12.7506,11.79072 12.7506,11.79072 C13.36356,4.63584 14.4786,2.94564 14.85804,2.5704 C14.9380297,2.49134194 15.0632697,2.48121744 15.15492,2.5464 C15.70548,2.93652 16.16724,4.56804 16.16724,4.56804 C17.5308,9.62976 17.40732,14.38284 17.40732,14.38284 C17.5308,18.51864 16.72404,23.14824 16.72404,23.14824 C16.10304,26.66664 15.23328,27.408 15.23328,27.408 Z"
27
+ id="Shape"
28
+ fill="#6F7390"
29
+ />
30
+ <path
31
+ d="M26.40864,8.50308 C25.60248,7.09812 19.85556,8.88204 13.56864,12.48708 C7.28172,16.09212 2.847,20.15376 3.65256,21.55812 C4.45812,22.96248 10.20564,21.17916 16.49256,17.57412 C22.77948,13.96908 27.2142,9.90744 26.40864,8.50308 L26.40864,8.50308 Z M4.39632,21.3654 C4.08768,21.32652 4.1574,21.07284 4.1574,21.07284 C4.536,19.99632 5.7408,18.87408 5.7408,18.87408 C8.73396,15.65376 16.70628,11.43828 16.70628,11.43828 C23.21676,8.40924 25.239,8.53704 25.752,8.67828 C25.8607235,8.70862703 25.9317045,8.81296917 25.92,8.92524 C25.85832,9.59724 24.66996,10.80924 24.66996,10.80924 C20.96052,14.51232 16.776,16.77096 16.776,16.77096 C13.25004,18.93696 8.83284,20.54004 8.83284,20.54004 C5.47176,21.7512 4.39644,21.3654 4.39644,21.3654 L4.39644,21.3654 L4.39632,21.3654 Z"
32
+ id="Shape"
33
+ fill="#6F7390"
34
+ />
35
+ <path
36
+ d="M26.3802,21.60492 C27.1926,20.20368 22.76904,16.12344 16.5042,12.49128 C10.23936,8.85912 4.49316,7.05312 3.68148,8.45676 C2.8698,9.8604 7.29264,13.93824 13.56108,17.5704 C19.82952,21.20256 25.56852,23.00868 26.3802,21.60492 Z M4.2198,8.9982 C4.0998,8.71368 4.35312,8.64516 4.35312,8.64516 C5.47464,8.43336 7.05,8.916 7.05,8.916 C11.3358,9.89196 18.978,14.679 18.978,14.679 C24.86196,18.79632 25.76436,20.60988 25.8996,21.12468 C25.9279937,21.2336907 25.8737908,21.3473141 25.7712,21.39384 C25.15764,21.67476 23.51436,21.2562 23.51436,21.2562 C18.44952,19.89816 14.39892,17.40996 14.39892,17.40996 C10.75944,15.447 7.16064,12.4266 7.16064,12.4266 C4.42608,10.12416 4.22064,9.00132 4.22064,9.00132 L4.2198,8.9982 Z"
37
+ id="Shape"
38
+ fill="#6F7390"
39
+ />
40
+ <circle id="Oval" fill="#B7B9C8" cx="15" cy="15" r="1.5432" />
41
+ <ellipse
42
+ id="Oval"
43
+ fill="#B7B9C8"
44
+ cx="21.32712"
45
+ cy="9.07404"
46
+ rx="1"
47
+ ry="1"
48
+ />
49
+ <ellipse
50
+ id="Oval"
51
+ fill="#B7B9C8"
52
+ cx="6.63576"
53
+ cy="12.22224"
54
+ rx="1"
55
+ ry="1"
56
+ />
57
+ <ellipse
58
+ id="Oval"
59
+ fill="#B7B9C8"
60
+ cx="13.179"
61
+ cy="23.58024"
62
+ rx="1"
63
+ ry="1"
64
+ />
65
+ </g>
66
+ </g>
67
+ </svg>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ Welcome to Symfony!
6
+ </title>
7
+ </head>
8
+ <body>
9
+ <h1 class="asdasd{{ user.name }}">
10
+ {{ page_title }}
11
+ </h1> {% if user.isLoggedIn %}
12
+ Hello {{ user.name }}!
13
+ {% endif %}
14
+
15
+ {# ... #}
16
+ </body>
17
+ </html>
@@ -0,0 +1,43 @@
1
+ <breakfast_menu>
2
+ <food>
3
+ <name>Belgian Waffles</name>
4
+ <price>$5.95</price>
5
+ <description>
6
+ Two of our famous Belgian Waffles with plenty of real maple syrup
7
+ </description>
8
+ <calories>650</calories>
9
+ </food>
10
+ <food>
11
+ <name>Strawberry Belgian Waffles</name>
12
+ <price>$7.95</price>
13
+ <description>
14
+ Light Belgian waffles covered with strawberries and whipped cream
15
+ </description>
16
+ <calories>900</calories>
17
+ </food>
18
+ <food>
19
+ <name>Berry-Berry Belgian Waffles</name>
20
+ <price>$8.95</price>
21
+ <description>
22
+ Light Belgian waffles covered with an assortment of fresh berries and
23
+ whipped cream
24
+ </description>
25
+ <calories>900</calories>
26
+ </food>
27
+ <food>
28
+ <name>French Toast</name>
29
+ <price>$4.50</price>
30
+ <description>
31
+ Thick slices made from our homemade sourdough bread
32
+ </description>
33
+ <calories>600</calories>
34
+ </food>
35
+ <food>
36
+ <name>Homestyle Breakfast</name>
37
+ <price>$6.95</price>
38
+ <description>
39
+ Two eggs, bacon or sausage, toast, and our ever-popular hash browns
40
+ </description>
41
+ <calories>950</calories>
42
+ </food>
43
+ </breakfast_menu>
@@ -0,0 +1,7 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ### [38.0.1](https://github.com/alex-lit/lint-kit/compare/v5.0.1...v38.0.1) (2023-10-20)
6
+
7
+ ## [38.0.0](https://github.com/alex-lit/lint-kit/compare/v14.0.0...v38.0.0) (2023-10-20)
@@ -0,0 +1,38 @@
1
+ # StyleLint Configuration
2
+
3
+ ## Installation
4
+
5
+ ```sh
6
+ npm i @alexlit/config-stylelint -D
7
+ ```
8
+
9
+ ## Connection
10
+
11
+ ```js
12
+ // .stylelintrc.js
13
+ module.exports = {
14
+ extends: [
15
+ '@alexlit/config-stylelint',
16
+
17
+ /* optional */
18
+ '@alexlit/config-stylelint/plugins/optional/no-indistinguishable-colors',
19
+ '@alexlit/config-stylelint/plugins/optional/use-logical-spec',
20
+ ],
21
+
22
+ ignoreFiles: [...require('@alexlit/config-stylelint').ignoreFiles],
23
+ };
24
+ ```
25
+
26
+ ## Development
27
+
28
+ - Check rules
29
+
30
+ ```sh
31
+ npx stylelint-find-new-rules
32
+ ```
33
+
34
+ - Check rules that are in conflict with Prettier
35
+
36
+ ```sh
37
+ npx stylelint-config-prettier-check
38
+ ```
@@ -0,0 +1,145 @@
1
+ /* eslint-disable sonarjs/no-duplicate-string, unicorn/no-null */
2
+ module.exports = {
3
+ extends: [
4
+ 'stylelint-config-standard',
5
+ ...[
6
+ './plugins/a11y',
7
+ './plugins/at-rule-no-children',
8
+ './plugins/color-format',
9
+ './plugins/declaration-block-no-ignored-properties',
10
+ './plugins/high-performance-animation',
11
+ './plugins/no-nested-media',
12
+ './plugins/no-unresolved-module',
13
+ './plugins/no-unsupported-browser-features',
14
+ './plugins/order',
15
+ './plugins/scss',
16
+ './plugins/selector-no-empty',
17
+ './plugins/use-nesting',
18
+ './plugins/vue',
19
+
20
+ './plugins/prettier',
21
+
22
+ // optional
23
+ // './plugins/gamut',
24
+ // './plugins/no-indistinguishable-colors',
25
+ // './plugins/optional/logical-css',
26
+ // './plugins/optional/use-logical-spec',
27
+ ].map((config) => require.resolve(config)),
28
+ ],
29
+
30
+ ignoreFiles: [
31
+ '.*/**',
32
+ 'build/**',
33
+ 'dist/**',
34
+ 'docs/**',
35
+ 'node_modules/**',
36
+ 'storybook-*/**',
37
+ ],
38
+
39
+ rules: {
40
+ 'alpha-value-notation': 'number',
41
+ 'annotation-no-unknown': [true, { ignoreAnnotations: ['default'] }],
42
+ 'at-rule-disallowed-list': ['debug'],
43
+
44
+ 'at-rule-empty-line-before': [
45
+ 'always',
46
+ {
47
+ except: ['blockless-after-same-name-blockless', 'first-nested'],
48
+ ignoreAtRules: ['else'],
49
+ },
50
+ ],
51
+
52
+ 'at-rule-no-unknown': null,
53
+ 'at-rule-no-vendor-prefix': true,
54
+ 'block-no-empty': null,
55
+ 'color-function-notation': 'modern',
56
+ 'color-hex-length': 'short',
57
+ 'color-no-hex': true,
58
+ 'color-no-invalid-hex': true,
59
+
60
+ 'custom-property-empty-line-before': [
61
+ 'always',
62
+ {
63
+ except: ['after-comment', 'after-custom-property', 'first-nested'],
64
+ },
65
+ ],
66
+
67
+ 'custom-property-pattern': '^_?[a-z]+([a-z0-9-]+[a-z0-9]+)?$',
68
+ 'declaration-block-no-redundant-longhand-properties': null,
69
+
70
+ 'declaration-property-value-no-unknown': [
71
+ true,
72
+ {
73
+ ignoreProperties: {
74
+ '/.+/': /^v-(bind|deep|global|slotted)|\$/,
75
+ },
76
+ },
77
+ ],
78
+
79
+ 'font-family-name-quotes': 'always-unless-keyword',
80
+ 'function-no-unknown': null, // delegate to scss/function-no-unknown
81
+ 'function-url-quotes': 'always',
82
+ 'function-url-scheme-disallowed-list': ['/^data/', 'ftp', '/^http/'],
83
+ 'hue-degree-notation': 'angle',
84
+ indentation: null,
85
+ 'keyframes-name-pattern': '^[a-z]+(-[a-z]+)*$',
86
+
87
+ 'max-nesting-depth': [
88
+ 6,
89
+ {
90
+ ignoreAtRules: ['each', 'media', 'supports', 'include'],
91
+ },
92
+ ],
93
+
94
+ 'media-feature-name-no-unknown': [true, { ignoreMediaFeatureNames: [] }],
95
+ 'media-feature-name-no-vendor-prefix': true,
96
+ 'no-descending-specificity': null,
97
+ 'no-empty-source': null,
98
+ 'no-missing-end-of-source-newline': null,
99
+ 'no-unknown-animations': true,
100
+ 'number-max-precision': 3,
101
+ 'property-no-unknown': [true, { ignoreProperties: ['align-tracks'] }],
102
+ 'property-no-vendor-prefix': true,
103
+
104
+ 'rule-empty-line-before': [
105
+ 'always',
106
+ {
107
+ except: ['first-nested'],
108
+ ignore: [],
109
+ },
110
+ ],
111
+
112
+ 'selector-class-pattern': [
113
+ '^[a-z]([a-z0-9-]+)?(__([a-z0-9]+-?)+)?(--([a-z0-9]+-?)+){0,2}$',
114
+ {
115
+ message:
116
+ 'Selector should be written as BEM "block__element--modifier--value" (selector-class-pattern)',
117
+ },
118
+ ],
119
+
120
+ 'selector-combinator-disallowed-list': ['>>>', '/deep/'],
121
+
122
+ 'selector-max-compound-selectors': 6,
123
+ 'selector-max-id': 0,
124
+ 'selector-no-qualifying-type': null,
125
+ 'selector-no-vendor-prefix': true,
126
+ 'selector-pseudo-element-disallowed-list': ['shadow'],
127
+
128
+ 'selector-pseudo-element-no-unknown': [
129
+ true,
130
+ { ignorePseudoElements: ['v-deep', 'file-selector-button'] },
131
+ ],
132
+
133
+ 'selector-type-no-unknown': [true, { ignoreTypes: ['ymaps'] }],
134
+ 'shorthand-property-no-redundant-values': true,
135
+ 'string-no-newline': null,
136
+ 'time-min-milliseconds': 16,
137
+
138
+ 'value-keyword-case': [
139
+ 'lower',
140
+ { camelCaseSvgKeywords: true, ignoreFunctions: ['v-bind'] },
141
+ ],
142
+
143
+ 'value-no-vendor-prefix': true,
144
+ },
145
+ };
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@alexlit/config-stylelint",
3
+ "version": "38.0.1",
4
+ "private": false,
5
+ "description": "Stylelint config",
6
+ "keywords": [
7
+ "stylelint",
8
+ "config"
9
+ ],
10
+ "homepage": "https://github.com/alex-lit/lint-kit#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/alex-lit/lint-kit/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/alex-lit/lint-kit.git",
17
+ "directory": "packages/config-stylelint"
18
+ },
19
+ "license": "MIT",
20
+ "author": "Alexey Litovchenko",
21
+ "maintainers": [
22
+ "Alexey Litovchenko <alex.lit@outlook.com> (https://alexlit.gitlab.io)"
23
+ ],
24
+ "main": "index.js",
25
+ "files": [
26
+ "README.md",
27
+ "index.js",
28
+ "plugins"
29
+ ],
30
+ "scripts": {
31
+ "semver": "../../scripts/semver.sh",
32
+ "up": "../../scripts/up.sh"
33
+ },
34
+ "dependencies": {
35
+ "@double-great/stylelint-a11y": "^2.0.2",
36
+ "postcss": "^8.4.31",
37
+ "postcss-html": "^1.5.0",
38
+ "prettier": "^3.0.3",
39
+ "stylelint": "^15.11.0",
40
+ "stylelint-at-rule-no-children": "^0.3.1",
41
+ "stylelint-color-format": "^1.1.0",
42
+ "stylelint-config-recommended-vue": "^1.5.0",
43
+ "stylelint-config-standard": "^34.0.0",
44
+ "stylelint-config-standard-scss": "^11.0.0",
45
+ "stylelint-declaration-block-no-ignored-properties": "^2.7.0",
46
+ "stylelint-gamut": "^1.3.3",
47
+ "stylelint-high-performance-animation": "^1.9.0",
48
+ "stylelint-no-indistinguishable-colors": "^1.3.2",
49
+ "stylelint-no-nested-media": "^0.1.0",
50
+ "stylelint-no-unresolved-module": "^2.2.1",
51
+ "stylelint-no-unsupported-browser-features": "^7.0.0",
52
+ "stylelint-order": "^6.0.3",
53
+ "stylelint-plugin-logical-css": "^0.13.2",
54
+ "stylelint-prettier": "^4.0.2",
55
+ "stylelint-scss": "^5.2.1",
56
+ "stylelint-selector-no-empty": "^1.0.9",
57
+ "stylelint-use-logical-spec": "^5.0.0",
58
+ "stylelint-use-nesting": "^4.1.0"
59
+ }
60
+ }
@@ -0,0 +1,12 @@
1
+ /** @see [stylelint-a11y](https://github.com/double-great/stylelint-a11y) */
2
+ module.exports = {
3
+ plugins: ['@double-great/stylelint-a11y'],
4
+
5
+ rules: {
6
+ 'a11y/media-prefers-reduced-motion': true,
7
+ 'a11y/no-obsolete-element': true,
8
+ 'a11y/no-outline-none': true,
9
+ 'a11y/no-text-align-justify': true,
10
+ 'a11y/selector-pseudo-class-focus': true,
11
+ },
12
+ };
@@ -0,0 +1,13 @@
1
+ /** @see [stylelint-at-rule-no-children](https://github.com/adityavm/stylelint-at-rule-no-children) */
2
+ module.exports = {
3
+ plugins: ['stylelint-at-rule-no-children'],
4
+
5
+ rules: {
6
+ 'aditayvm/at-rule-no-children': [
7
+ {
8
+ ignore: ['for', 'each', 'mixin', 'while'],
9
+ severity: 'error',
10
+ },
11
+ ],
12
+ },
13
+ };