From b61c695dd208b427196486ca6277ffaf4083b220 Mon Sep 17 00:00:00 2001 From: Ryan McVeigh Date: Fri, 8 Mar 2024 06:04:45 -0700 Subject: [PATCH 1/3] Replaced at-import-partial-extension-blacklist with at-import-partial-extension-disallowed-list (#317) --- README.md | 2 +- __tests__/unit/import-path.spec.js | 2 +- index.js | 2 +- page/de.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 278d773..f92f673 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ This is a list of the lints turned on in this configuration, and what they do. * [`scss/at-extend-no-missing-placeholder`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-extend-no-missing-placeholder/README.md): Disallow at-extends (`@extend`) with missing placeholders. * [`scss/at-function-pattern`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-function-pattern/README.md): SCSS functions must be written in lowercase and match the regex `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$`. * [`scss/load-no-partial-leading-underscore`](https://github.com/stylelint-scss/stylelint-scss/blob/master/src/rules/load-no-partial-leading-underscore/README.md): Disallow leading underscore in partial names in `@import`. -* [`scss/at-import-partial-extension-blacklist`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-import-partial-extension-blacklist/README.md): Specify list of disallowed file extensions for partial names in `@import` commands. +* [`scss/at-import-partial-extension-disallowed-list`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-import-partial-extension-disallowed-list/README.md): Specify list of disallowed file extensions for partial names in `@import` commands. * `.scss`: Disallow the use of the `.scss` file extension in imports. * [scss/`at-mixin-pattern`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-mixin-pattern/README.md): SCSS mixins must be written in lowercase and match the regex `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$`. * [`scss/at-rule-no-unknown`](https://github.com/stylelint-scss/stylelint-scss/blob/master/src/rules/at-rule-no-unknown/README.md): SCSS mixins must be written in lowercase and match the regex `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$`. diff --git a/__tests__/unit/import-path.spec.js b/__tests__/unit/import-path.spec.js index 233fad3..4302496 100644 --- a/__tests__/unit/import-path.spec.js +++ b/__tests__/unit/import-path.spec.js @@ -29,7 +29,7 @@ test("Import path scss", t => { 'correct warning text', ) t.is( - warningsArray.includes('Unexpected extension \".scss\" in imported partial name (scss/at-import-partial-extension-blacklist)'), + warningsArray.includes('Unexpected extension \".scss\" in imported partial name (scss/at-import-partial-extension-disallowed-list)'), true, 'correct warning text', ) diff --git a/index.js b/index.js index 14b111c..f818176 100644 --- a/index.js +++ b/index.js @@ -42,7 +42,7 @@ module.exports = { ], "scss/at-extend-no-missing-placeholder": true, "scss/at-function-pattern": "^[a-z]+([a-z0-9-]+[a-z0-9]+)?$", - "scss/at-import-partial-extension-blacklist": ["scss"], + "scss/at-import-partial-extension-disallowed-list": ["scss"], "scss/at-rule-no-unknown": true, "scss/dollar-variable-colon-space-after": "always", "scss/dollar-variable-colon-space-before": "never", diff --git a/page/de.md b/page/de.md index 2ed2a4c..df2c296 100644 --- a/page/de.md +++ b/page/de.md @@ -135,7 +135,7 @@ Hier findest du eine Liste mit den voreingestellten Regel und was sie bewirken. * [`at-extend-no-missing-placeholder`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-extend-no-missing-placeholder/README.md): Verbiete at-extends (`@extend`) mit fehlendem Platzhalter. * [`at-function-pattern`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-function-pattern/README.md): SCSS Funktionen müssen klein geschrieben werden und diesem Regex entsprechen `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$`. * [`at-import-no-partial-leading-underscore`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-import-no-partial-leading-underscore/README.md): Verbiete führende Unterstriche in partiellen Namen bei `@import`. -* [`at-import-partial-extension-blacklist`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-import-partial-extension-blacklist/README.md): Erstellt eine list von verbotenen Dateiendungen für partiellen name beim importieren. +* [`at-import-partial-extension-disallowed-list`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-import-partial-extension-disallowed-list/README.md): Erstellt eine list von verbotenen Dateiendungen für partiellen name beim importieren. * `.scss`: Verbiete das Nutzen von `.scss` Dateiendungen beim importieren. * [`at-mixin-pattern`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/at-mixin-pattern/README.md): SCSS Mixins müssen klein geschrieben werden und diesem Regex entsprechen `^[a-z]+([a-z0-9-]+[a-z0-9]+)?$`. * [`dollar-variable-colon-space-after`](https://github.com/kristerkari/stylelint-scss/blob/master/src/rules/dollar-variable-colon-space-after/README.md): Benötigt ein Leerzeichen nach dem Doppelpunkt bei der $-variable Deklaration. From 5a9ba80def4391219897bddb4f5707353bab08ce Mon Sep 17 00:00:00 2001 From: Brett Jankord Date: Mon, 11 Mar 2024 13:58:39 -0500 Subject: [PATCH 2/3] Modernize unit tests (#318) * Modernize unit tests * Update package-lock.json --- __tests__/README.md | 5 +- __tests__/border-none.test.mjs | 49 + __tests__/color-keyword.test.mjs | 49 + __tests__/debug-statement.test.mjs | 51 + __tests__/empty-line-between-blocks.test.mjs | 57 + __tests__/empty-rule.test.mjs | 48 + __tests__/hex-length.test.mjs | 49 + __tests__/hex-validation.test.mjs | 49 + __tests__/id-selector.test.mjs | 49 + __tests__/import-path.test.mjs | 60 + .../manual-test-cases/failing-test-cases.scss | 351 --- .../manual-test-cases/passing-test-cases.scss | 248 -- .../manual-test-cases/stylelint.config.js | 2 - __tests__/name-format.test.mjs | 63 + __tests__/nesting-depth.test.mjs | 69 + __tests__/placeholder-in-extend.test.mjs | 49 + __tests__/property-spelling.test.mjs | 52 + __tests__/pseudo-element.test.mjs | 55 + __tests__/qualifying-element.test.mjs | 69 + __tests__/selector-depth.test.mjs | 57 + __tests__/selector-format.test.mjs | 73 + __tests__/shorthand.test.mjs | 49 + __tests__/unit/border-zero.spec.js | 30 - __tests__/unit/color-keyword.spec.js | 31 - __tests__/unit/debug-statement.spec.js | 33 - .../unit/empty-line-between-blocks.spec.js | 37 - __tests__/unit/empty-rule.spec.js | 29 - __tests__/unit/hex-length.spec.js | 30 - __tests__/unit/hex-validation.spec.js | 30 - __tests__/unit/id-selector.spec.js | 30 - __tests__/unit/import-path.spec.js | 41 - __tests__/unit/name-format.spec.js | 55 - __tests__/unit/nesting-depth.spec.js | 90 - __tests__/unit/placeholder-in-extend.spec.js | 30 - __tests__/unit/property-spelling.spec.js | 32 - __tests__/unit/pseudo-element.spec.js | 35 - __tests__/unit/qualifying-element.spec.js | 46 - __tests__/unit/selector-depth.spec.js | 37 - __tests__/unit/selector-format.spec.js | 50 - __tests__/unit/shorthand.spec.js | 30 - .../unit/unnecessary-parent-reference.spec.js | 32 - __tests__/unit/url-quotes.spec.js | 30 - __tests__/unit/vendor-prefixes.spec.js | 47 - __tests__/unit/zero-unit.spec.js | 30 - .../unnecessary-parent-reference.test.mjs | 51 + __tests__/url-quotes.test.mjs | 49 + ...valid-scss.spec.js => valid-scss.test.mjs} | 52 +- __tests__/vendor-prefixes.test.mjs | 69 + __tests__/zero-unit.test.mjs | 49 + package-lock.json | 2316 +---------------- package.json | 7 +- 51 files changed, 1298 insertions(+), 3733 deletions(-) create mode 100644 __tests__/border-none.test.mjs create mode 100644 __tests__/color-keyword.test.mjs create mode 100644 __tests__/debug-statement.test.mjs create mode 100644 __tests__/empty-line-between-blocks.test.mjs create mode 100644 __tests__/empty-rule.test.mjs create mode 100644 __tests__/hex-length.test.mjs create mode 100644 __tests__/hex-validation.test.mjs create mode 100644 __tests__/id-selector.test.mjs create mode 100644 __tests__/import-path.test.mjs delete mode 100644 __tests__/manual-test-cases/failing-test-cases.scss delete mode 100644 __tests__/manual-test-cases/passing-test-cases.scss delete mode 100644 __tests__/manual-test-cases/stylelint.config.js create mode 100644 __tests__/name-format.test.mjs create mode 100644 __tests__/nesting-depth.test.mjs create mode 100644 __tests__/placeholder-in-extend.test.mjs create mode 100644 __tests__/property-spelling.test.mjs create mode 100644 __tests__/pseudo-element.test.mjs create mode 100644 __tests__/qualifying-element.test.mjs create mode 100644 __tests__/selector-depth.test.mjs create mode 100644 __tests__/selector-format.test.mjs create mode 100644 __tests__/shorthand.test.mjs delete mode 100644 __tests__/unit/border-zero.spec.js delete mode 100644 __tests__/unit/color-keyword.spec.js delete mode 100644 __tests__/unit/debug-statement.spec.js delete mode 100644 __tests__/unit/empty-line-between-blocks.spec.js delete mode 100644 __tests__/unit/empty-rule.spec.js delete mode 100644 __tests__/unit/hex-length.spec.js delete mode 100644 __tests__/unit/hex-validation.spec.js delete mode 100644 __tests__/unit/id-selector.spec.js delete mode 100644 __tests__/unit/import-path.spec.js delete mode 100644 __tests__/unit/name-format.spec.js delete mode 100644 __tests__/unit/nesting-depth.spec.js delete mode 100644 __tests__/unit/placeholder-in-extend.spec.js delete mode 100644 __tests__/unit/property-spelling.spec.js delete mode 100644 __tests__/unit/pseudo-element.spec.js delete mode 100644 __tests__/unit/qualifying-element.spec.js delete mode 100644 __tests__/unit/selector-depth.spec.js delete mode 100644 __tests__/unit/selector-format.spec.js delete mode 100644 __tests__/unit/shorthand.spec.js delete mode 100644 __tests__/unit/unnecessary-parent-reference.spec.js delete mode 100644 __tests__/unit/url-quotes.spec.js delete mode 100644 __tests__/unit/vendor-prefixes.spec.js delete mode 100644 __tests__/unit/zero-unit.spec.js create mode 100644 __tests__/unnecessary-parent-reference.test.mjs create mode 100644 __tests__/url-quotes.test.mjs rename __tests__/{unit/valid-scss.spec.js => valid-scss.test.mjs} (87%) create mode 100644 __tests__/vendor-prefixes.test.mjs create mode 100644 __tests__/zero-unit.test.mjs diff --git a/__tests__/README.md b/__tests__/README.md index ba6acdb..61cd463 100644 --- a/__tests__/README.md +++ b/__tests__/README.md @@ -1,11 +1,8 @@ # How to add tests -* Create your test file named after the scss lint your you are adding a stylelint rule for. For example, `__tests___/unit/bang-format.spec.js` +* Create your test file named after the scss lint your you are adding a stylelint rule for. For example, `__tests___/unit/bang-format.test.mjs` * Copy the code from one of the other tests into your test new file * Update the test so you have .scss code that will produce lint you want to test for -* Add a console.log statement within the checkResult function in the test file passing `result` to the log statement. e.g. `console.log(result)` * Look for warnings it generates * Copy expected text to test file -* Escape quotes in your expected error text * Run tests again and refine until they pass -* Update `t.plan(2)` to the number of tests you have diff --git a/__tests__/border-none.test.mjs b/__tests__/border-none.test.mjs new file mode 100644 index 0000000..f809cb5 --- /dev/null +++ b/__tests__/border-none.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with border none', () => { + const invalidScss = ( +`.borderzero { + border: none; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected value "none" for property "border" (declaration-property-value-disallowed-list)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'declaration-property-value-disallowed-list', + ], + ); + }); +}); diff --git a/__tests__/color-keyword.test.mjs b/__tests__/color-keyword.test.mjs new file mode 100644 index 0000000..c0cbb95 --- /dev/null +++ b/__tests__/color-keyword.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with named color keyword', () => { + const invalidScss = ( +`.colorkeyword { + color: green; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected named color "green" (color-named)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'color-named', + ], + ); + }); +}); diff --git a/__tests__/debug-statement.test.mjs b/__tests__/debug-statement.test.mjs new file mode 100644 index 0000000..378a42d --- /dev/null +++ b/__tests__/debug-statement.test.mjs @@ -0,0 +1,51 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with debug statement scss', () => { + const invalidScss = ( +`$color-blue: #1c94c6; + +.debug { + @debug $color-blue; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected at-rule "debug" (at-rule-disallowed-list)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'at-rule-disallowed-list', + ], + ); + }); +}); diff --git a/__tests__/empty-line-between-blocks.test.mjs b/__tests__/empty-line-between-blocks.test.mjs new file mode 100644 index 0000000..a6440f4 --- /dev/null +++ b/__tests__/empty-line-between-blocks.test.mjs @@ -0,0 +1,57 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with missing empty line between blocks', () => { + const invalidScss = ( +`p { + margin: 0; + em { + color: #f00; + } +} +a { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 2); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected empty line before rule (rule-empty-line-before)', + 'Expected empty line before rule (rule-empty-line-before)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'rule-empty-line-before', + 'rule-empty-line-before', + ], + ); + }); +}); diff --git a/__tests__/empty-rule.test.mjs b/__tests__/empty-rule.test.mjs new file mode 100644 index 0000000..914b0f2 --- /dev/null +++ b/__tests__/empty-rule.test.mjs @@ -0,0 +1,48 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with empty rule', () => { + const invalidScss = ( +`.cat { +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected empty block (block-no-empty)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'block-no-empty', + ], + ); + }); +}); diff --git a/__tests__/hex-length.test.mjs b/__tests__/hex-length.test.mjs new file mode 100644 index 0000000..1d16762 --- /dev/null +++ b/__tests__/hex-length.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with hex color length', () => { + const invalidScss = ( +`.hexlength { + color: #ff22ee; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected "#ff22ee" to be "#f2e" (color-hex-length)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'color-hex-length', + ], + ); + }); +}); diff --git a/__tests__/hex-validation.test.mjs b/__tests__/hex-validation.test.mjs new file mode 100644 index 0000000..d61c9e5 --- /dev/null +++ b/__tests__/hex-validation.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with hex validation', () => { + const invalidScss = ( +`.hex-validation { + background: #ab; // Clearly a typo +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected invalid hex color "#ab" (color-no-invalid-hex)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'color-no-invalid-hex', + ], + ); + }); +}); diff --git a/__tests__/id-selector.test.mjs b/__tests__/id-selector.test.mjs new file mode 100644 index 0000000..e47d390 --- /dev/null +++ b/__tests__/id-selector.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with ID selector', () => { + const invalidScss = ( +`#id-selector { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected "#id-selector" to have no more than 0 ID selectors (selector-max-id)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'selector-max-id', + ], + ); + }); +}); diff --git a/__tests__/import-path.test.mjs b/__tests__/import-path.test.mjs new file mode 100644 index 0000000..e2b3f0b --- /dev/null +++ b/__tests__/import-path.test.mjs @@ -0,0 +1,60 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with incorrect scss import path', () => { + const invalidScss = ( + `@import 'foo/_bar.scss'; +@import '_bar.scss'; +@import '_bar'; +@import 'bar.scss'; +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 6); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected extension ".scss" in imported partial name (scss/at-import-partial-extension-disallowed-list)', + 'Unexpected extension ".scss" in imported partial name (scss/at-import-partial-extension-disallowed-list)', + 'Unexpected extension ".scss" in imported partial name (scss/at-import-partial-extension-disallowed-list)', + 'Unexpected leading underscore in imported partial name (scss/load-no-partial-leading-underscore)', + 'Unexpected leading underscore in imported partial name (scss/load-no-partial-leading-underscore)', + 'Unexpected leading underscore in imported partial name (scss/load-no-partial-leading-underscore)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'scss/at-import-partial-extension-disallowed-list', + 'scss/at-import-partial-extension-disallowed-list', + 'scss/at-import-partial-extension-disallowed-list', + 'scss/load-no-partial-leading-underscore', + 'scss/load-no-partial-leading-underscore', + 'scss/load-no-partial-leading-underscore', + ], + ); + }); +}); diff --git a/__tests__/manual-test-cases/failing-test-cases.scss b/__tests__/manual-test-cases/failing-test-cases.scss deleted file mode 100644 index d381c3e..0000000 --- a/__tests__/manual-test-cases/failing-test-cases.scss +++ /dev/null @@ -1,351 +0,0 @@ -// Bang Format test -.bangformat { - background-color: #000! important; // Bang format test - color: #000!important; // Bang format test -} - -// Have not found a way to test this with stylelint -// BEM Depth test -// scss-lint:disable SelectorFormat -/* stylelint-disable selector-class-pattern */ -.block__element__subelement { - color: #f00; -} -/* stylelint-enable selector-class-pattern */ -// scss-lint:enable SelectorFormat - -// Border Zero test -.borderzero { - border: none; -} - -// Color Keyword test -.colorkeyword { - color: green; -} - -// Debug statement test -$color-blue: #1c94c6; - -.debug { - @debug $color-blue; -} - -// scss features not lintable for declaration order in stylelint -// DeclarationOrder test -.declarationorder { - p { - color: #f00; - background-color: #0f0; - } - - color: #f00; - @include message-box(); - @extend %error; -} - -// Have not found a way to test this with stylelint -// ElsePlacement test -$width: auto; - -.elseplacement { - @if $width == 'auto' { - color: #f00; - } - @else { - display: inline-block; - width: $width; - } -} - -// EmptyLineBetweenBlocks test -p { - margin: 0; - em { - color: #f00; - } -} -a { - color: #f00; -} - -// EmptyRule test -.cat { -} - -// Hexlength test -.hexlength { - color: #ff22ee; -} - -// HexNotation test -.hexnotation { - color: #F00; -} - -// HexValidation test -.hexvalidation { - background: #ab; // Clearly a typo -} - -// ID Selector test -#id-selector { - color: #f00; -} - -// Import Path test -@import 'foo/_bar.scss'; -@import '_bar.scss'; -@import '_bar'; -@import 'bar.scss'; - -// Indentation test -.indentation { - color: #f00; -} -// No test for allow_non_nested_indentation - -// Leading Zero test -.leadingzero { - margin: .5em; -} - - -// NameFormat test -// Functions, mixins, variables, and placeholders should be declared with all lowercase letters and hyphens instead of underscores. -@function calculationFunction($some-number, $another-number) { - @return $some-number + $another-number; -} - -@mixin myMixin() { - color: #fff; -} - -$myVar: 10px; - -%placeHolder { - color: #f00; -} - -// Nesting Depth test -.one { - .two { - .three { - .four { - color: #f00; - } - } - } -} - -// Placeholder In Extend test -.fatal { - @extend .error; -} - -// Have not found a way to test this with stylelint -// Private Naming Convention test -// Enforces that functions, mixins, and variables that follow the private naming convention (default to underscore-prefixed, e.g. $_foo) are defined and used within the same file. - -$_foo: #f00; - -figcaption { - color: #00f; -} - -// Have not found a way to test this with stylelint -// PropertySpelling test -.propertyspelling { - diplay: none; // "display" is spelled incorrectly -} - -// PseudoElement test -p:before { - content: '>'; -} - -p::hover { - color: #f00; -} - -// QualifyingElement test -// scss-lint:disable IdSelector -div#thing { - color: #f00; -} -// scss-lint:enable IdSelector - -ul.list { - color: #f00; -} - -ul li.item { - color: #f00; -} - -a[href='place'] { - color: #f00; -} - -// SelectorDepth test -.one .two .three > .four { - color: #f00; -} - -.one .two { - .three > .four { - color: #f00; - } -} - -// Selector Format test -.SELECTOR__FORMAT { - color: #f00; -} - -// Shorthand test -.shorthand { - margin: 1px 1px 1px 1px; -} - -// SingleLinePerProperty test -.singlelineproperty1 { - margin: 0; padding: 0; -} - -.singlelineproperty1 { margin: 0; padding: 0; } - -// SingleLinePerSelector test -.error, .explanation { - color: #f00; -} - -// Stylelint doesn't seem to catch comma space in @include line -// SpaceAfterComma test -.spaceaftercomma { - @include box-shadow(0 2px 2px rgba(0,0,0,0.2)); - color: rgba(0,0,0,0.1); -} - -// SpaceAfterPropertyColon test -.spaceafterpropertycolon { - margin:0; // No space - padding: 0; // Too many spaces -} - -// SpaceAfterPropertyName test -.spaceafterpropertyname { - margin : 0; -} - - -// SpaceAfterVariableColon test -$spaceaftervariablecolon:#fff; // No space - - -// SpaceAfterVariableName test -$spaceaftervariablename : #f00; - -// SpaceAroundOperator test -.spacearoundoperator { - margin: 5px+5px; - padding: 5px + 5px; -} - -// SpaceBeforeBrace test -.spacebeforebrace1{ - color: #f00; -} - -.spacebeforebrace2 { - color: #f00; -} - -// allow_single_line_padding test -// stylelint does not seem to support this -.icon-chevronup { &::before { content: '\e030'; } } -.icon-chevrondown { &::before { content: '\e031'; } } -.icon-chevronleft { &::before { content: '\e032'; } } - -// Stylelint doesn't seem to catch parens space in @include line -// SpaceBetweenParens test -.spacebetweenparens { - @include box-shadow( 0 2px 2px rgba( 0, 0, 0, 0.2 ) ); - color: rgba( 0, 0, 0, 0.1 ); -} - -// StringQuotes test -.stringquotes { - content: "hello"; -} - -// TrailingSemicolon test -.trailingsemicolon { - background-color: #fff ; - color: #fff -} - -// TrailingZero test -.trailingzero { - margin: 0.500em; -} - -// UnnecessaryMantissa test -.mantissa { - margin: 1.0em; -} - -// UnnecessaryParentReference test -.parentreference { - & > .bar { - color: #f00; - } -} - -// UrlQuotes test -.quotes-url { - background: url(example.png); -} - -// Vendor Prefixes test -@-webkit-keyframes anim { - 0% { - opacity: 0; - } -} - -::-moz-placeholder { - color: #f00; -} - -.property-prefix { - -webkit-transition: none; -} - -.value-prefix { - display: -webkit-flex; -} - -// Zero Unit test -.zerounit { - margin: 0px; -} - -// SpaceBetweenParens media query test -@media ( max-width: 300px ) { - .zerounit { - margin: 0; - } -} - -@media (max-width: 300px ) { - .zerounit { - margin: 0; - } -} - -// Property spelling test -.property-spelling { - diplay: none; // "display" is spelled incorrectly - heigth: 100%; // "height" is spelled incorrectly -} \ No newline at end of file diff --git a/__tests__/manual-test-cases/passing-test-cases.scss b/__tests__/manual-test-cases/passing-test-cases.scss deleted file mode 100644 index 6b566cd..0000000 --- a/__tests__/manual-test-cases/passing-test-cases.scss +++ /dev/null @@ -1,248 +0,0 @@ -// Bang Format test -.bangformat { - color: #000 !important; -} - -// BEM Depth test -// scss-lint:disable SelectorFormat -/* stylelint-disable selector-class-pattern */ -.block__element { - color: #f00; -} -/* stylelint-enable selector-class-pattern */ -// scss-lint:enable SelectorFormat - -// Border Zero test -.borderzero { - border: 0; -} - -// Color Keyword test -.colorkeyword { - color: #0f0; -} - -// Debug statement test - -// DeclarationOrder test -// scss-lint:disable NestingDepth -.declarationorder { - @extend %error; - @include message-box(); - - color: #f00; - - p { - color: #f00; - } -} -// scss-lint:enable NestingDepth - -// ElsePlacement test -$width: auto; - -.elseplacement { - @if $width == 'auto' { - width: $width; - } @else { - display: inline-block; - width: $width; - } -} - -// EmptyLineBetweenBlocks test -// scss-lint:disable NestingDepth -p { - margin: 0; - - em { - color: #f00; - } -} - -a { - color: #f00; -} -// scss-lint:enable NestingDepth - -// Hexlength test -.hexlength { - color: #f2e; -} - -// HexNotation test -.hexnotation { - color: #f00; -} - -// Import Path test -@import 'foo/bar'; -@import 'bar'; - -// Indentation test -.indentation { - color: #f00; -} -// No test for allow_non_nested_indentation - -// Leading Zero test -.leadingzero { - margin: 0.5em; -} - -// NameFormat test -// Functions, mixins, variables, and placeholders should be declared with all lowercase letters and hyphens instead of underscores. - -@function calculation-function($some-number, $another-number) { - @return $some-number + $another-number; -} - -@mixin my-mixin() { - color: #fff; -} - -$my-var: 10px; - -%place-holder { - color: #f00; -} - -// Nesting Depth test -$colors: ( - white: #fff -); - -.button { - @each $key, $value in $colors { - &-#{$key} { - background-color: $value; - } - } -} - -// Private Naming Convention test -// Enforces that functions, mixins, and variables that follow the private naming convention (default to underscore-prefixed, e.g. $_foo) are defined and used within the same file. - -$_foo: #f00; - -figure { - color: $_foo; -} - -// PseudoElement test -a::before { - content: '>'; -} - -a:hover { - color: #f00; -} - -// Selector Format test -.selector-format { - color: #f00; -} - -// Shorthand test -.shorthand { - margin: 1px; -} - -// SingleLinePerProperty test -.singlelineproperty1 { - margin: 0; - padding: 0; -} - -// SingleLinePerSelector test -.error, -.explanation { - color: #f00; -} - -// SpaceAfterComma test -.spaceaftercomma { - @include box-shadow(0 2px 2px rgba(0, 0, 0, 0.2)); - color: rgba(0, 0, 0, 0.1); -} - -// SpaceAfterPropertyColon test -.spaceafterpropertycolon { - margin: 0; - padding: 0; -} - -// SpaceAfterPropertyName test -.spaceafterpropertyname { - margin: 0; -} - -// SpaceAfterVariableColon test -$spaceaftervariblecolon: #fff; // No space - -// SpaceAfterVariableName test -$spaceaftervariblename: #f00; - -// SpaceAroundOperator test -.spacearoundoperator { - margin: 5px + 5px; - padding: 5px + 5px; -} - -// SpaceBeforeBrace test -.spacebeforebrace1 { - color: #f00; -} - -// SpaceBetweenParens test -.spacebetweenparens { - @include box-shadow(0 2px 2px rgba(0, 0, 0, 0.2)); - color: rgba(0, 0, 0, 0.1); -} - -// StringQuotes test -.stringquotes { - content: 'hello'; -} - -// TrailingSemicolon test -.trailingsemicolon { - background-color: #fff; - color: #fff; -} - -// TrailingZero test -.trailingzero { - margin: 0.5em; -} - -// UnnecessaryMantissa test -.mantissa { - margin: 1em; -} - -// UnnecessaryParentReference test -// scss-lint:disable NestingDepth -.parentreference { - > .bar { - color: #f00; - } -} -// scss-lint:enable NestingDepth - -// UrlQuotes test -.quotes-url { - background: url('example.png'); -} - -// Zero Unit test -.zerounit { - margin: 0; -} - -// SpaceBetweenParens media query test -@media (max-width: 300px) { - .media-parens { - margin: 0; - } -} diff --git a/__tests__/manual-test-cases/stylelint.config.js b/__tests__/manual-test-cases/stylelint.config.js deleted file mode 100644 index 8e49b90..0000000 --- a/__tests__/manual-test-cases/stylelint.config.js +++ /dev/null @@ -1,2 +0,0 @@ -const rules = require('../../index'); -module.exports = {...rules}; diff --git a/__tests__/name-format.test.mjs b/__tests__/name-format.test.mjs new file mode 100644 index 0000000..c4b4d30 --- /dev/null +++ b/__tests__/name-format.test.mjs @@ -0,0 +1,63 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with invalid name format', () => { + const invalidScss = ( +`@function calculationFunction($some-number, $another-number) { + @return $some-number + $another-number; +} + +@mixin myMixin() { + color: #fff; +} + +$myVar: 10px; + +%placeHolder { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 3); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected @function name to match specified pattern (scss/at-function-pattern)', + 'Expected $ variable name to match specified pattern (scss/dollar-variable-pattern)', + 'Expected %-placeholder "%placeHolder" to match specified pattern (scss/percent-placeholder-pattern)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'scss/at-function-pattern', + 'scss/dollar-variable-pattern', + 'scss/percent-placeholder-pattern', + ], + ); + }); +}); diff --git a/__tests__/nesting-depth.test.mjs b/__tests__/nesting-depth.test.mjs new file mode 100644 index 0000000..12592ef --- /dev/null +++ b/__tests__/nesting-depth.test.mjs @@ -0,0 +1,69 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with nesting depth', () => { + const invalidScss = ( +`.one { + .two { + background-color: #c0ffee; + + @media (min-width: 420px) { + background-color: #bada55; + } + + @include mixin() { + background-color: #ba2; + } + + .three { + .four { + color: #f00; + } + } + } +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 3); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected nesting depth to be no more than 1 (max-nesting-depth)', + 'Expected nesting depth to be no more than 1 (max-nesting-depth)', + 'Expected ".one .two .three .four" to have no more than 3 compound selectors (selector-max-compound-selectors)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'max-nesting-depth', + 'max-nesting-depth', + 'selector-max-compound-selectors', + ], + ); + }); +}); diff --git a/__tests__/placeholder-in-extend.test.mjs b/__tests__/placeholder-in-extend.test.mjs new file mode 100644 index 0000000..d5f2a45 --- /dev/null +++ b/__tests__/placeholder-in-extend.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with missing placeholder with @extend scss', () => { + const invalidScss = ( +`.fatal { + @extend .error; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected a placeholder selector (e.g. %placeholder) to be used in @extend (scss/at-extend-no-missing-placeholder)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'scss/at-extend-no-missing-placeholder', + ], + ); + }); +}); diff --git a/__tests__/property-spelling.test.mjs b/__tests__/property-spelling.test.mjs new file mode 100644 index 0000000..9c9daab --- /dev/null +++ b/__tests__/property-spelling.test.mjs @@ -0,0 +1,52 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with property spelling', () => { + const invalidScss = ( +`.property-spelling { + diplay: none; // "display" is spelled incorrectly + heigth: 100%; // "height" is spelled incorrectly +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 2); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected unknown property "diplay" (property-no-unknown)', + 'Unexpected unknown property "heigth" (property-no-unknown)' + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'property-no-unknown', + 'property-no-unknown', + ], + ); + }); +}); diff --git a/__tests__/pseudo-element.test.mjs b/__tests__/pseudo-element.test.mjs new file mode 100644 index 0000000..7074963 --- /dev/null +++ b/__tests__/pseudo-element.test.mjs @@ -0,0 +1,55 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with pseudo-element errors', () => { + const invalidScss = ( +`p:before { + content: '>'; +} + +p::hover { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 2); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)', + 'Unexpected unknown pseudo-element selector "::hover" (selector-pseudo-element-no-unknown)' + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'selector-pseudo-element-colon-notation', + 'selector-pseudo-element-no-unknown', + ], + ); + }); +}); diff --git a/__tests__/qualifying-element.test.mjs b/__tests__/qualifying-element.test.mjs new file mode 100644 index 0000000..199d3a4 --- /dev/null +++ b/__tests__/qualifying-element.test.mjs @@ -0,0 +1,69 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with qualifying element', () => { + const invalidScss = ( +`div#thing { + color: #f00; +} + +ul.list { + color: #f00; +} + +ul li.item { + color: #f00; +} + +a[href='place'] { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 5); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected "div#thing" to have no more than 0 ID selectors (selector-max-id)', + 'Unexpected qualifying type selector "div#thing" (selector-no-qualifying-type)', + 'Unexpected qualifying type selector "ul.list" (selector-no-qualifying-type)', + 'Unexpected qualifying type selector "li.item" (selector-no-qualifying-type)', + 'Unexpected qualifying type selector "a[href=\'place\']" (selector-no-qualifying-type)' + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'selector-max-id', + 'selector-no-qualifying-type', + 'selector-no-qualifying-type', + 'selector-no-qualifying-type', + 'selector-no-qualifying-type', + ], + ); + }); +}); diff --git a/__tests__/selector-depth.test.mjs b/__tests__/selector-depth.test.mjs new file mode 100644 index 0000000..bcc819c --- /dev/null +++ b/__tests__/selector-depth.test.mjs @@ -0,0 +1,57 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with selector depth', () => { + const invalidScss = ( +`.one .two .three > .four { + color: #f00; +} + +.one .two { + .three > .four { + color: #f00; + } +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 2); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected ".one .two .three > .four" to have no more than 3 compound selectors (selector-max-compound-selectors)', + 'Expected ".one .two .three > .four" to have no more than 3 compound selectors (selector-max-compound-selectors)' + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'selector-max-compound-selectors', + 'selector-max-compound-selectors', + ], + ); + }); +}); diff --git a/__tests__/selector-format.test.mjs b/__tests__/selector-format.test.mjs new file mode 100644 index 0000000..57fd126 --- /dev/null +++ b/__tests__/selector-format.test.mjs @@ -0,0 +1,73 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with selector format', () => { + const invalidScss = ( +`.Foo { + color: #f00; +} + +.fooBar { + color: #f00; +} + +.fooBar5 { + color: #f00; +} + +.foo-Bar { + color: #f00; +} + +.foo-Bar---baz { + color: #f00; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 5); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Selector should be written in lowercase with hyphens (selector-class-pattern)', + 'Selector should be written in lowercase with hyphens (selector-class-pattern)', + 'Selector should be written in lowercase with hyphens (selector-class-pattern)', + 'Selector should be written in lowercase with hyphens (selector-class-pattern)', + 'Selector should be written in lowercase with hyphens (selector-class-pattern)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'selector-class-pattern', + 'selector-class-pattern', + 'selector-class-pattern', + 'selector-class-pattern', + 'selector-class-pattern', + ], + ); + }); +}); diff --git a/__tests__/shorthand.test.mjs b/__tests__/shorthand.test.mjs new file mode 100644 index 0000000..fda60db --- /dev/null +++ b/__tests__/shorthand.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with shorthand', () => { + const invalidScss = ( +`.shorthand { + margin: 1px 1px 1px 1px; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected "1px 1px 1px 1px" to be "1px" (shorthand-property-no-redundant-values)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'shorthand-property-no-redundant-values', + ], + ); + }); +}); diff --git a/__tests__/unit/border-zero.spec.js b/__tests__/unit/border-zero.spec.js deleted file mode 100644 index cf83321..0000000 --- a/__tests__/unit/border-zero.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.borderzero { - border: none; -} -`) - -test("Border zero scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected value \"none\" for property \"border\" (declaration-property-value-disallowed-list)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/color-keyword.spec.js b/__tests__/unit/color-keyword.spec.js deleted file mode 100644 index bdffcd1..0000000 --- a/__tests__/unit/color-keyword.spec.js +++ /dev/null @@ -1,31 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.colorkeyword { - color: green; -} - -`) - -test("Color keyword scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected named color \"green\" (color-named)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/debug-statement.spec.js b/__tests__/unit/debug-statement.spec.js deleted file mode 100644 index b55c500..0000000 --- a/__tests__/unit/debug-statement.spec.js +++ /dev/null @@ -1,33 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`$color-blue: #1c94c6; - -.debug { - @debug $color-blue; -} - -`) - -test("Debug statement scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected at-rule \"debug\" (at-rule-disallowed-list)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/empty-line-between-blocks.spec.js b/__tests__/unit/empty-line-between-blocks.spec.js deleted file mode 100644 index 9d25de2..0000000 --- a/__tests__/unit/empty-line-between-blocks.spec.js +++ /dev/null @@ -1,37 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`p { - margin: 0; - em { - color: #f00; - } -} -a { - color: #f00; -} -`) - -test("Empty line between scss", t => { - t.plan(3) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 2, "flags 2 warning") - t.is(result.warnings()[0].text, "Expected empty line before rule (rule-empty-line-before)", "correct warning text") - t.is(result.warnings()[1].text, "Expected empty line before rule (rule-empty-line-before)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/empty-rule.spec.js b/__tests__/unit/empty-rule.spec.js deleted file mode 100644 index c85f110..0000000 --- a/__tests__/unit/empty-rule.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.cat { -} -`) - -test("Empty rule scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected empty block (block-no-empty)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/hex-length.spec.js b/__tests__/unit/hex-length.spec.js deleted file mode 100644 index 6ed8436..0000000 --- a/__tests__/unit/hex-length.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.hexlength { - color: #ff22ee; -} -`) - -test("Hex length scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Expected \"#ff22ee\" to be \"#f2e\" (color-hex-length)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/hex-validation.spec.js b/__tests__/unit/hex-validation.spec.js deleted file mode 100644 index 0bfc3d3..0000000 --- a/__tests__/unit/hex-validation.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.hexvalidation { - background: #ab; // Clearly a typo -} -`) - -test("Hex validation scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected invalid hex color \"#ab\" (color-no-invalid-hex)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/id-selector.spec.js b/__tests__/unit/id-selector.spec.js deleted file mode 100644 index dc40ee8..0000000 --- a/__tests__/unit/id-selector.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`#id-selector { - color: #f00; -} -`) - -test("ID selector scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Expected \"#id-selector\" to have no more than 0 ID selectors (selector-max-id)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/import-path.spec.js b/__tests__/unit/import-path.spec.js deleted file mode 100644 index 4302496..0000000 --- a/__tests__/unit/import-path.spec.js +++ /dev/null @@ -1,41 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( - `@import 'foo/_bar.scss'; -@import '_bar.scss'; -@import '_bar'; -@import 'bar.scss'; -`) - -test("Import path scss", t => { - t.plan(3) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 6, "flags 6 warning") - var warningsArray = Object.values(result.warnings()).map(x => x.text); - t.is( - warningsArray.includes('Unexpected leading underscore in imported partial name (scss/load-no-partial-leading-underscore)'), - true, - 'correct warning text', - ) - t.is( - warningsArray.includes('Unexpected extension \".scss\" in imported partial name (scss/at-import-partial-extension-disallowed-list)'), - true, - 'correct warning text', - ) - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/name-format.spec.js b/__tests__/unit/name-format.spec.js deleted file mode 100644 index 4caddde..0000000 --- a/__tests__/unit/name-format.spec.js +++ /dev/null @@ -1,55 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`@function calculationFunction($some-number, $another-number) { - @return $some-number + $another-number; -} - -@mixin myMixin() { - color: #fff; -} - -$myVar: 10px; - -%placeHolder { - color: #f00; -} -`) - -test("Name format scss", t => { - t.plan(4) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 3, "flags 3 warning") - var warningsArray = Object.values(result.warnings()).map(x => x.text); - t.is( - warningsArray.includes('Expected @function name to match specified pattern (scss/at-function-pattern)'), - true, - 'correct warning text', - ) - t.is( - warningsArray.includes('Expected $ variable name to match specified pattern (scss/dollar-variable-pattern)'), - true, - 'correct warning text', - ) - t.is( - warningsArray.includes('Expected %-placeholder \"%placeHolder\" to match specified pattern (scss/percent-placeholder-pattern)'), - true, - 'correct warning text', - ) - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/nesting-depth.spec.js b/__tests__/unit/nesting-depth.spec.js deleted file mode 100644 index d687c0b..0000000 --- a/__tests__/unit/nesting-depth.spec.js +++ /dev/null @@ -1,90 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ` -.one { - .two { - background-color: #c0ffee; - - @media (min-width: 420px) { - background-color: #bada55; - } - - @include mixin() { - background-color: #ba2; - } - - .three { - .four { - color: #f00; - } - } - } -} -` - -const validScss = ` -.button { - @each $key, $value in $colors { - &-#{$key} { - background-color: $value; - } - } -} -` - -test("Nesting depth scss", t => { - t.plan(6) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 3, "flags 3 warning") - - t.is( - result.warnings()[0].text, - "Expected nesting depth to be no more than 1 (max-nesting-depth)", - "correct warning text" - ) - - t.is( - result.warnings()[1].text, - "Expected nesting depth to be no more than 1 (max-nesting-depth)", - "correct warning text" - ) - - t.not( - result.warnings()[2].node.type, - "atrule", - "max-depth ignores at-rules" - ) - - t.is( - result.warnings()[2].text, - 'Expected ".one .two .three .four" to have no more than 3 compound selectors (selector-max-compound-selectors)', - "correct warning text" - ) - } - - postcss() - .use(stylelint({ code: validScss, config: config, quietDeprecationWarnings: true, })) - .process(validScss, { syntax: scssSyntax }) - .then(function(result) { - t.is( - result.warnings().length, - 0 - ) - }) - .catch(logError) -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/placeholder-in-extend.spec.js b/__tests__/unit/placeholder-in-extend.spec.js deleted file mode 100644 index ebd28ad..0000000 --- a/__tests__/unit/placeholder-in-extend.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.fatal { - @extend .error; -} -`) - -test("Placeholder in extend scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Expected a placeholder selector (e.g. %placeholder) to be used in @extend (scss/at-extend-no-missing-placeholder)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/property-spelling.spec.js b/__tests__/unit/property-spelling.spec.js deleted file mode 100644 index 9804228..0000000 --- a/__tests__/unit/property-spelling.spec.js +++ /dev/null @@ -1,32 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.property-spelling { - diplay: none; // "display" is spelled incorrectly - heigth: 100%; // "height" is spelled incorrectly -} -`) - -test("Property spelling scss", t => { - t.plan(3) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 2, "flags 2 warning") - t.is(result.warnings()[0].text, "Unexpected unknown property \"diplay\" (property-no-unknown)", "correct warning text") - t.is(result.warnings()[1].text, "Unexpected unknown property \"heigth\" (property-no-unknown)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/pseudo-element.spec.js b/__tests__/unit/pseudo-element.spec.js deleted file mode 100644 index 7cb162f..0000000 --- a/__tests__/unit/pseudo-element.spec.js +++ /dev/null @@ -1,35 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`p:before { - content: '>'; -} - -p::hover { - color: #f00; -} -`) - -test("Pseudo element scss", t => { - t.plan(3) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 2, "flags 2 warning") - t.is(result.warnings()[0].text, "Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation)", "correct warning text") - t.is(result.warnings()[1].text, "Unexpected unknown pseudo-element selector \"::hover\" (selector-pseudo-element-no-unknown)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/qualifying-element.spec.js b/__tests__/unit/qualifying-element.spec.js deleted file mode 100644 index 42b9c1c..0000000 --- a/__tests__/unit/qualifying-element.spec.js +++ /dev/null @@ -1,46 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`div#thing { - color: #f00; -} - -ul.list { - color: #f00; -} - -ul li.item { - color: #f00; -} - -a[href='place'] { - color: #f00; -} -`) - -test("Qualifying element scss", t => { - t.plan(6) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 5, "flags 5 warning") - t.is(result.warnings()[0].text, "Expected \"div#thing\" to have no more than 0 ID selectors (selector-max-id)", "correct warning text") - t.is(result.warnings()[1].text, "Unexpected qualifying type selector \"div#thing\" (selector-no-qualifying-type)", "correct warning text") - t.is(result.warnings()[2].text, "Unexpected qualifying type selector \"ul.list\" (selector-no-qualifying-type)", "correct warning text") - t.is(result.warnings()[3].text, "Unexpected qualifying type selector \"li.item\" (selector-no-qualifying-type)", "correct warning text") - t.is(result.warnings()[4].text, "Unexpected qualifying type selector \"a[href=\'place\']\" (selector-no-qualifying-type)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/selector-depth.spec.js b/__tests__/unit/selector-depth.spec.js deleted file mode 100644 index 4dc8e88..0000000 --- a/__tests__/unit/selector-depth.spec.js +++ /dev/null @@ -1,37 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.one .two .three > .four { - color: #f00; -} - -.one .two { - .three > .four { - color: #f00; - } -} -`) - -test("Selector depth scss", t => { - t.plan(3) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 2, "flags 2 warning") - t.is(result.warnings()[0].text, "Expected \".one .two .three > .four\" to have no more than 3 compound selectors (selector-max-compound-selectors)", "correct warning text") - t.is(result.warnings()[1].text, "Expected \".one .two .three > .four\" to have no more than 3 compound selectors (selector-max-compound-selectors)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/selector-format.spec.js b/__tests__/unit/selector-format.spec.js deleted file mode 100644 index 068d060..0000000 --- a/__tests__/unit/selector-format.spec.js +++ /dev/null @@ -1,50 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.Foo { - color: #f00; -} - -.fooBar { - color: #f00; -} - -.fooBar5 { - color: #f00; -} - -.foo-Bar { - color: #f00; -} - -.foo-Bar---baz { - color: #f00; -} -`) - -test("Selector format scss", t => { - t.plan(6) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 5, "flags 1 warning") - t.is(result.warnings()[0].text, "Selector should be written in lowercase with hyphens (selector-class-pattern)", "correct warning text") - t.is(result.warnings()[1].text, "Selector should be written in lowercase with hyphens (selector-class-pattern)", "correct warning text") - t.is(result.warnings()[2].text, "Selector should be written in lowercase with hyphens (selector-class-pattern)", "correct warning text") - t.is(result.warnings()[3].text, "Selector should be written in lowercase with hyphens (selector-class-pattern)", "correct warning text") - t.is(result.warnings()[4].text, "Selector should be written in lowercase with hyphens (selector-class-pattern)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/shorthand.spec.js b/__tests__/unit/shorthand.spec.js deleted file mode 100644 index d61634d..0000000 --- a/__tests__/unit/shorthand.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.shorthand { - margin: 1px 1px 1px 1px; -} -`) - -test("Shorthand scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Expected \"1px 1px 1px 1px\" to be \"1px\" (shorthand-property-no-redundant-values)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/unnecessary-parent-reference.spec.js b/__tests__/unit/unnecessary-parent-reference.spec.js deleted file mode 100644 index 9bd2973..0000000 --- a/__tests__/unit/unnecessary-parent-reference.spec.js +++ /dev/null @@ -1,32 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.parentreference { - & > .bar { - color: #f00; - } -} -`) - -test("Unnecessary parent reference scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unnecessary nesting selector (&) (scss/selector-no-redundant-nesting-selector)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/url-quotes.spec.js b/__tests__/unit/url-quotes.spec.js deleted file mode 100644 index 5153cf3..0000000 --- a/__tests__/unit/url-quotes.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.quotes-url { - background: url(example.png); -} -`) - -test("URL quotes scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Expected quotes around \"url\" function argument (function-url-quotes)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/vendor-prefixes.spec.js b/__tests__/unit/vendor-prefixes.spec.js deleted file mode 100644 index 8a452a4..0000000 --- a/__tests__/unit/vendor-prefixes.spec.js +++ /dev/null @@ -1,47 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`@-webkit-keyframes anim { - 0% { - opacity: 0; - } -} - -::-moz-placeholder { - color: #f00; -} - -.property-prefix { - -webkit-transition: none; -} - -.value-prefix { - display: -webkit-flex; -} -`) - -test("Vendor prefixes scss", t => { - t.plan(5) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 4, "flags 4 warning") - t.is(result.warnings()[0].text, "Unexpected vendor-prefixed at-rule \"@-webkit-keyframes\" (at-rule-no-vendor-prefix)", "correct warning text") - t.is(result.warnings()[1].text, "Unexpected vendor-prefix \"-webkit-transition\" (property-no-vendor-prefix)", "correct warning text") - t.is(result.warnings()[2].text, "Unexpected vendor-prefix \"::-moz-placeholder\" (selector-no-vendor-prefix)", "correct warning text") - t.is(result.warnings()[3].text, "Unexpected vendor-prefix \"-webkit-flex\" (value-no-vendor-prefix)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unit/zero-unit.spec.js b/__tests__/unit/zero-unit.spec.js deleted file mode 100644 index 399b40b..0000000 --- a/__tests__/unit/zero-unit.spec.js +++ /dev/null @@ -1,30 +0,0 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); - -const invalidScss = ( -`.zerounit { - margin: 0px; -} -`) - -test("Zero unit scss", t => { - t.plan(2) - - postcss() - .use(stylelint({ code: invalidScss, config: config, quietDeprecationWarnings: true, })) - .process(invalidScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) - - function checkResult(result) { - t.equal(result.warnings().length, 1, "flags 1 warning") - t.is(result.warnings()[0].text, "Unexpected unit (length-zero-no-unit)", "correct warning text") - } -}) - -function logError(err) { - console.log(err.stack) -} diff --git a/__tests__/unnecessary-parent-reference.test.mjs b/__tests__/unnecessary-parent-reference.test.mjs new file mode 100644 index 0000000..d664fb9 --- /dev/null +++ b/__tests__/unnecessary-parent-reference.test.mjs @@ -0,0 +1,51 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with unnecessary parent reference', () => { + const invalidScss = ( +`.parentreference { + & > .bar { + color: #f00; + } +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unnecessary nesting selector (&) (scss/selector-no-redundant-nesting-selector)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'scss/selector-no-redundant-nesting-selector', + ], + ); + }); +}); diff --git a/__tests__/url-quotes.test.mjs b/__tests__/url-quotes.test.mjs new file mode 100644 index 0000000..6196c0d --- /dev/null +++ b/__tests__/url-quotes.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with missing url quotes', () => { + const invalidScss = ( +`.quotes-url { + background: url(example.png); +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Expected quotes around "url" function argument (function-url-quotes)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'function-url-quotes', + ], + ); + }); +}); diff --git a/__tests__/unit/valid-scss.spec.js b/__tests__/valid-scss.test.mjs similarity index 87% rename from __tests__/unit/valid-scss.spec.js rename to __tests__/valid-scss.test.mjs index 087c98f..cb89724 100644 --- a/__tests__/unit/valid-scss.spec.js +++ b/__tests__/valid-scss.test.mjs @@ -1,10 +1,12 @@ -const config = require("../../index"); -const stylelint = require("stylelint"); -const postcss = require("postcss"); -const scssSyntax = require("postcss-scss"); -const test = require("tape"); +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; -const validScss = ( +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('does not error or warn on valid scss', () => { + const invalidScss = ( `// Bang Format test .bangformat { color: #000 !important; @@ -324,22 +326,30 @@ $spaceaftervariblename: #f00; margin: 0; } } -`) -test("Valid scss", t => { - t.plan(1) +.button { + @each $key, $value in $colors { + &-#{$key} { + background-color: $value; + } + } +} +`); - postcss() - .use(stylelint({ code: validScss, config: config, quietDeprecationWarnings: true, })) - .process(validScss, { syntax: scssSyntax }) - .then(checkResult) - .catch(logError) + let result; - function checkResult(result) { - t.equal(result.warnings().length, 0, "flags 0 warning") - } -}) + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); -function logError(err) { - console.log(err.stack) -} + it('did not error', () => { + assert.equal(result.errored, false); + }); + + it('flags no warnings', () => { + assert.equal(result.results[0].warnings.length, 0); + }); +}); diff --git a/__tests__/vendor-prefixes.test.mjs b/__tests__/vendor-prefixes.test.mjs new file mode 100644 index 0000000..ad48da2 --- /dev/null +++ b/__tests__/vendor-prefixes.test.mjs @@ -0,0 +1,69 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with vendor prefixes', () => { + const invalidScss = ( +`@-webkit-keyframes anim { + 0% { + opacity: 0; + } +} + +::-moz-placeholder { + color: #f00; +} + +.property-prefix { + -webkit-transition: none; +} + +.value-prefix { + display: -webkit-flex; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 4); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected vendor-prefixed at-rule "@-webkit-keyframes" (at-rule-no-vendor-prefix)', + 'Unexpected vendor-prefix "-webkit-transition" (property-no-vendor-prefix)', + 'Unexpected vendor-prefix "::-moz-placeholder" (selector-no-vendor-prefix)', + 'Unexpected vendor-prefix "-webkit-flex" (value-no-vendor-prefix)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'at-rule-no-vendor-prefix', + 'property-no-vendor-prefix', + 'selector-no-vendor-prefix', + 'value-no-vendor-prefix', + ], + ); + }); +}); diff --git a/__tests__/zero-unit.test.mjs b/__tests__/zero-unit.test.mjs new file mode 100644 index 0000000..4abc359 --- /dev/null +++ b/__tests__/zero-unit.test.mjs @@ -0,0 +1,49 @@ +import { beforeEach, describe, it } from 'node:test'; +import assert from 'node:assert/strict'; + +import stylelint from 'stylelint'; + +import config from '../index.js'; + +describe('flags warnings with zero unit', () => { + const invalidScss = ( +`.zerounit { + margin: 0px; +} +`); + + let result; + + beforeEach(async () => { + result = await stylelint.lint({ + code: invalidScss, + config, + }); + }); + + it('did error', () => { + assert.equal(result.errored, true); + }); + + it('flags warnings', () => { + assert.equal(result.results[0].warnings.length, 1); + }); + + it('correct warning text', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.text), + [ + 'Unexpected unit (length-zero-no-unit)', + ], + ); + }); + + it('correct rule flagged', () => { + assert.deepEqual( + result.results[0].warnings.map((w) => w.rule), + [ + 'length-zero-no-unit', + ], + ); + }); +}); diff --git a/package-lock.json b/package-lock.json index 2a04983..af30e8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,11 @@ "license": "MIT", "dependencies": { "postcss-scss": "^4.0.9", - "stylelint-scss": "^6.0.0" + "stylelint-scss": "^6.2.1" }, "devDependencies": { "postcss": "^8.4.21", - "stylelint": "^16.1.0", - "tape": "^5.6.3" + "stylelint": "^16.1.0" }, "engines": { "node": ">=18.12.0" @@ -202,30 +201,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@ljharb/resumer": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", - "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", - "dev": true, - "dependencies": { - "@ljharb/through": "^2.3.9" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -306,19 +281,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -327,45 +289,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.every": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz", - "integrity": "sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -374,39 +297,11 @@ "node": ">=8" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brace-expansion/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -418,20 +313,6 @@ "node": ">=8" } }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -471,12 +352,6 @@ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -571,78 +446,6 @@ "node": ">=6.0" } }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -654,18 +457,6 @@ "node": ">=8" } }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -692,110 +483,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -880,15 +567,6 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -904,108 +582,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1041,21 +617,6 @@ "node": ">=6" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -1077,37 +638,6 @@ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==" }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-dynamic-import": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz", - "integrity": "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1116,66 +646,6 @@ "node": ">=4" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -1226,344 +696,59 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "which-typed-array": "^1.1.11" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1697,27 +882,6 @@ "node": ">=8.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", @@ -1726,26 +890,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1776,67 +920,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -1865,15 +948,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -1882,12 +956,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", @@ -2012,9 +1080,9 @@ } }, "node_modules/postcss-selector-parser": { - "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==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2041,23 +1109,6 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -2066,23 +1117,6 @@ "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -2173,67 +1207,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -2253,20 +1226,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -2340,18 +1299,6 @@ "node": ">=0.10.0" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2379,51 +1326,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2503,14 +1405,14 @@ } }, "node_modules/stylelint-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.0.0.tgz", - "integrity": "sha512-N1xV/Ef5PNRQQt9E45unzGvBUN1KZxCI8B4FgN/pMfmyRYbZGVN4y9qWlvOMdScU17c8VVCnjIHTVn38Bb6qSA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.2.1.tgz", + "integrity": "sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw==", "dependencies": { "known-css-properties": "^0.29.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.13", + "postcss-selector-parser": "^6.0.15", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2587,18 +1489,6 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -2619,42 +1509,6 @@ "node": ">=10.0.0" } }, - "node_modules/tape": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.2.tgz", - "integrity": "sha512-cvSyprYahyOYXbtBwV/B7nrx7kINeZ3VZ9fKoSywoPwZN3oQ1WVLvt+Vl0XCz/gi37CDrY3dlW790nzviIzoPw==", - "dev": true, - "dependencies": { - "@ljharb/resumer": "^0.0.1", - "@ljharb/through": "^2.3.11", - "array.prototype.every": "^1.1.5", - "call-bind": "^1.0.5", - "deep-equal": "^2.2.2", - "defined": "^1.0.1", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.3", - "has-dynamic-import": "^2.0.1", - "hasown": "^2.0.0", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.8", - "mock-property": "^1.0.2", - "object-inspect": "^1.13.1", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.8" - }, - "bin": { - "tape": "bin/tape" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2666,86 +1520,6 @@ "node": ">=8.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -2770,56 +1544,6 @@ "which": "bin/which" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -2940,12 +1664,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, "node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -3050,24 +1768,6 @@ } } }, - "@ljharb/resumer": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", - "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", - "dev": true, - "requires": { - "@ljharb/through": "^2.3.9" - } - }, - "@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3126,82 +1826,21 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array.prototype.every": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz", - "integrity": "sha512-FfMQJ+/joFGXpRCltbzV3znaP5QxIhLFySo0fEPn3GuoYlud9LhknMCIxdYKC2qsM/6VHoSp6YGwe3EZXrEcwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "is-string": "^1.0.7" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, "balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==" }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - } - } - }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -3210,17 +1849,6 @@ "fill-range": "^7.0.1" } }, - "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - } - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3254,12 +1882,6 @@ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -3318,60 +1940,6 @@ "ms": "2.1.2" } }, - "deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - } - }, - "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3380,15 +1948,6 @@ "path-type": "^4.0.0" } }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3412,92 +1971,6 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - } - }, - "es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - } - }, - "es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3564,15 +2037,6 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, "foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -3582,78 +2046,6 @@ "signal-exit": "^4.0.1" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -3680,15 +2072,6 @@ "which": "^1.3.1" } }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3707,75 +2090,11 @@ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==" }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-dynamic-import": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz", - "integrity": "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, - "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, "html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -3807,107 +2126,16 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3926,120 +2154,16 @@ "is-extglob": "^2.1.1" } }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4144,40 +2268,11 @@ "picomatch": "^2.3.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, "minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" }, - "mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4193,49 +2288,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4255,23 +2307,11 @@ "lines-and-columns": "^1.1.6" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", @@ -4329,9 +2369,9 @@ "requires": {} }, "postcss-selector-parser": { - "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==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -4352,33 +2392,11 @@ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - } - }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" }, - "resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -4440,52 +2458,6 @@ "queue-microtask": "^1.2.2" } }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4499,17 +2471,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, "signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -4558,15 +2519,6 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, - "stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -4587,39 +2539,6 @@ "strip-ansi": "^6.0.1" } }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4697,14 +2616,14 @@ } }, "stylelint-scss": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.0.0.tgz", - "integrity": "sha512-N1xV/Ef5PNRQQt9E45unzGvBUN1KZxCI8B4FgN/pMfmyRYbZGVN4y9qWlvOMdScU17c8VVCnjIHTVn38Bb6qSA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.2.1.tgz", + "integrity": "sha512-ZoGLbVb1keZYRVGQlhB8G6sZOoNqw61whzzzGFWp05N12ErqLFfBv3JPrXiMLZaW98sBS7K/vUQhRnvUj4vwdw==", "requires": { "known-css-properties": "^0.29.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.13", + "postcss-selector-parser": "^6.0.15", "postcss-value-parser": "^4.2.0" } }, @@ -4740,12 +2659,6 @@ } } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -4763,36 +2676,6 @@ "strip-ansi": "^6.0.1" } }, - "tape": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.2.tgz", - "integrity": "sha512-cvSyprYahyOYXbtBwV/B7nrx7kINeZ3VZ9fKoSywoPwZN3oQ1WVLvt+Vl0XCz/gi37CDrY3dlW790nzviIzoPw==", - "dev": true, - "requires": { - "@ljharb/resumer": "^0.0.1", - "@ljharb/through": "^2.3.11", - "array.prototype.every": "^1.1.5", - "call-bind": "^1.0.5", - "deep-equal": "^2.2.2", - "defined": "^1.0.1", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.3", - "has-dynamic-import": "^2.0.1", - "hasown": "^2.0.0", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.8", - "mock-property": "^1.0.2", - "object-inspect": "^1.13.1", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.8" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4801,65 +2684,6 @@ "is-number": "^7.0.0" } }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -4881,44 +2705,6 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -4997,12 +2783,6 @@ } } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, "write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", diff --git a/package.json b/package.json index cc8cb1c..5150571 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ ], "dependencies": { "postcss-scss": "^4.0.9", - "stylelint-scss": "^6.0.0" + "stylelint-scss": "^6.2.1" }, "peerDependencies": { "postcss": "^8.4.21", @@ -39,8 +39,7 @@ }, "devDependencies": { "postcss": "^8.4.21", - "stylelint": "^16.1.0", - "tape": "^5.6.3" + "stylelint": "^16.1.0" }, "scripts": { "release:major": "npm test && npm version major -m \"Released version %s\" && npm publish && git push --follow-tags", @@ -48,6 +47,6 @@ "release:patch": "npm test && npm version patch -m \"Released version %s\" && npm publish && git push --follow-tags", "stylelint-failing-cases": "stylelint __tests__/manual-test-cases/failing-test-cases.scss", "stylelint-passing-cases": "stylelint __tests__/manual-test-cases/passing-test-cases.scss", - "test": "tape \"__tests__/unit/*.spec.js\"" + "test": "node --test" } } From f2ebba4aed4d9add66e543ebbaecaabb63c799fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:04:57 -0500 Subject: [PATCH 3/3] Bump postcss from 8.4.32 to 8.4.35 (#312) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.32 to 8.4.35. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.32...8.4.35) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Brett Jankord --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index af30e8b..f76fe50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -993,9 +993,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -2337,9 +2337,9 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "requires": { "nanoid": "^3.3.7", "picocolors": "^1.0.0",