@anolilab/stylelint-config 3.2.3 → 4.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 (54) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/postinstall.d.ts +1 -0
  3. package/dist/postinstall.js +26 -0
  4. package/dist/postinstall.js.map +1 -0
  5. package/dist/postinstall.mjs +24 -0
  6. package/dist/postinstall.mjs.map +1 -0
  7. package/dist/rules/a11y.d.ts +16 -0
  8. package/dist/rules/a11y.js +7 -0
  9. package/dist/rules/a11y.js.map +1 -0
  10. package/dist/rules/a11y.mjs +5 -0
  11. package/dist/rules/a11y.mjs.map +1 -0
  12. package/dist/rules/declaration-block-no-ignored-properties.d.ts +8 -0
  13. package/dist/rules/declaration-block-no-ignored-properties.js +7 -0
  14. package/dist/rules/declaration-block-no-ignored-properties.js.map +1 -0
  15. package/dist/rules/declaration-block-no-ignored-properties.mjs +5 -0
  16. package/dist/rules/declaration-block-no-ignored-properties.mjs.map +1 -0
  17. package/dist/rules/no-unsupported-browser-features.d.ts +10 -0
  18. package/dist/rules/no-unsupported-browser-features.js +13 -0
  19. package/dist/rules/no-unsupported-browser-features.js.map +1 -0
  20. package/dist/rules/no-unsupported-browser-features.mjs +7 -0
  21. package/dist/rules/no-unsupported-browser-features.mjs.map +1 -0
  22. package/dist/rules/rational-order.d.ts +5 -0
  23. package/dist/rules/rational-order.js +7 -0
  24. package/dist/rules/rational-order.js.map +1 -0
  25. package/dist/rules/rational-order.mjs +5 -0
  26. package/dist/rules/rational-order.mjs.map +1 -0
  27. package/dist/rules/require-units.d.ts +8 -0
  28. package/dist/rules/require-units.js +7 -0
  29. package/dist/rules/require-units.js.map +1 -0
  30. package/dist/rules/require-units.mjs +5 -0
  31. package/dist/rules/require-units.mjs.map +1 -0
  32. package/dist/rules/selector-no-empty.d.ts +8 -0
  33. package/dist/rules/selector-no-empty.js +7 -0
  34. package/dist/rules/selector-no-empty.js.map +1 -0
  35. package/dist/rules/selector-no-empty.mjs +5 -0
  36. package/dist/rules/selector-no-empty.mjs.map +1 -0
  37. package/dist/rules/standard.d.ts +5 -0
  38. package/dist/rules/standard.js +7 -0
  39. package/dist/rules/standard.js.map +1 -0
  40. package/dist/rules/standard.mjs +5 -0
  41. package/dist/rules/standard.mjs.map +1 -0
  42. package/index.js +18 -0
  43. package/index.mjs +22 -0
  44. package/package.json +33 -26
  45. package/index.cjs +0 -16
  46. package/lib/postinstall.js +0 -79
  47. package/rules/a11y.cjs +0 -39
  48. package/rules/best-practices.cjs +0 -37
  49. package/rules/declaration-block-no-ignored-properties.cjs +0 -6
  50. package/rules/no-unsupported-browser-features.cjs +0 -13
  51. package/rules/rational-order.cjs +0 -3
  52. package/rules/require-units.cjs +0 -6
  53. package/rules/selector-no-empty.cjs +0 -6
  54. package/rules/standard.cjs +0 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## @anolilab/stylelint-config [4.0.0](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/stylelint-config@3.2.4...@anolilab/stylelint-config@4.0.0) (2023-06-11)
