From 50a21781082951fc65e83f092ee6e5b92d36c298 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sun, 12 Dec 2021 21:21:15 +0100 Subject: [PATCH 01/14] More strong typing Fix #1813 Signed-off-by: Carl Schwan --- lib/Command/ACL.php | 2 +- lib/Command/Delete.php | 2 +- lib/Command/Group.php | 2 +- lib/Command/Quota.php | 2 +- lib/Command/Rename.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/Command/ACL.php b/lib/Command/ACL.php index 40398e9ef..3e035ff84 100644 --- a/lib/Command/ACL.php +++ b/lib/Command/ACL.php @@ -88,7 +88,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = $input->getArgument('folder_id'); + (int)$folderId = $input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { if ($input->getOption('enable')) { diff --git a/lib/Command/Delete.php b/lib/Command/Delete.php index 9a247bc2c..0eb205529 100644 --- a/lib/Command/Delete.php +++ b/lib/Command/Delete.php @@ -53,7 +53,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = $input->getArgument('folder_id'); + $folderId = (int)$input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $helper = $this->getHelper('question'); diff --git a/lib/Command/Group.php b/lib/Command/Group.php index 8c6208507..3d162f6dd 100644 --- a/lib/Command/Group.php +++ b/lib/Command/Group.php @@ -64,7 +64,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = $input->getArgument('folder_id'); + (int)$folderId = $input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $groupString = $input->getArgument('group'); diff --git a/lib/Command/Quota.php b/lib/Command/Quota.php index f661cbcb6..d8e59a328 100644 --- a/lib/Command/Quota.php +++ b/lib/Command/Quota.php @@ -49,7 +49,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = $input->getArgument('folder_id'); + (int)$folderId = $input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $quotaString = strtolower($input->getArgument('quota')); diff --git a/lib/Command/Rename.php b/lib/Command/Rename.php index 6e2216409..69fa1a173 100644 --- a/lib/Command/Rename.php +++ b/lib/Command/Rename.php @@ -48,7 +48,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = $input->getArgument('folder_id'); + $folderId = (int)$input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $this->folderManager->renameFolder($folderId, $input->getArgument('name')); From c22b57dda1f29c33267094d9abec10b8a248a8cd Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Mon, 13 Dec 2021 16:46:58 +0100 Subject: [PATCH 02/14] Maybe fix Ci Signed-off-by: Carl Schwan --- .github/workflows/static-analysis.yml | 5 +--- composer.json | 39 ++++++++++++++------------- tests/psalm-baseline.xml | 3 +++ 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 7248ad6e8..3536fde5c 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -27,10 +27,7 @@ jobs: coverage: none - name: Install dependencies - run: composer i - - - name: Install dependencies - run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }} + run: composer install --dev - name: Run coding standards check run: composer run psalm diff --git a/composer.json b/composer.json index 2194ebef4..fc4624b31 100644 --- a/composer.json +++ b/composer.json @@ -1,20 +1,23 @@ { - "require-dev": { - "phpunit/phpunit": "^9", - "psalm/phar": "^4.3", - "sabre/dav": "^4.1", - "sabre/xml": "^2.2", - "symfony/event-dispatcher": "^5.3.11", - "christophwurst/nextcloud": "dev-master" - }, - "require": { - "php-parallel-lint/php-parallel-lint": "^1.2" - }, - "scripts": { - "lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l", - "cs:check": "php-cs-fixer fix --dry-run --diff", - "cs:fix": "php-cs-fixer fix", - "psalm": "psalm.phar", - "psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType,MismatchingDocblockReturnType,MissingParamType,InvalidFalsableReturnType" - } + "require-dev": { + "phpunit/phpunit": "^9", + "psalm/phar": "^4.3", + "sabre/dav": "^4.1", + "sabre/xml": "^2.2", + "symfony/event-dispatcher": "^5.3.11", + "christophwurst/nextcloud": "dev-master@dev", + "vimeo/psalm": "^4.10" + }, + "require": { + "php-parallel-lint/php-parallel-lint": "^1.2" + }, + "scripts": { + "lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l", + "cs:check": "php-cs-fixer fix --dry-run --diff", + "cs:fix": "php-cs-fixer fix", + "psalm": "psalm --threads=1", + "psalm:update-baseline": "psalm --threads=1 --update-baseline --set-baseline=tests/psalm-baseline.xml", + "psalm:clear": "psalm --clear-cache && psalm --clear-global-cache", + "psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType" + } } diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml index 992629821..786745366 100644 --- a/tests/psalm-baseline.xml +++ b/tests/psalm-baseline.xml @@ -1,5 +1,8 @@ + + + $rootFolder From 5bedf225005c5b539ba783813575e4d30b30443f Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Wed, 15 Dec 2021 12:23:05 +0100 Subject: [PATCH 03/14] Update composer.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julius Härtl --- composer.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index fc4624b31..b8dcd93ec 100644 --- a/composer.json +++ b/composer.json @@ -15,9 +15,9 @@ "lint": "find . -name \\*.php -not -path './vendor/*' -print0 | xargs -0 -n1 php -l", "cs:check": "php-cs-fixer fix --dry-run --diff", "cs:fix": "php-cs-fixer fix", - "psalm": "psalm --threads=1", - "psalm:update-baseline": "psalm --threads=1 --update-baseline --set-baseline=tests/psalm-baseline.xml", - "psalm:clear": "psalm --clear-cache && psalm --clear-global-cache", - "psalm:fix": "psalm --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType" + "psalm": "psalm.phar --threads=1", + "psalm:update-baseline": "psalm.phar --threads=1 --update-baseline --set-baseline=tests/psalm-baseline.xml", + "psalm:clear": "psalm.phar --clear-cache && psalm --clear-global-cache", + "psalm:fix": "psalm.phar --alter --issues=InvalidReturnType,InvalidNullableReturnType,MissingParamType,InvalidFalsableReturnType" } } From f596c6a1bb7a18e34f4901f9a9ca5fce99b09171 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Wed, 15 Dec 2021 14:33:20 +0100 Subject: [PATCH 04/14] Actually cast the type correctly Signed-off-by: Carl Schwan --- lib/Command/ACL.php | 2 +- lib/Command/Group.php | 2 +- lib/Command/Quota.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Command/ACL.php b/lib/Command/ACL.php index 3e035ff84..2bba8e298 100644 --- a/lib/Command/ACL.php +++ b/lib/Command/ACL.php @@ -88,7 +88,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - (int)$folderId = $input->getArgument('folder_id'); + $folderId = (int)$input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { if ($input->getOption('enable')) { diff --git a/lib/Command/Group.php b/lib/Command/Group.php index 3d162f6dd..93ae8e7d6 100644 --- a/lib/Command/Group.php +++ b/lib/Command/Group.php @@ -64,7 +64,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - (int)$folderId = $input->getArgument('folder_id'); + $folderId = (int)$input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $groupString = $input->getArgument('group'); diff --git a/lib/Command/Quota.php b/lib/Command/Quota.php index d8e59a328..78ce3ff44 100644 --- a/lib/Command/Quota.php +++ b/lib/Command/Quota.php @@ -49,7 +49,7 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - (int)$folderId = $input->getArgument('folder_id'); + $folderId = (int)$input->getArgument('folder_id'); $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $quotaString = strtolower($input->getArgument('quota')); From c6a2a00585fc0326a9088ac4b07ea7f0dd96b56b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:40:04 +0000 Subject: [PATCH 05/14] Bump typescript from 4.5.2 to 4.5.4 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.2 to 4.5.4. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.2...v4.5.4) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fed1292c..6aae0c7fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,11 +35,11 @@ "eslint-plugin-react": "^7.27.1", "react-hot-loader": "4.13.0", "ts-loader": "^9.2.6", - "typescript": "^4.5.2" + "typescript": "^4.5.4" }, "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" + "node": "^14.0.0", + "npm": "^7.0.0" } }, "node_modules/@babel/cli": { @@ -14240,9 +14240,9 @@ } }, "node_modules/typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -26736,9 +26736,9 @@ } }, "typescript": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz", - "integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index aa3015f08..474883e22 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "eslint-plugin-react": "^7.27.1", "react-hot-loader": "4.13.0", "ts-loader": "^9.2.6", - "typescript": "^4.5.2" + "typescript": "^4.5.4" }, "dependencies": { "@nextcloud/axios": "^1.8.0", From 01383998838c6dea5ca4e11f2c79504bf5863fd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:40:15 +0000 Subject: [PATCH 06/14] Bump @nextcloud/vue from 4.2.0 to 4.3.0 Bumps [@nextcloud/vue](https://github.com/nextcloud/nextcloud-vue) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/nextcloud/nextcloud-vue/releases) - [Changelog](https://github.com/nextcloud/nextcloud-vue/blob/master/CHANGELOG.md) - [Commits](https://github.com/nextcloud/nextcloud-vue/compare/v4.2.0...v4.3.0) --- updated-dependencies: - dependency-name: "@nextcloud/vue" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fed1292c..1ad6ac450 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "dependencies": { "@nextcloud/axios": "^1.8.0", "@nextcloud/router": "^2.0.0", - "@nextcloud/vue": "^4.2.0", + "@nextcloud/vue": "^4.3.0", "nextcloud-server": "^0.15.10", "oc-react-components": "^0.2.1", "react": "^17.0.2", @@ -38,8 +38,8 @@ "typescript": "^4.5.2" }, "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" + "node": "^14.0.0", + "npm": "^7.0.0" } }, "node_modules/@babel/cli": { @@ -2728,9 +2728,9 @@ "integrity": "sha512-D/PomKwNkDfSKD13DEVQT/pq2TUjN54c6uB341fEZanIzkjfGe7UaFuuaLZbpEiS5j7Wk2MUHAZqZIoECw29lg==" }, "node_modules/@nextcloud/vue": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-4.2.0.tgz", - "integrity": "sha512-i7VZIrfpDcK7/0ZmCU+C7j+pXd4LyxAZpxxu/FS4rJJWR1IolgjGVlBbu8q1NxX0FLc4/xUVj4lv3vyMSdrUOA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-4.3.0.tgz", + "integrity": "sha512-pVwywn13v2iVD2/Ds2ItHQ90+41rsuWFIGs3ZDG4aWl2dluKtOInagnwaPj2Wb91uoMSYEK7d/HwhpJ53cw+ug==", "dependencies": { "@nextcloud/auth": "^1.2.3", "@nextcloud/axios": "^1.3.2", @@ -17575,9 +17575,9 @@ } }, "@nextcloud/vue": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-4.2.0.tgz", - "integrity": "sha512-i7VZIrfpDcK7/0ZmCU+C7j+pXd4LyxAZpxxu/FS4rJJWR1IolgjGVlBbu8q1NxX0FLc4/xUVj4lv3vyMSdrUOA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-4.3.0.tgz", + "integrity": "sha512-pVwywn13v2iVD2/Ds2ItHQ90+41rsuWFIGs3ZDG4aWl2dluKtOInagnwaPj2Wb91uoMSYEK7d/HwhpJ53cw+ug==", "requires": { "@nextcloud/auth": "^1.2.3", "@nextcloud/axios": "^1.3.2", diff --git a/package.json b/package.json index aa3015f08..b73c682b9 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "dependencies": { "@nextcloud/axios": "^1.8.0", "@nextcloud/router": "^2.0.0", - "@nextcloud/vue": "^4.2.0", + "@nextcloud/vue": "^4.3.0", "nextcloud-server": "^0.15.10", "oc-react-components": "^0.2.1", "react": "^17.0.2", From 3fa4db66ab350dc4b59a4a75375f4da7eeb66993 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:40:22 +0000 Subject: [PATCH 07/14] Bump @types/jquery from 3.5.9 to 3.5.10 Bumps [@types/jquery](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jquery) from 3.5.9 to 3.5.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jquery) --- updated-dependencies: - dependency-name: "@types/jquery" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fed1292c..78ec734e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@nextcloud/stylelint-config": "^1.0.0-beta.0", "@nextcloud/webpack-vue-config": "^4.1.4", "@types/bootstrap": "^5.1.6", - "@types/jquery": "^3.5.9", + "@types/jquery": "^3.5.10", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/webpack": "^4.41.26", @@ -38,8 +38,8 @@ "typescript": "^4.5.2" }, "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" + "node": "^14.0.0", + "npm": "^7.0.0" } }, "node_modules/@babel/cli": { @@ -3109,9 +3109,9 @@ } }, "node_modules/@types/jquery": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.9.tgz", - "integrity": "sha512-B8pDk+sH/tSv/HKdx6EQER6BfUOb2GtKs0LOmozziS4h7cbe8u/eYySfUAeTwD+J09SqV3man7AMWIA5mgzCBA==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.10.tgz", + "integrity": "sha512-w2qT5DFikh5TXrW/aOaCvCP8g2MMAfPXo3oeHR9v7dRuAZhu38PUWEkYrL4e9VRTcgZE4yER21AHndgpq2QPTQ==", "dev": true, "dependencies": { "@types/sizzle": "*" @@ -17860,9 +17860,9 @@ } }, "@types/jquery": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.9.tgz", - "integrity": "sha512-B8pDk+sH/tSv/HKdx6EQER6BfUOb2GtKs0LOmozziS4h7cbe8u/eYySfUAeTwD+J09SqV3man7AMWIA5mgzCBA==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.10.tgz", + "integrity": "sha512-w2qT5DFikh5TXrW/aOaCvCP8g2MMAfPXo3oeHR9v7dRuAZhu38PUWEkYrL4e9VRTcgZE4yER21AHndgpq2QPTQ==", "dev": true, "requires": { "@types/sizzle": "*" diff --git a/package.json b/package.json index aa3015f08..a52cf69af 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@nextcloud/stylelint-config": "^1.0.0-beta.0", "@nextcloud/webpack-vue-config": "^4.1.4", "@types/bootstrap": "^5.1.6", - "@types/jquery": "^3.5.9", + "@types/jquery": "^3.5.10", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/webpack": "^4.41.26", From c493661790cfdcea1c7de5fecd6ca2118494e270 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:53:39 +0000 Subject: [PATCH 08/14] Bump @nextcloud/webpack-vue-config from 4.1.4 to 4.2.0 Bumps [@nextcloud/webpack-vue-config](https://github.com/nextcloud/webpack-vue-config) from 4.1.4 to 4.2.0. - [Release notes](https://github.com/nextcloud/webpack-vue-config/releases) - [Changelog](https://github.com/nextcloud/webpack-vue-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/nextcloud/webpack-vue-config/compare/v4.1.4...v4.2.0) --- updated-dependencies: - dependency-name: "@nextcloud/webpack-vue-config" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0435e0de0..3f4b08564 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.0", "@nextcloud/stylelint-config": "^1.0.0-beta.0", - "@nextcloud/webpack-vue-config": "^4.1.4", + "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", "@types/jquery": "^3.5.10", "@types/react": "^17.0.37", @@ -2916,13 +2916,13 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@nextcloud/webpack-vue-config": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-4.1.4.tgz", - "integrity": "sha512-rpM2PQXjGEkdMD6aoEg4YebcuVRSB0e0a8kVZVt5HVtPYScZ/lTOlZqEEOvovNsUOP1lGbneGZwIKlolSqyXsw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-4.2.0.tgz", + "integrity": "sha512-VBvIFus8nWr0rQt2RVDUjF2TV+JGyU24pXZkyqpclonxTDt8XngeW/Zr05GkCIIUvVhB814cpWUAfiznB/4QBQ==", "dev": true, "engines": { - "node": ">=14.0.0", - "npm": ">=7.0.0" + "node": "^14.0.0", + "npm": "^7.0.0" }, "peerDependencies": { "@babel/core": "^7.13.10", @@ -2934,12 +2934,12 @@ "sass": "^1.32.8", "sass-loader": "^12.1.0", "style-loader": "^3.3.1", - "stylelint": "^13.12.0", - "stylelint-webpack-plugin": "^3.0.1", + "stylelint": "^14.0.1", + "stylelint-webpack-plugin": "^3.1.0", "vue-loader": "^15.9.6", "vue-template-compiler": "^2.6.12", "webpack": "~5.46.0", - "webpack-cli": "^4.5.0", + "webpack-cli": "^4.7.0", "webpack-dev-server": "^4.0.0" } }, @@ -17709,9 +17709,9 @@ } }, "@nextcloud/webpack-vue-config": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-4.1.4.tgz", - "integrity": "sha512-rpM2PQXjGEkdMD6aoEg4YebcuVRSB0e0a8kVZVt5HVtPYScZ/lTOlZqEEOvovNsUOP1lGbneGZwIKlolSqyXsw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@nextcloud/webpack-vue-config/-/webpack-vue-config-4.2.0.tgz", + "integrity": "sha512-VBvIFus8nWr0rQt2RVDUjF2TV+JGyU24pXZkyqpclonxTDt8XngeW/Zr05GkCIIUvVhB814cpWUAfiznB/4QBQ==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 4dad7306f..d31080ce1 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.0", "@nextcloud/stylelint-config": "^1.0.0-beta.0", - "@nextcloud/webpack-vue-config": "^4.1.4", + "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", "@types/jquery": "^3.5.10", "@types/react": "^17.0.37", From 6d78c63cf28b48786ec09ab2c51c0edcb6afbc00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:06:19 +0000 Subject: [PATCH 09/14] Bump @nextcloud/eslint-config from 6.1.0 to 6.1.1 Bumps [@nextcloud/eslint-config](https://github.com/nextcloud/eslint-config) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/nextcloud/eslint-config/releases) - [Changelog](https://github.com/nextcloud/eslint-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/nextcloud/eslint-config/compare/v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: "@nextcloud/eslint-config" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 136 +++++++++++++++++++++++++++------------------- package.json | 2 +- 2 files changed, 81 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f4b08564..5ef2dc57d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@babel/preset-react": "^7.16.0", "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", - "@nextcloud/eslint-config": "^6.1.0", + "@nextcloud/eslint-config": "^6.1.1", "@nextcloud/stylelint-config": "^1.0.0-beta.0", "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", @@ -2363,18 +2363,18 @@ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.10.7.tgz", - "integrity": "sha512-aNKZEoMESDzOBjKxCWrFuG50mcpMeKVBnBNko4+IZZ5t9zXYs8GT1KB0ZaOq1YUsKumDRc6YII/TQm309MJ0KQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.13.0.tgz", + "integrity": "sha512-APVqbVPGOprb4BmjEnwbSzV+V2e/6DVIUnZG3zdW5uWXWkN0DKMCpiIy2TdBauoANKYO7RQpO8cTjIYNVSKwUA==", "dev": true, "peer": true, "dependencies": { - "comment-parser": "1.2.3", + "comment-parser": "1.3.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "1.1.1" + "jsdoc-type-pratt-parser": "2.0.0" }, "engines": { - "node": "^12.20 || ^14.14.0 || ^16" + "node": "^12 || ^14 || ^16 || ^17" } }, "node_modules/@eslint/eslintrc": { @@ -2549,10 +2549,14 @@ } }, "node_modules/@nextcloud/eslint-config": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-6.1.0.tgz", - "integrity": "sha512-vQFzM+AAUcUqTbg6obtCs7TMyT9TNmL5PCQqjwx+QYTBi3lA7osD60Gf2kqbhN3pKhal8FNwxHorwvaaqZRC8Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-6.1.1.tgz", + "integrity": "sha512-r2yAhYh/YJYnSEU1xEPWyvQeYI0/0Ej2n0Mjp1RvG8Xf2LGnraTGYDHEX+t0KiGrmD9EUqS1Uj2rRUWy4pxZBA==", "dev": true, + "engines": { + "node": "^14.0.0", + "npm": "^7.0.0" + }, "peerDependencies": { "@babel/core": "^7.13.10", "@babel/eslint-parser": "^7.13.10", @@ -2560,7 +2564,7 @@ "eslint": "^7.13.0", "eslint-config-standard": "^16.0.1", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^36.0.4", + "eslint-plugin-jsdoc": "^37.0.3", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^5.1.0", "eslint-plugin-vue": "^7.15.0", @@ -5164,13 +5168,13 @@ "peer": true }, "node_modules/comment-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.3.tgz", - "integrity": "sha512-vnqDwBSXSsdAkGS5NjwMIPelE47q+UkEgWKHvCDNhVIIaQSUFY6sNnEYGzdoPGMdpV+7KR3ZkRd7oyWIjtuvJg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", "dev": true, "peer": true, "engines": { - "node": "^12.20 || ^14.14.0 || ^16" + "node": ">= 12.0.0" } }, "node_modules/commondir": { @@ -5685,9 +5689,9 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { "ms": "2.1.2" }, @@ -6514,27 +6518,40 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "36.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.0.7.tgz", - "integrity": "sha512-x73l/WCRQ1qCjLq46Ca7csuGd5o3y3vbJIa3cktg11tdf3UZleBdIXKN9Cf0xjs3tXYPEy2SoNXowT8ydnjNDQ==", + "version": "37.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.2.2.tgz", + "integrity": "sha512-ChNYa4JBfEgyx7Fuy3obZM0w1jxd1DFdkMDk9QVrLfdZubtXCVK5Lvx+GKExeCxKLU33wLnOOBoImUL2/16JWQ==", "dev": true, "peer": true, "dependencies": { - "@es-joy/jsdoccomment": "0.10.7", - "comment-parser": "1.2.3", - "debug": "^4.3.2", + "@es-joy/jsdoccomment": "0.13.0", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "^1.1.1", - "lodash": "^4.17.21", + "jsdoc-type-pratt-parser": "^2.0.0", "regextras": "^0.8.0", "semver": "^7.3.5", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^12.20 || ^14.14.0 || ^16" + "node": "^12 || ^14 || ^16 || ^17" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0" + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { @@ -9453,9 +9470,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz", - "integrity": "sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.0.0.tgz", + "integrity": "sha512-sUuj2j48wxrEpbFjDp1sAesAxPiLT+z0SWVmMafyIINs6Lj5gIPKh3VrkBZu4E/Dv+wHpOot0m6H8zlHQjwqeQ==", "dev": true, "peer": true, "engines": { @@ -17276,15 +17293,15 @@ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "@es-joy/jsdoccomment": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.10.7.tgz", - "integrity": "sha512-aNKZEoMESDzOBjKxCWrFuG50mcpMeKVBnBNko4+IZZ5t9zXYs8GT1KB0ZaOq1YUsKumDRc6YII/TQm309MJ0KQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.13.0.tgz", + "integrity": "sha512-APVqbVPGOprb4BmjEnwbSzV+V2e/6DVIUnZG3zdW5uWXWkN0DKMCpiIy2TdBauoANKYO7RQpO8cTjIYNVSKwUA==", "dev": true, "peer": true, "requires": { - "comment-parser": "1.2.3", + "comment-parser": "1.3.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "1.1.1" + "jsdoc-type-pratt-parser": "2.0.0" } }, "@eslint/eslintrc": { @@ -17435,9 +17452,9 @@ } }, "@nextcloud/eslint-config": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-6.1.0.tgz", - "integrity": "sha512-vQFzM+AAUcUqTbg6obtCs7TMyT9TNmL5PCQqjwx+QYTBi3lA7osD60Gf2kqbhN3pKhal8FNwxHorwvaaqZRC8Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-6.1.1.tgz", + "integrity": "sha512-r2yAhYh/YJYnSEU1xEPWyvQeYI0/0Ej2n0Mjp1RvG8Xf2LGnraTGYDHEX+t0KiGrmD9EUqS1Uj2rRUWy4pxZBA==", "dev": true, "requires": {} }, @@ -19558,9 +19575,9 @@ "peer": true }, "comment-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.3.tgz", - "integrity": "sha512-vnqDwBSXSsdAkGS5NjwMIPelE47q+UkEgWKHvCDNhVIIaQSUFY6sNnEYGzdoPGMdpV+7KR3ZkRd7oyWIjtuvJg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", "dev": true, "peer": true }, @@ -19978,9 +19995,9 @@ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" }, @@ -20728,23 +20745,30 @@ } }, "eslint-plugin-jsdoc": { - "version": "36.0.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.0.7.tgz", - "integrity": "sha512-x73l/WCRQ1qCjLq46Ca7csuGd5o3y3vbJIa3cktg11tdf3UZleBdIXKN9Cf0xjs3tXYPEy2SoNXowT8ydnjNDQ==", + "version": "37.2.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.2.2.tgz", + "integrity": "sha512-ChNYa4JBfEgyx7Fuy3obZM0w1jxd1DFdkMDk9QVrLfdZubtXCVK5Lvx+GKExeCxKLU33wLnOOBoImUL2/16JWQ==", "dev": true, "peer": true, "requires": { - "@es-joy/jsdoccomment": "0.10.7", - "comment-parser": "1.2.3", - "debug": "^4.3.2", + "@es-joy/jsdoccomment": "0.13.0", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "^1.1.1", - "lodash": "^4.17.21", + "jsdoc-type-pratt-parser": "^2.0.0", "regextras": "^0.8.0", "semver": "^7.3.5", "spdx-expression-parse": "^3.0.1" }, "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "peer": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -22934,9 +22958,9 @@ } }, "jsdoc-type-pratt-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz", - "integrity": "sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.0.0.tgz", + "integrity": "sha512-sUuj2j48wxrEpbFjDp1sAesAxPiLT+z0SWVmMafyIINs6Lj5gIPKh3VrkBZu4E/Dv+wHpOot0m6H8zlHQjwqeQ==", "dev": true, "peer": true }, diff --git a/package.json b/package.json index d31080ce1..b9f578d4a 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/preset-react": "^7.16.0", "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", - "@nextcloud/eslint-config": "^6.1.0", + "@nextcloud/eslint-config": "^6.1.1", "@nextcloud/stylelint-config": "^1.0.0-beta.0", "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", From a3f84518fff9cc170137e4a78b2da14daea2be1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 14:19:42 +0000 Subject: [PATCH 10/14] Bump @nextcloud/stylelint-config from 1.0.0-beta.0 to 2.0.1 Bumps [@nextcloud/stylelint-config](https://github.com/nextcloud/stylelint-config) from 1.0.0-beta.0 to 2.0.1. - [Release notes](https://github.com/nextcloud/stylelint-config/releases) - [Changelog](https://github.com/nextcloud/stylelint-config/blob/master/CHANGELOG.md) - [Commits](https://github.com/nextcloud/stylelint-config/commits/v2.0.1) --- updated-dependencies: - dependency-name: "@nextcloud/stylelint-config" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 1861 +++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 532 insertions(+), 1331 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ef2dc57d..cb3eb2c98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.1", - "@nextcloud/stylelint-config": "^1.0.0-beta.0", + "@nextcloud/stylelint-config": "^2.0.1", "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", "@types/jquery": "^3.5.10", @@ -2708,14 +2708,19 @@ } }, "node_modules/@nextcloud/stylelint-config": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-1.0.0-beta.0.tgz", - "integrity": "sha512-9k3/bV4jLwOBTQLmbP+E9ER8vrZ9sZsl5UFLnlapM34qedu7a0FW8eYSUCtzJYjYIdvH52QEHODLERhPXxS/cQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-2.0.1.tgz", + "integrity": "sha512-Ao9yYv1PRL4Y4UVLOOV3gla1q8fkACnrpeoCxf7yjTqc48HpxNGqn23BNi2Q/9IPdAE8EwHz4RMgk1Zn0hAWog==", "dev": true, + "engines": { + "node": "^14.0.0", + "npm": "^7.0.0" + }, "peerDependencies": { - "stylelint": "^13.13.1", - "stylelint-config-recommended-scss": "^4.2.0", - "stylelint-scss": "^3.19.0" + "stylelint": "^14.0.1", + "stylelint-config-recommended-scss": "^5.0.1", + "stylelint-config-recommended-vue": "^1.0.0", + "stylelint-scss": "^4.0.0" } }, "node_modules/@nextcloud/typings": { @@ -3014,35 +3019,6 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/core": ">=7.9.0" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "peer": true, - "dependencies": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, "node_modules/@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -3133,16 +3109,6 @@ "dev": true, "peer": true }, - "node_modules/@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/unist": "*" - } - }, "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -3303,13 +3269,6 @@ "source-map": "^0.6.1" } }, - "node_modules/@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", - "dev": true, - "peer": true - }, "node_modules/@types/webpack": { "version": "4.41.26", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", @@ -3665,9 +3624,9 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "peer": true, "engines": { @@ -3937,29 +3896,6 @@ "node": ">= 4.5.0" } }, - "node_modules/autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dev": true, - "peer": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", @@ -4305,17 +4241,6 @@ "babylon": "bin/babylon.js" } }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -4857,39 +4782,6 @@ "node": ">=12.20" } }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", @@ -5357,9 +5249,9 @@ "devOptional": true }, "node_modules/cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "peer": true, "dependencies": { @@ -6007,29 +5899,20 @@ } }, "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, "peer": true, "dependencies": { "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "peer": true - }, "node_modules/dom-serializer/node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -6060,31 +5943,47 @@ } }, "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "peer": true }, "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "peer": true, "dependencies": { - "domelementtype": "1" + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "peer": true, "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/ee-first": { @@ -6210,11 +6109,17 @@ } }, "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, - "peer": true + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/envinfo": { "version": "7.8.1", @@ -7241,13 +7146,6 @@ "ms": "2.0.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "peer": true - }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -7360,18 +7258,17 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { "node": ">=8" @@ -8044,22 +7941,6 @@ "dev": true, "peer": true }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -8336,33 +8217,23 @@ } }, "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "peer": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/htmlparser2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "peer": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" } }, "node_modules/http-deceiver": { @@ -8863,32 +8734,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "peer": true, - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-arguments": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", @@ -9003,17 +8848,6 @@ "node": ">= 0.4" } }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -9106,17 +8940,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-ip": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", @@ -9343,19 +9166,6 @@ "dev": true, "peer": true }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakref": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", @@ -9546,9 +9356,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", + "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", "dev": true, "peer": true }, @@ -9655,13 +9465,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true, - "peer": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -9691,34 +9494,6 @@ "dev": true, "peer": true }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -9825,54 +9600,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -10228,27 +9955,6 @@ "node": ">= 0.6" } }, - "node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "peer": true, - "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, "node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -10677,16 +10383,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", @@ -10707,13 +10403,6 @@ "node": ">=8" } }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true, - "peer": true - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11134,25 +10823,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "peer": true, - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -11419,30 +11089,64 @@ } }, "node_modules/postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.3.0.tgz", + "integrity": "sha512-ewbwd7OGW4dLsErtvZH9HpVMEcXnlhYSzKsr7MepGlOT8imHTIZ/+pdfEruLS+hTYapLTQAWDnoQcJpsYU4uRw==", "dev": true, "peer": true, "dependencies": { - "htmlparser2": "^3.10.0" + "htmlparser2": "^7.1.2", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" }, - "peerDependencies": { - "postcss": ">=5.0.0", - "postcss-syntax": ">=0.36.0" + "engines": { + "node": "^12 || >=14" } }, - "node_modules/postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "node_modules/postcss-html/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dev": true, "peer": true, "dependencies": { - "postcss": "^7.0.14" + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=6.14.4" + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-html/node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-html/node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/postcss-media-query-parser": { @@ -11459,43 +11163,6 @@ "dev": true, "peer": true }, - "node_modules/postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "peer": true, - "dependencies": { - "postcss": "^7.0.26" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "peer": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - } - }, - "node_modules/postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "peer": true, - "dependencies": { - "postcss": "^7.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/postcss-selector-parser": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", @@ -11510,16 +11177,6 @@ "node": ">=4" } }, - "node_modules/postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "peer": true, - "peerDependencies": { - "postcss": ">=5.0.0" - } - }, "node_modules/postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", @@ -12127,50 +11784,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "peer": true, - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "peer": true, - "dependencies": { - "mdast-util-from-markdown": "^0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "peer": true, - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -12190,7 +11803,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "devOptional": true, + "optional": true, "engines": { "node": ">=0.10" } @@ -13229,15 +12842,15 @@ } }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" @@ -13283,13 +12896,13 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "peer": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -13371,58 +12984,48 @@ "peer": true }, "node_modules/stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", + "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", "dev": true, "peer": true, "dependencies": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", "execall": "^2.0.0", - "fast-glob": "^3.2.5", + "fast-glob": "^3.2.7", "fastest-levenshtein": "^1.0.12", "file-entry-cache": "^6.0.1", "get-stdin": "^8.0.0", "global-modules": "^2.0.0", - "globby": "^11.0.3", + "globby": "^11.0.4", "globjoin": "^0.1.4", "html-tags": "^3.1.0", - "ignore": "^5.1.8", + "ignore": "^5.1.9", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.23.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.6", "postcss-value-parser": "^4.1.0", "resolve-from": "^5.0.0", - "slash": "^3.0.0", "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "sugarss": "^2.0.0", "svg-tags": "^1.0.0", - "table": "^6.6.0", + "table": "^6.7.3", "v8-compile-cache": "^2.3.0", "write-file-atomic": "^3.0.3" }, @@ -13430,55 +13033,131 @@ "stylelint": "bin/stylelint.js" }, "engines": { - "node": ">=10.13.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/stylelint" } }, + "node_modules/stylelint-config-html": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.0.0.tgz", + "integrity": "sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==", + "dev": true, + "peer": true, + "engines": { + "node": "^12 || >=14" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, "node_modules/stylelint-config-recommended": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", - "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", "dev": true, "peer": true, "peerDependencies": { - "stylelint": ">=10.1.0" + "stylelint": "^14.0.0" } }, "node_modules/stylelint-config-recommended-scss": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.2.0.tgz", - "integrity": "sha512-4bI5BYbabo/GCQ6LbRZx/ZlVkK65a1jivNNsD+ix/Lw0U3iAch+jQcvliGnnAX8SUPaZ0UqzNVNNAF3urswa7g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "peer": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "peer": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/postcss-scss": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", + "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint-config-recommended-vue": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.1.0.tgz", + "integrity": "sha512-6O9gHdZ5nmnpq+qJv19pLEcZTZ/BV7ZzBmtl0J/kx92tGwe4CRqoO//SswibLWQP/1VwOaTrjJxN497pNfw7VA==", "dev": true, "peer": true, "dependencies": { - "stylelint-config-recommended": "^3.0.0" + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended": ">=6.0.0" + }, + "engines": { + "node": "^12 || >=14" }, "peerDependencies": { - "stylelint": "^10.1.0 || ^11.0.0 || ^12.0.0 || ^13.0.0", - "stylelint-scss": "^3.0.0" + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" } }, "node_modules/stylelint-scss": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.19.0.tgz", - "integrity": "sha512-Ic5bsmpS4wVucOw44doC1Yi9f5qbeVL4wPFiEOaUElgsOuLEN6Ofn/krKI8BeNL2gAn53Zu+IcVV4E345r6rBw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.0.1.tgz", + "integrity": "sha512-Ea+KY7ZFsDhU6Ne9r84y7NvFSNA843w352MSdQeDmklar0pDbeQj9flKrVAuDIlK0pDDdhFtgBl/N0FrtWHq0g==", "dev": true, "peer": true, "dependencies": { - "lodash": "^4.17.15", + "lodash": "^4.17.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^6.0.6", "postcss-value-parser": "^4.1.0" }, - "engines": { - "node": ">=8" - }, "peerDependencies": { - "stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0" + "stylelint": "^14.0.0" } }, "node_modules/stylelint-webpack-plugin": { @@ -13695,9 +13374,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "peer": true, "engines": { @@ -13714,6 +13393,16 @@ "node": ">=0.12.0" } }, + "node_modules/stylelint/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==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stylelint/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -13728,6 +13417,42 @@ "node": ">=8.6" } }, + "node_modules/stylelint/node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "peer": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/stylelint/node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -13738,6 +13463,16 @@ "node": ">=8" } }, + "node_modules/stylelint/node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stylelint/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -13756,16 +13491,6 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, - "node_modules/sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "peer": true, - "dependencies": { - "postcss": "^7.0.2" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -13795,18 +13520,17 @@ "peer": true }, "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "peer": true, "dependencies": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=10.0.0" @@ -14052,17 +13776,6 @@ "node": ">=8" } }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/ts-loader": { "version": "9.2.6", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz", @@ -14317,59 +14030,6 @@ "node": ">=4" } }, - "node_modules/unified": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz", - "integrity": "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==", - "dev": true, - "peer": true, - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -14385,45 +14045,6 @@ "node": ">=0.10.0" } }, - "node_modules/unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "peer": true, - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -14613,62 +14234,6 @@ "node": ">= 0.8" } }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -15487,17 +15052,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true, - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } } }, "dependencies": { @@ -17570,9 +17124,9 @@ } }, "@nextcloud/stylelint-config": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-1.0.0-beta.0.tgz", - "integrity": "sha512-9k3/bV4jLwOBTQLmbP+E9ER8vrZ9sZsl5UFLnlapM34qedu7a0FW8eYSUCtzJYjYIdvH52QEHODLERhPXxS/cQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-2.0.1.tgz", + "integrity": "sha512-Ao9yYv1PRL4Y4UVLOOV3gla1q8fkACnrpeoCxf7yjTqc48HpxNGqn23BNi2Q/9IPdAE8EwHz4RMgk1Zn0hAWog==", "dev": true, "requires": {} }, @@ -17786,27 +17340,6 @@ "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==", "dev": true }, - "@stylelint/postcss-css-in-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", - "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", - "dev": true, - "peer": true, - "requires": { - "@babel/core": ">=7.9.0" - } - }, - "@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "peer": true, - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - } - }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -17897,16 +17430,6 @@ "dev": true, "peer": true }, - "@types/mdast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", - "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", - "dev": true, - "peer": true, - "requires": { - "@types/unist": "*" - } - }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -18057,13 +17580,6 @@ "source-map": "^0.6.1" } }, - "@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", - "dev": true, - "peer": true - }, "@types/webpack": { "version": "4.41.26", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", @@ -18374,9 +17890,9 @@ "peer": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "peer": true }, @@ -18589,22 +18105,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "optional": true }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dev": true, - "peer": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, "available-typed-arrays": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", @@ -18902,13 +18402,6 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true, - "peer": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -19338,27 +18831,6 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.0.tgz", "integrity": "sha512-oGu2QekBMXgyQNWPDRQ001bjvDnZe4/zBTz37TMbiKz1NbNiyiH5hRkobe7npRN6GfbGbxMYFck/vQ1r9c1VMA==" }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true, - "peer": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true, - "peer": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true, - "peer": true - }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", @@ -19738,9 +19210,9 @@ "devOptional": true }, "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "peer": true, "requires": { @@ -20264,23 +19736,17 @@ } }, "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, "peer": true, "requires": { "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", "entities": "^2.0.0" }, "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "peer": true - }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -20304,31 +19770,32 @@ "peer": true }, "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true, "peer": true }, "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "peer": true, "requires": { - "domelementtype": "1" + "domelementtype": "^2.2.0" } }, "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "peer": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" } }, "ee-first": { @@ -20442,9 +19909,9 @@ } }, "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, "peer": true }, @@ -21253,13 +20720,6 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "peer": true - }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -21352,18 +20812,17 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "peer": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "dependencies": { "braces": { @@ -21883,16 +21342,6 @@ "dev": true, "peer": true }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "peer": true, - "requires": { - "minimist": "^1.2.5" - } - }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -22110,32 +21559,16 @@ "peer": true }, "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", "dev": true, "peer": true, "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" } }, "http-deceiver": { @@ -22521,24 +21954,6 @@ } } }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true, - "peer": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "peer": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, "is-arguments": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", @@ -22622,15 +22037,8 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true, - "peer": true + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true }, "is-descriptor": { "version": "0.1.6", @@ -22693,13 +22101,6 @@ "is-extglob": "^2.1.1" } }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true, - "peer": true - }, "is-ip": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", @@ -22862,13 +22263,6 @@ "dev": true, "peer": true }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "peer": true - }, "is-weakref": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", @@ -23019,9 +22413,9 @@ "peer": true }, "known-css-properties": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz", - "integrity": "sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.23.0.tgz", + "integrity": "sha512-h9ivI88e1lFNmTT4HovBN33Ysn0OIJG7IPG2mkpx2uniQXFWqo35QdiX7w0TovlUFXfW8aPFblP5/q0jlOr2sA==", "dev": true, "peer": true }, @@ -23110,13 +22504,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true, - "peer": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -23146,24 +22533,6 @@ "dev": true, "peer": true }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "peer": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", - "dev": true, - "peer": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -23248,42 +22617,6 @@ "safe-buffer": "^5.1.2" } }, - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dev": true, - "peer": true, - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dev": true, - "peer": true, - "requires": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "dev": true, - "peer": true - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -23561,17 +22894,6 @@ "dev": true, "peer": true }, - "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "dev": true, - "peer": true, - "requires": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -23924,13 +23246,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "devOptional": true }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "peer": true - }, "normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", @@ -23948,13 +23263,6 @@ "path-key": "^3.0.0" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true, - "peer": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -24269,21 +23577,6 @@ "safe-buffer": "^5.1.1" } }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "peer": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -24539,23 +23832,44 @@ } }, "postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "peer": true, - "requires": { - "htmlparser2": "^3.10.0" - } - }, - "postcss-less": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", - "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.3.0.tgz", + "integrity": "sha512-ewbwd7OGW4dLsErtvZH9HpVMEcXnlhYSzKsr7MepGlOT8imHTIZ/+pdfEruLS+hTYapLTQAWDnoQcJpsYU4uRw==", "dev": true, "peer": true, "requires": { - "postcss": "^7.0.14" + "htmlparser2": "^7.1.2", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "dependencies": { + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "peer": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true + } } }, "postcss-media-query-parser": { @@ -24572,37 +23886,6 @@ "dev": true, "peer": true }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "dev": true, - "peer": true, - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-sass": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", - "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", - "dev": true, - "peer": true, - "requires": { - "gonzales-pe": "^4.3.0", - "postcss": "^7.0.21" - } - }, - "postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "peer": true, - "requires": { - "postcss": "^7.0.6" - } - }, "postcss-selector-parser": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", @@ -24614,14 +23897,6 @@ "util-deprecate": "^1.0.2" } }, - "postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "peer": true, - "requires": {} - }, "postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", @@ -25070,38 +24345,6 @@ } } }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dev": true, - "peer": true, - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - } - }, - "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dev": true, - "peer": true, - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - }, - "remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dev": true, - "peer": true, - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -25118,7 +24361,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "devOptional": true + "optional": true }, "require-from-string": { "version": "2.0.2", @@ -25969,15 +25212,15 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "peer": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string.prototype.matchall": { @@ -26017,13 +25260,13 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "peer": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -26078,58 +25321,48 @@ "peer": true }, "stylelint": { - "version": "13.13.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.13.1.tgz", - "integrity": "sha512-Mv+BQr5XTUrKqAXmpqm6Ddli6Ief+AiPZkRsIrAoUKFuq/ElkUh9ZMYxXD0iQNZ5ADghZKLOWz1h7hTClB7zgQ==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.1.0.tgz", + "integrity": "sha512-IedkssuNVA11+v++2PIV2OHOU5A3SfRcXVi56vZVSsMhGrgtwmmit69jeM+08/Tun5DTBe7BuH1Zp1mMLmtKLA==", "dev": true, "peer": true, "requires": { - "@stylelint/postcss-css-in-js": "^0.37.2", - "@stylelint/postcss-markdown": "^0.36.2", - "autoprefixer": "^9.8.6", "balanced-match": "^2.0.0", - "chalk": "^4.1.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", "execall": "^2.0.0", - "fast-glob": "^3.2.5", + "fast-glob": "^3.2.7", "fastest-levenshtein": "^1.0.12", "file-entry-cache": "^6.0.1", "get-stdin": "^8.0.0", "global-modules": "^2.0.0", - "globby": "^11.0.3", + "globby": "^11.0.4", "globjoin": "^0.1.4", "html-tags": "^3.1.0", - "ignore": "^5.1.8", + "ignore": "^5.1.9", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", - "known-css-properties": "^0.21.0", - "lodash": "^4.17.21", - "log-symbols": "^4.1.0", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.23.0", "mathml-tag-names": "^2.1.3", "meow": "^9.0.0", "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", - "postcss": "^7.0.35", - "postcss-html": "^0.36.0", - "postcss-less": "^3.1.4", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^4.0.2", - "postcss-sass": "^0.4.4", - "postcss-scss": "^2.1.1", - "postcss-selector-parser": "^6.0.5", - "postcss-syntax": "^0.36.2", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.6", "postcss-value-parser": "^4.1.0", "resolve-from": "^5.0.0", - "slash": "^3.0.0", "specificity": "^0.4.1", - "string-width": "^4.2.2", - "strip-ansi": "^6.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "style-search": "^0.1.0", - "sugarss": "^2.0.0", "svg-tags": "^1.0.0", - "table": "^6.6.0", + "table": "^6.7.3", "v8-compile-cache": "^2.3.0", "write-file-atomic": "^3.0.3" }, @@ -26184,9 +25417,9 @@ } }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "peer": true }, @@ -26197,6 +25430,13 @@ "dev": true, "peer": true }, + "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==", + "dev": true, + "peer": true + }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -26208,6 +25448,26 @@ "picomatch": "^2.2.3" } }, + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "peer": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "peer": true, + "requires": {} + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -26215,6 +25475,13 @@ "dev": true, "peer": true }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -26227,35 +25494,85 @@ } } }, + "stylelint-config-html": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.0.0.tgz", + "integrity": "sha512-rKQUUWDpaYC7ybsS6tLxddjn6DxhjSIXybElSmcTyVQj3ExhmU3q+l41ktrlwHRyY0M5SkTkZiwngvYPYmsgSQ==", + "dev": true, + "peer": true, + "requires": {} + }, "stylelint-config-recommended": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-3.0.0.tgz", - "integrity": "sha512-F6yTRuc06xr1h5Qw/ykb2LuFynJ2IxkKfCMf+1xqPffkxh0S09Zc902XCffcsw/XMFq/OzQ1w54fLIDtmRNHnQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", "dev": true, "peer": true, "requires": {} }, "stylelint-config-recommended-scss": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-4.2.0.tgz", - "integrity": "sha512-4bI5BYbabo/GCQ6LbRZx/ZlVkK65a1jivNNsD+ix/Lw0U3iAch+jQcvliGnnAX8SUPaZ0UqzNVNNAF3urswa7g==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz", + "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==", + "dev": true, + "peer": true, + "requires": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^6.0.0", + "stylelint-scss": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "peer": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "postcss-scss": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.2.tgz", + "integrity": "sha512-xfdkU128CkKKKVAwkyt0M8OdnelJ3MRcIRAPPQkRpoPeuzWY3RIeg7piRCpZ79MK7Q16diLXMMAD9dN5mauPlQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "peer": true + } + } + }, + "stylelint-config-recommended-vue": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.1.0.tgz", + "integrity": "sha512-6O9gHdZ5nmnpq+qJv19pLEcZTZ/BV7ZzBmtl0J/kx92tGwe4CRqoO//SswibLWQP/1VwOaTrjJxN497pNfw7VA==", "dev": true, "peer": true, "requires": { - "stylelint-config-recommended": "^3.0.0" + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended": ">=6.0.0" } }, "stylelint-scss": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.19.0.tgz", - "integrity": "sha512-Ic5bsmpS4wVucOw44doC1Yi9f5qbeVL4wPFiEOaUElgsOuLEN6Ofn/krKI8BeNL2gAn53Zu+IcVV4E345r6rBw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.0.1.tgz", + "integrity": "sha512-Ea+KY7ZFsDhU6Ne9r84y7NvFSNA843w352MSdQeDmklar0pDbeQj9flKrVAuDIlK0pDDdhFtgBl/N0FrtWHq0g==", "dev": true, "peer": true, "requires": { - "lodash": "^4.17.15", + "lodash": "^4.17.21", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^6.0.6", "postcss-value-parser": "^4.1.0" } }, @@ -26370,16 +25687,6 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "peer": true, - "requires": { - "postcss": "^7.0.2" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -26405,18 +25712,17 @@ "peer": true }, "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "peer": true, "requires": { "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { "ajv": { @@ -26601,13 +25907,6 @@ "dev": true, "peer": true }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true, - "peer": true - }, "ts-loader": { "version": "9.2.6", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz", @@ -26801,37 +26100,6 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, - "unified": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz", - "integrity": "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==", - "dev": true, - "peer": true, - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "peer": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "peer": true - } - } - }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -26844,33 +26112,6 @@ "set-value": "^2.0.1" } }, - "unist-util-find-all-after": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", - "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", - "dev": true, - "peer": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true, - "peer": true - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "peer": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -27034,39 +26275,6 @@ "dev": true, "peer": true }, - "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "peer": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "peer": true - } - } - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "peer": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -27662,13 +26870,6 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "peer": true - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true, - "peer": true } } } diff --git a/package.json b/package.json index b9f578d4a..2203527f8 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.1", - "@nextcloud/stylelint-config": "^1.0.0-beta.0", + "@nextcloud/stylelint-config": "^2.0.1", "@nextcloud/webpack-vue-config": "^4.2.0", "@types/bootstrap": "^5.1.6", "@types/jquery": "^3.5.10", From c016c6854dd0159f7e797bf1ec754b04f7c1c334 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Thu, 16 Dec 2021 12:11:01 +0100 Subject: [PATCH 11/14] Check if folderId is an int Prevents accidentaly selecting the first groupfolder when for example typing the folder name of another groupfolder. Signed-off-by: Carl Schwan --- lib/Command/ACL.php | 5 +++++ lib/Command/Delete.php | 7 ++++++- lib/Command/Group.php | 5 +++++ lib/Command/Quota.php | 5 +++++ lib/Command/Rename.php | 5 +++++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/Command/ACL.php b/lib/Command/ACL.php index 2bba8e298..520368f66 100644 --- a/lib/Command/ACL.php +++ b/lib/Command/ACL.php @@ -89,6 +89,11 @@ protected function configure() { protected function execute(InputInterface $input, OutputInterface $output) { $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return; + } $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { if ($input->getOption('enable')) { diff --git a/lib/Command/Delete.php b/lib/Command/Delete.php index 0eb205529..896e986a0 100644 --- a/lib/Command/Delete.php +++ b/lib/Command/Delete.php @@ -54,10 +54,15 @@ protected function configure() { protected function execute(InputInterface $input, OutputInterface $output) { $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return; + } $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $helper = $this->getHelper('question'); - $question = new ConfirmationQuestion('Are you sure you want to delete the group folder' . $folder['mount_point'] . ' and all files within, this cannot be undone (y/N).', false); + $question = new ConfirmationQuestion('Are you sure you want to delete the group folder ' . $folder['mount_point'] . ' and all files within, this cannot be undone (y/N).', false); if ($input->getOption('force') || $helper->ask($input, $output, $question)) { $folder = $this->mountProvider->getFolder($folderId); $this->folderManager->removeFolder($folderId); diff --git a/lib/Command/Group.php b/lib/Command/Group.php index 93ae8e7d6..6f7d8f62a 100644 --- a/lib/Command/Group.php +++ b/lib/Command/Group.php @@ -65,6 +65,11 @@ protected function configure() { protected function execute(InputInterface $input, OutputInterface $output) { $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return; + } $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $groupString = $input->getArgument('group'); diff --git a/lib/Command/Quota.php b/lib/Command/Quota.php index 78ce3ff44..cf0102fa7 100644 --- a/lib/Command/Quota.php +++ b/lib/Command/Quota.php @@ -50,6 +50,11 @@ protected function configure() { protected function execute(InputInterface $input, OutputInterface $output) { $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return; + } $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $quotaString = strtolower($input->getArgument('quota')); diff --git a/lib/Command/Rename.php b/lib/Command/Rename.php index 69fa1a173..0ddfc6b03 100644 --- a/lib/Command/Rename.php +++ b/lib/Command/Rename.php @@ -49,6 +49,11 @@ protected function configure() { protected function execute(InputInterface $input, OutputInterface $output) { $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return; + } $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); if ($folder) { $this->folderManager->renameFolder($folderId, $input->getArgument('name')); From 17aff8dfc6a439d87c3d52720922d6b2b47df099 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Thu, 16 Dec 2021 13:01:46 +0100 Subject: [PATCH 12/14] More refactoring Signed-off-by: Carl Schwan --- lib/Command/ACL.php | 217 ++++++++++++++++------------------ lib/Command/Delete.php | 45 ++----- lib/Command/FolderCommand.php | 66 +++++++++++ lib/Command/Quota.php | 41 ++----- lib/Command/Rename.php | 25 +--- lib/Command/Scan.php | 86 ++++++-------- 6 files changed, 235 insertions(+), 245 deletions(-) create mode 100644 lib/Command/FolderCommand.php diff --git a/lib/Command/ACL.php b/lib/Command/ACL.php index 520368f66..bfa4d42f5 100644 --- a/lib/Command/ACL.php +++ b/lib/Command/ACL.php @@ -22,6 +22,7 @@ namespace OCA\GroupFolders\Command; use OC\Core\Command\Base; +use OCA\GroupFolders\Command\FolderCommand; use OCA\GroupFolders\ACL\ACLManagerFactory; use OCA\GroupFolders\ACL\Rule; use OCA\GroupFolders\ACL\RuleManager; @@ -37,7 +38,7 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; -class ACL extends Base { +class ACL extends FolderCommand { const PERMISSIONS_MAP = [ 'read' => Constants::PERMISSION_READ, 'write' => Constants::PERMISSION_UPDATE, @@ -46,10 +47,7 @@ class ACL extends Base { 'share' => Constants::PERMISSION_SHARE, ]; - private $folderManager; - private $rootFolder; private $ruleManager; - private $mountProvider; private $aclManagerFactory; private $userManager; @@ -61,11 +59,8 @@ public function __construct( ACLManagerFactory $aclManagerFactory, IUserManager $userManager ) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; + parent::__construct($folderManager, $rootFolder, $mountProvider); $this->ruleManager = $ruleManager; - $this->mountProvider = $mountProvider; $this->aclManagerFactory = $aclManagerFactory; $this->userManager = $userManager; } @@ -88,122 +83,114 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - if ((string)$folderId !== $input->getArgument('folder_id')) { - // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) - $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); - return; + $folder = $this->getFolder($input, $output); + if ($folder === false) { + return -1; } - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - if ($input->getOption('enable')) { - $this->folderManager->setFolderACL($folderId, true); - } elseif ($input->getOption('disable')) { - $this->folderManager->setFolderACL($folderId, false); - } elseif ($input->getOption('test')) { - if ($input->getOption('user') && ($input->getArgument('path'))) { - $mappingId = $input->getOption('user'); - $user = $this->userManager->get($mappingId); - if (!$user) { - $output->writeln('User not found: ' . $mappingId . ''); - return -1; - } - $jailPath = $this->mountProvider->getJailPath((int)$folder['id']); - $path = $input->getArgument('path'); - $aclManager = $this->aclManagerFactory->getACLManager($user); - $permissions = $aclManager->getACLPermissionsForPath($jailPath . rtrim('/' . $path, '/')); - $permissionString = $this->formatRulePermissions(Constants::PERMISSION_ALL, $permissions); - $output->writeln($permissionString); - return; - } else { - $output->writeln('--user and options needs to be set for permissions testing'); - return -3; + if ($input->getOption('enable')) { + $this->folderManager->setFolderACL($folderId, true); + } elseif ($input->getOption('disable')) { + $this->folderManager->setFolderACL($folderId, false); + } elseif ($input->getOption('test')) { + if ($input->getOption('user') && ($input->getArgument('path'))) { + $mappingId = $input->getOption('user'); + $user = $this->userManager->get($mappingId); + if (!$user) { + $output->writeln('User not found: ' . $mappingId . ''); + return -1; } - } elseif (!$folder['acl']) { - $output->writeln('Advanced permissions not enabled for folder: ' . $folderId . ''); - return -2; - } elseif ( - !$input->getArgument('path') && - !$input->getArgument('permissions') && - !$input->getOption('user') && - !$input->getOption('group') - ) { - $this->printPermissions($input, $output, $folder); - } elseif ($input->getOption('manage-add') && ($input->getOption('user') || $input->getOption('group'))) { - $mappingType = $input->getOption('user') ? 'user' : 'group'; - $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); - $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, true); - } elseif ($input->getOption('manage-remove') && ($input->getOption('user') || $input->getOption('group'))) { - $mappingType = $input->getOption('user') ? 'user' : 'group'; - $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); - $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, false); - } elseif (!$input->getArgument('path')) { - $output->writeln(' argument has to be set when not using --enable or --disable'); - return -3; - } elseif (!$input->getArgument('permissions')) { - $output->writeln(' argument has to be set when not using --enable or --disable'); - return -3; - } elseif ($input->getOption('user') && $input->getOption('group')) { - $output->writeln('--user and --group can not be used at the same time'); - return -3; - } elseif (!$input->getOption('user') && !$input->getOption('group')) { - $output->writeln('either --user or --group has to be used when not using --enable or --disable'); - return -3; - } else { - $mappingType = $input->getOption('user') ? 'user' : 'group'; - $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); + $jailPath = $this->mountProvider->getJailPath((int)$folder['id']); $path = $input->getArgument('path'); - $path = trim($path, '/'); - $permissionStrings = $input->getArgument('permissions'); + $aclManager = $this->aclManagerFactory->getACLManager($user); + $permissions = $aclManager->getACLPermissionsForPath($jailPath . rtrim('/' . $path, '/')); + $permissionString = $this->formatRulePermissions(Constants::PERMISSION_ALL, $permissions); + $output->writeln($permissionString); + return; + } else { + $output->writeln('--user and options needs to be set for permissions testing'); + return -3; + } + } elseif (!$folder['acl']) { + $output->writeln('Advanced permissions not enabled for folder: ' . $folderId . ''); + return -2; + } elseif ( + !$input->getArgument('path') && + !$input->getArgument('permissions') && + !$input->getOption('user') && + !$input->getOption('group') + ) { + $this->printPermissions($input, $output, $folder); + } elseif ($input->getOption('manage-add') && ($input->getOption('user') || $input->getOption('group'))) { + $mappingType = $input->getOption('user') ? 'user' : 'group'; + $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); + $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, true); + } elseif ($input->getOption('manage-remove') && ($input->getOption('user') || $input->getOption('group'))) { + $mappingType = $input->getOption('user') ? 'user' : 'group'; + $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); + $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, false); + } elseif (!$input->getArgument('path')) { + $output->writeln(' argument has to be set when not using --enable or --disable'); + return -3; + } elseif (!$input->getArgument('permissions')) { + $output->writeln(' argument has to be set when not using --enable or --disable'); + return -3; + } elseif ($input->getOption('user') && $input->getOption('group')) { + $output->writeln('--user and --group can not be used at the same time'); + return -3; + } elseif (!$input->getOption('user') && !$input->getOption('group')) { + $output->writeln('either --user or --group has to be used when not using --enable or --disable'); + return -3; + } else { + $mappingType = $input->getOption('user') ? 'user' : 'group'; + $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); + $path = $input->getArgument('path'); + $path = trim($path, '/'); + $permissionStrings = $input->getArgument('permissions'); - $mount = $this->mountProvider->getMount( - $folder['id'], - '/dummy/files/' . $folder['mount_point'], - $folder['permissions'], - $folder['quota'], - $folder['rootCacheEntry'], - null, - $folder['acl'] - ); - $id = $mount->getStorage()->getCache()->getId($path); - if ($id === -1) { - $output->writeln('Path not found in folder: ' . $path . ''); - return -1; - } + $mount = $this->mountProvider->getMount( + $folder['id'], + '/dummy/files/' . $folder['mount_point'], + $folder['permissions'], + $folder['quota'], + $folder['rootCacheEntry'], + null, + $folder['acl'] + ); + $id = $mount->getStorage()->getCache()->getId($path); + if ($id === -1) { + $output->writeln('Path not found in folder: ' . $path . ''); + return -1; + } - if ($permissionStrings === ['clear']) { - $this->ruleManager->deleteRule(new Rule( - new UserMapping($mappingType, $mappingId), - $id, - 0, - 0 - )); - } else { - foreach ($permissionStrings as $permission) { - if ($permission[0] !== '+' && $permission[0] !== '-') { - $output->writeln('incorrect format for permissions "' . $permission . '"'); - return -3; - } - $name = substr($permission, 1); - if (!isset(self::PERMISSIONS_MAP[$name])) { - $output->writeln('incorrect format for permissions2 "' . $permission . '"'); - return -3; - } + if ($permissionStrings === ['clear']) { + $this->ruleManager->deleteRule(new Rule( + new UserMapping($mappingType, $mappingId), + $id, + 0, + 0 + )); + } else { + foreach ($permissionStrings as $permission) { + if ($permission[0] !== '+' && $permission[0] !== '-') { + $output->writeln('incorrect format for permissions "' . $permission . '"'); + return -3; } + $name = substr($permission, 1); + if (!isset(self::PERMISSIONS_MAP[$name])) { + $output->writeln('incorrect format for permissions2 "' . $permission . '"'); + return -3; + } + } - [$mask, $permissions] = $this->parsePermissions($permissionStrings); + [$mask, $permissions] = $this->parsePermissions($permissionStrings); - $this->ruleManager->saveRule(new Rule( - new UserMapping($mappingType, $mappingId), - $id, - $mask, - $permissions - )); - } + $this->ruleManager->saveRule(new Rule( + new UserMapping($mappingType, $mappingId), + $id, + $mask, + $permissions + )); } - } else { - $output->writeln('Folder not found: ' . $folderId . ''); - return -1; } return 0; } diff --git a/lib/Command/Delete.php b/lib/Command/Delete.php index 896e986a0..7e3db5977 100644 --- a/lib/Command/Delete.php +++ b/lib/Command/Delete.php @@ -22,27 +22,14 @@ namespace OCA\GroupFolders\Command; use OC\Core\Command\Base; -use OCA\GroupFolders\Folder\FolderManager; -use OCA\GroupFolders\Mount\MountProvider; -use OCP\Files\IRootFolder; +use OCA\GroupFolders\Command\FolderCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Question\ConfirmationQuestion; -class Delete extends Base { - private $folderManager; - private $rootFolder; - private $mountProvider; - - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, MountProvider $mountProvider) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; - $this->mountProvider = $mountProvider; - } - +class FolderCommand extends Base { protected function configure() { $this ->setName('groupfolders:delete') @@ -53,25 +40,17 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - if ((string)$folderId !== $input->getArgument('folder_id')) { - // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) - $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); - return; - } - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - $helper = $this->getHelper('question'); - $question = new ConfirmationQuestion('Are you sure you want to delete the group folder ' . $folder['mount_point'] . ' and all files within, this cannot be undone (y/N).', false); - if ($input->getOption('force') || $helper->ask($input, $output, $question)) { - $folder = $this->mountProvider->getFolder($folderId); - $this->folderManager->removeFolder($folderId); - $folder->delete(); - } - return 0; - } else { - $output->writeln('Folder not found: ' . $folderId . ''); + $folder = $this->getFolder($input, $output); + if ($folder === false) { return -1; } + $helper = $this->getHelper('question'); + $question = new ConfirmationQuestion('Are you sure you want to delete the group folder ' . $folder['mount_point'] . ' and all files within, this cannot be undone (y/N).', false); + if ($input->getOption('force') || $helper->ask($input, $output, $question)) { + $folder = $this->mountProvider->getFolder($folderId); + $this->folderManager->removeFolder($folderId); + $folder->delete(); + } + return 0; } } diff --git a/lib/Command/FolderCommand.php b/lib/Command/FolderCommand.php new file mode 100644 index 000000000..b47f8e46f --- /dev/null +++ b/lib/Command/FolderCommand.php @@ -0,0 +1,66 @@ + + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\GroupFolders\Command; + +use OC\Core\Command\Base; +use OCA\GroupFolders\Folder\FolderManager; +use OCA\GroupFolders\Mount\MountProvider; +use OCP\Files\IRootFolder; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +/** + * Base command for commands asking the user for a folder id. + */ +abstract class FolderCommand extends Base { + /** @var FolderManager */ + protected $folderManager; + /** @var IRootFolder */ + protected $rootFolder; + /** @var MountProvider */ + protected $mountProvider; + + public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, MountProvider $mountProvider) { + parent::__construct(); + $this->folderManager = $folderManager; + $this->rootFolder = $rootFolder; + $this->mountProvider = $mountProvider; + } + + /** + * @psalm-return array{id: mixed, mount_point: mixed, groups: array|mixed, quota: int, size: int|mixed, acl: bool}|false + */ + protected function getFolder(InputInterface $input, OutputInterface $output) { + $folderId = (int)$input->getArgument('folder_id'); + if ((string)$folderId !== $input->getArgument('folder_id')) { + // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) + $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); + return false; + } + $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); + if ($folder === false) { + $output->writeln('Folder not found: ' . $folderId . ''); + return false; + } + } +} diff --git a/lib/Command/Quota.php b/lib/Command/Quota.php index cf0102fa7..11521c292 100644 --- a/lib/Command/Quota.php +++ b/lib/Command/Quota.php @@ -22,6 +22,7 @@ namespace OCA\GroupFolders\Command; use OC\Core\Command\Base; +use OCA\GroupFolders\Command\FolderCommand; use OCA\GroupFolders\Folder\FolderManager; use OCP\Files\FileInfo; use OCP\Files\IRootFolder; @@ -29,16 +30,7 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class Quota extends Base { - private $folderManager; - private $rootFolder; - - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; - } - +class Quota extends FolderCommand { protected function configure() { $this ->setName('groupfolders:quota') @@ -49,26 +41,17 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - if ((string)$folderId !== $input->getArgument('folder_id')) { - // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) - $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); - return; - } - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - $quotaString = strtolower($input->getArgument('quota')); - $quota = ($quotaString === 'unlimited') ? FileInfo::SPACE_UNLIMITED : \OCP\Util::computerFileSize($quotaString); - if ($quota) { - $this->folderManager->setFolderQuota($folderId, $quota); - return 0; - } else { - $output->writeln('Unable to parse quota input: ' . $quotaString . ''); - return -1; - } - } else { - $output->writeln('Folder not found: ' . $folderId . ''); + $folder = $this->getFolder($input, $output); + if ($folder === false) { return -1; } + $quotaString = strtolower($input->getArgument('quota')); + $quota = ($quotaString === 'unlimited') ? FileInfo::SPACE_UNLIMITED : \OCP\Util::computerFileSize($quotaString); + if ($quota) { + $this->folderManager->setFolderQuota($folderId, $quota); + return 0; + } + $output->writeln('Unable to parse quota input: ' . $quotaString . ''); + return -1; } } diff --git a/lib/Command/Rename.php b/lib/Command/Rename.php index 0ddfc6b03..3ca895522 100644 --- a/lib/Command/Rename.php +++ b/lib/Command/Rename.php @@ -23,21 +23,16 @@ use OC\Core\Command\Base; use OCA\GroupFolders\Folder\FolderManager; +use OCA\GroupFolders\Command\FolderCommand; use OCP\Files\IRootFolder; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class Rename extends Base { +class Rename extends FolderCommand { private $folderManager; private $rootFolder; - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; - } - protected function configure() { $this ->setName('groupfolders:rename') @@ -48,19 +43,11 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - if ((string)$folderId !== $input->getArgument('folder_id')) { - // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) - $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); - return; - } - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - $this->folderManager->renameFolder($folderId, $input->getArgument('name')); - return 0; - } else { - $output->writeln('Folder not found: ' . $folderId . ''); + $folder = $this->getFolder($input, $output); + if ($folder === false) { return -1; } + $this->folderManager->renameFolder($folderId, $input->getArgument('name')); + return 0; } } diff --git a/lib/Command/Scan.php b/lib/Command/Scan.php index 8fc1de070..c6d51f550 100644 --- a/lib/Command/Scan.php +++ b/lib/Command/Scan.php @@ -23,6 +23,7 @@ use OC\Core\Command\Base; use OC\Files\ObjectStore\NoopScanner; +use OCA\GroupFolders\Command\FolderCommand; use OCA\GroupFolders\Folder\FolderManager; use OCA\GroupFolders\Mount\MountProvider; use OCP\Constants; @@ -32,20 +33,10 @@ use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -class Scan extends Base { - private $folderManager; - private $rootFolder; - private $mountProvider; +class Scan extends FolderCommand { private $foldersCounter = 0; private $filesCounter = 0; - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, MountProvider $mountProvider) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; - $this->mountProvider = $mountProvider; - } - protected function configure() { $this ->setName('groupfolders:scan') @@ -55,52 +46,49 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - $mount = $this->mountProvider->getMount($folder['id'], '/' . $folder['mount_point'], Constants::PERMISSION_ALL, $folder['quota']); - $scanner = $mount->getStorage()->getScanner(); + $folder = $this->getFolder($input, $output); + if ($folder === false) { + return -1; + } + $mount = $this->mountProvider->getMount($folder['id'], '/' . $folder['mount_point'], Constants::PERMISSION_ALL, $folder['quota']); + $scanner = $mount->getStorage()->getScanner(); - if ($scanner instanceof NoopScanner) { - $output->writeln("Scanning group folders using an object store as primary storage is not supported."); - return -1; - } + if ($scanner instanceof NoopScanner) { + $output->writeln("Scanning group folders using an object store as primary storage is not supported."); + return -1; + } - $scanner->listen('\OC\Files\Cache\Scanner', 'scanFile', function ($path) use ($output) { - $output->writeln("\tFile\t$path", OutputInterface::VERBOSITY_VERBOSE); - ++$this->filesCounter; - // abortIfInterrupted doesn't exist in nc14 - if (method_exists($this, 'abortIfInterrupted')) { - $this->abortIfInterrupted(); - } - }); + $scanner->listen('\OC\Files\Cache\Scanner', 'scanFile', function ($path) use ($output) { + $output->writeln("\tFile\t$path", OutputInterface::VERBOSITY_VERBOSE); + ++$this->filesCounter; + // abortIfInterrupted doesn't exist in nc14 + if (method_exists($this, 'abortIfInterrupted')) { + $this->abortIfInterrupted(); + } + }); - $scanner->listen('\OC\Files\Cache\Scanner', 'scanFolder', function ($path) use ($output) { - $output->writeln("\tFolder\t$path", OutputInterface::VERBOSITY_VERBOSE); - ++$this->foldersCounter; - // abortIfInterrupted doesn't exist in nc14 - if (method_exists($this, 'abortIfInterrupted')) { - $this->abortIfInterrupted(); - } - }); + $scanner->listen('\OC\Files\Cache\Scanner', 'scanFolder', function ($path) use ($output) { + $output->writeln("\tFolder\t$path", OutputInterface::VERBOSITY_VERBOSE); + ++$this->foldersCounter; + // abortIfInterrupted doesn't exist in nc14 + if (method_exists($this, 'abortIfInterrupted')) { + $this->abortIfInterrupted(); + } + }); - $start = microtime(true); + $start = microtime(true); - $scanner->setUseTransactions(false); - $scanner->scan(''); + $scanner->setUseTransactions(false); + $scanner->scan(''); - $end = microtime(true); + $end = microtime(true); - $headers = [ - 'Folders', 'Files', 'Elapsed time' - ]; + $headers = [ + 'Folders', 'Files', 'Elapsed time' + ]; - $this->showSummary($headers, null, $output, $end - $start); - return 0; - } else { - $output->writeln('Folder not found: ' . $folderId . ''); - return -1; - } + $this->showSummary($headers, null, $output, $end - $start); + return 0; } protected function showSummary($headers, $rows, OutputInterface $output, float $duration) { From fed94f0e357fc2606e9403e06b3bc4afa250d363 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Thu, 16 Dec 2021 13:16:45 +0100 Subject: [PATCH 13/14] Fixes Signed-off-by: Carl Schwan --- lib/Command/ACL.php | 50 ++++++++++++++-------------- lib/Command/Create.php | 5 ++- lib/Command/Delete.php | 8 ++--- lib/Command/FolderCommand.php | 8 ++--- lib/Command/Group.php | 62 ++++++++++++++--------------------- lib/Command/Quota.php | 2 +- lib/Command/Rename.php | 5 +-- tests/psalm-baseline.xml | 43 +++++++++++++++++++++++- 8 files changed, 103 insertions(+), 80 deletions(-) diff --git a/lib/Command/ACL.php b/lib/Command/ACL.php index bfa4d42f5..a4c2c4907 100644 --- a/lib/Command/ACL.php +++ b/lib/Command/ACL.php @@ -88,9 +88,9 @@ protected function execute(InputInterface $input, OutputInterface $output) { return -1; } if ($input->getOption('enable')) { - $this->folderManager->setFolderACL($folderId, true); + $this->folderManager->setFolderACL($folder['id'], true); } elseif ($input->getOption('disable')) { - $this->folderManager->setFolderACL($folderId, false); + $this->folderManager->setFolderACL($folder['id'], false); } elseif ($input->getOption('test')) { if ($input->getOption('user') && ($input->getArgument('path'))) { $mappingId = $input->getOption('user'); @@ -105,13 +105,13 @@ protected function execute(InputInterface $input, OutputInterface $output) { $permissions = $aclManager->getACLPermissionsForPath($jailPath . rtrim('/' . $path, '/')); $permissionString = $this->formatRulePermissions(Constants::PERMISSION_ALL, $permissions); $output->writeln($permissionString); - return; + return 0; } else { $output->writeln('--user and options needs to be set for permissions testing'); return -3; } } elseif (!$folder['acl']) { - $output->writeln('Advanced permissions not enabled for folder: ' . $folderId . ''); + $output->writeln('Advanced permissions not enabled for folder: ' . $folder['id'] . ''); return -2; } elseif ( !$input->getArgument('path') && @@ -123,11 +123,11 @@ protected function execute(InputInterface $input, OutputInterface $output) { } elseif ($input->getOption('manage-add') && ($input->getOption('user') || $input->getOption('group'))) { $mappingType = $input->getOption('user') ? 'user' : 'group'; $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); - $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, true); + $this->folderManager->setManageACL($folder['id'], $mappingType, $mappingId, true); } elseif ($input->getOption('manage-remove') && ($input->getOption('user') || $input->getOption('group'))) { $mappingType = $input->getOption('user') ? 'user' : 'group'; $mappingId = $input->getOption('user') ? $input->getOption('user') : $input->getOption('group'); - $this->folderManager->setManageACL($folderId, $mappingType, $mappingId, false); + $this->folderManager->setManageACL($folder['id'], $mappingType, $mappingId, false); } elseif (!$input->getArgument('path')) { $output->writeln(' argument has to be set when not using --enable or --disable'); return -3; @@ -169,28 +169,28 @@ protected function execute(InputInterface $input, OutputInterface $output) { 0, 0 )); - } else { - foreach ($permissionStrings as $permission) { - if ($permission[0] !== '+' && $permission[0] !== '-') { - $output->writeln('incorrect format for permissions "' . $permission . '"'); - return -3; - } - $name = substr($permission, 1); - if (!isset(self::PERMISSIONS_MAP[$name])) { - $output->writeln('incorrect format for permissions2 "' . $permission . '"'); - return -3; - } + return 0; + } + foreach ($permissionStrings as $permission) { + if ($permission[0] !== '+' && $permission[0] !== '-') { + $output->writeln('incorrect format for permissions "' . $permission . '"'); + return -3; } + $name = substr($permission, 1); + if (!isset(self::PERMISSIONS_MAP[$name])) { + $output->writeln('incorrect format for permissions2 "' . $permission . '"'); + return -3; + } + } - [$mask, $permissions] = $this->parsePermissions($permissionStrings); + [$mask, $permissions] = $this->parsePermissions($permissionStrings); - $this->ruleManager->saveRule(new Rule( - new UserMapping($mappingType, $mappingId), - $id, - $mask, - $permissions - )); - } + $this->ruleManager->saveRule(new Rule( + new UserMapping($mappingType, $mappingId), + $id, + $mask, + $permissions + )); } return 0; } diff --git a/lib/Command/Create.php b/lib/Command/Create.php index 6ba92570a..1455711ae 100644 --- a/lib/Command/Create.php +++ b/lib/Command/Create.php @@ -29,13 +29,12 @@ use Symfony\Component\Console\Output\OutputInterface; class Create extends Base { + /** @var FolderManager $folderManager */ private $folderManager; - private $rootFolder; - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder) { + public function __construct(FolderManager $folderManager) { parent::__construct(); $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; } protected function configure() { diff --git a/lib/Command/Delete.php b/lib/Command/Delete.php index 7e3db5977..3b33f42d2 100644 --- a/lib/Command/Delete.php +++ b/lib/Command/Delete.php @@ -29,7 +29,7 @@ use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Question\ConfirmationQuestion; -class FolderCommand extends Base { +class Delete extends FolderCommand { protected function configure() { $this ->setName('groupfolders:delete') @@ -47,9 +47,9 @@ protected function execute(InputInterface $input, OutputInterface $output) { $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('Are you sure you want to delete the group folder ' . $folder['mount_point'] . ' and all files within, this cannot be undone (y/N).', false); if ($input->getOption('force') || $helper->ask($input, $output, $question)) { - $folder = $this->mountProvider->getFolder($folderId); - $this->folderManager->removeFolder($folderId); - $folder->delete(); + $folderMount = $this->mountProvider->getFolder($folder['id']); + $this->folderManager->removeFolder($folder['id']); + $folderMount->delete(); } return 0; } diff --git a/lib/Command/FolderCommand.php b/lib/Command/FolderCommand.php index b47f8e46f..ca5968df9 100644 --- a/lib/Command/FolderCommand.php +++ b/lib/Command/FolderCommand.php @@ -26,18 +26,17 @@ use OCA\GroupFolders\Mount\MountProvider; use OCP\Files\IRootFolder; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; /** * Base command for commands asking the user for a folder id. */ abstract class FolderCommand extends Base { - /** @var FolderManager */ + /** @var FolderManager $folderManager */ protected $folderManager; - /** @var IRootFolder */ + /** @var IRootFolder $rootFolder */ protected $rootFolder; - /** @var MountProvider */ + /** @var MountProvider $mountProvider */ protected $mountProvider; public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, MountProvider $mountProvider) { @@ -62,5 +61,6 @@ protected function getFolder(InputInterface $input, OutputInterface $output) { $output->writeln('Folder not found: ' . $folderId . ''); return false; } + return $folder; } } diff --git a/lib/Command/Group.php b/lib/Command/Group.php index 6f7d8f62a..69611a18c 100644 --- a/lib/Command/Group.php +++ b/lib/Command/Group.php @@ -23,6 +23,7 @@ use OC\Core\Command\Base; use OCA\GroupFolders\Folder\FolderManager; +use OCA\GroupFolders\Mount\MountProvider; use OCP\Constants; use OCP\Files\IRootFolder; use OCP\IGroupManager; @@ -31,23 +32,18 @@ use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; -class Group extends Base { +class Group extends FolderCommand { const PERMISSION_VALUES = [ 'read' => Constants::PERMISSION_READ, 'write' => Constants::PERMISSION_UPDATE | Constants::PERMISSION_CREATE, 'share' => Constants::PERMISSION_SHARE, 'delete' => Constants::PERMISSION_DELETE, ]; - - - private $folderManager; - private $rootFolder; + /** @var IGroupManager $groupManager */ private $groupManager; - public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, IGroupManager $groupManager) { - parent::__construct(); - $this->folderManager = $folderManager; - $this->rootFolder = $rootFolder; + public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, IGroupManager $groupManager, MountProvider $mountProvider) { + parent::__construct($folderManager, $rootFolder, $mountProvider); $this->groupManager = $groupManager; } @@ -64,40 +60,30 @@ protected function configure() { } protected function execute(InputInterface $input, OutputInterface $output) { - $folderId = (int)$input->getArgument('folder_id'); - if ((string)$folderId !== $input->getArgument('folder_id')) { - // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id) - $output->writeln('Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . ''); - return; + $folder = $this->getFolder($input, $output); + if ($folder === false) { + return -1; } - $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId()); - if ($folder) { - $groupString = $input->getArgument('group'); - $group = $this->groupManager->get($groupString); - if ($input->getOption('delete')) { - $this->folderManager->removeApplicableGroup($folderId, $groupString); - return 0; - } elseif ($group) { - $permissionsString = $input->getArgument('permissions'); - $permissions = $this->getNewPermissions($permissionsString); - if ($permissions) { - if (!isset($folder['groups'][$groupString])) { - $this->folderManager->addApplicableGroup($folderId, $groupString); - } - $this->folderManager->setGroupPermissions($folderId, $groupString, $permissions); - return 0; - } else { - $output->writeln('Unable to parse permissions input: ' . implode(' ', $permissionsString) . ''); - return -1; + $groupString = $input->getArgument('group'); + $group = $this->groupManager->get($groupString); + if ($input->getOption('delete')) { + $this->folderManager->removeApplicableGroup($folder['id'], $groupString); + return 0; + } elseif ($group) { + $permissionsString = $input->getArgument('permissions'); + $permissions = $this->getNewPermissions($permissionsString); + if ($permissions) { + if (!isset($folder['groups'][$groupString])) { + $this->folderManager->addApplicableGroup($folder['id'], $groupString); } - } else { - $output->writeln('group not found: ' . $groupString . ''); - return -1; + $this->folderManager->setGroupPermissions($folder['id'], $groupString, $permissions); + return 0; } - } else { - $output->writeln('Folder not found: ' . $folderId . ''); + $output->writeln('Unable to parse permissions input: ' . implode(' ', $permissionsString) . ''); return -1; } + $output->writeln('group not found: ' . $groupString . ''); + return -1; } private function getNewPermissions(array $input) { diff --git a/lib/Command/Quota.php b/lib/Command/Quota.php index 11521c292..1087c4c16 100644 --- a/lib/Command/Quota.php +++ b/lib/Command/Quota.php @@ -48,7 +48,7 @@ protected function execute(InputInterface $input, OutputInterface $output) { $quotaString = strtolower($input->getArgument('quota')); $quota = ($quotaString === 'unlimited') ? FileInfo::SPACE_UNLIMITED : \OCP\Util::computerFileSize($quotaString); if ($quota) { - $this->folderManager->setFolderQuota($folderId, $quota); + $this->folderManager->setFolderQuota($folder['id'], $quota); return 0; } $output->writeln('Unable to parse quota input: ' . $quotaString . ''); diff --git a/lib/Command/Rename.php b/lib/Command/Rename.php index 3ca895522..1c2a9d4cd 100644 --- a/lib/Command/Rename.php +++ b/lib/Command/Rename.php @@ -30,9 +30,6 @@ use Symfony\Component\Console\Output\OutputInterface; class Rename extends FolderCommand { - private $folderManager; - private $rootFolder; - protected function configure() { $this ->setName('groupfolders:rename') @@ -47,7 +44,7 @@ protected function execute(InputInterface $input, OutputInterface $output) { if ($folder === false) { return -1; } - $this->folderManager->renameFolder($folderId, $input->getArgument('name')); + $this->folderManager->renameFolder($folder['id'], $input->getArgument('name')); return 0; } } diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml index 786745366..772c58ca3 100644 --- a/tests/psalm-baseline.xml +++ b/tests/psalm-baseline.xml @@ -10,26 +10,67 @@ + + registerEventListener + $c->getServer()->getRootFolder() + $c->getServer()->getRootFolder() + ExpireGroupVersions ExpireGroupVersions ExpireGroupVersionsPlaceholder GroupVersionsExpireManager + GroupVersionsExpireManager + TrashBackend TrashBackend + TrashBackend + TrashBackend + VersionsBackend VersionsBackend + VersionsBackend + \OCA\GroupFolders\BackgroundJob\ExpireGroupVersions \OCA\GroupFolders\BackgroundJob\ExpireGroupVersions \OCA\GroupFolders\BackgroundJob\ExpireGroupVersionsPlaceholder BeforeTemplateRenderedEvent - GroupFolderStorage + + + FolderCommand + + + + + FolderCommand + + + + + FolderCommand + + + + + FolderCommand + + + + + FolderCommand + + + + + FolderCommand + + $this->rootFolder From 691ffec7136c5ac032377d2fb59ba1929877d83f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Dec 2021 02:01:52 +0000 Subject: [PATCH 14/14] Bump @babel/preset-react from 7.16.0 to 7.16.5 Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.16.0 to 7.16.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.16.5/packages/babel-preset-react) --- updated-dependencies: - dependency-name: "@babel/preset-react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 130 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb3eb2c98..fec3cdb1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "whatwg-fetch": "^3.6.2" }, "devDependencies": { - "@babel/preset-react": "^7.16.0", + "@babel/preset-react": "^7.16.5", "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.1", @@ -632,9 +632,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", + "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", "engines": { "node": ">=6.9.0" } @@ -1147,12 +1147,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", + "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" }, "engines": { "node": ">=6.9.0" @@ -1751,12 +1751,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz", + "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" }, "engines": { "node": ">=6.9.0" @@ -1766,15 +1766,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz", + "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.0", "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-jsx": "^7.16.5", "@babel/types": "^7.16.0" }, "engines": { @@ -1785,12 +1785,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz", + "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.0" + "@babel/plugin-transform-react-jsx": "^7.16.5" }, "engines": { "node": ">=6.9.0" @@ -1800,13 +1800,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz", + "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" }, "engines": { "node": ">=6.9.0" @@ -2052,17 +2052,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", - "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz", + "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" + "@babel/plugin-transform-react-display-name": "^7.16.5", + "@babel/plugin-transform-react-jsx": "^7.16.5", + "@babel/plugin-transform-react-jsx-development": "^7.16.5", + "@babel/plugin-transform-react-pure-annotations": "^7.16.5" }, "engines": { "node": ">=6.9.0" @@ -15495,9 +15495,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", + "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==" }, "@babel/helper-remap-async-to-generator": { "version": "7.14.5", @@ -15896,12 +15896,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz", + "integrity": "sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -16354,44 +16354,44 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz", + "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz", + "integrity": "sha512-+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.0", "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/helper-plugin-utils": "^7.16.5", + "@babel/plugin-syntax-jsx": "^7.16.5", "@babel/types": "^7.16.0" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz", + "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.0" + "@babel/plugin-transform-react-jsx": "^7.16.5" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz", + "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.5" } }, "@babel/plugin-transform-regenerator": { @@ -16591,17 +16591,17 @@ } }, "@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", - "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz", + "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.5", "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" + "@babel/plugin-transform-react-display-name": "^7.16.5", + "@babel/plugin-transform-react-jsx": "^7.16.5", + "@babel/plugin-transform-react-jsx-development": "^7.16.5", + "@babel/plugin-transform-react-pure-annotations": "^7.16.5" }, "dependencies": { "@babel/helper-validator-option": { diff --git a/package.json b/package.json index 2203527f8..52b30703b 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "npm": "^7.0.0" }, "devDependencies": { - "@babel/preset-react": "^7.16.0", + "@babel/preset-react": "^7.16.5", "@nextcloud/babel-config": "^1.0.0", "@nextcloud/browserslist-config": "^2.2.0", "@nextcloud/eslint-config": "^6.1.1",