diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 536fb4f6..e15ffd1f 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -29,7 +29,7 @@ jobs:
fail-fast: false
matrix:
language: ['javascript']
- node-version: [14.x]
+ node-version: [18]
steps:
- name: Checkout repository
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 41c083ab..03476cd0 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -20,7 +20,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- node-version: [14.x]
+ node-version: [18]
steps:
- name: Checkout
diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index f801661a..c8616837 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -14,13 +14,21 @@ env:
jobs:
test:
- name: Test on Node.js ${{ matrix.node-version }} and ${{ matrix.os }}
+ name: Test for Stylelint ${{ matrix.stylelint }} on Node.js ${{ matrix.node-version }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
- node-version: [14]
- os: [ubuntu-latest, windows-latest, macos-latest]
+ node-version: [18]
+ os: [ubuntu-latest, macos-latest]
+ stylelint: [14, 15]
+ include:
+ - stylelint: 15
+ node-version: 14 # For some reason jest-runner-vscode doesn't work well with Node v18 and Windows.
+ os: windows-latest
+ - stylelint: 14
+ node-version: 14 # For some reason jest-runner-vscode doesn't work well with Node v18 and Windows.
+ os: windows-latest
steps:
- uses: actions/checkout@v2
@@ -51,6 +59,14 @@ jobs:
- name: Install dependencies
run: npm ci
+ - name: Install stylelint v15
+ run: npm i -D stylelint@^15
+ if: matrix.stylelint == 15
+
+ - name: Install stylelint v14
+ run: npm i -D stylelint@^14 stylelint-scss@^4.3.0
+ if: matrix.stylelint == 14
+
- name: Cache VS Code binaries
uses: actions/cache@v2
id: vscode-cache
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2980612..9f9c7cb1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Files are now re-linted when a Stylelint configuration file is changed in the workspace ([#356](https://github.com/stylelint/vscode-stylelint/pull/356)).
+## [1.2.4](https://github.com/stylelint/vscode-stylelint/compare/v1.2.3...v1.2.4) (2023-02-14)
+
+### Added
+
+- Add "stylelint.reportDescriptionlessDisables" option ([#442](https://github.com/stylelint/vscode-stylelint/pull/442)).
+
## [1.2.3](https://github.com/stylelint/vscode-stylelint/compare/v1.2.2...v1.2.3) (2022-08-16)
### Fixed
diff --git a/README.md b/README.md
index 55da542b..23f9e8da 100644
--- a/README.md
+++ b/README.md
@@ -168,6 +168,13 @@ e.g.
"stylelint.customSyntax": "${workspaceFolder}/custom-syntax.js"
```
+### `stylelint.reportDescriptionlessDisables`
+
+> Type: `boolean`
+> Default: `false`
+
+Sets the Stylelint [`reportDescriptionlessDisables`] option. If `true`, Stylelint reports `stylelint-disable` comments without a description.
+
### `stylelint.ignoreDisables`
> Type: `boolean`
@@ -278,6 +285,26 @@ And on Windows by running:
cmd /C "set NODE_ENV=development&&code"
```
+## Contributors
+
+Stylelint is maintained by volunteers. Without the code contributions from [all these fantastic people](https://github.com/stylelint/vscode-stylelint/graphs/contributors), Stylelint would not exist. [Become a contributor](https://github.com/stylelint/vscode-stylelint/contribute).
+
+### Sponsors
+
+
+
+Thank you to all our sponsors! [Become a sponsor](https://opencollective.com/stylelint).
+
+### Backers
+
+
+
+Thank you to all our backers! [Become a backer](https://opencollective.com/stylelint).
+
## Licence
[MIT](LICENSE)
@@ -299,12 +326,13 @@ cmd /C "set NODE_ENV=development&&code"
[stylelint]: https://stylelint.io/
[stylelint getting started guide]: https://stylelint.io/user-guide/get-started
-[stylelint configuration file]: https://stylelint.io/user-guide/configuration
+[stylelint configuration file]: https://stylelint.io/user-guide/configure
[stylelint 14 migration guide]: https://github.com/stylelint/stylelint/blob/main/docs/migration-guide/to-14.md
[`customsyntax`]: https://stylelint.io/user-guide/usage/options/#customsyntax
[`config`]: https://stylelint.io/user-guide/usage/node-api#config
[`configfile`]: https://stylelint.io/user-guide/usage/options#configfile
[`configbasedir`]: https://stylelint.io/user-guide/usage/options#configbasedir
+[`reportdescriptionlessdisables`]: https://stylelint.io/user-guide/usage/options#reportdescriptionlessdisables
[`ignoredisables`]: https://stylelint.io/user-guide/usage/options#ignoredisables
[`reportneedlessdisables`]: https://stylelint.io/user-guide/usage/options#reportneedlessdisables
[`reportinvalidscopedisables`]: https://stylelint.io/user-guide/usage/options#reportInvalidScopeDisables
diff --git a/package-lock.json b/package-lock.json
index 3ade341a..4475ffbe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "vscode-stylelint",
- "version": "1.2.3",
+ "version": "1.2.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "vscode-stylelint",
- "version": "1.2.3",
+ "version": "1.2.4",
"license": "MIT",
"dependencies": {
"@types/triple-beam": "^1.3.2",
@@ -53,11 +53,11 @@
"postcss": "^8.4.4",
"postcss-sass": "^0.5.0",
"postcss-scss": "^4.0.2",
- "prettier": "^2.5.0",
- "stylelint": "^14.10.0",
+ "prettier": "^2.7.1",
+ "stylelint": "^15.10.2",
"stylelint-processor-glamorous": "^0.3.0",
"stylelint-processor-styled-components": "^1.10.0",
- "stylelint-scss": "^4.3.0",
+ "stylelint-scss": "^5.1.0",
"ts-jest": "^27.0.7",
"ts-node": "^10.4.0",
"typed-emitter": "^1.4.0",
@@ -884,21 +884,90 @@
"node": ">=12"
}
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
- "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
+ "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": "^14 || ^16 || >=18"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^2.2.0"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
+ "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz",
+ "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "postcss": "^8.2",
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz",
+ "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@dabh/diagnostics": {
@@ -2461,7 +2530,7 @@
"node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -2852,17 +2921,42 @@
}
},
"node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -3000,9 +3094,9 @@
}
},
"node_modules/colord": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz",
- "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==",
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
"dev": true
},
"node_modules/colors": {
@@ -3105,9 +3199,9 @@
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"node_modules/cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
"dependencies": {
"@types/parse-json": "^4.0.0",
@@ -3328,14 +3422,27 @@
}
},
"node_modules/css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
+ "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
"dev": true,
"engines": {
"node": ">=12.22"
}
},
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -3404,23 +3511,38 @@
}
},
"node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"dependencies": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -3428,7 +3550,7 @@
"node_modules/decamelize-keys/node_modules/map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -4639,9 +4761,9 @@
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
},
"node_modules/fast-glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
- "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -5213,9 +5335,9 @@
"dev": true
},
"node_modules/html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
"engines": {
"node": ">=8"
@@ -5353,12 +5475,15 @@
}
},
"node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/inflight": {
@@ -7660,9 +7785,9 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
- "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
"dev": true
},
"node_modules/kuler": {
@@ -7777,7 +7902,7 @@
"node_modules/lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
"dev": true
},
"node_modules/logform": {
@@ -7864,6 +7989,12 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"node_modules/memorystream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
@@ -7874,35 +8005,35 @@
}
},
"node_modules/meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/meow/node_modules/hosted-git-info": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz",
- "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -7927,9 +8058,9 @@
}
},
"node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
"engines": {
"node": ">=10"
@@ -8006,9 +8137,9 @@
}
},
"node_modules/minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -8039,7 +8170,7 @@
"node_modules/minimist-options/node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -8063,10 +8194,16 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -8620,9 +8757,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
- "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "version": "8.4.28",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
+ "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
"dev": true,
"funding": [
{
@@ -8632,10 +8769,14 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -8734,9 +8875,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@@ -8772,15 +8913,18 @@
}
},
"node_modules/prettier": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz",
- "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/prettier-plugin-packagejson": {
@@ -8885,12 +9029,15 @@
]
},
"node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/react-is": {
@@ -8914,105 +9061,77 @@
}
},
"node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
"dev": true,
"dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg-up/node_modules/find-up": {
+ "node_modules/read-pkg-up/node_modules/hosted-git-info": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "lru-cache": "^6.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "node_modules/read-pkg-up/node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
"dependencies": {
- "p-locate": "^4.1.0"
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "node_modules/read-pkg-up/node_modules/read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
"dev": true,
"dependencies": {
- "p-try": "^2.0.0"
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/read-pkg/node_modules/path-type": {
@@ -9042,16 +9161,19 @@
}
},
"node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/refa": {
@@ -9270,9 +9392,9 @@
}
},
"node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9718,15 +9840,18 @@
}
},
"node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
"dev": true,
"dependencies": {
- "min-indent": "^1.0.0"
+ "min-indent": "^1.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-json-comments": {
@@ -9748,55 +9873,57 @@
"dev": true
},
"node_modules/stylelint": {
- "version": "14.10.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz",
- "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==",
+ "version": "15.10.2",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz",
+ "integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==",
"dev": true,
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
- "colord": "^2.9.2",
- "cosmiconfig": "^7.0.1",
- "css-functions-list": "^3.1.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.0",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.11",
+ "fast-glob": "^3.3.0",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.0",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.25.0",
+ "known-css-properties": "^0.27.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.16",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.25",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.10",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.2.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.0",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.1"
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.13.1 || >=16.0.0"
},
"funding": {
"type": "opencollective",
@@ -9896,19 +10023,18 @@
}
},
"node_modules/stylelint-scss": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz",
- "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz",
+ "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==",
"dev": true,
"dependencies": {
- "lodash": "^4.17.21",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.6",
- "postcss-value-parser": "^4.1.0"
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0"
},
"peerDependencies": {
- "stylelint": "^14.5.1"
+ "stylelint": "^14.5.1 || ^15.0.0"
}
},
"node_modules/stylelint/node_modules/balanced-match": {
@@ -9917,26 +10043,90 @@
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
"dev": true
},
+ "node_modules/stylelint/node_modules/cosmiconfig": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
+ "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "dev": true,
+ "dependencies": {
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ }
+ },
+ "node_modules/stylelint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/stylelint/node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
"dev": true,
"engines": {
"node": ">= 4"
}
},
+ "node_modules/stylelint/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/stylelint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stylelint/node_modules/supports-hyperlinks": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
"node_modules/stylelint/node_modules/write-file-atomic": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz",
- "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"dependencies": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/supports-color": {
@@ -9952,9 +10142,9 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0",
@@ -9998,9 +10188,9 @@
"dev": true
},
"node_modules/table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
"dev": true,
"dependencies": {
"ajv": "^8.0.1",
@@ -10014,9 +10204,9 @@
}
},
"node_modules/table/node_modules/ajv": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz",
- "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -10154,12 +10344,15 @@
}
},
"node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/triple-beam": {
@@ -11517,10 +11710,30 @@
"@cspotcode/source-map-consumer": "0.8.0"
}
},
+ "@csstools/css-parser-algorithms": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
+ "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/css-tokenizer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
+ "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
+ "dev": true
+ },
+ "@csstools/media-query-list-parser": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz",
+ "integrity": "sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw==",
+ "dev": true,
+ "requires": {}
+ },
"@csstools/selector-specificity": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
- "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz",
+ "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==",
"dev": true,
"requires": {}
},
@@ -12722,7 +12935,7 @@
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true
},
"astral-regex": {
@@ -13020,14 +13233,29 @@
"dev": true
},
"camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"requires": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true
+ }
}
},
"caniuse-lite": {
@@ -13139,9 +13367,9 @@
}
},
"colord": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz",
- "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==",
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
"dev": true
},
"colors": {
@@ -13226,9 +13454,9 @@
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
@@ -13394,11 +13622,21 @@
}
},
"css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
+ "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
"dev": true
},
+ "css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ }
+ },
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -13449,25 +13687,31 @@
}
},
"decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true
},
"decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"requires": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
"dependencies": {
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true
}
}
@@ -14310,9 +14554,9 @@
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
},
"fast-glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
- "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -14744,9 +14988,9 @@
"dev": true
},
"html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true
},
"http-proxy-agent": {
@@ -14841,9 +15085,9 @@
"dev": true
},
"indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
"dev": true
},
"inflight": {
@@ -16554,9 +16798,9 @@
"dev": true
},
"known-css-properties": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
- "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
"dev": true
},
"kuler": {
@@ -16652,7 +16896,7 @@
"lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
"dev": true
},
"logform": {
@@ -16719,6 +16963,12 @@
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true
},
+ "mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"memorystream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
@@ -16726,29 +16976,29 @@
"dev": true
},
"meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"requires": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"dependencies": {
"hosted-git-info": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz",
- "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -16767,9 +17017,9 @@
}
},
"type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true
}
}
@@ -16824,9 +17074,9 @@
"dev": true
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -16851,7 +17101,7 @@
"is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"dev": true
}
}
@@ -16871,9 +17121,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true
},
"natural-compare": {
@@ -17282,12 +17532,12 @@
}
},
"postcss": {
- "version": "8.4.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
- "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "version": "8.4.28",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
+ "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
"dev": true,
"requires": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.6",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
@@ -17358,9 +17608,9 @@
"requires": {}
},
"postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -17388,9 +17638,9 @@
"dev": true
},
"prettier": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz",
- "integrity": "sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
"dev": true
},
"prettier-plugin-packagejson": {
@@ -17462,9 +17712,9 @@
"dev": true
},
"quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true
},
"react-is": {
@@ -17496,77 +17746,53 @@
}
},
"read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
"dev": true,
"requires": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
},
"dependencies": {
- "find-up": {
+ "hosted-git-info": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
+ "lru-cache": "^6.0.0"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
}
},
"read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
"dev": true,
"requires": {
"@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
}
},
"type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true
}
}
@@ -17586,13 +17812,13 @@
}
},
"redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"requires": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
}
},
"refa": {
@@ -17756,9 +17982,9 @@
}
},
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"requires": {
"lru-cache": "^6.0.0"
}
@@ -18119,12 +18345,12 @@
"dev": true
},
"strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
"dev": true,
"requires": {
- "min-indent": "^1.0.0"
+ "min-indent": "^1.0.1"
}
},
"strip-json-comments": {
@@ -18140,49 +18366,51 @@
"dev": true
},
"stylelint": {
- "version": "14.10.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.10.0.tgz",
- "integrity": "sha512-VAmyKrEK+wNFh9R8mNqoxEFzaa4gsHGhcT4xgkQDuOA5cjF6CaNS8loYV7gpi4tIZBPUyXesotPXzJAMN8VLOQ==",
+ "version": "15.10.2",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz",
+ "integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==",
"dev": true,
"requires": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
- "colord": "^2.9.2",
- "cosmiconfig": "^7.0.1",
- "css-functions-list": "^3.1.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.0",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.11",
+ "fast-glob": "^3.3.0",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.0",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.25.0",
+ "known-css-properties": "^0.27.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.16",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.25",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.10",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.2.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.0",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.1"
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
},
"dependencies": {
"balanced-match": {
@@ -18191,20 +18419,63 @@
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
"dev": true
},
+ "cosmiconfig": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
+ "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "dev": true,
+ "requires": {
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
"ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true
},
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-hyperlinks": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ }
+ },
"write-file-atomic": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz",
- "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
}
}
}
@@ -18287,16 +18558,15 @@
}
},
"stylelint-scss": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz",
- "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.1.0.tgz",
+ "integrity": "sha512-E+KlQFXv1Euha43qw3q+wKBSli557wxbbo6/39DWhRNXlUa9Cz+FYrcgz+PT6ag0l6UisCYjAGCNhoSl4FcwlA==",
"dev": true,
"requires": {
- "lodash": "^4.17.21",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.6",
- "postcss-value-parser": "^4.1.0"
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0"
}
},
"supports-color": {
@@ -18309,9 +18579,9 @@
}
},
"supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
@@ -18348,9 +18618,9 @@
"dev": true
},
"table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
"dev": true,
"requires": {
"ajv": "^8.0.1",
@@ -18361,9 +18631,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz",
- "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -18474,9 +18744,9 @@
"dev": true
},
"trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
"dev": true
},
"triple-beam": {
diff --git a/package.json b/package.json
index ffe03a03..559b2ec6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vscode-stylelint",
- "version": "1.2.3",
+ "version": "1.2.4",
"license": "MIT",
"description": "Official Stylelint extension for Visual Studio Code",
"main": "dist/index.js",
@@ -13,6 +13,9 @@
"homepage": "https://github.com/stylelint/vscode-stylelint#readme",
"bugs": "https://github.com/stylelint/vscode-stylelint/issues",
"qna": "https://stackoverflow.com/questions/tagged/vscode+stylelint",
+ "sponsor": {
+ "url": "https://opencollective.com/stylelint"
+ },
"icon": "media/stylelint.png",
"engines": {
"vscode": ">=1.56.0",
@@ -101,11 +104,17 @@
"default": "",
"description": "An absolute path to a custom PostCSS-compatible syntax module."
},
+ "stylelint.reportDescriptionlessDisables": {
+ "scope": "resource",
+ "type": "boolean",
+ "default": false,
+ "description": "Report `stylelint-disable` comments without a description."
+ },
"stylelint.ignoreDisables": {
"scope": "resource",
"type": "boolean",
"default": false,
- "description": "Ignore `stylelint-disable` (e.g. `/* stylelint-disable block-no-empty */`) comments"
+ "description": "Ignore `stylelint-disable` (e.g. `/* stylelint-disable block-no-empty */`) comments."
},
"stylelint.reportNeedlessDisables": {
"scope": "resource",
@@ -236,11 +245,11 @@
"postcss": "^8.4.4",
"postcss-sass": "^0.5.0",
"postcss-scss": "^4.0.2",
- "prettier": "^2.5.0",
- "stylelint": "^14.10.0",
+ "prettier": "^2.7.1",
+ "stylelint": "^15.10.2",
"stylelint-processor-glamorous": "^0.3.0",
"stylelint-processor-styled-components": "^1.10.0",
- "stylelint-scss": "^4.3.0",
+ "stylelint-scss": "^5.1.0",
"ts-jest": "^27.0.7",
"ts-node": "^10.4.0",
"typed-emitter": "^1.4.0",
@@ -252,17 +261,17 @@
"build-bundle-watch": "run:p build-watch bundle-watch",
"build-watch": "npm run build -- --watch",
"bundle": "npm run bundle-base -- --sourcemap",
- "bundle-base": "ts-node -P tsconfig.scripts.json scripts/bundle.ts",
+ "bundle-base": "ts-node --transpile-only -P tsconfig.scripts.json scripts/bundle.ts",
"bundle-watch": "npm run bundle-base -- --sourcemap --watch",
"build-bundle": "run-s build bundle",
- "download-vscode": "ts-node -P tsconfig.scripts.json scripts/download-vscode.ts",
+ "download-vscode": "ts-node --transpile-only -P tsconfig.scripts.json scripts/download-vscode.ts",
"format": "prettier . --write",
"lint": "run-s \"lint:*\"",
"lint:formatting": "prettier . --check",
"lint:js": "eslint --report-unused-disable-directives .",
"lint:spelling": "cspell lint --no-progress",
"lint:types": "tsc -b",
- "lint:unit-tests": "ts-node -P tsconfig.scripts.json scripts/enforce-unit-tests-per-file.ts",
+ "lint:unit-tests": "ts-node --transpile-only -P tsconfig.scripts.json scripts/enforce-unit-tests-per-file.ts",
"test": "npm run build-bundle && jest",
"test:e2e": "npm run build-bundle && jest --projects test/e2e",
"test:integration": "jest --projects test/integration",
diff --git a/src/server/__tests__/__snapshots__/server.ts.snap b/src/server/__tests__/__snapshots__/server.ts.snap
index 58bac669..bc178c27 100644
--- a/src/server/__tests__/__snapshots__/server.ts.snap
+++ b/src/server/__tests__/__snapshots__/server.ts.snap
@@ -175,6 +175,7 @@ Array [
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -206,6 +207,7 @@ Array [
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -243,6 +245,7 @@ Array [
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -273,6 +276,7 @@ Array [
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -328,6 +332,7 @@ Object {
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "yarn",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -355,6 +360,7 @@ Object {
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -381,6 +387,7 @@ Object {
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -408,6 +415,7 @@ Object {
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
@@ -434,6 +442,7 @@ Object {
"customSyntax": "",
"ignoreDisables": false,
"packageManager": "npm",
+ "reportDescriptionlessDisables": false,
"reportInvalidScopeDisables": false,
"reportNeedlessDisables": false,
"snippet": Array [
diff --git a/src/server/modules/__tests__/formatter.ts b/src/server/modules/__tests__/formatter.ts
index 8ca67601..f931a7d2 100644
--- a/src/server/modules/__tests__/formatter.ts
+++ b/src/server/modules/__tests__/formatter.ts
@@ -28,13 +28,15 @@ import { Position, TextEdit } from 'vscode-languageserver-types';
import { Notification } from '../../types';
import { FormatterModule } from '../formatter';
-const mockContext = serverMocks.getContext();
-const mockLogger = serverMocks.getLogger();
+let mockContext = serverMocks.getContext();
+let mockLogger = serverMocks.getLogger();
describe('FormatterModule', () => {
beforeEach(() => {
+ jest.restoreAllMocks();
+ mockContext = serverMocks.getContext();
mockContext.__options.validate = [];
- jest.clearAllMocks();
+ mockLogger = serverMocks.getLogger();
});
test('should be constructable', () => {
diff --git a/src/server/server.ts b/src/server/server.ts
index 7d7a0b72..e39bcdbb 100644
--- a/src/server/server.ts
+++ b/src/server/server.ts
@@ -40,6 +40,7 @@ const defaultOptions: LanguageServerOptions = {
customSyntax: '',
ignoreDisables: false,
packageManager: 'npm',
+ reportDescriptionlessDisables: false,
reportInvalidScopeDisables: false,
reportNeedlessDisables: false,
snippet: ['css', 'postcss'],
diff --git a/src/server/types.ts b/src/server/types.ts
index a4a5d2f9..6a40cb68 100644
--- a/src/server/types.ts
+++ b/src/server/types.ts
@@ -227,6 +227,7 @@ export type LanguageServerOptions = {
customSyntax?: string;
ignoreDisables?: boolean;
packageManager: PackageManager;
+ reportDescriptionlessDisables?: boolean;
reportInvalidScopeDisables?: boolean;
reportNeedlessDisables?: boolean;
snippet: string[];
diff --git a/src/utils/documents/__tests__/get-fixes.ts b/src/utils/documents/__tests__/get-fixes.ts
index 86aa6186..3cc503db 100644
--- a/src/utils/documents/__tests__/get-fixes.ts
+++ b/src/utils/documents/__tests__/get-fixes.ts
@@ -22,6 +22,7 @@ describe('getFixes', () => {
customSyntax: 'postcss-scss',
},
fix: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: true,
reportInvalidScopeDisables: false,
};
diff --git a/src/utils/index.ts b/src/utils/index.ts
index e69de29b..cb0ff5c3 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -0,0 +1 @@
+export {};
diff --git a/src/utils/lsp/display-error.ts b/src/utils/lsp/display-error.ts
index 2570b2f6..bfc6e840 100644
--- a/src/utils/lsp/display-error.ts
+++ b/src/utils/lsp/display-error.ts
@@ -1,8 +1,6 @@
import { isIterableObject } from '../iterables';
import type { Connection } from 'vscode-languageserver';
-import type { InvalidOptionError } from '../stylelint';
-// eslint-disable-next-line node/no-unpublished-import
-import { ConfigurationError } from 'stylelint';
+import type { InvalidOptionError, ConfigurationError } from '../stylelint';
/**
* Takes an error and displays it in the UI using the given connection.
diff --git a/src/utils/packages/stylelint-resolver.ts b/src/utils/packages/stylelint-resolver.ts
index abe625f3..217371c7 100644
--- a/src/utils/packages/stylelint-resolver.ts
+++ b/src/utils/packages/stylelint-resolver.ts
@@ -2,8 +2,6 @@ import fs from 'fs/promises';
import { createRequire } from 'module';
import path from 'path';
import process from 'process';
-// eslint-disable-next-line node/no-unpublished-import
-import type stylelint from 'stylelint';
import type winston from 'winston';
import { Connection, Files } from 'vscode-languageserver/node';
@@ -15,6 +13,7 @@ import { findPackageRoot } from './find-package-root';
import { GlobalPathResolver } from './global-path-resolver';
import { getFirstResolvedValue, lazyCallAsync } from '../functions';
import type { PackageManager, StylelintResolutionResult, ResolverOptions, TracerFn } from './types';
+import { Stylelint } from '../stylelint';
/**
* Utility for resolving the path to the Stylelint package. Each instance caches
@@ -133,7 +132,7 @@ export class StylelintResolver {
return undefined;
}
- const stylelint = rootRelativeRequire('stylelint') as stylelint.PublicApi;
+ const stylelint = rootRelativeRequire('stylelint') as Stylelint;
const result = {
stylelint,
@@ -166,7 +165,7 @@ export class StylelintResolver {
const result = {
// eslint-disable-next-line @typescript-eslint/no-var-requires
- stylelint: require(stylelintPath) as stylelint.PublicApi,
+ stylelint: require(stylelintPath) as Stylelint,
resolvedPath: stylelintPath,
};
@@ -220,7 +219,7 @@ export class StylelintResolver {
const requirePath = await this.#getRequirePath(stylelintPath, getWorkspaceFolderFn);
// eslint-disable-next-line @typescript-eslint/no-var-requires
- const stylelint = require(requirePath) as stylelint.PublicApi;
+ const stylelint = require(requirePath) as Stylelint;
if (stylelint && typeof stylelint.lint === 'function') {
return {
diff --git a/src/utils/packages/types.ts b/src/utils/packages/types.ts
index e8871404..fd83a58d 100644
--- a/src/utils/packages/types.ts
+++ b/src/utils/packages/types.ts
@@ -1,5 +1,4 @@
-// eslint-disable-next-line node/no-unpublished-import
-import type stylelint from 'stylelint';
+import { Stylelint } from '../stylelint';
/**
* Package manager identifiers.
@@ -18,7 +17,7 @@ export type ResolverOptions = {
* Stylelint package resolution result.
*/
export type StylelintResolutionResult = {
- stylelint: stylelint.PublicApi;
+ stylelint: Stylelint;
resolvedPath: string;
};
diff --git a/src/utils/stylelint/__tests__/__snapshots__/stylelint-runner.ts.snap b/src/utils/stylelint/__tests__/__snapshots__/stylelint-runner.ts.snap
index 7fb422c4..eb93330a 100644
--- a/src/utils/stylelint/__tests__/__snapshots__/stylelint-runner.ts.snap
+++ b/src/utils/stylelint/__tests__/__snapshots__/stylelint-runner.ts.snap
@@ -14,6 +14,7 @@ Object {
"formatter": [Function],
"ignoreDisables": undefined,
"ignorePath": "/.stylelintignore",
+ "reportDescriptionlessDisables": undefined,
"reportInvalidScopeDisables": undefined,
"reportNeedlessDisables": undefined,
}
@@ -25,7 +26,7 @@ Object {
Object {
"code": "block-no-empty",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/block-no-empty",
+ "href": "https://stylelint.io/user-guide/rules/block-no-empty",
},
"message": "Unexpected empty block (block-no-empty)",
"range": Object {
diff --git a/src/utils/stylelint/__tests__/build-stylelint-options.ts b/src/utils/stylelint/__tests__/build-stylelint-options.ts
index 77db4d8b..5895e8d1 100644
--- a/src/utils/stylelint/__tests__/build-stylelint-options.ts
+++ b/src/utils/stylelint/__tests__/build-stylelint-options.ts
@@ -84,6 +84,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: false,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
@@ -103,6 +104,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: true,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: true,
reportNeedlessDisables: true,
reportInvalidScopeDisables: true,
};
@@ -113,6 +115,7 @@ describe('buildStylelintOptions', () => {
configBasedir: '/workspace',
customSyntax: 'postcss-html',
ignoreDisables: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
@@ -140,6 +143,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: true,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: true,
reportNeedlessDisables: true,
reportInvalidScopeDisables: true,
};
@@ -150,6 +154,7 @@ describe('buildStylelintOptions', () => {
configBasedir: '/workspace',
customSyntax: '${workspaceFolder}/postcss-html',
ignoreDisables: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
@@ -181,6 +186,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: true,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: true,
reportNeedlessDisables: true,
reportInvalidScopeDisables: true,
};
@@ -191,6 +197,7 @@ describe('buildStylelintOptions', () => {
configBasedir: '/workspace',
customSyntax: '${workspaceFolder}/postcss-html',
ignoreDisables: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
@@ -220,6 +227,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: true,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: true,
reportNeedlessDisables: true,
reportInvalidScopeDisables: true,
};
@@ -230,6 +238,7 @@ describe('buildStylelintOptions', () => {
configBasedir: './base',
customSyntax: '/workspace/postcss-html',
ignoreDisables: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
@@ -259,6 +268,7 @@ describe('buildStylelintOptions', () => {
customSyntax: 'postcss-scss',
ignoreDisables: true,
ignorePath: '/.stylelintignore',
+ reportDescriptionlessDisables: true,
reportNeedlessDisables: true,
reportInvalidScopeDisables: true,
};
@@ -269,6 +279,7 @@ describe('buildStylelintOptions', () => {
configBasedir: './base',
customSyntax: '/workspace/postcss-html',
ignoreDisables: false,
+ reportDescriptionlessDisables: false,
reportNeedlessDisables: false,
reportInvalidScopeDisables: false,
};
diff --git a/src/utils/stylelint/__tests__/process-linter-result.ts b/src/utils/stylelint/__tests__/process-linter-result.ts
index 8644455c..a7010de1 100644
--- a/src/utils/stylelint/__tests__/process-linter-result.ts
+++ b/src/utils/stylelint/__tests__/process-linter-result.ts
@@ -1,4 +1,5 @@
import type stylelint from 'stylelint';
+import { Stylelint } from '../types';
import { processLinterResult } from '../process-linter-result';
const mockStylelint = {
@@ -6,7 +7,7 @@ const mockStylelint = {
'unit-no-unknown': {},
'at-rule-no-unknown': {},
},
-} as unknown as stylelint.PublicApi;
+} as unknown as Stylelint;
const createMockResult = (
mockResults: Partial[],
diff --git a/src/utils/stylelint/build-stylelint-options.ts b/src/utils/stylelint/build-stylelint-options.ts
index 0acf0735..c5df06cf 100644
--- a/src/utils/stylelint/build-stylelint-options.ts
+++ b/src/utils/stylelint/build-stylelint-options.ts
@@ -20,6 +20,7 @@ export async function buildStylelintOptions(
configBasedir,
customSyntax,
ignoreDisables,
+ reportDescriptionlessDisables,
reportNeedlessDisables,
reportInvalidScopeDisables,
}: RunnerOptions = {},
@@ -49,6 +50,9 @@ export async function buildStylelintOptions(
ignoreDisables: ignoreDisables ?? baseOptions.ignoreDisables,
+ reportDescriptionlessDisables:
+ reportDescriptionlessDisables ?? baseOptions.reportDescriptionlessDisables,
+
reportNeedlessDisables: reportNeedlessDisables ?? baseOptions.reportNeedlessDisables,
reportInvalidScopeDisables:
diff --git a/src/utils/stylelint/process-linter-result.ts b/src/utils/stylelint/process-linter-result.ts
index 1d9cf238..c0092fa2 100644
--- a/src/utils/stylelint/process-linter-result.ts
+++ b/src/utils/stylelint/process-linter-result.ts
@@ -2,6 +2,7 @@ import { warningToDiagnostic } from './warning-to-diagnostic';
// eslint-disable-next-line node/no-unpublished-import
import type stylelint from 'stylelint';
import { LintDiagnostics, InvalidOptionError } from './types';
+import { Stylelint } from './types';
/**
* Processes the results of a Stylelint lint run.
@@ -16,7 +17,7 @@ import { LintDiagnostics, InvalidOptionError } from './types';
* @param result The results returned by Stylelint.
*/
export function processLinterResult(
- stylelint: stylelint.PublicApi,
+ stylelint: Stylelint,
{ results, output, ruleMetadata }: stylelint.LinterResult,
): LintDiagnostics {
if (results.length === 0) {
diff --git a/src/utils/stylelint/types.ts b/src/utils/stylelint/types.ts
index 3e520fb6..b863ca56 100644
--- a/src/utils/stylelint/types.ts
+++ b/src/utils/stylelint/types.ts
@@ -2,6 +2,8 @@ import type LSP from 'vscode-languageserver-protocol';
// eslint-disable-next-line node/no-unpublished-import
import type stylelint from 'stylelint';
import type { PackageManager } from '../packages';
+export type Stylelint = typeof stylelint;
+export type ConfigurationError = Error & { code: 78 };
/**
* Diagnostics for a lint run.
@@ -39,6 +41,7 @@ export type RunnerOptions = {
customSyntax?: string;
ignoreDisables?: boolean;
packageManager?: PackageManager;
+ reportDescriptionlessDisables?: boolean;
reportInvalidScopeDisables?: boolean;
reportNeedlessDisables?: boolean;
snippet?: string[];
diff --git a/test/e2e/__tests__/__snapshots__/code-actions.ts.snap b/test/e2e/__tests__/__snapshots__/code-actions.ts.snap
index 0b597b6b..9386e0f7 100644
--- a/test/e2e/__tests__/__snapshots__/code-actions.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/code-actions.ts.snap
@@ -107,7 +107,7 @@ Array [
"command": Object {
"arguments": Array [
Object {
- "uri": "https://stylelint.io/user-guide/rules/list/indentation",
+ "uri": "https://stylelint.io/user-guide/rules/indentation",
},
],
"command": "stylelint.openRuleDoc",
diff --git a/test/e2e/__tests__/__snapshots__/config-basedir.ts.snap b/test/e2e/__tests__/__snapshots__/config-basedir.ts.snap
index da50444a..0e760b25 100644
--- a/test/e2e/__tests__/__snapshots__/config-basedir.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/config-basedir.ts.snap
@@ -5,7 +5,7 @@ Array [
Object {
"code": "color-hex-case",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/color-hex-case",
+ "href": "https://stylelint.io/user-guide/rules/color-hex-case",
},
"message": "Expected \\"#fff\\" to be \\"#FFF\\" (color-hex-case)",
"range": Object {
@@ -24,7 +24,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 8 spaces (indentation)",
"range": Object {
diff --git a/test/e2e/__tests__/__snapshots__/config-file.ts.snap b/test/e2e/__tests__/__snapshots__/config-file.ts.snap
index 23d6f863..d39f18fc 100644
--- a/test/e2e/__tests__/__snapshots__/config-file.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/config-file.ts.snap
@@ -5,7 +5,7 @@ Array [
Object {
"code": "block-no-empty",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/block-no-empty",
+ "href": "https://stylelint.io/user-guide/rules/block-no-empty",
},
"message": "Unexpected empty block (block-no-empty)",
"range": Object {
diff --git a/test/e2e/__tests__/__snapshots__/ignore-disables.ts.snap b/test/e2e/__tests__/__snapshots__/ignore-disables.ts.snap
index 8f321f0a..b59647d6 100644
--- a/test/e2e/__tests__/__snapshots__/ignore-disables.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/ignore-disables.ts.snap
@@ -5,7 +5,7 @@ Array [
Object {
"code": "color-hex-case",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/color-hex-case",
+ "href": "https://stylelint.io/user-guide/rules/color-hex-case",
},
"message": "Expected \\"#fff\\" to be \\"#FFF\\" (color-hex-case)",
"range": Object {
@@ -24,7 +24,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 4 spaces (indentation)",
"range": Object {
diff --git a/test/e2e/__tests__/__snapshots__/lint.ts.snap b/test/e2e/__tests__/__snapshots__/lint.ts.snap
index aae09884..2ae3651c 100644
--- a/test/e2e/__tests__/__snapshots__/lint.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/lint.ts.snap
@@ -21,7 +21,7 @@ Array [
Object {
"code": "color-no-invalid-hex",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/color-no-invalid-hex",
+ "href": "https://stylelint.io/user-guide/rules/color-no-invalid-hex",
},
"message": "Unexpected invalid hex color \\"#y3\\" (color-no-invalid-hex)",
"range": Object {
@@ -40,7 +40,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 4 spaces (indentation)",
"range": Object {
@@ -64,7 +64,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 4 spaces (indentation)",
"range": Object {
diff --git a/test/e2e/__tests__/__snapshots__/report-descriptionless-disables.ts.snap b/test/e2e/__tests__/__snapshots__/report-descriptionless-disables.ts.snap
new file mode 100644
index 00000000..602fefad
--- /dev/null
+++ b/test/e2e/__tests__/__snapshots__/report-descriptionless-disables.ts.snap
@@ -0,0 +1,22 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`"stylelint.reportDescriptionlessDisables" setting should report invalid-scope disables when enabled 1`] = `
+Array [
+ Object {
+ "code": "--report-descriptionless-disables",
+ "message": "Disable for \\"indentation\\" is missing a description",
+ "range": Object {
+ "end": Object {
+ "character": 5,
+ "line": 2,
+ },
+ "start": Object {
+ "character": 4,
+ "line": 2,
+ },
+ },
+ "severity": 1,
+ "source": "Stylelint",
+ },
+]
+`;
diff --git a/test/e2e/__tests__/__snapshots__/validate.ts.snap b/test/e2e/__tests__/__snapshots__/validate.ts.snap
index dbc211b3..8827f0d1 100644
--- a/test/e2e/__tests__/__snapshots__/validate.ts.snap
+++ b/test/e2e/__tests__/__snapshots__/validate.ts.snap
@@ -5,7 +5,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 4 spaces (indentation)",
"range": Object {
diff --git a/test/e2e/__tests__/report-descriptionless-disables.ts b/test/e2e/__tests__/report-descriptionless-disables.ts
new file mode 100644
index 00000000..7a55834c
--- /dev/null
+++ b/test/e2e/__tests__/report-descriptionless-disables.ts
@@ -0,0 +1,17 @@
+import path from 'path';
+import { normalizeDiagnostic } from '../utils';
+
+describe('"stylelint.reportDescriptionlessDisables" setting', () => {
+ it('should report invalid-scope disables when enabled', async () => {
+ const { document } = await openDocument(
+ path.resolve(workspaceDir, 'descriptionless-disables/test.css'),
+ );
+ const diagnostics = await waitForDiagnostics(document);
+
+ expect(
+ diagnostics
+ .map(normalizeDiagnostic)
+ .filter((diagnostic) => diagnostic?.code === '--report-descriptionless-disables'),
+ ).toMatchSnapshot();
+ });
+});
diff --git a/test/e2e/workspace/descriptionless-disables/.vscode/settings.json b/test/e2e/workspace/descriptionless-disables/.vscode/settings.json
new file mode 100644
index 00000000..dd04f773
--- /dev/null
+++ b/test/e2e/workspace/descriptionless-disables/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "stylelint.reportDescriptionlessDisables": true,
+}
diff --git a/test/e2e/workspace/descriptionless-disables/stylelint.config.js b/test/e2e/workspace/descriptionless-disables/stylelint.config.js
new file mode 100644
index 00000000..4939bf57
--- /dev/null
+++ b/test/e2e/workspace/descriptionless-disables/stylelint.config.js
@@ -0,0 +1,7 @@
+'use strict';
+
+module.exports = {
+ rules: {
+ indentation: [4],
+ },
+};
diff --git a/test/e2e/workspace/descriptionless-disables/test.css b/test/e2e/workspace/descriptionless-disables/test.css
new file mode 100644
index 00000000..54021f01
--- /dev/null
+++ b/test/e2e/workspace/descriptionless-disables/test.css
@@ -0,0 +1,10 @@
+/* prettier-ignore */
+a {
+ /* stylelint-disable-next-line indentation */
+ color: #fff;
+}
+
+a {
+ /* stylelint-disable-next-line indentation -- with a description */
+ color: #fff;
+}
diff --git a/test/e2e/workspace/workspace.code-workspace b/test/e2e/workspace/workspace.code-workspace
index e7e1e86f..ead5efac 100644
--- a/test/e2e/workspace/workspace.code-workspace
+++ b/test/e2e/workspace/workspace.code-workspace
@@ -4,6 +4,7 @@
{ "path": "config" },
{ "path": "custom-syntax" },
{ "path": "defaults" },
+ { "path": "descriptionless-disables" },
{ "path": "ignore-disables" },
{ "path": "report-disables" },
{ "path": "stylelint-path" },
diff --git a/test/integration/stylelint-vscode/__snapshots__/test.ts.snap b/test/integration/stylelint-vscode/__snapshots__/test.ts.snap
index 92bb4216..06849453 100644
--- a/test/integration/stylelint-vscode/__snapshots__/test.ts.snap
+++ b/test/integration/stylelint-vscode/__snapshots__/test.ts.snap
@@ -29,7 +29,7 @@ Array [
Object {
"code": "string-quotes",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/string-quotes",
+ "href": "https://stylelint.io/user-guide/rules/string-quotes",
},
"message": "Expected single quotes (string-quotes)",
"range": Object {
@@ -48,7 +48,7 @@ Array [
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 0 tabs (indentation)",
"range": Object {
@@ -172,35 +172,14 @@ exports[`StylelintRunner should reject with a reason when it takes incorrect opt
Invalid option value \\"foo\\" for rule \\"color-hex-case\\""
`;
-exports[`StylelintRunner should support \`processors\` option 1`] = `
-Array [
- Object {
- "code": "CssSyntaxError",
- "message": "Unclosed string (CssSyntaxError)",
- "range": Object {
- "end": Object {
- "character": 10,
- "line": 0,
- },
- "start": Object {
- "character": 9,
- "line": 0,
- },
- },
- "severity": 1,
- "source": "Stylelint",
- },
-]
-`;
-
exports[`StylelintRunner should support CSS-in-JS with customSyntax 1`] = `
Array [
Object {
"code": "font-weight-notation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/font-weight-notation",
+ "href": "https://stylelint.io/user-guide/rules/font-weight-notation",
},
- "message": "Expected numeric font-weight notation (font-weight-notation)",
+ "message": "Expected \\"bold\\" to be \\"700\\" (font-weight-notation)",
"range": Object {
"end": Object {
"character": 30,
@@ -217,9 +196,9 @@ Array [
Object {
"code": "font-weight-notation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/font-weight-notation",
+ "href": "https://stylelint.io/user-guide/rules/font-weight-notation",
},
- "message": "Expected numeric font-weight notation (font-weight-notation)",
+ "message": "Expected \\"normal\\" to be \\"400\\" (font-weight-notation)",
"range": Object {
"end": Object {
"character": 7,
@@ -241,7 +220,7 @@ Array [
Object {
"code": "length-zero-no-unit",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/length-zero-no-unit",
+ "href": "https://stylelint.io/user-guide/rules/length-zero-no-unit",
},
"message": "Unexpected unit (length-zero-no-unit)",
"range": Object {
@@ -266,7 +245,7 @@ Object {
Object {
"code": "selector-type-no-unknown",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/selector-type-no-unknown",
+ "href": "https://stylelint.io/user-guide/rules/selector-type-no-unknown",
},
"message": "Unexpected unknown type selector \\"unknown\\" (selector-type-no-unknown)",
"range": Object {
@@ -322,7 +301,7 @@ Object {
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 2 spaces (indentation)",
"range": Object {
@@ -342,6 +321,61 @@ Object {
}
`;
+exports[`StylelintRunner with reportDescriptionlessDisables should work properly if reportDescriptionlessDisables is true 1`] = `
+Object {
+ "diagnostics": Array [
+ Object {
+ "code": "--report-descriptionless-disables",
+ "message": "Disable for \\"indentation\\" is missing a description",
+ "range": Object {
+ "end": Object {
+ "character": 5,
+ "line": 2,
+ },
+ "start": Object {
+ "character": 4,
+ "line": 2,
+ },
+ },
+ "severity": 1,
+ "source": "Stylelint",
+ },
+ Object {
+ "code": "--report-descriptionless-disables",
+ "message": "Disable for \\"indentation\\" is missing a description",
+ "range": Object {
+ "end": Object {
+ "character": 1,
+ "line": 5,
+ },
+ "start": Object {
+ "character": 0,
+ "line": 5,
+ },
+ },
+ "severity": 1,
+ "source": "Stylelint",
+ },
+ Object {
+ "code": "--report-descriptionless-disables",
+ "message": "Disable for \\"indentation\\" is missing a description",
+ "range": Object {
+ "end": Object {
+ "character": 15,
+ "line": 11,
+ },
+ "start": Object {
+ "character": 14,
+ "line": 11,
+ },
+ },
+ "severity": 1,
+ "source": "Stylelint",
+ },
+ ],
+}
+`;
+
exports[`StylelintRunner with reportInvalidScopeDisables should work properly if reportInvalidScopeDisables is true 1`] = `
Object {
"diagnostics": Array [
@@ -403,7 +437,7 @@ Object {
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 4 spaces (indentation)",
"range": Object {
@@ -516,7 +550,7 @@ Object {
Object {
"code": "indentation",
"codeDescription": Object {
- "href": "https://stylelint.io/user-guide/rules/list/indentation",
+ "href": "https://stylelint.io/user-guide/rules/indentation",
},
"message": "Expected indentation of 2 spaces (indentation)",
"range": Object {
diff --git a/test/integration/stylelint-vscode/no-unknown.config.js b/test/integration/stylelint-vscode/no-unknown.config.js
index 524de624..08433afc 100644
--- a/test/integration/stylelint-vscode/no-unknown.config.js
+++ b/test/integration/stylelint-vscode/no-unknown.config.js
@@ -1,11 +1,9 @@
'use strict';
-const baseConfig = require('./stylelint.config');
-
module.exports = {
- ...baseConfig,
+ customSyntax: '@stylelint/postcss-css-in-js',
rules: {
- ...baseConfig.rules,
+ 'length-zero-no-unit': true,
'property-no-unknown': [true, { ignoreProperties: 'what' }],
},
};
diff --git a/test/integration/stylelint-vscode/test.ts b/test/integration/stylelint-vscode/test.ts
index 2e525fe6..36e2e651 100644
--- a/test/integration/stylelint-vscode/test.ts
+++ b/test/integration/stylelint-vscode/test.ts
@@ -2,6 +2,8 @@ import { join, resolve } from 'path';
import { pathToFileURL } from 'url';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { StylelintRunner } from '../../../src/utils/stylelint';
+import { version as stylelintVersion } from 'stylelint/package.json';
+import semver from 'semver';
const createDocument = (uri: string | null, languageId: string, contents: string): TextDocument =>
TextDocument.create(
@@ -157,21 +159,42 @@ a { color: #000 }
expect(result.diagnostics).toEqual([]);
});
- test('should support `processors` option', async () => {
- expect.assertions(1);
- const runner = new StylelintRunner();
- const result = await runner.lintDocument(
- createDocument('processors.tsx', 'typescriptreact', 'styled.p`"`'),
- {
- config: {
- processors: ['stylelint-processor-styled-components'],
- rules: {},
+ if (semver.satisfies(stylelintVersion, '^14')) {
+ test('should support `processors` option', async () => {
+ expect.assertions(1);
+ const runner = new StylelintRunner();
+ const result = await runner.lintDocument(
+ createDocument('processors.tsx', 'typescriptreact', 'styled.p`"`'),
+ {
+ config: {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- for stylelint v14
+ // @ts-ignore for stylelint v14
+ processors: ['stylelint-processor-styled-components'],
+ rules: {},
+ },
},
- },
- );
-
- expect(result.diagnostics).toMatchSnapshot();
- });
+ );
+
+ expect(result.diagnostics).toEqual([
+ {
+ code: 'CssSyntaxError',
+ message: 'Unclosed string (CssSyntaxError)',
+ range: {
+ end: {
+ character: 10,
+ line: 0,
+ },
+ start: {
+ character: 9,
+ line: 0,
+ },
+ },
+ severity: 1,
+ source: 'Stylelint',
+ },
+ ]);
+ });
+ }
test('should check CSS syntax even if no configuration is provided', async () => {
expect.assertions(1);
@@ -436,6 +459,52 @@ describe('StylelintRunner with customSyntax', () => {
});
});
+describe('StylelintRunner with reportDescriptionlessDisables', () => {
+ test('should work properly if reportDescriptionlessDisables is true', async () => {
+ expect.assertions(1);
+ const runner = new StylelintRunner();
+ const result = await runner.lintDocument(
+ createDocument(
+ 'test.css',
+ 'css',
+ `
+.baz {
+ /* stylelint-disable-next-line indentation */
+ color: red;
+}
+/* stylelint-disable indentation */
+.baz {
+ color: red;
+}
+/* stylelint-enable indentation */
+.baz {
+ color: red; /* stylelint-disable-line indentation */
+}
+
+.baz {
+ /* stylelint-disable-next-line indentation -- with a description */
+ color: red;
+}
+/* stylelint-disable indentation -- with a description */
+.baz {
+ color: red;
+}
+/* stylelint-enable indentation */
+.baz {
+ color: red; /* stylelint-disable-line indentation -- with a description */
+}
+`,
+ ),
+ {
+ config: { rules: { indentation: [4] } },
+ reportDescriptionlessDisables: true,
+ },
+ );
+
+ expect(result).toMatchSnapshot();
+ });
+});
+
describe('StylelintRunner with reportNeedlessDisables', () => {
test('should work properly if reportNeedlessDisables is true', async () => {
expect.assertions(1);
diff --git a/test/unit/server-mocks.ts b/test/unit/server-mocks.ts
index 3021c4ba..d0030760 100644
--- a/test/unit/server-mocks.ts
+++ b/test/unit/server-mocks.ts
@@ -468,6 +468,7 @@ export function getOptions(): LanguageServerOptions {
customSyntax: '',
ignoreDisables: false,
packageManager: 'npm',
+ reportDescriptionlessDisables: false,
reportInvalidScopeDisables: false,
reportNeedlessDisables: false,
snippet: ['css', 'postcss'],
diff --git a/tsconfig.test.json b/tsconfig.test.json
index de0b34a4..7b581d3d 100644
--- a/tsconfig.test.json
+++ b/tsconfig.test.json
@@ -2,7 +2,8 @@
"extends": "./tsconfig.base.json",
"compilerOptions": {
"typeRoots": ["./types", "./node_modules/@types"],
- "noEmit": true
+ "noEmit": true,
+ "isolatedModules": true
},
"include": ["src/**/*", "test/**/*", "__mocks__/**/*", "types/*.d.ts"],
"exclude": ["**/coverage", "test/e2e/workspace"]