diff --git a/.syncpackrc b/.syncpackrc index 832c6f62e33..baf0716cbc6 100644 --- a/.syncpackrc +++ b/.syncpackrc @@ -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/**" diff --git a/plugins/woocommerce-beta-tester/changelog/update-wp-env-7.0.0 b/plugins/woocommerce-beta-tester/changelog/update-wp-env-7.0.0 new file mode 100644 index 00000000000..f7dace12d1d --- /dev/null +++ b/plugins/woocommerce-beta-tester/changelog/update-wp-env-7.0.0 @@ -0,0 +1,5 @@ +Significance: patch +Type: dev +Comment: Dev-only change + + diff --git a/plugins/woocommerce-beta-tester/package.json b/plugins/woocommerce-beta-tester/package.json index 695b9ff8509..16d70aad0e2 100644 --- a/plugins/woocommerce-beta-tester/package.json +++ b/plugins/woocommerce-beta-tester/package.json @@ -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", diff --git a/plugins/woocommerce/.wp-env.json b/plugins/woocommerce/.wp-env.json index 618c4a21fdf..a4f79b86e22 100644 --- a/plugins/woocommerce/.wp-env.json +++ b/plugins/woocommerce/.wp-env.json @@ -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 } } diff --git a/plugins/woocommerce/changelog/update-wp-env-7.0.0 b/plugins/woocommerce/changelog/update-wp-env-7.0.0 new file mode 100644 index 00000000000..f7dace12d1d --- /dev/null +++ b/plugins/woocommerce/changelog/update-wp-env-7.0.0 @@ -0,0 +1,5 @@ +Significance: patch +Type: dev +Comment: Dev-only change + + diff --git a/plugins/woocommerce/package.json b/plugins/woocommerce/package.json index 0275ae764af..8738504a36a 100644 --- a/plugins/woocommerce/package.json +++ b/plugins/woocommerce/package.json @@ -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", diff --git a/plugins/woocommerce/tests/e2e-pw/bin/test-env-setup.sh b/plugins/woocommerce/tests/e2e-pw/bin/test-env-setup.sh index 32662b68a5c..787379743dd 100755 --- a/plugins/woocommerce/tests/e2e-pw/bin/test-env-setup.sh +++ b/plugins/woocommerce/tests/e2e-pw/bin/test-env-setup.sh @@ -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 diff --git a/plugins/woocommerce/tests/e2e-pw/bin/update-wp-env.php b/plugins/woocommerce/tests/e2e-pw/bin/update-wp-env.php index dcb87a7b56c..20cfdd47315 100644 --- a/plugins/woocommerce/tests/e2e-pw/bin/update-wp-env.php +++ b/plugins/woocommerce/tests/e2e-pw/bin/update-wp-env.php @@ -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"; } diff --git a/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-post.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-post.spec.js index da438f2c386..5f368776d48 100644 --- a/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-post.spec.js +++ b/plugins/woocommerce/tests/e2e-pw/tests/merchant/create-post.spec.js @@ -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 diff --git a/plugins/woocommerce/tests/performance/bin/init-sample-products.sh b/plugins/woocommerce/tests/performance/bin/init-sample-products.sh index e5a941876f4..6a80d5ef368 100755 --- a/plugins/woocommerce/tests/performance/bin/init-sample-products.sh +++ b/plugins/woocommerce/tests/performance/bin/init-sample-products.sh @@ -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 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 35320f9eead..9238ad821ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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'}