diff --git a/.github/workflows/behat-test.yml b/.github/workflows/behat-test.yml
index 44047506f..de9b8c633 100644
--- a/.github/workflows/behat-test.yml
+++ b/.github/workflows/behat-test.yml
@@ -157,7 +157,7 @@ jobs:
- name: Upload code coverage report
if: ${{ matrix.coverage }}
- uses: codecov/codecov-action@v4.5.0
+ uses: codecov/codecov-action@v4.6.0
with:
files: ${{ steps.coverage_files.outputs.files }}
flags: feature
diff --git a/.github/workflows/php-test.yml b/.github/workflows/php-test.yml
index 75f4ecd8b..bb7d48eec 100644
--- a/.github/workflows/php-test.yml
+++ b/.github/workflows/php-test.yml
@@ -101,7 +101,7 @@ jobs:
- name: Upload code coverage report
if: ${{ matrix.coverage }}
- uses: codecov/codecov-action@893cfea3da0870ceb77096be8b5fe014720f3c32
+ uses: codecov/codecov-action@68708a9f7a6b6b5fe33673f782f93725c5eff3c6
with:
file: build/logs/*.xml
flags: unit
@@ -149,7 +149,7 @@ jobs:
- name: Upload code coverage report
if: ${{ matrix.coverage }}
- uses: codecov/codecov-action@893cfea3da0870ceb77096be8b5fe014720f3c32
+ uses: codecov/codecov-action@68708a9f7a6b6b5fe33673f782f93725c5eff3c6
with:
file: build/logs/*.xml
flags: phpcs-sniffs
diff --git a/composer.lock b/composer.lock
index bade504b8..51dc3caac 100644
--- a/composer.lock
+++ b/composer.lock
@@ -2058,16 +2058,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.12.5",
+ "version": "1.12.6",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17"
+ "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17",
- "reference": "7e6c6cb7cecb0a6254009a1a8a7d54ec99812b17",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc4d2f145a88ea7141ae698effd64d9df46527ae",
+ "reference": "dc4d2f145a88ea7141ae698effd64d9df46527ae",
"shasum": ""
},
"require": {
@@ -2112,7 +2112,7 @@
"type": "github"
}
],
- "time": "2024-09-26T12:45:22+00:00"
+ "time": "2024-10-06T15:03:59+00:00"
},
{
"name": "phpunit/php-code-coverage",
diff --git a/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php b/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php
index dfdc435d0..1ac6a06fd 100644
--- a/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php
+++ b/includes/Checker/Checks/Plugin_Repo/File_Type_Check.php
@@ -29,7 +29,8 @@ class File_Type_Check extends Abstract_File_Check {
const TYPE_VCS = 4;
const TYPE_HIDDEN = 8;
const TYPE_APPLICATION = 16;
- const TYPE_ALL = 31; // Same as all of the above with bitwise OR.
+ const TYPE_BADLY_NAMED = 32;
+ const TYPE_ALL = 63; // Same as all of the above with bitwise OR.
/**
* Bitwise flags to control check behavior.
@@ -90,6 +91,10 @@ protected function check_files( Check_Result $result, array $files ) {
if ( $this->flags & self::TYPE_APPLICATION ) {
$this->look_for_application_files( $result, $files );
}
+ if ( $this->flags & self::TYPE_BADLY_NAMED ) {
+ // Check for badly named files.
+ $this->look_for_badly_named_files( $result, $files );
+ }
}
/**
@@ -244,6 +249,51 @@ protected function look_for_application_files( Check_Result $result, array $file
}
}
+ /**
+ * Looks for application files and amends the given result with an error if found.
+ *
+ * @since 1.2.0
+ *
+ * @param Check_Result $result The check result to amend, including the plugin context to check.
+ * @param array $files List of absolute file paths.
+ */
+ protected function look_for_badly_named_files( Check_Result $result, array $files ) {
+ $conflict_chars = '!@#$%^&*()+=[]{};:"\'<>,?/\\|`~';
+
+ $plugin_path = $result->plugin()->path();
+
+ $files = array_map(
+ function ( $file ) use ( $plugin_path ) {
+ return str_replace( $plugin_path, '', $file );
+ },
+ $files
+ );
+
+ foreach ( $files as $file ) {
+ $badly_name = false;
+ if ( preg_match( '/\s/', $file ) ) {
+ $badly_name = true;
+ }
+
+ if ( preg_match( '/[' . preg_quote( $conflict_chars, '/' ) . ']/', basename( $file ) ) ) {
+ $badly_name = true;
+ }
+
+ if ( $badly_name ) {
+ $this->add_result_error_for_file(
+ $result,
+ __( 'Badly named files are not permitted.', 'plugin-check' ),
+ 'badly_named_files',
+ $file,
+ 0,
+ 0,
+ '',
+ 8
+ );
+ }
+ }
+ }
+
/**
* Gets the description for the check.
*
@@ -254,7 +304,7 @@ protected function look_for_application_files( Check_Result $result, array $file
* @return string Description.
*/
public function get_description(): string {
- return __( 'Detects the usage of hidden and compressed files, VCS directories, and application files.', 'plugin-check' );
+ return __( 'Detects the usage of hidden and compressed files, VCS directories, application files and badly named files.', 'plugin-check' );
}
/**
diff --git a/includes/Checker/Checks/Plugin_Repo/Plugin_Readme_Check.php b/includes/Checker/Checks/Plugin_Repo/Plugin_Readme_Check.php
index c8264efb4..792289fff 100644
--- a/includes/Checker/Checks/Plugin_Repo/Plugin_Readme_Check.php
+++ b/includes/Checker/Checks/Plugin_Repo/Plugin_Readme_Check.php
@@ -354,7 +354,7 @@ private function check_license( Check_Result $result, string $readme_file, Parse
}
// Checks for a valid license in Plugin Header.
- if ( ! empty( $plugin_license ) && ! preg_match( '/GPL|GNU|MIT|FreeBSD|New BSD|BSD-3-Clause|BSD 3 Clause|OpenLDAP|Expat/im', $plugin_license ) ) {
+ if ( ! empty( $plugin_license ) && ! preg_match( '/GPL|GNU|MIT|FreeBSD|New BSD|BSD-3-Clause|BSD 3 Clause|OpenLDAP|Expat|Apache/im', $plugin_license ) ) {
$this->add_result_error_for_file(
$result,
__( 'Your plugin has an invalid license declared in Plugin Header.
Please update your readme with a valid GPL license identifier. It is necessary to declare the license of this plugin. You can do this by using the fields available both in the plugin readme and in the plugin headers.', 'plugin-check' ),
@@ -419,6 +419,7 @@ private function normalize_licenses( $license ) {
$license = str_replace( '-', '', $license );
$license = str_replace( 'GNU General Public License (GPL)', 'GPL', $license );
$license = str_replace( 'GNU General Public License', 'GPL', $license );
+ $license = str_replace( ' version ', 'v', $license );
$license = preg_replace( '/GPL\s*[-|\.]*\s*[v]?([0-9])(\.[0])?/i', 'GPL$1', $license, 1 );
$license = str_replace( '.', '', $license );
diff --git a/package-lock.json b/package-lock.json
index 2a750103f..24138475b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,8 +8,8 @@
"hasInstallScript": true,
"license": "GPL-2.0-or-later",
"devDependencies": {
- "@wordpress/env": "^10.8.0",
- "@wordpress/scripts": "^30.0.2",
+ "@wordpress/env": "^10.9.0",
+ "@wordpress/scripts": "^30.1.0",
"patch-package": "^8.0.0"
},
"engines": {
@@ -31,12 +31,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
+ "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.24.7",
+ "@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
},
"engines": {
@@ -83,9 +83,9 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.25.1",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
- "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -101,15 +101,15 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
- "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.25.0",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
@@ -224,13 +224,13 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
- "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dev": true,
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -267,9 +267,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
- "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -336,18 +336,18 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
- "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -390,12 +390,12 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -476,10 +476,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
- "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz",
+ "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==",
"dev": true,
+ "dependencies": {
+ "@babel/types": "^7.25.7"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -1582,13 +1585,13 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.25.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz",
- "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
+ "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"babel-plugin-polyfill-corejs2": "^0.4.10",
"babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
@@ -1928,30 +1931,30 @@
}
},
"node_modules/@babel/template": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
- "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.25.0",
- "@babel/types": "^7.25.0"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.2.tgz",
- "integrity": "sha512-s4/r+a7xTnny2O6FcZzqgT6nE4/GHEdcqj4qAeglbUOh0TeglEfmNJFAd/OLoVtGd6ZhAO8GCVvCNUO5t/VJVQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.0",
- "@babel/template": "^7.25.0",
- "@babel/types": "^7.25.2",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1960,13 +1963,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
- "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz",
+ "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.24.8",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -3062,9 +3065,9 @@
}
},
"node_modules/@stylistic/stylelint-plugin": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.0.tgz",
- "integrity": "sha512-NU2XR6i1x163KdyDj3zqblA13890fBzHNZYqZ13aor/sB3Yq8kU/0NKCudv5pfl9Kb/UAteo/D7vKMHtaror/A==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+ "integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
"dev": true,
"dependencies": {
"@csstools/css-parser-algorithms": "^3.0.1",
@@ -4288,9 +4291,9 @@
}
},
"node_modules/@wordpress/babel-preset-default": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.8.2.tgz",
- "integrity": "sha512-XhIpSw6d8GeaBe+gQ25nck01+Q3UiVQgih/yBCFWNtzB2qp/AB7195lHGxbuAYUO9RM1eXsf8kVJV2caAb4WnA==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.9.0.tgz",
+ "integrity": "sha512-qkhnRyku8FeiUGXfcMYfr/u2SG6NIj/9hWoe5Ubpay7gpX2A1H9+rLrTvABRiip7zit88JJ6b4VUqLL9Cr23bg==",
"dev": true,
"dependencies": {
"@babel/core": "^7.16.0",
@@ -4299,8 +4302,8 @@
"@babel/preset-env": "^7.16.0",
"@babel/preset-typescript": "^7.16.0",
"@babel/runtime": "^7.16.0",
- "@wordpress/browserslist-config": "^6.8.1",
- "@wordpress/warning": "^3.8.1",
+ "@wordpress/browserslist-config": "^6.9.0",
+ "@wordpress/warning": "^3.9.0",
"browserslist": "^4.21.10",
"core-js": "^3.31.0",
"react": "^18.3.0"
@@ -4311,9 +4314,9 @@
}
},
"node_modules/@wordpress/base-styles": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.8.1.tgz",
- "integrity": "sha512-vYT31mcV74bO+MXMIYKMyethp6kw3rQyh0wKvWIhX5pX/wUYXjts+RE6v9Yf7k0OJ+UT0c/CXF+5KLBuju6EVA==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.9.0.tgz",
+ "integrity": "sha512-b0erDgc8I6NTjbHaPL4GTa3IbfHp4o1+Yx74oT6gLgV9i7Qd8UjBmsUDYIZTV1jqB/ch9DuaDqDaNYqW6tXpZg==",
"dev": true,
"engines": {
"node": ">=18.12.0",
@@ -4321,9 +4324,9 @@
}
},
"node_modules/@wordpress/browserslist-config": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.8.1.tgz",
- "integrity": "sha512-hp2eE0DiRbFGTUEQ49kLVyZWlR8lfm8hb2XKqSoWbeqzWM5ZkgrRRJMrJRPS/jCEWTWDdlBwUFfsVNDKpmHc9A==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.9.0.tgz",
+ "integrity": "sha512-yv8KJrMZTvhY+PNWQ6CQVTUs/6sAVgim7AxGpgTkVzDYKvTeJKuZqeHzAWtHKTOG+ORIj/29XtpIOU85R9dkng==",
"dev": true,
"engines": {
"node": ">=18.12.0",
@@ -4331,9 +4334,9 @@
}
},
"node_modules/@wordpress/dependency-extraction-webpack-plugin": {
- "version": "6.8.2",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.8.2.tgz",
- "integrity": "sha512-qa+zMLzwIHNZyS1Hn//jn6Mgbm9ciwwkZhr1qV0BG31QTKctH4jA1jPikbSvRDs2oiJMRLQpeE3F8JW6UkyQIg==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.9.0.tgz",
+ "integrity": "sha512-faWHIfJ8dSHjQmTEjl/Q6isLLHn0nBbBbTqztAKWtoImmtOLrz68fVxlUh8Fsboov8l6O4fiWv+6gXkWI5B75w==",
"dev": true,
"dependencies": {
"json2php": "^0.0.7"
@@ -4347,9 +4350,9 @@
}
},
"node_modules/@wordpress/e2e-test-utils-playwright": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.8.1.tgz",
- "integrity": "sha512-BKp2EpC35/SWJg1h69Q0RP7hlcNoqyuq1UA5CJycph2yuzrfl8+tfKqkrdCYhyLU/MuW6GFh9d92vb2cTYnSOQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.9.0.tgz",
+ "integrity": "sha512-07k7LnkvEPIaMGgPvm+wgmBGAVI+pyH/jVXD3TEvKq2BLhZ7zUurV4RvOpiOs58rHvQOS+BzS+yXUwtXUrkQ4g==",
"dev": true,
"dependencies": {
"change-case": "^4.1.2",
@@ -4368,9 +4371,9 @@
}
},
"node_modules/@wordpress/env": {
- "version": "10.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.8.0.tgz",
- "integrity": "sha512-kU66r7y/3AnUd6D4XeWE7h6bVJmzteTKDMMWoIoJsSNI5YP/BmXRa+/dJ4bwk0KFKxfh3tcRBhearGeEa4TGBw==",
+ "version": "10.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.9.0.tgz",
+ "integrity": "sha512-XS4dJY1jot25wNKnI8+wL1M4tHRIaiLW1ggwXQSyUUWinyG9kuyQA+jzIBnNGegy2pLgbSwTmovExHQNtfU2Hw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
@@ -4395,16 +4398,16 @@
}
},
"node_modules/@wordpress/eslint-plugin": {
- "version": "21.1.2",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-21.1.2.tgz",
- "integrity": "sha512-f89Q8J1yGq6b1Myqgby7Xdon+mx/YjSBCs3/saydaJWJoXaDIXZFTMrY0cjWzbSOTDThYCvbkvQm0QGAPanNTA==",
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-21.2.0.tgz",
+ "integrity": "sha512-jsqi1C96FV4wTGPtPVP/bj/rQtDgu4dHP5pKqtwCuPs7AU4pnUJPHut67Ass8POD+c4EvjPVhS8UDpBs2MeSJg==",
"dev": true,
"dependencies": {
"@babel/eslint-parser": "^7.16.0",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^8.8.2",
- "@wordpress/prettier-config": "^4.8.1",
+ "@wordpress/babel-preset-default": "^8.9.0",
+ "@wordpress/prettier-config": "^4.9.0",
"cosmiconfig": "^7.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.2",
@@ -4481,9 +4484,9 @@
}
},
"node_modules/@wordpress/jest-console": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.8.1.tgz",
- "integrity": "sha512-TjSQ/jhtT5f1r8NFpP4pjdtambOd4yyyjwG35av+DqXOr8zz68zYZhzxqIy24jmrZGa5KaaOMvBa8q7G7BHcMw==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.9.0.tgz",
+ "integrity": "sha512-0swK5WONAx7y5oPDMBbr38e1R7JR+jPCt6CGFoOEwsVGiSRGa5WqJo09/ysCVjDmJn8po/lBaUp9f+fJSVARDQ==",
"dev": true,
"dependencies": {
"@babel/runtime": "^7.16.0",
@@ -4498,12 +4501,12 @@
}
},
"node_modules/@wordpress/jest-preset-default": {
- "version": "12.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.8.1.tgz",
- "integrity": "sha512-mnusLFJKz3rEuehy09yQqiwX9fpV4HK1Gh2/hu85DvwjtbHbJajfTW4GjRYU0WEkrGJkQhon6nfC7lGu5nVvkA==",
+ "version": "12.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.9.0.tgz",
+ "integrity": "sha512-qWON30SuU9JVZg5+SjExbv8XZVYDCvHGCV3jf5DOtYFw9kfpDZqnePTlroRvUMiD3ksKsKiAAYOOnBOiJUR/bA==",
"dev": true,
"dependencies": {
- "@wordpress/jest-console": "^8.8.1",
+ "@wordpress/jest-console": "^8.9.0",
"babel-jest": "^29.6.2"
},
"engines": {
@@ -4516,9 +4519,9 @@
}
},
"node_modules/@wordpress/npm-package-json-lint-config": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.8.1.tgz",
- "integrity": "sha512-TmY5u6b2w9XKYw/DCF7xFwH45mxVqZk0UcLkrNFpldqe4gjKv46CWpyC7EAD4mMh+atMWqD1llf5uEp5l29qUg==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.9.0.tgz",
+ "integrity": "sha512-4sQBUlUzjtYtrM5OC5P4lcyyYbvTDBsPwBk+u11lUI1h/EOOl36TYioEvLut2AGylqzFJKsnbzlL873tfd/5aQ==",
"dev": true,
"engines": {
"node": ">=18.12.0",
@@ -4529,12 +4532,12 @@
}
},
"node_modules/@wordpress/postcss-plugins-preset": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.8.1.tgz",
- "integrity": "sha512-OL+9T7nm8DcOJ95+rpwelSK9XsLQCCm7tMi6JkgTllAV3E+ttrF0ISlKHtJ02mCNkPJMfZGBCtVWvHlVxpXkAw==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.9.0.tgz",
+ "integrity": "sha512-OOK5UU2CG+9ilzo1b8ySwVvtZddF+q+PTTFHcxFrcK23sg5XT1DCBm3WU7bSfzOBF2cd4FIVOFVpwvb07mn8Iw==",
"dev": true,
"dependencies": {
- "@wordpress/base-styles": "^5.8.1",
+ "@wordpress/base-styles": "^5.9.0",
"autoprefixer": "^10.2.5"
},
"engines": {
@@ -4546,9 +4549,9 @@
}
},
"node_modules/@wordpress/prettier-config": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.8.1.tgz",
- "integrity": "sha512-JDiVChhgwv6ZGa4aVOXnDJnj/dUFkD/SSvRLFkLOdB+ZbWgddJQkVB3rpJOfREsPtEFWqgTxcJoZjnkqltNbww==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.9.0.tgz",
+ "integrity": "sha512-kxBTL/UZS1JEqzWWHo+h3q+ErvCtkiHm6GozUDgX9UlZXHAx/XAc24s4UaYXmZpjuH5hWO4sbp3xbj2ZI+Ohkg==",
"dev": true,
"engines": {
"node": ">=18.12.0",
@@ -4559,24 +4562,24 @@
}
},
"node_modules/@wordpress/scripts": {
- "version": "30.0.2",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.0.2.tgz",
- "integrity": "sha512-4NTXPuzeR3BsCqw90EL8XkEtzp6TFdxgl0wWzh+6pA//2QML8Cf2mT620/KH9Q6oUolniWSM9yxeGgYHh9jiRw==",
+ "version": "30.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.1.0.tgz",
+ "integrity": "sha512-Jzof5xtkjUIO9ybvx3S+W/Mox/fkI+7JOwsi0jdJV2CxTBfH6A9hEykHbX3BxuLGCKJIf55OkCdap6Jif9JojQ==",
"dev": true,
"dependencies": {
"@babel/core": "^7.16.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@svgr/webpack": "^8.0.1",
- "@wordpress/babel-preset-default": "^8.8.2",
- "@wordpress/browserslist-config": "^6.8.1",
- "@wordpress/dependency-extraction-webpack-plugin": "^6.8.1",
- "@wordpress/e2e-test-utils-playwright": "^1.8.1",
- "@wordpress/eslint-plugin": "^21.1.2",
- "@wordpress/jest-preset-default": "^12.8.1",
- "@wordpress/npm-package-json-lint-config": "^5.8.1",
- "@wordpress/postcss-plugins-preset": "^5.8.1",
- "@wordpress/prettier-config": "^4.8.1",
- "@wordpress/stylelint-config": "^23.0.1",
+ "@wordpress/babel-preset-default": "^8.9.0",
+ "@wordpress/browserslist-config": "^6.9.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^6.9.0",
+ "@wordpress/e2e-test-utils-playwright": "^1.9.0",
+ "@wordpress/eslint-plugin": "^21.2.0",
+ "@wordpress/jest-preset-default": "^12.9.0",
+ "@wordpress/npm-package-json-lint-config": "^5.9.0",
+ "@wordpress/postcss-plugins-preset": "^5.9.0",
+ "@wordpress/prettier-config": "^4.9.0",
+ "@wordpress/stylelint-config": "^23.1.0",
"adm-zip": "^0.5.9",
"babel-jest": "^29.6.2",
"babel-loader": "^8.2.3",
@@ -4639,9 +4642,9 @@
}
},
"node_modules/@wordpress/stylelint-config": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.0.1.tgz",
- "integrity": "sha512-fxWzz2kX1jCkvVcdkRuMu1HF1LNSlr3hgFk29NW09FbL6nnac/rlSaX3+LQSlbDUSe/aq840B7K0iIq2GwnKog==",
+ "version": "23.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.1.0.tgz",
+ "integrity": "sha512-Sqli3HYBVaBpVVkNeEUonHcPeEmVF8N76MW5pvKgMyr4TjgVLxTEov9Gujzh4ArW7YCq/hWoS74HKok7xfUsJQ==",
"dev": true,
"dependencies": {
"@stylistic/stylelint-plugin": "^3.0.1",
@@ -4657,9 +4660,9 @@
}
},
"node_modules/@wordpress/warning": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.8.1.tgz",
- "integrity": "sha512-xlo0Xw1jiyiE6nh43NAtQMAL05VDk837kY2xfjsus6wD597TeWFpj6gmcRMH25FZULTUHDB2EPfLviWXqOgUfg==",
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.9.0.tgz",
+ "integrity": "sha512-c+bEWwDjp3+Q7SAGb47CuZe56giBFNvutoyiAkn34pQZeO8pRjPElRABIkR7oyn4dEusjL1f6OQmU3dSYAMTpg==",
"dev": true,
"engines": {
"node": ">=18.12.0",
@@ -7971,6 +7974,7 @@
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
@@ -8055,9 +8059,9 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz",
- "integrity": "sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"dependencies": {
"debug": "^3.2.7"
@@ -8081,9 +8085,9 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
- "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==",
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
@@ -8094,7 +8098,7 @@
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.9.0",
+ "eslint-module-utils": "^2.12.0",
"hasown": "^2.0.2",
"is-core-module": "^2.15.1",
"is-glob": "^4.0.3",
@@ -8103,13 +8107,14 @@
"object.groupby": "^1.0.3",
"object.values": "^1.2.0",
"semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
"tsconfig-paths": "^3.15.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
@@ -8393,9 +8398,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.36.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz",
- "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==",
+ "version": "7.37.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
+ "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.8",
@@ -11893,15 +11898,15 @@
}
},
"node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
"node_modules/json-buffer": {
@@ -14974,9 +14979,9 @@
"dev": true
},
"node_modules/postcss-safe-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz",
- "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
"dev": true,
"funding": [
{
@@ -15726,15 +15731,15 @@
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
- "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
"es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
+ "set-function-name": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -17722,9 +17727,9 @@
"dev": true
},
"node_modules/synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
+ "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
"dev": true,
"dependencies": {
"@pkgr/core": "^0.1.0",
@@ -19456,12 +19461,12 @@
}
},
"@babel/code-frame": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
+ "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.24.7",
+ "@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
}
},
@@ -19495,9 +19500,9 @@
}
},
"@babel/eslint-parser": {
- "version": "7.25.1",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
- "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
"requires": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -19506,15 +19511,15 @@
}
},
"@babel/generator": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
- "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dev": true,
"requires": {
- "@babel/types": "^7.25.0",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
}
},
"@babel/helper-annotate-as-pure": {
@@ -19599,13 +19604,13 @@
}
},
"@babel/helper-module-imports": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
- "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dev": true,
"requires": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/helper-module-transforms": {
@@ -19630,9 +19635,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
- "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true
},
"@babel/helper-remap-async-to-generator": {
@@ -19678,15 +19683,15 @@
}
},
"@babel/helper-string-parser": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
- "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
"dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
"dev": true
},
"@babel/helper-validator-option": {
@@ -19717,12 +19722,12 @@
}
},
"@babel/highlight": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -19787,10 +19792,13 @@
}
},
"@babel/parser": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
- "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==",
- "dev": true
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz",
+ "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.25.7"
+ }
},
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
"version": "7.25.0",
@@ -20495,13 +20503,13 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.25.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz",
- "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
+ "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"babel-plugin-polyfill-corejs2": "^0.4.10",
"babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
@@ -20751,39 +20759,39 @@
}
},
"@babel/template": {
- "version": "7.25.0",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
- "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.25.0",
- "@babel/types": "^7.25.0"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/traverse": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.2.tgz",
- "integrity": "sha512-s4/r+a7xTnny2O6FcZzqgT6nE4/GHEdcqj4qAeglbUOh0TeglEfmNJFAd/OLoVtGd6ZhAO8GCVvCNUO5t/VJVQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.25.0",
- "@babel/parser": "^7.25.0",
- "@babel/template": "^7.25.0",
- "@babel/types": "^7.25.2",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
- "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz",
+ "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==",
"dev": true,
"requires": {
- "@babel/helper-string-parser": "^7.24.8",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
}
},
@@ -21585,9 +21593,9 @@
}
},
"@stylistic/stylelint-plugin": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.0.tgz",
- "integrity": "sha512-NU2XR6i1x163KdyDj3zqblA13890fBzHNZYqZ13aor/sB3Yq8kU/0NKCudv5pfl9Kb/UAteo/D7vKMHtaror/A==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.1.tgz",
+ "integrity": "sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==",
"dev": true,
"requires": {
"@csstools/css-parser-algorithms": "^3.0.1",
@@ -22536,9 +22544,9 @@
"requires": {}
},
"@wordpress/babel-preset-default": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.8.2.tgz",
- "integrity": "sha512-XhIpSw6d8GeaBe+gQ25nck01+Q3UiVQgih/yBCFWNtzB2qp/AB7195lHGxbuAYUO9RM1eXsf8kVJV2caAb4WnA==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.9.0.tgz",
+ "integrity": "sha512-qkhnRyku8FeiUGXfcMYfr/u2SG6NIj/9hWoe5Ubpay7gpX2A1H9+rLrTvABRiip7zit88JJ6b4VUqLL9Cr23bg==",
"dev": true,
"requires": {
"@babel/core": "^7.16.0",
@@ -22547,38 +22555,38 @@
"@babel/preset-env": "^7.16.0",
"@babel/preset-typescript": "^7.16.0",
"@babel/runtime": "^7.16.0",
- "@wordpress/browserslist-config": "^6.8.1",
- "@wordpress/warning": "^3.8.1",
+ "@wordpress/browserslist-config": "^6.9.0",
+ "@wordpress/warning": "^3.9.0",
"browserslist": "^4.21.10",
"core-js": "^3.31.0",
"react": "^18.3.0"
}
},
"@wordpress/base-styles": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.8.1.tgz",
- "integrity": "sha512-vYT31mcV74bO+MXMIYKMyethp6kw3rQyh0wKvWIhX5pX/wUYXjts+RE6v9Yf7k0OJ+UT0c/CXF+5KLBuju6EVA==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.9.0.tgz",
+ "integrity": "sha512-b0erDgc8I6NTjbHaPL4GTa3IbfHp4o1+Yx74oT6gLgV9i7Qd8UjBmsUDYIZTV1jqB/ch9DuaDqDaNYqW6tXpZg==",
"dev": true
},
"@wordpress/browserslist-config": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.8.1.tgz",
- "integrity": "sha512-hp2eE0DiRbFGTUEQ49kLVyZWlR8lfm8hb2XKqSoWbeqzWM5ZkgrRRJMrJRPS/jCEWTWDdlBwUFfsVNDKpmHc9A==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.9.0.tgz",
+ "integrity": "sha512-yv8KJrMZTvhY+PNWQ6CQVTUs/6sAVgim7AxGpgTkVzDYKvTeJKuZqeHzAWtHKTOG+ORIj/29XtpIOU85R9dkng==",
"dev": true
},
"@wordpress/dependency-extraction-webpack-plugin": {
- "version": "6.8.2",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.8.2.tgz",
- "integrity": "sha512-qa+zMLzwIHNZyS1Hn//jn6Mgbm9ciwwkZhr1qV0BG31QTKctH4jA1jPikbSvRDs2oiJMRLQpeE3F8JW6UkyQIg==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.9.0.tgz",
+ "integrity": "sha512-faWHIfJ8dSHjQmTEjl/Q6isLLHn0nBbBbTqztAKWtoImmtOLrz68fVxlUh8Fsboov8l6O4fiWv+6gXkWI5B75w==",
"dev": true,
"requires": {
"json2php": "^0.0.7"
}
},
"@wordpress/e2e-test-utils-playwright": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.8.1.tgz",
- "integrity": "sha512-BKp2EpC35/SWJg1h69Q0RP7hlcNoqyuq1UA5CJycph2yuzrfl8+tfKqkrdCYhyLU/MuW6GFh9d92vb2cTYnSOQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.9.0.tgz",
+ "integrity": "sha512-07k7LnkvEPIaMGgPvm+wgmBGAVI+pyH/jVXD3TEvKq2BLhZ7zUurV4RvOpiOs58rHvQOS+BzS+yXUwtXUrkQ4g==",
"dev": true,
"requires": {
"change-case": "^4.1.2",
@@ -22590,9 +22598,9 @@
}
},
"@wordpress/env": {
- "version": "10.8.0",
- "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.8.0.tgz",
- "integrity": "sha512-kU66r7y/3AnUd6D4XeWE7h6bVJmzteTKDMMWoIoJsSNI5YP/BmXRa+/dJ4bwk0KFKxfh3tcRBhearGeEa4TGBw==",
+ "version": "10.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/env/-/env-10.9.0.tgz",
+ "integrity": "sha512-XS4dJY1jot25wNKnI8+wL1M4tHRIaiLW1ggwXQSyUUWinyG9kuyQA+jzIBnNGegy2pLgbSwTmovExHQNtfU2Hw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
@@ -22610,16 +22618,16 @@
}
},
"@wordpress/eslint-plugin": {
- "version": "21.1.2",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-21.1.2.tgz",
- "integrity": "sha512-f89Q8J1yGq6b1Myqgby7Xdon+mx/YjSBCs3/saydaJWJoXaDIXZFTMrY0cjWzbSOTDThYCvbkvQm0QGAPanNTA==",
+ "version": "21.2.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-21.2.0.tgz",
+ "integrity": "sha512-jsqi1C96FV4wTGPtPVP/bj/rQtDgu4dHP5pKqtwCuPs7AU4pnUJPHut67Ass8POD+c4EvjPVhS8UDpBs2MeSJg==",
"dev": true,
"requires": {
"@babel/eslint-parser": "^7.16.0",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^8.8.2",
- "@wordpress/prettier-config": "^4.8.1",
+ "@wordpress/babel-preset-default": "^8.9.0",
+ "@wordpress/prettier-config": "^4.9.0",
"cosmiconfig": "^7.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.2",
@@ -22665,9 +22673,9 @@
}
},
"@wordpress/jest-console": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.8.1.tgz",
- "integrity": "sha512-TjSQ/jhtT5f1r8NFpP4pjdtambOd4yyyjwG35av+DqXOr8zz68zYZhzxqIy24jmrZGa5KaaOMvBa8q7G7BHcMw==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.9.0.tgz",
+ "integrity": "sha512-0swK5WONAx7y5oPDMBbr38e1R7JR+jPCt6CGFoOEwsVGiSRGa5WqJo09/ysCVjDmJn8po/lBaUp9f+fJSVARDQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.16.0",
@@ -22675,58 +22683,58 @@
}
},
"@wordpress/jest-preset-default": {
- "version": "12.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.8.1.tgz",
- "integrity": "sha512-mnusLFJKz3rEuehy09yQqiwX9fpV4HK1Gh2/hu85DvwjtbHbJajfTW4GjRYU0WEkrGJkQhon6nfC7lGu5nVvkA==",
+ "version": "12.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.9.0.tgz",
+ "integrity": "sha512-qWON30SuU9JVZg5+SjExbv8XZVYDCvHGCV3jf5DOtYFw9kfpDZqnePTlroRvUMiD3ksKsKiAAYOOnBOiJUR/bA==",
"dev": true,
"requires": {
- "@wordpress/jest-console": "^8.8.1",
+ "@wordpress/jest-console": "^8.9.0",
"babel-jest": "^29.6.2"
}
},
"@wordpress/npm-package-json-lint-config": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.8.1.tgz",
- "integrity": "sha512-TmY5u6b2w9XKYw/DCF7xFwH45mxVqZk0UcLkrNFpldqe4gjKv46CWpyC7EAD4mMh+atMWqD1llf5uEp5l29qUg==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.9.0.tgz",
+ "integrity": "sha512-4sQBUlUzjtYtrM5OC5P4lcyyYbvTDBsPwBk+u11lUI1h/EOOl36TYioEvLut2AGylqzFJKsnbzlL873tfd/5aQ==",
"dev": true,
"requires": {}
},
"@wordpress/postcss-plugins-preset": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.8.1.tgz",
- "integrity": "sha512-OL+9T7nm8DcOJ95+rpwelSK9XsLQCCm7tMi6JkgTllAV3E+ttrF0ISlKHtJ02mCNkPJMfZGBCtVWvHlVxpXkAw==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.9.0.tgz",
+ "integrity": "sha512-OOK5UU2CG+9ilzo1b8ySwVvtZddF+q+PTTFHcxFrcK23sg5XT1DCBm3WU7bSfzOBF2cd4FIVOFVpwvb07mn8Iw==",
"dev": true,
"requires": {
- "@wordpress/base-styles": "^5.8.1",
+ "@wordpress/base-styles": "^5.9.0",
"autoprefixer": "^10.2.5"
}
},
"@wordpress/prettier-config": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.8.1.tgz",
- "integrity": "sha512-JDiVChhgwv6ZGa4aVOXnDJnj/dUFkD/SSvRLFkLOdB+ZbWgddJQkVB3rpJOfREsPtEFWqgTxcJoZjnkqltNbww==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.9.0.tgz",
+ "integrity": "sha512-kxBTL/UZS1JEqzWWHo+h3q+ErvCtkiHm6GozUDgX9UlZXHAx/XAc24s4UaYXmZpjuH5hWO4sbp3xbj2ZI+Ohkg==",
"dev": true,
"requires": {}
},
"@wordpress/scripts": {
- "version": "30.0.2",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.0.2.tgz",
- "integrity": "sha512-4NTXPuzeR3BsCqw90EL8XkEtzp6TFdxgl0wWzh+6pA//2QML8Cf2mT620/KH9Q6oUolniWSM9yxeGgYHh9jiRw==",
+ "version": "30.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-30.1.0.tgz",
+ "integrity": "sha512-Jzof5xtkjUIO9ybvx3S+W/Mox/fkI+7JOwsi0jdJV2CxTBfH6A9hEykHbX3BxuLGCKJIf55OkCdap6Jif9JojQ==",
"dev": true,
"requires": {
"@babel/core": "^7.16.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@svgr/webpack": "^8.0.1",
- "@wordpress/babel-preset-default": "^8.8.2",
- "@wordpress/browserslist-config": "^6.8.1",
- "@wordpress/dependency-extraction-webpack-plugin": "^6.8.1",
- "@wordpress/e2e-test-utils-playwright": "^1.8.1",
- "@wordpress/eslint-plugin": "^21.1.2",
- "@wordpress/jest-preset-default": "^12.8.1",
- "@wordpress/npm-package-json-lint-config": "^5.8.1",
- "@wordpress/postcss-plugins-preset": "^5.8.1",
- "@wordpress/prettier-config": "^4.8.1",
- "@wordpress/stylelint-config": "^23.0.1",
+ "@wordpress/babel-preset-default": "^8.9.0",
+ "@wordpress/browserslist-config": "^6.9.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^6.9.0",
+ "@wordpress/e2e-test-utils-playwright": "^1.9.0",
+ "@wordpress/eslint-plugin": "^21.2.0",
+ "@wordpress/jest-preset-default": "^12.9.0",
+ "@wordpress/npm-package-json-lint-config": "^5.9.0",
+ "@wordpress/postcss-plugins-preset": "^5.9.0",
+ "@wordpress/prettier-config": "^4.9.0",
+ "@wordpress/stylelint-config": "^23.1.0",
"adm-zip": "^0.5.9",
"babel-jest": "^29.6.2",
"babel-loader": "^8.2.3",
@@ -22777,9 +22785,9 @@
}
},
"@wordpress/stylelint-config": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.0.1.tgz",
- "integrity": "sha512-fxWzz2kX1jCkvVcdkRuMu1HF1LNSlr3hgFk29NW09FbL6nnac/rlSaX3+LQSlbDUSe/aq840B7K0iIq2GwnKog==",
+ "version": "23.1.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.1.0.tgz",
+ "integrity": "sha512-Sqli3HYBVaBpVVkNeEUonHcPeEmVF8N76MW5pvKgMyr4TjgVLxTEov9Gujzh4ArW7YCq/hWoS74HKok7xfUsJQ==",
"dev": true,
"requires": {
"@stylistic/stylelint-plugin": "^3.0.1",
@@ -22788,9 +22796,9 @@
}
},
"@wordpress/warning": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.8.1.tgz",
- "integrity": "sha512-xlo0Xw1jiyiE6nh43NAtQMAL05VDk837kY2xfjsus6wD597TeWFpj6gmcRMH25FZULTUHDB2EPfLviWXqOgUfg==",
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.9.0.tgz",
+ "integrity": "sha512-c+bEWwDjp3+Q7SAGb47CuZe56giBFNvutoyiAkn34pQZeO8pRjPElRABIkR7oyn4dEusjL1f6OQmU3dSYAMTpg==",
"dev": true
},
"@xtuc/ieee754": {
@@ -25425,9 +25433,9 @@
}
},
"eslint-module-utils": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz",
- "integrity": "sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"requires": {
"debug": "^3.2.7"
@@ -25445,9 +25453,9 @@
}
},
"eslint-plugin-import": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
- "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==",
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"requires": {
"@rtsao/scc": "^1.1.0",
@@ -25458,7 +25466,7 @@
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
- "eslint-module-utils": "^2.9.0",
+ "eslint-module-utils": "^2.12.0",
"hasown": "^2.0.2",
"is-core-module": "^2.15.1",
"is-glob": "^4.0.3",
@@ -25467,6 +25475,7 @@
"object.groupby": "^1.0.3",
"object.values": "^1.2.0",
"semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
"tsconfig-paths": "^3.15.0"
},
"dependencies": {
@@ -25637,9 +25646,9 @@
}
},
"eslint-plugin-react": {
- "version": "7.36.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz",
- "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==",
+ "version": "7.37.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
+ "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
"dev": true,
"requires": {
"array-includes": "^3.1.8",
@@ -28084,9 +28093,9 @@
}
},
"jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"dev": true
},
"json-buffer": {
@@ -30330,9 +30339,9 @@
"dev": true
},
"postcss-safe-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz",
- "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
"dev": true,
"requires": {}
},
@@ -30882,15 +30891,15 @@
}
},
"regexp.prototype.flags": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
- "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
"es-errors": "^1.3.0",
- "set-function-name": "^2.0.1"
+ "set-function-name": "^2.0.2"
}
},
"regexpu-core": {
@@ -32385,9 +32394,9 @@
"dev": true
},
"synckit": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz",
- "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==",
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
+ "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
"dev": true,
"requires": {
"@pkgr/core": "^0.1.0",
diff --git a/package.json b/package.json
index 8c0601f09..4295ab290 100644
--- a/package.json
+++ b/package.json
@@ -10,8 +10,8 @@
"npm": ">=10.2.3"
},
"devDependencies": {
- "@wordpress/env": "^10.8.0",
- "@wordpress/scripts": "^30.0.2",
+ "@wordpress/env": "^10.9.0",
+ "@wordpress/scripts": "^30.1.0",
"patch-package": "^8.0.0"
},
"scripts": {
diff --git a/plugin.php b/plugin.php
index 3ff327f95..8de444180 100644
--- a/plugin.php
+++ b/plugin.php
@@ -5,7 +5,7 @@
* Description: Plugin Check is a WordPress.org tool which provides checks to help plugins meet the directory requirements and follow various best practices.
* Requires at least: 6.3
* Requires PHP: 7.2.24
- * Version: 1.1.0
+ * Version: 1.2.0
* Author: WordPress Performance Team and Plugin Review Team
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
@@ -16,7 +16,7 @@
use WordPress\Plugin_Check\Plugin_Main;
-define( 'WP_PLUGIN_CHECK_VERSION', '1.1.0' );
+define( 'WP_PLUGIN_CHECK_VERSION', '1.2.0' );
define( 'WP_PLUGIN_CHECK_MINIMUM_PHP', '7.2.24' );
define( 'WP_PLUGIN_CHECK_MAIN_FILE', __FILE__ );
define( 'WP_PLUGIN_CHECK_PLUGIN_DIR_PATH', plugin_dir_path( WP_PLUGIN_CHECK_MAIN_FILE ) );
diff --git a/readme.txt b/readme.txt
index c9c242a8e..09302f119 100644
--- a/readme.txt
+++ b/readme.txt
@@ -2,7 +2,7 @@
Contributors: wordpressdotorg
Tested up to: 6.6
-Stable tag: 1.1.0
+Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: plugin best practices, testing, accessibility, performance, security
@@ -68,6 +68,29 @@ In any case, passing the checks in this tool likely helps to achieve a smooth pl
== Changelog ==
+= 1.2.0 =
+
+* Enhancement - Added a check for badly used names in files.
+* Enhancement - Increased severity for `BacktickOperator`, `DisallowShortOpenTag`, `DisallowAlternativePHPTags`, `RestrictedClasses`, and `RestrictedFunctions`.
+* Enhancement - Added security checks to the Plugin repository category.
+* Enhancement - Allowed `runtime-set` in code sniffer checks.
+* Enhancement - Changed warnings to errors in plugin header checks.
+* Enhancement - Detect forbidden plugin headers such as repository URIs in the Directory.
+* Enhancement - Added a new check for development functions that are not allowed in final plugins.
+* Enhancement - Created new images and icons for the plugin.
+* Enhancement - Introduced a slug argument in the CLI.
+* Enhancement - Added a check for discouraged PHP functions.
+* Enhancement - Added validation for Contributors in the readme file.
+* Enhancement - Added a warning for mismatched plugin names in the plugin header and readme file.
+* Enhancement - Checked for validation of Plugin Header fields: Name, Plugin URI, Description, Author URI, Requires at least, Requires PHP, and Requires Plugins.
+* Enhancement - Added a warning if the "Tested up to" value in the readme file exceeds the released version of WordPress.
+* Fix - Display a success message if no errors or warnings are found.
+* Fix - Made table results responsive.
+* Fix - Prevent proceeding to the next check if the Stable Tag value is set to `trunk`.
+* Fix - Allow runtime initialization even when only add-on checks are requested.
+* Fix - Fixed an SPDX warning for the `GPL version 3` license.
+* Fix - Prevent runtime checks in the CLI context when they cannot be used.
+
= 1.1.0 =
* Feature - New `Non_Blocking_Scripts_Check` (`non_blocking_scripts`) runtime check to warn about enqueued scripts that use neither `defer` nor `async`.
diff --git a/tests/phpunit/testdata/plugins/test-plugin-file-type-badly-named-files-errors/badly directory/file.php b/tests/phpunit/testdata/plugins/test-plugin-file-type-badly-named-files-errors/badly directory/file.php
new file mode 100644
index 000000000..5ebd0556e
--- /dev/null
+++ b/tests/phpunit/testdata/plugins/test-plugin-file-type-badly-named-files-errors/badly directory/file.php
@@ -0,0 +1,2 @@
+,?|`~.php" "b/tests/phpunit/testdata/plugins/test-plugin-file-type-badly-named-files-errors/badly|file%name!@#$%^&*()+=[]{};:\"'<>,?|`~.php"
new file mode 100644
index 000000000..92bee4abf
--- /dev/null
+++ "b/tests/phpunit/testdata/plugins/test-plugin-file-type-badly-named-files-errors/badly|file%name!@#$%^&*()+=[]{};:\"'<>,?|`~.php"
@@ -0,0 +1,3 @@
+assertEmpty( $errors );
$this->assertSame( 0, $check_result->get_error_count() );
}
+
+ public function test_run_with_badly_named_errors() {
+ // Test plugin without any forbidden file types.
+ $check_context = new Check_Context( UNIT_TESTS_PLUGIN_DIR . 'test-plugin-file-type-badly-named-files-errors/load.php' );
+ $check_result = new Check_Result( $check_context );
+
+ $check = new File_Type_Check( File_Type_Check::TYPE_BADLY_NAMED );
+ $check->run( $check_result );
+
+ $errors = $check_result->get_errors();
+
+ $this->assertNotEmpty( $errors );
+ $this->assertEquals( 3, $check_result->get_error_count() );
+
+ // Check for invalid name error.
+ $this->assertArrayHasKey( 0, $errors['plugin name.php'] );
+ $this->assertArrayHasKey( 0, $errors['plugin name.php'][0] );
+ $this->assertCount( 1, wp_list_filter( $errors['plugin name.php'][0][0], array( 'code' => 'badly_named_files' ) ) );
+
+ // Badly named directory check.
+ $this->assertArrayHasKey( 0, $errors['badly directory/file.php'] );
+ $this->assertArrayHasKey( 0, $errors['badly directory/file.php'][0] );
+ $this->assertCount( 1, wp_list_filter( $errors['badly directory/file.php'][0][0], array( 'code' => 'badly_named_files' ) ) );
+
+ // Badly named file with special chars.
+ $this->assertArrayHasKey( 0, $errors['badly|file%name!@#$%^&*()+=[]{};:"\'<>,?|`~.php'] );
+ $this->assertArrayHasKey( 0, $errors['badly|file%name!@#$%^&*()+=[]{};:"\'<>,?|`~.php'][0] );
+ $this->assertCount( 1, wp_list_filter( $errors['badly|file%name!@#$%^&*()+=[]{};:"\'<>,?|`~.php'][0][0], array( 'code' => 'badly_named_files' ) ) );
+ }
}