Update `wp-env` To 7.0.0 (#38223)

* Updated `wp-env` To 7.0.0

* Adopted `wp-env` Changes To `update-wp-env.php`

* Updated E2E Test Bootstrapping

With the changes to `wp-env` we can update our
test bootstrapping to use the new functionality.

* Changelogs

* Restored `update-wp-env.php` Usage

There's a bit of work to do in support of this and I
don't want it to hold up the pull request!

* Fixed `wp-env` JSON Problems

It was writing an empty array in places where the
expectation was an empty object.

* Fixed Broken Echo Escape

* Fixed Init Quoting

* Update close button locator

* Reverted Quote Removal

There is an upstream bug relating to quotes that needs to be resolved!

* Reverted Quote Removal

---------

Co-authored-by: rodelgc <rodel.calasagsag@automattic.com>
This commit is contained in:
Christopher Allford 2023-05-11 11:31:10 -07:00 committed by GitHub
parent 2b573d4f54
commit 7b7ca116f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 110 additions and 126 deletions

View File

@ -78,7 +78,6 @@
"@wordpress/eslint-plugin",
"@wordpress/babel-plugin-import-jsx-pragma",
"@wordpress/babel-preset-default",
"@wordpress/env",
"@wordpress/stylelint-config",
"@wordpress/prettier-config",
"@wordpress/scripts",
@ -116,6 +115,15 @@
],
"isIgnored": true
},
{
"dependencies": [
"@wordpress/env"
],
"packages": [
"**"
],
"pinVersion": "^7.0.0"
},
{
"dependencies": [
"@wordpress/**"

View File

@ -0,0 +1,5 @@
Significance: patch
Type: dev
Comment: Dev-only change

View File

@ -15,7 +15,7 @@
"@types/wordpress__components": "^19.10.3",
"@woocommerce/dependency-extraction-webpack-plugin": "workspace:*",
"@woocommerce/eslint-plugin": "workspace:*",
"@wordpress/env": "^4.8.0",
"@wordpress/env": "^7.0.0",
"@wordpress/prettier-config": "^2.5.0",
"@wordpress/scripts": "^19.2.4",
"eslint": "^8.32.0",

View File

@ -10,13 +10,24 @@
"ALTERNATE_WP_CRON": true
},
"mappings": {
"wp-cli.yml": ".\/tests\/wp-cli.yml"
"wp-cli.yml": "./tests/wp-cli.yml"
},
"afterSetup": "./tests/e2e-pw/bin/test-env-setup.sh",
"env": {
"development": [],
"development": {},
"tests": {
"port": 8086,
"plugins": [
".",
"https://downloads.wordpress.org/plugin/akismet.zip",
"https://github.com/WP-API/Basic-Auth/archive/master.zip",
"https://downloads.wordpress.org/plugin/wp-mail-logging.zip"
],
"themes": [
"https://downloads.wordpress.org/theme/twentynineteen.zip"
],
"config": {
"WP_TESTS_DOMAIN": "localhost",
"ALTERNATE_WP_CRON": false
}
}

View File

@ -0,0 +1,5 @@
Significance: patch
Type: dev
Comment: Dev-only change

View File

@ -29,15 +29,15 @@
"docker:down": "pnpm exec wc-e2e docker:down",
"docker:ssh": "pnpm exec wc-e2e docker:ssh",
"docker:up": "pnpm exec wc-e2e docker:up",
"env:dev": "pnpm wp-env start",
"env:dev": "pnpm wp-env start --update",
"update-wp-env": "php ./tests/e2e-pw/bin/update-wp-env.php",
"env:test": "pnpm run update-wp-env && pnpm run env:dev && ./tests/e2e-pw/bin/test-env-setup.sh",
"env:test": "pnpm run update-wp-env && pnpm run env:dev",
"test:e2e-pw": "USE_WP_ENV=1 pnpm playwright test --config=tests/e2e-pw/playwright.config.js",
"test:api-pw": "USE_WP_ENV=1 pnpm playwright test --config=tests/api-core-tests/playwright.config.js",
"env:start": "pnpm wp-env start && ./tests/e2e-pw/bin/test-env-setup.sh",
"env:restart": "pnpm wp-env destroy && pnpm wp-env start && ./tests/e2e-pw/bin/test-env-setup.sh",
"env:start": "pnpm wp-env start",
"env:restart": "pnpm wp-env destroy && pnpm wp-env start --update",
"env:stop": "pnpm wp-env stop",
"env:test:cot": "pnpm run update-wp-env && pnpm run env:dev && ENABLE_HPOS=1 ./tests/e2e-pw/bin/test-env-setup.sh",
"env:test:cot": "pnpm run update-wp-env && ENABLE_HPOS=1 pnpm run env:dev",
"env:performance-init": "./tests/performance/bin/init-sample-products.sh",
"env:down": "pnpm wp-env stop",
"env:destroy": "pnpm run update-wp-env && pnpm wp-env destroy",
@ -68,7 +68,7 @@
"@woocommerce/woocommerce-rest-api": "^1.0.1",
"@wordpress/babel-plugin-import-jsx-pragma": "1.1.3",
"@wordpress/babel-preset-default": "3.0.2",
"@wordpress/env": "^4.8.0",
"@wordpress/env": "^7.0.0",
"@wordpress/stylelint-config": "19.1.0",
"allure-commandline": "^2.17.2",
"allure-playwright": "^2.0.0-beta.16",

View File

@ -4,21 +4,14 @@ ENABLE_HPOS="${ENABLE_HPOS:-0}"
ENABLE_NEW_PRODUCT_EDITOR="${ENABLE_NEW_PRODUCT_EDITOR:-0}"
ENABLE_TRACKING="${ENABLE_TRACKING:-0}"
echo -e 'Normalize permissions for wp-content directory \n'
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u www-data -e HOME=/tmp tests-wordpress sh -c "chmod -c ugo+w /var/www/html/wp-config.php \
&& chmod -c ugo+w /var/www/html/wp-content \
&& chmod -c ugo+w /var/www/html/wp-content/themes \
&& chmod -c ugo+w /var/www/html/wp-content/plugins \
&& mkdir -p /var/www/html/wp-content/upgrade \
&& chmod -c ugo+w /var/www/html/wp-content/upgrade"
echo -e 'Activate twentynineteen theme \n'
wp-env run tests-cli "wp theme activate twentynineteen"
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u www-data -e HOME=/tmp tests-cli sh -c "ls \
&& wp theme install twentynineteen --activate \
&& wp plugin install https://github.com/WP-API/Basic-Auth/archive/master.zip --activate \
&& wp plugin install wp-mail-logging --activate \
&& wp plugin install https://github.com/woocommerce/woocommerce-reset/archive/refs/heads/trunk.zip --activate \
&& wp rewrite structure '/%postname%/' --hard \
&& wp user create customer customer@woocommercecoree2etestsuite.com \
echo -e 'Update URL structure \n'
wp-env run tests-cli "wp rewrite structure '/%postname%/' --hard"
echo -e 'Add Customer user \n'
wp-env run tests-cli "wp user create customer customer@woocommercecoree2etestsuite.com \
--user_pass=password \
--role=subscriber \
--first_name='Jane' \
@ -26,19 +19,19 @@ docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u www-data
--user_registered='2022-01-01 12:23:45'"
echo -e 'Update Blog Name \n'
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u $(id -u) -e HOME=/tmp tests-cli sh -c 'wp option update blogname "WooCommerce Core E2E Test Suite"'
wp-env run tests-cli "wp option update blogname 'WooCommerce Core E2E Test Suite'"
if [ $ENABLE_HPOS == 1 ]; then
echo 'Enable the COT feature'
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u www-data -e HOME=/tmp tests-cli sh -c "wp plugin install https://gist.github.com/vedanshujain/564afec8f5e9235a1257994ed39b1449/archive/b031465052fc3e04b17624acbeeb2569ef4d5301.zip --activate"
wp-env run tests-cli "wp plugin install https://gist.github.com/vedanshujain/564afec8f5e9235a1257994ed39b1449/archive/b031465052fc3e04b17624acbeeb2569ef4d5301.zip --activate"
fi
if [ $ENABLE_NEW_PRODUCT_EDITOR == 1 ]; then
echo 'Enable the new product editor feature'
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u www-data -e HOME=/tmp tests-cli sh -c "wp plugin install https://github.com/woocommerce/woocommerce-experimental-enable-new-product-editor/releases/download/0.1.0/woocommerce-experimental-enable-new-product-editor.zip --activate"
wp-env run tests-cli "wp plugin install https://github.com/woocommerce/woocommerce-experimental-enable-new-product-editor/releases/download/0.1.0/woocommerce-experimental-enable-new-product-editor.zip --activate"
fi
if [ $ENABLE_TRACKING == 1 ]; then
echo 'Enable tracking'
docker-compose -f $(wp-env install-path)/docker-compose.yml run --rm -u $(id -u) -e HOME=/tmp tests-cli sh -c "wp option update woocommerce_allow_tracking 'yes'"
wp-env run tests-cli "wp option update woocommerce_allow_tracking 'yes'"
fi

View File

@ -12,7 +12,7 @@ if ( ! class_exists( UPDATE_WP_JSON::class ) ) {
public function __construct() {
if ( file_exists( $this->wp_env_path ) ) {
$this->wp_json = json_decode( file_get_contents( $this->wp_env_path ), true );
$this->wp_json = json_decode( file_get_contents( $this->wp_env_path ), false );
} else {
throw new Exception( ".wp-env.json doesn't exist!" );
}
@ -38,48 +38,54 @@ if ( ! class_exists( UPDATE_WP_JSON::class ) ) {
}
echo "Set WP Version to $version \n";
$this->wp_json["core"] = $version;
$this->wp_json->core = $version;
}
}
public function revert_wp_version(){
unset( $this->wp_json["core"] );
unset( $this->wp_json->core );
}
public function set_wc_version(){
if ( $this->wc_version ) {
echo "Set WC Version to $this->wc_version \n";
$this->wp_json["plugins"] = [ "https://github.com/woocommerce/woocommerce/releases/download/$this->wc_version/woocommerce.zip" ];
$this->wp_json->plugins = [ "https://github.com/woocommerce/woocommerce/releases/download/$this->wc_version/woocommerce.zip" ];
}
}
public function revert_wc_version(){
$this->wp_json["plugins"] = [ "." ];
$this->wp_json->env->tests->plugins = array_filter( $this->wp_json->env->tests->plugins, function( $string ) {
return strpos( $string, "woocommerce.zip" ) === false;
} );
if ( ! in_array( ".", $this->wp_json->env->tests->plugins ) ) {
array_unshift( $this->wp_json->env->tests->plugins, "." );
}
}
public function set_php_version(){
if ( $this->php_version ) {
echo "Set PHP Version to $this->php_version \n";
$this->wp_json["phpVersion"] = $this->php_version;
$this->wp_json->phpVersion = $this->php_version;
}
}
public function revert_php_version(){
$this->wp_json["phpVersion"] = "7.4";
$this->wp_json->phpVersion = "7.4";
}
public function update(){
$this->set_wp_version();
$this->set_wc_version();
$this->set_php_version();
file_put_contents( $this->wp_env_path, json_encode( $this->wp_json, JSON_PRETTY_PRINT ) );
file_put_contents( $this->wp_env_path, json_encode( $this->wp_json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ) );
}
public function revert(){
$this->revert_wp_version();
$this->revert_wc_version();
$this->revert_php_version();
file_put_contents( $this->wp_env_path, json_encode( $this->wp_json, JSON_PRETTY_PRINT ) );
file_put_contents( $this->wp_env_path, json_encode( $this->wp_json, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES ) );
echo "Reverted .wp-env.json \n";
}

View File

@ -35,14 +35,28 @@ test.describe( 'Can create a new post', () => {
test( 'can create new post', async ( { page } ) => {
await page.goto( 'wp-admin/post-new.php' );
const welcomeModalVisible = await page
.getByRole( 'heading', {
name: 'Welcome to the block editor',
} )
.isVisible();
const welcomeModalVisible = await test.step(
'Check if the Welcome modal appeared',
async () => {
return await page
.getByRole( 'heading', {
name: 'Welcome to the block editor',
} )
.isVisible();
}
);
if ( welcomeModalVisible ) {
await page.getByRole( 'button', { name: 'Close dialog' } ).click();
await test.step( 'Welcome modal appeared. Close it.', async () => {
await page
.getByRole( 'document' )
.getByRole( 'button', { name: 'Close' } )
.click();
} );
} else {
await test.step( 'Welcome modal did not appear.', async () => {
// do nothing.
} );
}
await page

View File

@ -8,15 +8,6 @@ wp-env run tests-cli "wp plugin activate woocommerce"
wp-env run tests-cli "wp user create customer customer@woocommercecoree2etestsuite.com --user_pass=password --role=subscriber --path=/var/www/html"
# we cannot create API keys for the API, so we using basic auth, this plugin allows that.
wp-env run tests-cli "wp plugin install https://github.com/WP-API/Basic-Auth/archive/master.zip --activate"
# update permalinks to `pretty` to make it easier for testing APIs with k6
wp-env run tests-cli "wp option update permalink_structure /%postname%/"
# install the WP Mail Logging plugin to test emails
wp-env run tests-cli "wp plugin install wp-mail-logging --activate"
# Installing and activating the WordPress Importer plugin to import sample products"
wp-env run tests-cli "wp plugin install wordpress-importer --activate"
@ -43,8 +34,7 @@ wp-env run tests-cli "wp theme install storefront --activate"
echo "Success! Your E2E Test Environment is now ready."
if [ $ENABLE_HPOS == 1 ]; then
echo 'Enable the COT feature'
echo "Enable the COT feature"
wp-env run tests-cli "wp plugin install https://gist.github.com/vedanshujain/564afec8f5e9235a1257994ed39b1449/archive/b031465052fc3e04b17624acbeeb2569ef4d5301.zip --activate"
fi

View File

@ -2350,8 +2350,8 @@ importers:
specifier: 3.0.2
version: 3.0.2(@babel/core@7.12.9)
'@wordpress/env':
specifier: ^4.8.0
version: 4.9.0
specifier: ^7.0.0
version: 7.0.0
'@wordpress/stylelint-config':
specifier: 19.1.0
version: 19.1.0(stylelint@13.13.1)
@ -3027,8 +3027,8 @@ importers:
specifier: workspace:*
version: link:../../packages/js/eslint-plugin
'@wordpress/env':
specifier: ^4.8.0
version: 4.9.0
specifier: ^7.0.0
version: 7.0.0
'@wordpress/prettier-config':
specifier: ^2.5.0
version: 2.5.0(wp-prettier@2.6.2)
@ -13235,15 +13235,9 @@ packages:
/@sinclair/typebox@0.25.24:
resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
/@sindresorhus/is@2.1.1:
resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==}
engines: {node: '>=10'}
dev: true
/@sindresorhus/is@4.6.0:
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
dev: false
/@sinonjs/commons@1.8.3:
resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==}
@ -18812,15 +18806,15 @@ packages:
react: 17.0.2
react-dom: 18.2.0(react@17.0.2)
/@wordpress/env@4.9.0:
resolution: {integrity: sha512-C2g5aOYxl1Bd9lypvEMjXZ1s1Gx/JHpFWuPlCAI8gAzwzB9jCIZkqpU85GsGScpZLAANS/N7wF3LMY68UkN9fQ==}
/@wordpress/env@7.0.0:
resolution: {integrity: sha512-C0Z/smvyEeMFPjoDo149dv/w83W9hVOIkBQSGpRzeWSwDEJVYPKeZ1sUSC4y01zdXVyIxeyWIRLSm611pYIlAQ==}
hasBin: true
dependencies:
chalk: 4.1.2
copy-dir: 1.3.0
docker-compose: 0.22.2
extract-zip: 1.7.0
got: 10.7.0
got: 11.8.6
inquirer: 7.3.3
js-yaml: 3.14.1
ora: 4.1.1
@ -22618,18 +22612,9 @@ packages:
union-value: 1.0.1
unset-value: 1.0.0
/cacheable-lookup@2.0.1:
resolution: {integrity: sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==}
engines: {node: '>=10'}
dependencies:
'@types/keyv': 3.1.4
keyv: 4.1.1
dev: true
/cacheable-lookup@5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'}
dev: false
/cacheable-request@7.0.2:
resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==}
@ -24612,19 +24597,11 @@ packages:
resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==}
engines: {node: '>=0.10'}
/decompress-response@5.0.0:
resolution: {integrity: sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==}
engines: {node: '>=10'}
dependencies:
mimic-response: 2.1.0
dev: true
/decompress-response@6.0.0:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
dependencies:
mimic-response: 3.1.0
dev: false
/dedent@0.7.0:
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
@ -28176,29 +28153,6 @@ packages:
dependencies:
delegate: 3.2.0
/got@10.7.0:
resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==}
engines: {node: '>=10'}
dependencies:
'@sindresorhus/is': 2.1.1
'@szmarczak/http-timer': 4.0.6
'@types/cacheable-request': 6.0.2
'@types/keyv': 3.1.4
'@types/responselike': 1.0.0
cacheable-lookup: 2.0.1
cacheable-request: 7.0.2
decompress-response: 5.0.0
duplexer3: 0.1.4
get-stream: 5.2.0
lowercase-keys: 2.0.0
mimic-response: 2.1.0
p-cancelable: 2.1.1
p-event: 4.2.0
responselike: 2.0.0
to-readable-stream: 2.1.0
type-fest: 0.10.0
dev: true
/got@11.8.3:
resolution: {integrity: sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==}
engines: {node: '>=10.19.0'}
@ -28216,6 +28170,23 @@ packages:
responselike: 2.0.0
dev: false
/got@11.8.6:
resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
engines: {node: '>=10.19.0'}
dependencies:
'@sindresorhus/is': 4.6.0
'@szmarczak/http-timer': 4.0.6
'@types/cacheable-request': 6.0.2
'@types/responselike': 1.0.0
cacheable-lookup: 5.0.4
cacheable-request: 7.0.2
decompress-response: 6.0.0
http2-wrapper: 1.0.3
lowercase-keys: 2.0.0
p-cancelable: 2.1.1
responselike: 2.0.0
dev: true
/got@6.7.1:
resolution: {integrity: sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==}
engines: {node: '>=4'}
@ -29052,7 +29023,6 @@ packages:
dependencies:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
dev: false
/https-browserify@1.0.0:
resolution: {integrity: sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=}
@ -34499,15 +34469,9 @@ packages:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
/mimic-response@2.1.0:
resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
engines: {node: '>=8'}
dev: true
/mimic-response@3.1.0:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
dev: false
/min-document@2.19.0:
resolution: {integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=}
@ -37760,7 +37724,6 @@ packages:
/quick-lru@5.1.1:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
dev: false
/raf@3.4.1:
resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
@ -39249,7 +39212,6 @@ packages:
/resolve-alpn@1.2.1:
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
dev: false
/resolve-bin@0.4.3:
resolution: {integrity: sha512-9u8TMpc+SEHXxQXblXHz5yRvRZERkCZimFN9oz85QI3uhkh7nqfjm6OGTLg+8vucpXGcY4jLK6WkylPmt7GSvw==}
@ -41800,11 +41762,6 @@ packages:
dependencies:
kind-of: 3.2.2
/to-readable-stream@2.1.0:
resolution: {integrity: sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==}
engines: {node: '>=8'}
dev: true
/to-regex-range@2.1.1:
resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
engines: {node: '>=0.10.0'}
@ -42194,11 +42151,6 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
/type-fest@0.10.0:
resolution: {integrity: sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==}
engines: {node: '>=8'}
dev: true
/type-fest@0.13.1:
resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
engines: {node: '>=10'}