2
+
3
+
4
+ ### ⚠ BREAKING CHANGES
5
+
6
+ * Changed the package to support cjs and mjs
7
+
8
+ Signed-off-by: prisis <d.bannert@anolilab.de>
9
+
10
+ ### Features
11
+
12
+ * transformed lib from js to ts and added support for cjs and mjs ([823e96e](https://github.com/anolilab/javascript-style-guide/commit/823e96e03872f386793e884247196d4297fc0b99))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * fixed export ([d108b30](https://github.com/anolilab/javascript-style-guide/commit/d108b30dac4ac4c3a5df411716456ff7d23e10c0))
18
+
19
+ ## @anolilab/stylelint-config [3.2.4](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/stylelint-config@3.2.3...@anolilab/stylelint-config@3.2.4) (2023-06-11)
20
+
21
+
22
+
23
+ ### Dependencies
24
+
25
+ * **browserslist-config-anolilab:** upgraded to 4.0.2
26
+ * **@anolilab/semantic-release-preset:** upgraded to 3.1.0
27
+
1
28
  ## @anolilab/stylelint-config [3.2.3](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/stylelint-config@3.2.2...@anolilab/stylelint-config@3.2.3) (2023-06-10)
2
29
 
3
30
 
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var packageJsonUtils = require('@anolilab/package-json-utils');
5
+ var fs = require('fs');
6
+ var path = require('path');
7
+ var util = require('util');
8
+
9
+ process.env.CI&&process.exit(0);var i=util.promisify(fs.writeFile);console.log("Configuring @anolilab/stylelint-config",packageJsonUtils.projectPath,`
10
+ `);var a=()=>{let e=path.join(packageJsonUtils.projectPath,".stylelintrc.js"),t=`${packageJsonUtils.packageIsTypeModule?"export default":"module.exports ="} {
11
+ "extends": [
12
+ "@anolilab/stylelint-config",
13
+ ]
14
+ };
15
+
16
+ `;return fs.existsSync(e)?(console.warn('\u26A0\uFE0F .stylelintrc.js already exists; Make sure that it includes the following for @anolilab/stylelint-config to work as it should: { "extends": ["@anolilab/stylelint-config"] }.'),Promise.resolve()):i(e,t,"utf-8")},y=()=>{let e=path.join(packageJsonUtils.projectPath,".stylelintignore"),t=`package.json
17
+ package-lock.json
18
+ yarn.lock
19
+ pnpm-lock.yaml
20
+ build/**
21
+ node_modules/**
22
+ .next/**
23
+
24
+ `;return fs.existsSync(e)?Promise.resolve():i(e,t,"utf-8")};(async()=>{try{await a(),await y(),console.log("\u{1F60E} Everything went well, have fun!"),process.exit(0);}catch(e){console.log("\u{1F62C} something went wrong:"),console.error(e),process.exit(1);}})();
25
+ //# sourceMappingURL=out.js.map
26
+ //# sourceMappingURL=postinstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/postinstall.ts"],"names":["packageIsTypeModule","projectPath","existsSync","writeFile","join","promisify","writeFileAsync","writeStylelintRc","stylelintPath","content","writeStylelintIgnore","stylelintIgnorePath","error"],"mappings":";AAEA,OAAS,uBAAAA,EAAqB,eAAAC,MAAmB,+BACjD,OAAS,cAAAC,EAAY,aAAAC,MAAiB,KACtC,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,OAEtB,QAAQ,IAAI,IAEZ,QAAQ,KAAK,CAAC,EAGlB,IAAMC,EAAiBD,EAAUF,CAAS,EAE1C,QAAQ,IAAI,yCAA0CF,EAAa;AAAA,CAAI,EAKvE,IAAMM,EAAmB,IAAM,CAC3B,IAAMC,EAAgBJ,EAAKH,EAAa,iBAAiB,EACnDQ,EAAU,GAAGT,EAAsB,iBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5D,OAAIE,EAAWM,CAAa,GACxB,QAAQ,KAAK,4LAAsL,EAE5L,QAAQ,QAAQ,GAGpBF,EAAeE,EAAeC,EAAS,OAAO,CACzD,EAKMC,EAAuB,IAAM,CAC/B,IAAMC,EAAsBP,EAAKH,EAAa,kBAAkB,EAC1DQ,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,OAAIP,EAAWS,CAAmB,EACvB,QAAQ,QAAQ,EAGpBL,EAAeK,EAAqBF,EAAS,OAAO,CAC/D,GAGC,SAAY,CACT,GAAI,CACA,MAAMF,EAAiB,EACvB,MAAMG,EAAqB,EAE3B,QAAQ,IAAI,4CAAqC,EAGjD,QAAQ,KAAK,CAAC,CAClB,OAASE,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAGnB,QAAQ,KAAK,CAAC,CAClB,CACJ,GAAG","sourcesContent":["#!/usr/bin/env node\n\nimport { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\nimport { existsSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line no-undef\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/stylelint-config\", projectPath, \"\\n\");\n\n/**\n * Writes .stylelintrc.cjs if it doesn't exist. Warns if it exists.\n */\nconst writeStylelintRc = () => {\n const stylelintPath = join(projectPath, \".stylelintrc.js\");\n const content = `${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n \"extends\": [\n \"@anolilab/stylelint-config\",\n ]\n};\n\n`;\n\n if (existsSync(stylelintPath)) {\n console.warn(\"⚠️ .stylelintrc.js already exists; Make sure that it includes the following for @anolilab/stylelint-config to work as it should: { \\\"extends\\\": [\\\"@anolilab/stylelint-config\\\"] }.\");\n\n return Promise.resolve();\n }\n\n return writeFileAsync(stylelintPath, content, \"utf-8\");\n};\n\n/**\n * Writes .stylelintignore if it doesn't exist. Warns if it exists.\n */\nconst writeStylelintIgnore = () => {\n const stylelintIgnorePath = join(projectPath, \".stylelintignore\");\n const content = `package.json\npackage-lock.json\nyarn.lock\npnpm-lock.yaml\nbuild/**\nnode_modules/**\n.next/**\n\n`;\n\n if (existsSync(stylelintIgnorePath)) {\n return Promise.resolve();\n }\n\n return writeFileAsync(stylelintIgnorePath, content, \"utf-8\");\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeStylelintRc();\n await writeStylelintIgnore();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line no-undef\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line no-undef\n process.exit(1);\n }\n})();\n"]}
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import { projectPath, packageIsTypeModule } from '@anolilab/package-json-utils';
3
+ import { writeFile, existsSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { promisify } from 'util';
6
+
7
+ process.env.CI&&process.exit(0);var i=promisify(writeFile);console.log("Configuring @anolilab/stylelint-config",projectPath,`
8
+ `);var a=()=>{let e=join(projectPath,".stylelintrc.js"),t=`${packageIsTypeModule?"export default":"module.exports ="} {
9
+ "extends": [
10
+ "@anolilab/stylelint-config",
11
+ ]
12
+ };
13
+
14
+ `;return existsSync(e)?(console.warn('\u26A0\uFE0F .stylelintrc.js already exists; Make sure that it includes the following for @anolilab/stylelint-config to work as it should: { "extends": ["@anolilab/stylelint-config"] }.'),Promise.resolve()):i(e,t,"utf-8")},y=()=>{let e=join(projectPath,".stylelintignore"),t=`package.json
15
+ package-lock.json
16
+ yarn.lock
17
+ pnpm-lock.yaml
18
+ build/**
19
+ node_modules/**
20
+ .next/**
21
+
22
+ `;return existsSync(e)?Promise.resolve():i(e,t,"utf-8")};(async()=>{try{await a(),await y(),console.log("\u{1F60E} Everything went well, have fun!"),process.exit(0);}catch(e){console.log("\u{1F62C} something went wrong:"),console.error(e),process.exit(1);}})();
23
+ //# sourceMappingURL=out.js.map
24
+ //# sourceMappingURL=postinstall.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/postinstall.ts"],"names":["packageIsTypeModule","projectPath","existsSync","writeFile","join","promisify","writeFileAsync","writeStylelintRc","stylelintPath","content","writeStylelintIgnore","stylelintIgnorePath","error"],"mappings":";AAEA,OAAS,uBAAAA,EAAqB,eAAAC,MAAmB,+BACjD,OAAS,cAAAC,EAAY,aAAAC,MAAiB,KACtC,OAAS,QAAAC,MAAY,OACrB,OAAS,aAAAC,MAAiB,OAEtB,QAAQ,IAAI,IAEZ,QAAQ,KAAK,CAAC,EAGlB,IAAMC,EAAiBD,EAAUF,CAAS,EAE1C,QAAQ,IAAI,yCAA0CF,EAAa;AAAA,CAAI,EAKvE,IAAMM,EAAmB,IAAM,CAC3B,IAAMC,EAAgBJ,EAAKH,EAAa,iBAAiB,EACnDQ,EAAU,GAAGT,EAAsB,iBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5D,OAAIE,EAAWM,CAAa,GACxB,QAAQ,KAAK,4LAAsL,EAE5L,QAAQ,QAAQ,GAGpBF,EAAeE,EAAeC,EAAS,OAAO,CACzD,EAKMC,EAAuB,IAAM,CAC/B,IAAMC,EAAsBP,EAAKH,EAAa,kBAAkB,EAC1DQ,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,OAAIP,EAAWS,CAAmB,EACvB,QAAQ,QAAQ,EAGpBL,EAAeK,EAAqBF,EAAS,OAAO,CAC/D,GAGC,SAAY,CACT,GAAI,CACA,MAAMF,EAAiB,EACvB,MAAMG,EAAqB,EAE3B,QAAQ,IAAI,4CAAqC,EAGjD,QAAQ,KAAK,CAAC,CAClB,OAASE,EAAP,CACE,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAGnB,QAAQ,KAAK,CAAC,CAClB,CACJ,GAAG","sourcesContent":["#!/usr/bin/env node\n\nimport { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\nimport { existsSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nif (process.env[\"CI\"]) {\n // eslint-disable-next-line no-undef\n process.exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/stylelint-config\", projectPath, \"\\n\");\n\n/**\n * Writes .stylelintrc.cjs if it doesn't exist. Warns if it exists.\n */\nconst writeStylelintRc = () => {\n const stylelintPath = join(projectPath, \".stylelintrc.js\");\n const content = `${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n \"extends\": [\n \"@anolilab/stylelint-config\",\n ]\n};\n\n`;\n\n if (existsSync(stylelintPath)) {\n console.warn(\"⚠️ .stylelintrc.js already exists; Make sure that it includes the following for @anolilab/stylelint-config to work as it should: { \\\"extends\\\": [\\\"@anolilab/stylelint-config\\\"] }.\");\n\n return Promise.resolve();\n }\n\n return writeFileAsync(stylelintPath, content, \"utf-8\");\n};\n\n/**\n * Writes .stylelintignore if it doesn't exist. Warns if it exists.\n */\nconst writeStylelintIgnore = () => {\n const stylelintIgnorePath = join(projectPath, \".stylelintignore\");\n const content = `package.json\npackage-lock.json\nyarn.lock\npnpm-lock.yaml\nbuild/**\nnode_modules/**\n.next/**\n\n`;\n\n if (existsSync(stylelintIgnorePath)) {\n return Promise.resolve();\n }\n\n return writeFileAsync(stylelintIgnorePath, content, \"utf-8\");\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n await writeStylelintRc();\n await writeStylelintIgnore();\n\n console.log(\"😎 Everything went well, have fun!\");\n\n // eslint-disable-next-line no-undef\n process.exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n // eslint-disable-next-line no-undef\n process.exit(1);\n }\n})();\n"]}
@@ -0,0 +1,16 @@
1
+ declare const config: {
2
+ plugins: string[];
3
+ rules: {
4
+ "a11y/content-property-no-static-value": boolean;
5
+ "a11y/font-size-is-readable": boolean;
6
+ "a11y/line-height-is-vertical-rhythmed": boolean;
7
+ "a11y/no-display-none": boolean;
8
+ "a11y/no-obsolete-attribute": boolean;
9
+ "a11y/no-obsolete-element": boolean;
10
+ "a11y/no-outline-none": boolean;
11
+ "a11y/no-text-align-justify": boolean;
12
+ "a11y/selector-pseudo-class-focus": boolean;
13
+ };
14
+ };
15
+
16
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var e={plugins:["stylelint-a11y"],rules:{"a11y/content-property-no-static-value":!0,"a11y/font-size-is-readable":!0,"a11y/line-height-is-vertical-rhythmed":!0,"a11y/no-display-none":!0,"a11y/no-obsolete-attribute":!0,"a11y/no-obsolete-element":!0,"a11y/no-outline-none":!0,"a11y/no-text-align-justify":!0,"a11y/selector-pseudo-class-focus":!0}},t=e;
4
+
5
+ module.exports = t;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/a11y.ts"],"names":["config","a11y_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,gBAAgB,EAC1B,MAAO,CAKH,wCAAyC,GAEzC,6BAA8B,GAG9B,wCAAyC,GAMzC,uBAAwB,GAGxB,6BAA8B,GAG9B,2BAA4B,GAM5B,uBAAwB,GAGxB,6BAA8B,GAG9B,mCAAoC,EACxC,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-a11y\"],\n rules: {\n // Require certain styles if the animation or transition in media features\n // \"a11y/media-prefers-reduced-motion\": true, @see https://github.com/YozhikM/stylelint-a11y/issues/49\n\n // Disallow unaccessible CSS generated content in pseudo-elements\n \"a11y/content-property-no-static-value\": true,\n // Disallow font sizes less than 15px\n \"a11y/font-size-is-readable\": true,\n\n // Disallow not vertical rhythmed line-height\n \"a11y/line-height-is-vertical-rhythmed\": true,\n\n // Require implementation of certain styles for selectors with colors.\n // 'a11y/media-prefers-color-scheme': true,\n\n // Disallow content hiding with display: none property\n \"a11y/no-display-none\": true,\n\n // Disallow obsolete attribute using\n \"a11y/no-obsolete-attribute\": true,\n\n // Disallow obsolete selectors using\n \"a11y/no-obsolete-element\": true,\n\n // Require width of text in a comfortable range\n // 'a11y/no-spread-text': true,\n\n // Disallow outline clearing\n \"a11y/no-outline-none\": true,\n\n // Disallow content with text-align: justify\n \"a11y/no-text-align-justify\": true,\n\n // Require or disallow a pseudo-element to the selectors with :hover\n \"a11y/selector-pseudo-class-focus\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var e={plugins:["stylelint-a11y"],rules:{"a11y/content-property-no-static-value":!0,"a11y/font-size-is-readable":!0,"a11y/line-height-is-vertical-rhythmed":!0,"a11y/no-display-none":!0,"a11y/no-obsolete-attribute":!0,"a11y/no-obsolete-element":!0,"a11y/no-outline-none":!0,"a11y/no-text-align-justify":!0,"a11y/selector-pseudo-class-focus":!0}},t=e;
2
+
3
+ export { t as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=a11y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/a11y.ts"],"names":["config","a11y_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,gBAAgB,EAC1B,MAAO,CAKH,wCAAyC,GAEzC,6BAA8B,GAG9B,wCAAyC,GAMzC,uBAAwB,GAGxB,6BAA8B,GAG9B,2BAA4B,GAM5B,uBAAwB,GAGxB,6BAA8B,GAG9B,mCAAoC,EACxC,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-a11y\"],\n rules: {\n // Require certain styles if the animation or transition in media features\n // \"a11y/media-prefers-reduced-motion\": true, @see https://github.com/YozhikM/stylelint-a11y/issues/49\n\n // Disallow unaccessible CSS generated content in pseudo-elements\n \"a11y/content-property-no-static-value\": true,\n // Disallow font sizes less than 15px\n \"a11y/font-size-is-readable\": true,\n\n // Disallow not vertical rhythmed line-height\n \"a11y/line-height-is-vertical-rhythmed\": true,\n\n // Require implementation of certain styles for selectors with colors.\n // 'a11y/media-prefers-color-scheme': true,\n\n // Disallow content hiding with display: none property\n \"a11y/no-display-none\": true,\n\n // Disallow obsolete attribute using\n \"a11y/no-obsolete-attribute\": true,\n\n // Disallow obsolete selectors using\n \"a11y/no-obsolete-element\": true,\n\n // Require width of text in a comfortable range\n // 'a11y/no-spread-text': true,\n\n // Disallow outline clearing\n \"a11y/no-outline-none\": true,\n\n // Disallow content with text-align: justify\n \"a11y/no-text-align-justify\": true,\n\n // Require or disallow a pseudo-element to the selectors with :hover\n \"a11y/selector-pseudo-class-focus\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,8 @@
1
+ declare const config: {
2
+ plugins: string[];
3
+ rules: {
4
+ "plugin/declaration-block-no-ignored-properties": boolean;
5
+ };
6
+ };
7
+
8
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var e={plugins:["stylelint-declaration-block-no-ignored-properties"],rules:{"plugin/declaration-block-no-ignored-properties":!0}},o=e;
4
+
5
+ module.exports = o;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=declaration-block-no-ignored-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/declaration-block-no-ignored-properties.ts"],"names":["config","declaration_block_no_ignored_properties_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,mDAAmD,EAC7D,MAAO,CACH,iDAAkD,EACtD,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-declaration-block-no-ignored-properties\"],\n rules: {\n \"plugin/declaration-block-no-ignored-properties\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var e={plugins:["stylelint-declaration-block-no-ignored-properties"],rules:{"plugin/declaration-block-no-ignored-properties":!0}},o=e;
2
+
3
+ export { o as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=declaration-block-no-ignored-properties.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/declaration-block-no-ignored-properties.ts"],"names":["config","declaration_block_no_ignored_properties_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,mDAAmD,EAC7D,MAAO,CACH,iDAAkD,EACtD,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-declaration-block-no-ignored-properties\"],\n rules: {\n \"plugin/declaration-block-no-ignored-properties\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,10 @@
1
+ declare const config: {
2
+ plugins: string[];
3
+ rules: {
4
+ "plugin/no-unsupported-browser-features": (boolean | {
5
+ browsers: string[];
6
+ })[];
7
+ };
8
+ };
9
+
10
+ export { config as default };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var r = require('browserslist-config-anolilab');
4
+
5
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
+
7
+ var r__default = /*#__PURE__*/_interopDefault(r);
8
+
9
+ var e={plugins:["stylelint-no-unsupported-browser-features"],rules:{"plugin/no-unsupported-browser-features":[!0,{browsers:r__default.default.production}]}},s=e;
10
+
11
+ module.exports = s;
12
+ //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=no-unsupported-browser-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/no-unsupported-browser-features.ts"],"names":["browserslist","config","no_unsupported_browser_features_default"],"mappings":"AAAA,OAAOA,MAAkB,+BAEzB,IAAMC,EAAS,CACX,QAAS,CAAC,2CAA2C,EACrD,MAAO,CACH,yCAA0C,CACtC,GACA,CACI,SAAUD,EAAa,UAC3B,CACJ,CACJ,CACJ,EAEOE,EAAQD","sourcesContent":["import browserslist from \"browserslist-config-anolilab\";\n\nconst config = {\n plugins: [\"stylelint-no-unsupported-browser-features\"],\n rules: {\n \"plugin/no-unsupported-browser-features\": [\n true,\n {\n browsers: browserslist.production,\n },\n ],\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,7 @@
1
+ import r from 'browserslist-config-anolilab';
2
+
3
+ var e={plugins:["stylelint-no-unsupported-browser-features"],rules:{"plugin/no-unsupported-browser-features":[!0,{browsers:r.production}]}},s=e;
4
+
5
+ export { s as default };
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=no-unsupported-browser-features.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/no-unsupported-browser-features.ts"],"names":["browserslist","config","no_unsupported_browser_features_default"],"mappings":"AAAA,OAAOA,MAAkB,+BAEzB,IAAMC,EAAS,CACX,QAAS,CAAC,2CAA2C,EACrD,MAAO,CACH,yCAA0C,CACtC,GACA,CACI,SAAUD,EAAa,UAC3B,CACJ,CACJ,CACJ,EAEOE,EAAQD","sourcesContent":["import browserslist from \"browserslist-config-anolilab\";\n\nconst config = {\n plugins: [\"stylelint-no-unsupported-browser-features\"],\n rules: {\n \"plugin/no-unsupported-browser-features\": [\n true,\n {\n browsers: browserslist.production,\n },\n ],\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ declare const config: {
2
+ extends: string[];
3
+ };
4
+
5
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var t={extends:["stylelint-config-rational-order"]},e=t;
4
+
5
+ module.exports = e;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=rational-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/rational-order.ts"],"names":["config","rational_order_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,iCAAiC,CAC/C,EAEOC,EAAQD","sourcesContent":["const config = {\n extends: [\"stylelint-config-rational-order\"],\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var t={extends:["stylelint-config-rational-order"]},e=t;
2
+
3
+ export { e as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=rational-order.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/rational-order.ts"],"names":["config","rational_order_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,iCAAiC,CAC/C,EAEOC,EAAQD","sourcesContent":["const config = {\n extends: [\"stylelint-config-rational-order\"],\n};\n\nexport default config;\n"]}
@@ -0,0 +1,8 @@
1
+ declare const config: {
2
+ plugins: string[];
3
+ rules: {
4
+ "matterialize/stylelint-require-units": boolean;
5
+ };
6
+ };
7
+
8
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var e={plugins:["stylelint-require-units"],rules:{"matterialize/stylelint-require-units":!0}},t=e;
4
+
5
+ module.exports = t;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=require-units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/require-units.ts"],"names":["config","require_units_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,yBAAyB,EACnC,MAAO,CACH,uCAAwC,EAC5C,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-require-units\"],\n rules: {\n \"matterialize/stylelint-require-units\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var e={plugins:["stylelint-require-units"],rules:{"matterialize/stylelint-require-units":!0}},t=e;
2
+
3
+ export { t as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=require-units.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/require-units.ts"],"names":["config","require_units_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,yBAAyB,EACnC,MAAO,CACH,uCAAwC,EAC5C,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-require-units\"],\n rules: {\n \"matterialize/stylelint-require-units\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,8 @@
1
+ declare const config: {
2
+ plugins: string[];
3
+ rules: {
4
+ "plugin/stylelint-selector-no-empty": boolean;
5
+ };
6
+ };
7
+
8
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var e={plugins:["stylelint-selector-no-empty"],rules:{"plugin/stylelint-selector-no-empty":!0}},t=e;
4
+
5
+ module.exports = t;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=selector-no-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/selector-no-empty.ts"],"names":["config","selector_no_empty_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,6BAA6B,EACvC,MAAO,CACH,qCAAsC,EAC1C,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-selector-no-empty\"],\n rules: {\n \"plugin/stylelint-selector-no-empty\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var e={plugins:["stylelint-selector-no-empty"],rules:{"plugin/stylelint-selector-no-empty":!0}},t=e;
2
+
3
+ export { t as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=selector-no-empty.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/selector-no-empty.ts"],"names":["config","selector_no_empty_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,6BAA6B,EACvC,MAAO,CACH,qCAAsC,EAC1C,CACJ,EAEOC,EAAQD","sourcesContent":["const config = {\n plugins: [\"stylelint-selector-no-empty\"],\n rules: {\n \"plugin/stylelint-selector-no-empty\": true,\n },\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ declare const config: {
2
+ extends: string[];
3
+ };
4
+
5
+ export { config as default };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var t={extends:["stylelint-config-standard"]},n=t;
4
+
5
+ module.exports = n;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/standard.ts"],"names":["config","standard_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,2BAA2B,CACzC,EAEOC,EAAQD","sourcesContent":["const config = {\n extends: [\"stylelint-config-standard\"],\n};\n\nexport default config;\n"]}
@@ -0,0 +1,5 @@
1
+ var t={extends:["stylelint-config-standard"]},n=t;
2
+
3
+ export { n as default };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=standard.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rules/standard.ts"],"names":["config","standard_default"],"mappings":"AAAA,IAAMA,EAAS,CACX,QAAS,CAAC,2BAA2B,CACzC,EAEOC,EAAQD","sourcesContent":["const config = {\n extends: [\"stylelint-config-standard\"],\n};\n\nexport default config;\n"]}
package/index.js ADDED
@@ -0,0 +1,18 @@
1
+ const rules = [
2
+ "./dist/rules/a11y.js",
3
+ "./dist/rules/declaration-block-no-ignored-properties.js",
4
+ "./dist/rules/no-unsupported-browser-features.js",
5
+ "./dist/rules/rational-order.js",
6
+ "./dist/rules/require-units.js",
7
+ "./dist/rules/selector-no-empty.js",
8
+ "./dist/rules/standard.js",
9
+ ];
10
+
11
+ // eslint-disable-next-line unicorn/prefer-module
12
+ module.exports = {
13
+ // eslint-disable-next-line unicorn/prefer-module
14
+ extends: rules.map((element) => require.resolve(element)),
15
+ rules: {
16
+ indentation: 4,
17
+ },
18
+ };
package/index.mjs ADDED
@@ -0,0 +1,22 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ const rules = [
4
+ "./dist/rules/a11y.mjs",
5
+ "./dist/rules/declaration-block-no-ignored-properties.mjs",
6
+ "./dist/rules/no-unsupported-browser-features.mjs",
7
+ "./dist/rules/rational-order.mjs",
8
+ "./dist/rules/require-units.mjs",
9
+ "./dist/rules/selector-no-empty.mjs",
10
+ "./dist/rules/standard.mjs",
11
+ ];
12
+
13
+ const require = createRequire(import.meta.url);
14
+
15
+ const config = {
16
+ extends: rules.map((element) => require.resolve(element)),
17
+ rules: {
18
+ indentation: 4,
19
+ },
20
+ };
21
+
22
+ export default config;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anolilab/stylelint-config",
3
- "version": "3.2.3",
3
+ "version": "4.0.0",
4
4
  "description": "Stylelint shareable config for the Anolilab stylesheet guide.",
5
5
  "keywords": [
6
6
  "css",
@@ -33,21 +33,33 @@
33
33
  "name": "Daniel Bannert",
34
34
  "email": "d.bannert@anolilab.de"
35
35
  },
36
- "type": "module",
37
- "main": "index.cjs",
36
+ "sideEffects": false,
37
+ "exports": {
38
+ ".": {
39
+ "require": "./index.js",
40
+ "import": "./index.mjs"
41
+ },
42
+ "./package.json": "./package.json"
43
+ },
44
+ "main": "index.js",
45
+ "module": "index.mjs",
38
46
  "files": [
39
- "lib",
40
- "index.cjs",
41
- "rules",
47
+ "dist/**",
42
48
  "README.md",
43
49
  "CHANGELOG.md",
44
- "LICENSE.md"
50
+ "LICENSE.md",
51
+ "index.js",
52
+ "index.mjs"
45
53
  ],
46
54
  "scripts": {
47
- "postinstall": "node lib/postinstall.js"
55
+ "build": "cross-env NODE_ENV=development tsup",
56
+ "build:prod": "cross-env NODE_ENV=production tsup",
57
+ "clean": "rimraf node_modules dist",
58
+ "postinstall": "node ./skip.js || node ./dist/postinstall.js"
48
59
  },
49
60
  "dependencies": {
50
- "browserslist-config-anolilab": "4.0.1",
61
+ "@anolilab/package-json-utils": "1.2.0",
62
+ "browserslist-config-anolilab": "4.0.2",
51
63
  "stylelint-a11y": "^1.2.3",
52
64
  "stylelint-config-rational-order": "^0.1.2",
53
65
  "stylelint-config-standard": "^33.0.0",
@@ -58,7 +70,8 @@
58
70
  "stylelint-selector-no-empty": "^1.0.9"
59
71
  },
60
72
  "devDependencies": {
61
- "@anolilab/semantic-release-preset": "3.0.0",
73
+ "semantic-release": "^21.0.4",
74
+ "@anolilab/semantic-release-preset": "3.1.0",
62
75
  "lodash": "^4.17.21",
63
76
  "postcss": "^8.4.24",
64
77
  "stylelint": "15.7.0",
@@ -75,20 +88,14 @@
75
88
  "access": "public",
76
89
  "provenance": true
77
90
  },
78
- "pnpm": {
79
- "overrides": {
80
- "glob-parent@<5.1.2": ">=5.1.2",
81
- "minimist@<1.2.6": ">=1.2.6",
82
- "chrono-node@<2.2.4": ">=2.2.4",
83
- "yargs-parser@>=6.0.0 <13.1.2": ">=13.1.2",
84
- "trim@<0.0.3": ">=0.0.3",
85
- "trim-newlines@<3.0.1": ">=3.0.1",
86
- "moment@<2.29.2": ">=2.29.2",
87
- "semver-regex@<3.1.4": ">=3.1.4",
88
- "got@<11.8.5": ">=11.8.5",
89
- "moment@>=2.18.0 <2.29.4": ">=2.29.4",
90
- "ansi-regex@>=3.0.0 <3.0.1": ">=3.0.1",
91
- "ansi-regex@>=4.0.0 <4.1.1": ">=4.1.1"
92
- }
93
- }
91
+ "sources": [
92
+ "src/rules/a11y.ts",
93
+ "src/rules/declaration-block-no-ignored-properties.ts",
94
+ "src/rules/no-unsupported-browser-features.ts",
95
+ "src/rules/rational-order.ts",
96
+ "src/rules/require-units.ts",
97
+ "src/rules/selector-no-empty.ts",
98
+ "src/rules/standard.ts",
99
+ "src/postinstall.ts"
100
+ ]
94
101
  }
package/index.cjs DELETED
@@ -1,16 +0,0 @@
1
- const rules = [
2
- "./rules/a11y.cjs",
3
- "./rules/declaration-block-no-ignored-properties.cjs",
4
- "./rules/no-unsupported-browser-features.cjs",
5
- "./rules/rational-order.cjs",
6
- "./rules/require-units.cjs",
7
- "./rules/selector-no-empty.cjs",
8
- "./rules/standard.cjs",
9
- ];
10
-
11
- module.exports = {
12
- extends: rules.map((element) => require.resolve(element)),
13
- rules: {
14
- indentation: 4,
15
- },
16
- };
@@ -1,79 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { existsSync, writeFile } from "node:fs";
4
- import { join, resolve } from "node:path";
5
- import { promisify } from "node:util";
6
-
7
- // eslint-disable-next-line no-undef
8
- if (process.env.CI) {
9
- // eslint-disable-next-line no-undef
10
- process.exit(0);
11
- }
12
-
13
- const writeFileAsync = promisify(writeFile);
14
-
15
- // get the path to the host project.
16
- // eslint-disable-next-line no-undef
17
- const projectPath = resolve(process.cwd(), "..", "..", "..");
18
-
19
- console.log("Configuring @anolilab/stylelint-config", projectPath, "\n");
20
-
21
- /**
22
- * Writes .stylelintrc.cjs if it doesn't exist. Warns if it exists.
23
- */
24
- const writeStylelintRc = () => {
25
- const eslintPath = join(projectPath, ".stylelintrc.cjs");
26
- const content = `module.exports = {
27
- "extends": [
28
- "@anolilab/stylelint-config",
29
- ]
30
- };
31
- `;
32
-
33
- if (existsSync(eslintPath)) {
34
- console.warn("⚠️ .stylelintrc.cjs already exists; Make sure that it includes the following for @anolilab/stylelint-config to work as it should: { \"extends\": [\"@anolilab/stylelint-config\"] }.");
35
-
36
- return Promise.resolve();
37
- }
38
-
39
- return writeFileAsync(eslintPath, content, "utf-8");
40
- };
41
-
42
- /**
43
- * Writes .stylelintignore if it doesn't exist. Warns if it exists.
44
- */
45
- const writeStylelintIgnore = () => {
46
- const eslintPath = join(projectPath, ".stylelintignore");
47
- const content = `package.json
48
- package-lock.json
49
- yarn.lock
50
- build/**
51
- node_modules/**
52
- .next/**
53
- `;
54
-
55
- if (existsSync(eslintPath)) {
56
- return Promise.resolve();
57
- }
58
-
59
- return writeFileAsync(eslintPath, content, "utf-8");
60
- };
61
-
62
- // eslint-disable-next-line unicorn/prefer-top-level-await
63
- (async () => {
64
- try {
65
- await writeStylelintRc();
66
- await writeStylelintIgnore();
67
-
68
- console.log("😎 Everything went well, have fun!");
69
-
70
- // eslint-disable-next-line no-undef
71
- process.exit(0);
72
- } catch (error) {
73
- console.log("😬 something went wrong:");
74
- console.error(error.message);
75
-
76
- // eslint-disable-next-line no-undef
77
- process.exit(1);
78
- }
79
- })();
package/rules/a11y.cjs DELETED
@@ -1,39 +0,0 @@
1
- module.exports = {
2
- plugins: ["stylelint-a11y"],
3
- rules: {
4
- // Require certain styles if the animation or transition in media features
5
- // "a11y/media-prefers-reduced-motion": true, @see https://github.com/YozhikM/stylelint-a11y/issues/49
6
-
7
- // Disallow unaccessible CSS generated content in pseudo-elements
8
- "a11y/content-property-no-static-value": true,
9
- // Disallow font sizes less than 15px
10
- "a11y/font-size-is-readable": true,
11
-
12
- // Disallow not vertical rhythmed line-height
13
- "a11y/line-height-is-vertical-rhythmed": true,
14
-
15
- // Require implementation of certain styles for selectors with colors.
16
- // 'a11y/media-prefers-color-scheme': true,
17
-
18
- // Disallow content hiding with display: none property
19
- "a11y/no-display-none": true,
20
-
21
- // Disallow obsolete attribute using
22
- "a11y/no-obsolete-attribute": true,
23
-
24
- // Disallow obsolete selectors using
25
- "a11y/no-obsolete-element": true,
26
-
27
- // Require width of text in a comfortable range
28
- // 'a11y/no-spread-text': true,
29
-
30
- // Disallow outline clearing
31
- "a11y/no-outline-none": true,
32
-
33
- // Disallow content with text-align: justify
34
- "a11y/no-text-align-justify": true,
35
-
36
- // Require or disallow a pseudo-element to the selectors with :hover
37
- "a11y/selector-pseudo-class-focus": true,
38
- },
39
- };
@@ -1,37 +0,0 @@
1
- module.exports = {
2
- rules: {
3
- // Enabled to play well with both CSS and SCSS at-rules for readability.
4
- // https://stylelint.io/user-guide/rules/at-rule-empty-line-before
5
- "at-rule-empty-line-before": [
6
- "always",
7
- {
8
- except: ["blockless-after-same-name-blockless", "first-nested"],
9
- ignore: ["after-comment", "blockless-after-blockless"],
10
- ignoreAtRules: ["else"],
11
- },
12
- ],
13
-
14
- // Disabled to avoid cases where semantic or
15
- // pragmatic grouping is more practical
16
- // https://stylelint.io/user-guide/rules/no-descending-specificity
17
- "no-descending-specificity": undefined,
18
-
19
- // Enabled to improve consistency and readability.
20
- // https://stylelint.io/user-guide/rules/at-rule-empty-line-before
21
- "rule-empty-line-before": [
22
- "always",
23
- {
24
- except: ["after-single-line-comment", "first-nested"],
25
- },
26
- ],
27
-
28
- // Ignore custom elements to play well with popular frameworks.
29
- // https://stylelint.io/user-guide/rules/selector-type-no-unknown
30
- "selector-type-no-unknown": [
31
- true,
32
- {
33
- ignore: ["custom-elements"],
34
- },
35
- ],
36
- },
37
- };
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: ["stylelint-declaration-block-no-ignored-properties"],
3
- rules: {
4
- "plugin/declaration-block-no-ignored-properties": true,
5
- },
6
- };
@@ -1,13 +0,0 @@
1
- const browserslist = require("browserslist-config-anolilab");
2
-
3
- module.exports = {
4
- plugins: ["stylelint-no-unsupported-browser-features"],
5
- rules: {
6
- "plugin/no-unsupported-browser-features": [
7
- true,
8
- {
9
- browsers: browserslist.production,
10
- },
11
- ],
12
- },
13
- };
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- extends: ["stylelint-config-rational-order"],
3
- };
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: ["stylelint-require-units"],
3
- rules: {
4
- "matterialize/stylelint-require-units": true,
5
- },
6
- };
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: ["stylelint-selector-no-empty"],
3
- rules: {
4
- "plugin/stylelint-selector-no-empty": true,
5
- },
6
- };
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- extends: ["stylelint-config-standard"],
3
- };