From 4b8625a2685fd1492c6a5cdb10e00144b665167e Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Mon, 21 Aug 2023 14:48:34 -0400 Subject: [PATCH 01/57] version bump --- README.txt | 2 +- bootstrap.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 5c8a70ac..d5f1439b 100644 --- a/README.txt +++ b/README.txt @@ -4,7 +4,7 @@ Tags: ecommerce,email,workflows,mailchimp Donate link: https://mailchimp.com Requires at least: 4.9 Tested up to: 6.3 -Stable tag: 3.1 +Stable tag: 3.2 Requires PHP: 7.4 WC requires at least: 4.2 WC tested up to: 8.0 diff --git a/bootstrap.php b/bootstrap.php index 4c7dd711..6131fb76 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -97,7 +97,7 @@ function mailchimp_environment_variables() { return (object) array( 'repo' => 'master', 'environment' => 'production', // staging or production - 'version' => '3.2', + 'version' => '3.2.1', 'php_version' => phpversion(), 'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version), 'wc_version' => function_exists('WC') ? WC()->version : null, From 1ffbd2105a118767a9caec833aa15051a2ffbe16 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Mon, 21 Aug 2023 14:49:13 -0400 Subject: [PATCH 02/57] remove excessive doi call during sync --- includes/processes/class-mailchimp-woocommerce-single-order.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index 47b78d15..a348ede0 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -242,7 +242,7 @@ public function process() } // if they are using double opt in, we need to pass this in as false here so it doesn't auto subscribe. try { - $doi = mailchimp_list_has_double_optin(true); + $doi = mailchimp_list_has_double_optin(false); } catch (Exception $e_doi) { throw $e_doi; } From f195b7127865ae917f6661b7b89e74eb1f59f4d5 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Mon, 28 Aug 2023 10:10:44 -0400 Subject: [PATCH 03/57] changelog template --- CHANGELOG.txt | 2 ++ README.txt | 7 ++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8679be16..a6a97927 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,4 +1,6 @@ == Changelog == += 3.3 = +* remove excessive mailchimp double opt in calls during sync = 3.2 = * fix for too few arguments to function MailChimp_Service::handleOrderUpdate() * update to lateset version of core blocks for the site editor diff --git a/README.txt b/README.txt index d5f1439b..72deae38 100644 --- a/README.txt +++ b/README.txt @@ -78,8 +78,5 @@ At this time, the synchronization of product categories from WooCommerce to Mail If you are unable to sync or connect with Mailchimp, you can open a ticket on our [Github plugin page](https://github.com/mailchimp/mc-woocommerce/issues). Please provide the version of the plugin and PHP you're using, any fatal errors in the WooCommerce logs (WooCommerce -> Status -> Logs) you're seeing, along with relevant information to the problem you're experiencing. == Changelog == -= 3.2 = -* fix for too few arguments to function MailChimp_Service::handleOrderUpdate() -* update to lateset version of core blocks for the site editor -* adds the plugin icon back to wp-admin menu -* adds automatic webhook cleaning += 3.3 = +* remove excessive mailchimp double opt in calls during sync From e34e78f03a445ad8bf6a350ffbd413f689ab7f0a Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 5 Sep 2023 09:25:37 -0400 Subject: [PATCH 04/57] filter for subscribers only needed adjustments --- .../processes/class-mailchimp-woocommerce-single-order.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index a348ede0..b3ee8217 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -181,11 +181,16 @@ public function process() return false; } + $original_status = $order->getCustomer()->getOriginalSubscriberStatus(); $status = $order->getCustomer()->getOptInStatus(); $transient_key = mailchimp_hash_trim_lower($email).".mc.status"; $current_status = null; - if (!$status && mailchimp_submit_subscribed_only()) { + // if the customer did not actually check the box, this will always be false. + // we needed to use this flag because when using double opt in, the status gets + // overwritten to allow us to submit a pending status to the list member endpoint + // which fires the double opt in. + if (!$original_status && mailchimp_submit_subscribed_only()) { try { $subscriber = $api->member(mailchimp_get_list_id(), $email); $current_status = $subscriber['status']; From b8e8fea46383d965bcca876196b4e63b8a1919e0 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 5 Sep 2023 10:00:49 -0400 Subject: [PATCH 05/57] support for plain permalinks --- bootstrap.php | 5 +- .../class-mailchimp-woocommerce-rest-api.php | 70 ++++++++----------- ...ss-mailchimp-woocommerce-webhooks-sync.php | 6 +- 3 files changed, 37 insertions(+), 44 deletions(-) diff --git a/bootstrap.php b/bootstrap.php index df9f2dcd..f5afb438 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -336,8 +336,9 @@ function mailchimp_get_list_id() { * @return string */ function mailchimp_build_webhook_url( $key ) { - //$key = base64_encode($key); - return MailChimp_WooCommerce_Rest_Api::url('member-sync') . '?auth=' . $key; + $rest_url = MailChimp_WooCommerce_Rest_Api::url('member-sync'); + $qs = str_contains($rest_url, '/wp-json/') ? '?' : '&'; + return $rest_url.$qs."auth={$key}"; } /** * Generate random string diff --git a/includes/class-mailchimp-woocommerce-rest-api.php b/includes/class-mailchimp-woocommerce-rest-api.php index 33c63aff..da64a4d9 100644 --- a/includes/class-mailchimp-woocommerce-rest-api.php +++ b/includes/class-mailchimp-woocommerce-rest-api.php @@ -338,45 +338,37 @@ public function handle_tower_action(WP_REST_Request $request) case 'activate_webhooks': $api = mailchimp_get_api(); $list = mailchimp_get_list_id(); - if (get_option('permalink_structure') === '') { - $response = [ - 'title' => "Store Webhooks", - 'description' => "No store webhooks to apply", - 'type' => 'error', - ]; - } else { - $previous_url = mailchimp_get_webhook_url(); - if (mailchimp_get_data('webhook.token') && $previous_url && $api->hasWebhook($list, $previous_url)) { - $response = [ - 'title' => "Store Webhooks", - 'description' => "Store already has webhooks enabled!", - 'type' => 'success', - ]; - } else { - $key = mailchimp_create_webhook_token(); - $url = mailchimp_build_webhook_url($key); - mailchimp_set_data('webhook.token', $key); - try { - $webhook = $api->webHookSubscribe($list, $url); - mailchimp_set_webhook_url($webhook['url']); - mailchimp_log('webhooks', "added webhook to audience"); - $response = [ - 'title' => "Store Webhooks", - 'description' => "Set up a new webhook at {$webhook['url']}", - 'type' => 'success', - ]; - } catch (Exception $e) { - $response = [ - 'title' => "Store Webhooks", - 'description' => $e->getMessage(), - 'type' => 'error', - ]; - mailchimp_set_data('webhook.token', false); - mailchimp_set_webhook_url(false); - mailchimp_error('webhook', $e->getMessage()); - } - } - } + $previous_url = mailchimp_get_webhook_url(); + if (mailchimp_get_data('webhook.token') && $previous_url && $api->hasWebhook($list, $previous_url)) { + $response = [ + 'title' => "Store Webhooks", + 'description' => "Store already has webhooks enabled!", + 'type' => 'success', + ]; + } else { + $key = mailchimp_create_webhook_token(); + $url = mailchimp_build_webhook_url($key); + mailchimp_set_data('webhook.token', $key); + try { + $webhook = $api->webHookSubscribe($list, $url); + mailchimp_set_webhook_url($webhook['url']); + mailchimp_log('webhooks', "added webhook to audience"); + $response = [ + 'title' => "Store Webhooks", + 'description' => "Set up a new webhook at {$webhook['url']}", + 'type' => 'success', + ]; + } catch (Exception $e) { + $response = [ + 'title' => "Store Webhooks", + 'description' => $e->getMessage(), + 'type' => 'error', + ]; + mailchimp_set_data('webhook.token', false); + mailchimp_set_webhook_url(false); + mailchimp_error('webhook', $e->getMessage()); + } + } break; case 'resync_all': $service = new MailChimp_Service(); diff --git a/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php b/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php index 22715e36..e2c2daf2 100644 --- a/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php +++ b/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php @@ -34,10 +34,10 @@ public function subscribeWebhook() $list = mailchimp_get_list_id(); $api = mailchimp_get_api(); - $token = mailchimp_get_data('webhook.token'); - // for some reason the webhook url does not work with ?rest_route style, permalinks should be defined also - if (!$token && get_option('permalink_structure') !== '') { + // we used to check for this until we fixed the url delimiter problem + // get_option('permalink_structure') !== '' + if (!mailchimp_get_data('webhook.token')) { $key = mailchimp_create_webhook_token(); $url = mailchimp_build_webhook_url($key); mailchimp_set_data('webhook.token', $key); From 361588a2d5bade7659f9f320d44507d2c50cba9b Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 5 Sep 2023 10:06:52 -0400 Subject: [PATCH 06/57] use internal string contains function --- bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.php b/bootstrap.php index f5afb438..bfef91ae 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -337,7 +337,7 @@ function mailchimp_get_list_id() { */ function mailchimp_build_webhook_url( $key ) { $rest_url = MailChimp_WooCommerce_Rest_Api::url('member-sync'); - $qs = str_contains($rest_url, '/wp-json/') ? '?' : '&'; + $qs = mailchimp_string_contains($rest_url, '/wp-json/') ? '?' : '&'; return $rest_url.$qs."auth={$key}"; } /** From bdc190a67b010d44b6441582d19fdf6f21497426 Mon Sep 17 00:00:00 2001 From: tarassych Date: Fri, 8 Sep 2023 12:27:40 +0300 Subject: [PATCH 07/57] Clear the webhook data from the DB when running the cleanHooks method --- .../processes/class-mailchimp-woocommerce-webhooks-sync.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php b/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php index e2c2daf2..2e487897 100644 --- a/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php +++ b/includes/processes/class-mailchimp-woocommerce-webhooks-sync.php @@ -80,6 +80,9 @@ public function cleanHooks() mailchimp_log('webhooks', "Deleted old plugin webhook id {$hook['id']} :: {$href}"); } } + + mailchimp_set_data('webhook.token', false); + mailchimp_set_webhook_url(false); } catch (Throwable $e) { mailchimp_error('webhook deletion error', $e->getMessage()); } From c8a46ff4fb769f4fbf1dcfb6f8ecaa46e17a1bd4 Mon Sep 17 00:00:00 2001 From: tarassych Date: Fri, 8 Sep 2023 14:13:50 +0300 Subject: [PATCH 08/57] Fixed include GDPR fields when member data updating --- bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.php b/bootstrap.php index bfef91ae..22b5191f 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -1388,7 +1388,7 @@ function mailchimp_member_data_update($user_email = null, $language = null, $cal if ($member['status'] === 'transactional' && in_array($status_if_new, array('subscribed', 'pending'))) { $member['status'] = $status_if_new; } - if (($member['status'] === 'transactional' && in_array($status_if_new, array('subscribed', 'pending'))) || $member['status'] === 'subscribed') { + if (($member['status'] === 'transactional' && in_array($status_if_new, array('subscribed', 'pending'))) || $member['status'] === 'subscribed' || $member['status'] === 'pending') { if (!empty($gdpr_fields) && is_array($gdpr_fields)) { $gdpr_fields_to_save = []; foreach ($gdpr_fields as $id => $value) { From 650fe3f4af464d4e008fe1a2c3f0822a349f7a1c Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Thu, 14 Sep 2023 08:54:09 -0400 Subject: [PATCH 09/57] add identifier to the admin ajax method for debugging --- admin/class-mailchimp-woocommerce-admin.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/admin/class-mailchimp-woocommerce-admin.php b/admin/class-mailchimp-woocommerce-admin.php index 58a52cf1..f95d8dd7 100644 --- a/admin/class-mailchimp-woocommerce-admin.php +++ b/admin/class-mailchimp-woocommerce-admin.php @@ -2119,7 +2119,9 @@ public function defineWebHooks() { */ protected function adminOnlyMiddleware( $message = "You're not allowed to do this" ) { if ( ! current_user_can( mailchimp_get_allowed_capability() ) ) { - wp_send_json_error( array( 'message' => $message ) ); + $error = new \Exception(); + mailchimp_debug('admin', 'tracing admin json error', $error->getTrace()); + wp_send_json_error( array( 'message' => $message, 'from' => 'mailchimp-for-woocommerce' ) ); } return true; } From 3c0e23ba7939b9da3697de5cc464ee2a315547d1 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Thu, 14 Sep 2023 09:36:25 -0400 Subject: [PATCH 10/57] populate camapaign id from MC response --- includes/api/assets/class-mailchimp-order.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/includes/api/assets/class-mailchimp-order.php b/includes/api/assets/class-mailchimp-order.php index b7fe7ec5..25976b39 100644 --- a/includes/api/assets/class-mailchimp-order.php +++ b/includes/api/assets/class-mailchimp-order.php @@ -685,6 +685,11 @@ public function fromArray( array $data ) { $this->setCustomer( $customer_object->fromArray( $data['customer'] ) ); } + // apply the campaign id from the response if there is one. + if (array_key_exists('outreach', $data) && !empty($data['outreach']) && array_key_exists('id', $data['outreach'])) { + $this->setCampaignId($data['outreach']['id']); + } + return $this; } /** From e4eaf3e3c4f8fded01fd6f6c552598d98bce56d6 Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 20 Sep 2023 16:02:48 +0300 Subject: [PATCH 11/57] Fixed PHP Warning: Undefined variable $pulled_member --- includes/processes/class-mailchimp-woocommerce-single-order.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index b3ee8217..3b878ac5 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -185,6 +185,7 @@ public function process() $status = $order->getCustomer()->getOptInStatus(); $transient_key = mailchimp_hash_trim_lower($email).".mc.status"; $current_status = null; + $pulled_member = false; // if the customer did not actually check the box, this will always be false. // we needed to use this flag because when using double opt in, the status gets From 5e487c5fffb9d1ccd5fb3a64398cbedc107b72b4 Mon Sep 17 00:00:00 2001 From: jrdnrch <3683251+jrdnrch@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:01:40 -0400 Subject: [PATCH 12/57] Update README.txt v3.3 --- README.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 72deae38..a2fa7ff6 100644 --- a/README.txt +++ b/README.txt @@ -7,7 +7,7 @@ Tested up to: 6.3 Stable tag: 3.2 Requires PHP: 7.4 WC requires at least: 4.2 -WC tested up to: 8.0 +WC tested up to: 8.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Connect your store to your Mailchimp audience to track sales, create targeted emails, send abandoned cart emails, and more. @@ -79,4 +79,9 @@ If you are unable to sync or connect with Mailchimp, you can open a ticket on ou == Changelog == = 3.3 = -* remove excessive mailchimp double opt in calls during sync +* Performance enhancement: Removing excessive double opt-in api calls during initial sync +* Fix for translated product issue +* Fix for ongoing sync settings failing when double opt-in enabled +* Fix for permalink conflicting with Webhook creation +* Fix for GDPR Marketing Preferences not captured on checkout +* Word-wrap version update to 1.2.3 in blocks From f2e96035a4ba53c563a586bd1d55507341a13bd0 Mon Sep 17 00:00:00 2001 From: jrdnrch <3683251+jrdnrch@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:03:54 -0400 Subject: [PATCH 13/57] Update CHANGELOG.txt v3.3 changelog --- CHANGELOG.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a6a97927..c424a2c4 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,11 @@ == Changelog == = 3.3 = -* remove excessive mailchimp double opt in calls during sync +* Performance enhancement: Removing excessive double opt-in api calls during initial sync +* Fix for translated product issue +* Fix for ongoing sync settings failing when double opt-in enabled +* Fix for permalink conflicting with Webhook creation +* Fix for GDPR Marketing Preferences not captured on checkout +* Word-wrap version update to 1.2.3 in blocks = 3.2 = * fix for too few arguments to function MailChimp_Service::handleOrderUpdate() * update to lateset version of core blocks for the site editor From c653f8ab458c32e93ee225d8be294164ac23b299 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Thu, 28 Sep 2023 10:25:46 -0400 Subject: [PATCH 14/57] detect if wp_cron is disabled --- includes/api/class-mailchimp-woocommerce-tower.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index 6978d319..d7fc524e 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -298,7 +298,7 @@ public function getData() { ), 'wp_cron_enabled' => (object) array( 'key' => 'wp_cron_enabled', - 'value' => function_exists( 'curl_init' ), + 'value' => !defined('DISABLE_WP_CRON') || DISABLE_WP_CRON === false, ), 'akamai_blocked' => (object) array( 'key' => 'segment.akamai_blocked', From 3e1885897e438e3352b83cc245357f43dcd0ef1d Mon Sep 17 00:00:00 2001 From: tarassych Date: Tue, 3 Oct 2023 12:47:57 +0300 Subject: [PATCH 15/57] blocking synchronization of new subscriptions if the "Only sync subscribers" setting is selected and the user has not subscribed to the newsletter --- .../processes/class-mailchimp-woocommerce-user-submit.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/includes/processes/class-mailchimp-woocommerce-user-submit.php b/includes/processes/class-mailchimp-woocommerce-user-submit.php index b48030fb..a7036a84 100644 --- a/includes/processes/class-mailchimp-woocommerce-user-submit.php +++ b/includes/processes/class-mailchimp-woocommerce-user-submit.php @@ -320,6 +320,13 @@ public function handle() $uses_doi = isset($status_meta['requires_double_optin']) && $status_meta['requires_double_optin']; $status_if_new = $uses_doi && (bool) $this->subscribed ? 'pending' : $this->subscribed; + if ( mailchimp_submit_subscribed_only() ) { + mailchimp_debug('filter', "{$user->user_email} was blocked due to subscriber only settings"); + + static::$handling_for = null; + return false; + } + $api->subscribe($list_id, $user->user_email, $status_if_new, $merge_fields, null, $language, $gdpr_fields); // delete this admin transient if there was one From 20a7446259c837f170c424fc72a1d07259a182e0 Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 4 Oct 2023 11:04:25 +0300 Subject: [PATCH 16/57] moved check to sync only subscribers above before adding to queue --- includes/class-mailchimp-woocommerce-service.php | 6 ++++++ .../processes/class-mailchimp-woocommerce-user-submit.php | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index 33671813..4287ae12 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -608,6 +608,12 @@ function handleUserUpdated($user_id, $old_user_data) $is_subscribed = get_user_meta($user_id, 'mailchimp_woocommerce_is_subscribed', true); $gdpr_fields = get_user_meta($user_id, 'mailchimp_woocommerce_gdpr_fields', true); + if ( ! $is_subscribed && mailchimp_submit_subscribed_only() ) { + mailchimp_debug('filter', "{$old_user_data->user_email} was blocked due to subscriber only settings"); + + return; + } + $job = new MailChimp_WooCommerce_User_Submit( $user_id, $is_subscribed, diff --git a/includes/processes/class-mailchimp-woocommerce-user-submit.php b/includes/processes/class-mailchimp-woocommerce-user-submit.php index a7036a84..b48030fb 100644 --- a/includes/processes/class-mailchimp-woocommerce-user-submit.php +++ b/includes/processes/class-mailchimp-woocommerce-user-submit.php @@ -320,13 +320,6 @@ public function handle() $uses_doi = isset($status_meta['requires_double_optin']) && $status_meta['requires_double_optin']; $status_if_new = $uses_doi && (bool) $this->subscribed ? 'pending' : $this->subscribed; - if ( mailchimp_submit_subscribed_only() ) { - mailchimp_debug('filter', "{$user->user_email} was blocked due to subscriber only settings"); - - static::$handling_for = null; - return false; - } - $api->subscribe($list_id, $user->user_email, $status_if_new, $merge_fields, null, $language, $gdpr_fields); // delete this admin transient if there was one From 36a7da51de961bc136c8b11fd258caa4d7665a24 Mon Sep 17 00:00:00 2001 From: jrdnrch <3683251+jrdnrch@users.noreply.github.com> Date: Mon, 9 Oct 2023 21:48:09 -0400 Subject: [PATCH 17/57] Update README.txt adding the tested up to for WooCommerce to v8.2 --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index a2fa7ff6..e79d50e6 100644 --- a/README.txt +++ b/README.txt @@ -7,7 +7,7 @@ Tested up to: 6.3 Stable tag: 3.2 Requires PHP: 7.4 WC requires at least: 4.2 -WC tested up to: 8.1 +WC tested up to: 8.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Connect your store to your Mailchimp audience to track sales, create targeted emails, send abandoned cart emails, and more. From c1f95671697fd1741cc3741f0436510e1c1ec4bf Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 11 Oct 2023 16:34:14 +0300 Subject: [PATCH 18/57] Hide Newsletter Block when selected "Hidden, unchecked by default" option --- .../assets/js/checkout-newsletter-subscription-block/edit.js | 3 ++- blocks/build/newsletter-block.asset.php | 2 +- blocks/build/newsletter-block.js | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/blocks/assets/js/checkout-newsletter-subscription-block/edit.js b/blocks/assets/js/checkout-newsletter-subscription-block/edit.js index c6e44285..2eea9898 100644 --- a/blocks/assets/js/checkout-newsletter-subscription-block/edit.js +++ b/blocks/assets/js/checkout-newsletter-subscription-block/edit.js @@ -37,7 +37,8 @@ export const Edit = ( { attributes, setAttributes } ) => { /> -
+ { gdprStatus === 'hide' &&

Opt-in now hidden. Click for change option

} +
array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'ebb1659ab5c5462c6845'); + array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'fa68e943aa8bbd62c918'); diff --git a/blocks/build/newsletter-block.js b/blocks/build/newsletter-block.js index 33026eb5..fe2194ed 100644 --- a/blocks/build/newsletter-block.js +++ b/blocks/build/newsletter-block.js @@ -1 +1 @@ -!function(){"use strict";var e,t={90:function(){var e=window.wp.element,t=window.wp.components,l=window.wp.blocks,r=window.wp.i18n,n=window.wp.blockEditor,C=window.wc.blocksCheckout,o=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}'),a=window.wc.wcSettings;const{optinDefaultText:c,gdprHeadline:i,gdprFields:s,gdprStatus:m}=(0,a.getSetting)("mailchimp-newsletter_data","");var d={text:{type:"string",default:c},gdprHeadline:{type:"string",default:i},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:m}};(0,l.registerBlockType)(o,{icon:{src:(0,e.createElement)(t.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"60",height:"60",viewBox:"0 0 46 49",fill:"none"},(0,e.createElement)("path",{d:"M34.5458 23.5193C34.8988 23.4778 35.2361 23.4759 35.5457 23.5193C35.7252 23.107 35.7568 22.397 35.5951 21.6239C35.3544 20.4741 35.029 19.7778 34.3584 19.8863C33.6859 19.9948 33.6622 20.8271 33.9028 21.9769C34.037 22.6238 34.2776 23.1761 34.5458 23.5193Z",fill:"black"}),(0,e.createElement)("path",{d:"M28.7763 24.4284C29.2575 24.6394 29.5534 24.7795 29.6678 24.6572C29.7427 24.5803 29.719 24.4363 29.6046 24.2489C29.368 23.8624 28.8788 23.4679 28.3621 23.249C27.303 22.7934 26.0407 22.9453 25.0664 23.6454C24.745 23.8801 24.4393 24.2075 24.4826 24.4047C24.4965 24.4698 24.5458 24.5172 24.6582 24.5329C24.9225 24.5625 25.8494 24.0951 26.9164 24.03C27.6718 23.9827 28.295 24.2174 28.7763 24.4284Z",fill:"black"}),(0,e.createElement)("path",{d:"M27.8105 24.9806C27.1852 25.0793 26.8381 25.2863 26.6172 25.4777C26.4279 25.6433 26.3115 25.8267 26.3115 25.9549C26.3115 26.0161 26.3391 26.0516 26.3589 26.0693C26.3865 26.095 26.422 26.1088 26.4614 26.1088C26.6034 26.1088 26.919 25.9826 26.919 25.9826C27.7907 25.6709 28.3647 25.7084 28.9346 25.7735C29.2502 25.809 29.3981 25.8287 29.4672 25.7202C29.4869 25.6887 29.5125 25.6216 29.4494 25.521C29.3054 25.2804 28.6723 24.8781 27.8105 24.9806Z",fill:"black"}),(0,e.createElement)("path",{d:"M32.5975 27.0061C33.0235 27.2152 33.4909 27.1324 33.6428 26.8227C33.7946 26.5131 33.5737 26.093 33.1497 25.8839C32.7237 25.6749 32.2563 25.7577 32.1044 26.0673C31.9506 26.377 32.1734 26.7971 32.5975 27.0061Z",fill:"black"}),(0,e.createElement)("path",{d:"M35.3306 24.6177C34.9854 24.6118 34.6995 24.9905 34.6916 25.4638C34.6837 25.9372 34.9578 26.3257 35.303 26.3317C35.6481 26.3376 35.9341 25.9589 35.942 25.4855C35.9499 25.0122 35.6757 24.6237 35.3306 24.6177Z",fill:"black"}),(0,e.createElement)("path",{d:"M12.1324 33.1577C12.0456 33.0492 11.9056 33.0827 11.7695 33.1143C11.6749 33.136 11.5664 33.1616 11.448 33.1596C11.1936 33.1557 10.9786 33.0452 10.8583 32.8598C10.7006 32.6192 10.7104 32.2583 10.884 31.8461C10.9076 31.7909 10.9353 31.7297 10.9648 31.6607C11.241 31.0394 11.7064 30 11.1857 29.008C10.7932 28.2625 10.1542 27.797 9.38702 27.7004C8.64939 27.6077 7.89006 27.8798 7.40685 28.4143C6.64358 29.2565 6.52328 30.4044 6.6712 30.8087C6.72445 30.9566 6.80925 30.998 6.87237 31.0059C7.00254 31.0237 7.19385 30.929 7.31416 30.6055C7.32205 30.5819 7.33388 30.5464 7.34769 30.501C7.40094 30.3294 7.50152 30.0099 7.66522 29.7555C7.86245 29.4478 8.17012 29.2348 8.53105 29.1579C8.89789 29.079 9.2746 29.15 9.58819 29.3551C10.1227 29.7062 10.3298 30.361 10.101 30.9862C9.98264 31.3096 9.79133 31.9289 9.83275 32.4378C9.91756 33.4673 10.5507 33.8795 11.1206 33.9249C11.6729 33.9466 12.0594 33.6349 12.1581 33.4081C12.2133 33.274 12.164 33.1932 12.1324 33.1577Z",fill:"black"}),(0,e.createElement)("path",{d:"M44.044 31.2761C44.0223 31.2012 43.8862 30.7002 43.6969 30.0967C43.5075 29.4932 43.3142 29.0672 43.3142 29.0672C44.0696 27.9351 44.0834 26.9233 43.9828 26.3514C43.8763 25.6414 43.5805 25.0359 42.9829 24.4107C42.3873 23.7854 41.1684 23.1445 39.4545 22.6632C39.2593 22.608 38.6123 22.4305 38.5551 22.4127C38.5512 22.3753 38.5078 20.2945 38.4684 19.3991C38.4408 18.7522 38.3836 17.7444 38.0719 16.7504C37.6992 15.4053 37.0483 14.2298 36.2377 13.4764C38.4763 11.157 39.8726 8.60091 39.8707 6.40774C39.8647 2.19102 34.6855 0.914962 28.3033 3.55781C28.2974 3.55978 26.9602 4.1278 26.9503 4.13174C26.9444 4.12582 24.5066 1.73346 24.4692 1.7019C17.1954 -4.64488 -5.55475 20.6436 1.71899 26.7853L3.30864 28.1323C2.89644 29.2013 2.73471 30.4241 2.86685 31.7396C3.03647 33.4299 3.90822 35.0511 5.32234 36.3015C6.66348 37.4908 8.42669 38.2422 10.1386 38.2402C12.9688 44.7626 19.4359 48.7643 27.0193 48.9891C35.153 49.2317 41.981 45.4134 44.8428 38.5578C45.0301 38.0765 45.825 35.909 45.825 33.9939C45.825 32.0729 44.7382 31.2761 44.044 31.2761ZM10.7638 36.41C10.5173 36.4514 10.2649 36.4691 10.0104 36.4632C7.55298 36.3981 4.90027 34.1852 4.63598 31.5621C4.34409 28.6629 5.82527 26.4322 8.44839 25.9017C8.76198 25.8386 9.14066 25.8011 9.54892 25.8228C11.0183 25.9037 13.1838 27.0318 13.6789 30.2328C14.1187 33.0689 13.4225 35.9564 10.7638 36.41ZM8.02041 24.1681C6.38736 24.4856 4.9476 25.4106 4.06797 26.6886C3.54137 26.2508 2.56115 25.4007 2.38956 25.0694C0.985306 22.4009 3.92202 17.2138 5.97516 14.285C11.0478 7.04676 18.9922 1.56581 22.6705 2.55984C23.2681 2.72945 25.2482 5.02518 25.2482 5.02518C25.2482 5.02518 21.5719 7.06451 18.1618 9.90853C13.5704 13.4468 10.0992 18.5885 8.02041 24.1681ZM33.8079 35.3252C33.8611 35.3035 33.8986 35.2424 33.8927 35.1812C33.8848 35.1063 33.8177 35.0531 33.7448 35.0609C33.7448 35.0609 29.8969 35.6309 26.26 34.2996C26.6564 33.0117 27.7096 33.4772 29.3012 33.6054C32.1709 33.777 34.7408 33.3569 36.642 32.8125C38.2889 32.3392 40.4505 31.4083 42.1309 30.0829C42.6969 31.3274 42.8981 32.6962 42.8981 32.6962C42.8981 32.6962 43.3359 32.6173 43.7028 32.8441C44.0499 33.0571 44.3024 33.5009 44.1288 34.6448C43.7758 36.7847 42.8665 38.5223 41.338 40.1198C40.4071 41.1217 39.277 41.9935 37.9852 42.6266C37.2988 42.9875 36.5671 43.2991 35.7959 43.5516C30.033 45.4331 24.1339 43.3642 22.2326 38.9207C22.0807 38.5874 21.9525 38.2363 21.852 37.8714C21.0414 34.9426 21.7297 31.43 23.8795 29.2171C23.8795 29.2171 23.8795 29.2171 23.8795 29.2151C24.0116 29.0751 24.1477 28.9094 24.1477 28.7004C24.1477 28.5248 24.0372 28.3414 23.9406 28.2112C23.1892 27.1206 20.5818 25.2607 21.1045 21.6613C21.4792 19.0757 23.7414 17.2553 25.8498 17.3637C26.0273 17.3736 26.2067 17.3834 26.3842 17.3953C27.2974 17.4485 28.0942 17.5669 28.8476 17.5984C30.1059 17.6537 31.238 17.4702 32.5792 16.3519C33.0308 15.9752 33.3937 15.6478 34.0071 15.5453C34.0722 15.5335 34.2319 15.4763 34.5534 15.492C34.8808 15.5098 35.1924 15.5985 35.4725 15.7859C36.5474 16.5018 36.6992 18.2335 36.7545 19.4997C36.786 20.2235 36.8728 21.9729 36.9044 22.4759C36.9734 23.6237 37.2751 23.7874 37.8846 23.9886C38.2278 24.101 38.5473 24.1858 39.0167 24.318C40.4387 24.7183 41.2828 25.1227 41.8153 25.6433C42.1329 25.9688 42.2808 26.3139 42.3261 26.6433C42.4938 27.8661 41.3755 29.3788 38.4171 30.7515C35.1826 32.2524 31.2577 32.6331 28.5459 32.3313C28.3388 32.3076 27.5992 32.2248 27.5952 32.2248C25.4257 31.9329 24.1891 34.7355 25.4908 36.6565C26.329 37.8951 28.6149 38.6998 30.9008 38.6998C36.1431 38.6998 40.1724 36.4613 41.6713 34.5284C41.7167 34.4712 41.7206 34.4633 41.7916 34.3568C41.8646 34.2464 41.8055 34.1852 41.7128 34.2464C40.488 35.0846 35.0484 38.4099 29.2322 37.4099C29.2322 37.4099 28.5261 37.2936 27.8792 37.0431C27.3664 36.8439 26.2935 36.3508 26.1634 35.2483C30.8514 36.6979 33.8079 35.3252 33.8079 35.3252ZM26.3704 34.4476C26.3704 34.4476 26.3724 34.4476 26.3704 34.4476C26.3724 34.4495 26.3724 34.4495 26.3724 34.4515C26.3724 34.4495 26.3724 34.4476 26.3704 34.4476ZM17.3887 14.2554C19.1914 12.1707 21.4121 10.3602 23.4002 9.34249C23.4692 9.30699 23.5422 9.38193 23.5047 9.44899C23.3469 9.73497 23.0432 10.3464 22.9466 10.8118C22.9308 10.8848 23.0097 10.9381 23.0708 10.8966C24.3074 10.0525 26.4612 9.14921 28.3486 9.03284C28.4295 9.02693 28.4689 9.13146 28.4039 9.18076C28.1159 9.40166 27.8023 9.70539 27.5735 10.0131C27.5341 10.0663 27.5716 10.1413 27.6366 10.1413C28.962 10.1511 30.8317 10.6146 32.0486 11.297C32.1315 11.3424 32.0723 11.5021 31.9796 11.4824C30.1375 11.0603 27.1199 10.7389 23.986 11.5041C21.1893 12.1865 19.0533 13.2397 17.4952 14.3738C17.4203 14.4329 17.3256 14.3304 17.3887 14.2554Z",fill:"black"})),foreground:"#874FB9"},edit:({attributes:l,setAttributes:o})=>{const{text:a,gdprHeadline:c,gdpr:i,gdprStatus:s}=l,m=(0,n.useBlockProps)(),d="check"===s;return(0,e.createElement)("div",{...m},(0,e.createElement)(n.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,r.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,r.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>o({gdprStatus:e})}))),(0,e.createElement)("div",{style:{display:"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(C.CheckboxControl,{id:"newsletter-text",checked:d,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(n.RichText,{value:a,help:(0,r.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>o({text:e})})),i&&i.length&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(n.RichText,{value:c,help:(0,r.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>o({gdprHeadline:e})})),i.map(((t,l)=>(0,e.createElement)("div",{style:{display:"flex",marginTop:"1rem"}},(0,e.createElement)(C.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:i[l].enabled,onChange:()=>{i[l].enabled=!i[l].enabled,o({gdpr:i})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))))))},save:()=>(0,e.createElement)("div",{...n.useBlockProps.save()}),attributes:{...o.attributes,...d}})}},l={};function r(e){var n=l[e];if(void 0!==n)return n.exports;var C=l[e]={exports:{}};return t[e](C,C.exports,r),C.exports}r.m=t,e=[],r.O=function(t,l,n,C){if(!l){var o=1/0;for(s=0;s=C)&&Object.keys(r.O).every((function(e){return r.O[e](l[c])}))?l.splice(c--,1):(a=!1,C0&&e[s-1][2]>C;s--)e[s]=e[s-1];e[s]=[l,n,C]},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={457:0,411:0};r.O.j=function(t){return 0===e[t]};var t=function(t,l){var n,C,o=l[0],a=l[1],c=l[2],i=0;if(o.some((function(t){return 0!==e[t]}))){for(n in a)r.o(a,n)&&(r.m[n]=a[n]);if(c)var s=c(r)}for(t&&t(l);i{const{text:i,gdprHeadline:c,gdpr:a,gdprStatus:s}=n,d=(0,r.useBlockProps)(),m="check"===s;return(0,e.createElement)("div",{...d},(0,e.createElement)(r.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,l.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,l.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>C({gdprStatus:e})}))),"hide"===s&&(0,e.createElement)("p",null,"Opt-in now hidden. Click for change option"),(0,e.createElement)("div",{style:{display:"hide"===s?"none":"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(o.CheckboxControl,{id:"newsletter-text",checked:m,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(r.RichText,{value:i,help:(0,l.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>C({text:e})})),a&&a.length&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(r.RichText,{value:c,help:(0,l.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>C({gdprHeadline:e})})),a.map(((t,n)=>(0,e.createElement)("div",{style:{display:"flex",marginTop:"1rem"}},(0,e.createElement)(o.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:a[n].enabled,onChange:()=>{a[n].enabled=!a[n].enabled,C({gdpr:a})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))))))},save:()=>(0,e.createElement)("div",{...r.useBlockProps.save()}),attributes:{...C.attributes,...m}})}},n={};function l(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,l),o.exports}l.m=t,e=[],l.O=function(t,n,r,o){if(!n){var C=1/0;for(s=0;s=o)&&Object.keys(l.O).every((function(e){return l.O[e](n[c])}))?n.splice(c--,1):(i=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={457:0,411:0};l.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,C=n[0],i=n[1],c=n[2],a=0;if(C.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(c)var s=c(l)}for(t&&t(n);a Date: Thu, 12 Oct 2023 14:42:56 +0300 Subject: [PATCH 19/57] Removed text and added visual enhancements --- .../block.js | 6 ++--- .../edit.js | 27 +++++++++---------- .../build/newsletter-block-frontend.asset.php | 2 +- blocks/build/newsletter-block-frontend.js | 2 +- blocks/build/newsletter-block.asset.php | 2 +- blocks/build/newsletter-block.js | 2 +- 6 files changed, 19 insertions(+), 22 deletions(-) diff --git a/blocks/assets/js/checkout-newsletter-subscription-block/block.js b/blocks/assets/js/checkout-newsletter-subscription-block/block.js index 178d9ef0..4b6a08ce 100644 --- a/blocks/assets/js/checkout-newsletter-subscription-block/block.js +++ b/blocks/assets/js/checkout-newsletter-subscription-block/block.js @@ -25,8 +25,8 @@ const Block = ( { cart, extensions, text, gdprHeadline, gdprStatus, gdpr, checko }, [ checked, setExtensionData ] ); return ( - <> -
+
+
); }) : ''}
- +
); }; diff --git a/blocks/assets/js/checkout-newsletter-subscription-block/edit.js b/blocks/assets/js/checkout-newsletter-subscription-block/edit.js index 2eea9898..022f7d45 100644 --- a/blocks/assets/js/checkout-newsletter-subscription-block/edit.js +++ b/blocks/assets/js/checkout-newsletter-subscription-block/edit.js @@ -37,7 +37,6 @@ export const Edit = ( { attributes, setAttributes } ) => { /> - { gdprStatus === 'hide' &&

Opt-in now hidden. Click for change option

}
{ />
{ - gdpr && gdpr.length && + gdpr && gdpr.length && gdprStatus != 'hide' && ( <>
@@ -64,18 +63,16 @@ export const Edit = ( { attributes, setAttributes } ) => {
{gdpr.map((gdprItem, index) => { return ( -
- { - gdpr[index].enabled = !gdpr[index].enabled; - setAttributes({gdpr: gdpr}); - }} - > - - -
+ { + gdpr[index].enabled = !gdpr[index].enabled; + setAttributes({gdpr: gdpr}); + }} + > + + ) })} @@ -83,7 +80,7 @@ export const Edit = ( { attributes, setAttributes } ) => { }
); -}; +} // not sure export const Save = () => { diff --git a/blocks/build/newsletter-block-frontend.asset.php b/blocks/build/newsletter-block-frontend.asset.php index bf88d8cd..c6dc1c94 100644 --- a/blocks/build/newsletter-block-frontend.asset.php +++ b/blocks/build/newsletter-block-frontend.asset.php @@ -1 +1 @@ - array('wc-blocks-checkout', 'wc-blocks-shared-hocs', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'ddc7ea2065d45684b756'); + array('wc-blocks-checkout', 'wc-blocks-shared-hocs', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'efc574ba3f91671dcd10'); diff --git a/blocks/build/newsletter-block-frontend.js b/blocks/build/newsletter-block-frontend.js index 670d50dc..eb9ceae9 100644 --- a/blocks/build/newsletter-block-frontend.js +++ b/blocks/build/newsletter-block-frontend.js @@ -1 +1 @@ -!function(){"use strict";var e=window.wc.blocksCheckout,t=window.wc.wcBlocksSharedHocs,i=window.wp.element,n=window.wp.i18n,r=window.wc.wcSettings;const{optinDefaultText:o,gdprHeadline:a,gdprFields:c,gdprStatus:s}=(0,r.getSetting)("mailchimp-newsletter_data","");var l={text:{type:"string",default:o},gdprHeadline:{type:"string",default:a},gdpr:{type:"array",default:c},gdprStatus:{type:"string",default:s}},m=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}');(0,e.registerCheckoutBlock)({metadata:m,component:(0,t.withFilteredAttributes)(l)((({cart:t,extensions:r,text:o,gdprHeadline:a,gdprStatus:c,gdpr:s,checkoutExtensionData:l})=>{let m={};s&&s.length&&s.forEach((e=>{m[e.marketing_permission_id]=!1}));const d="check"===c,[p,u]=(0,i.useState)(d),[g]=(0,i.useState)({}),{setExtensionData:h}=l;return(0,i.useEffect)((()=>{h("mailchimp-newsletter","optin",p)}),[p,h]),(0,i.createElement)(i.Fragment,null,(0,i.createElement)("div",{style:{display:"hide"===c?"none":"block"}},(0,i.createElement)(e.CheckboxControl,{id:"subscribe-to-newsletter",checked:p,onChange:u},(0,i.createElement)("span",{dangerouslySetInnerHTML:{__html:o}})),s&&s.length?(0,n.__)(a,"mailchimp-for-woocommerce"):"",s&&s.length?s.map((t=>(0,i.createElement)(e.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:g[t.marketing_permission_id],onChange:e=>{g[t.marketing_permission_id]=!g[t.marketing_permission_id],h("mailchimp-newsletter","gdprFields",g)}},(0,i.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))):""))}))})}(); \ No newline at end of file +!function(){"use strict";var e=window.wc.blocksCheckout,t=window.wc.wcBlocksSharedHocs,n=window.wp.element,i=window.wp.i18n,o=window.wc.wcSettings;const{optinDefaultText:c,gdprHeadline:r,gdprFields:s,gdprStatus:a}=(0,o.getSetting)("mailchimp-newsletter_data","");var l={text:{type:"string",default:c},gdprHeadline:{type:"string",default:r},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:a}},m=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}');(0,e.registerCheckoutBlock)({metadata:m,component:(0,t.withFilteredAttributes)(l)((({cart:t,extensions:o,text:c,gdprHeadline:r,gdprStatus:s,gdpr:a,checkoutExtensionData:l})=>{let m={};a&&a.length&&a.forEach((e=>{m[e.marketing_permission_id]=!1}));const d="check"===s,[p,u]=(0,n.useState)(d),[h]=(0,n.useState)({}),{setExtensionData:w}=l;return(0,n.useEffect)((()=>{w("mailchimp-newsletter","optin",p)}),[p,w]),(0,n.createElement)("div",{className:"wc-block-components-checkout-step__container"},(0,n.createElement)("div",{style:{display:"hide"===s?"none":""},className:"wc-block-components-checkout-step__content"},(0,n.createElement)(e.CheckboxControl,{id:"subscribe-to-newsletter",checked:p,onChange:u},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:c}})),a&&a.length?(0,i.__)(r,"mailchimp-for-woocommerce"):"",a&&a.length?a.map((t=>(0,n.createElement)(e.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:h[t.marketing_permission_id],onChange:e=>{h[t.marketing_permission_id]=!h[t.marketing_permission_id],w("mailchimp-newsletter","gdprFields",h)}},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))):""))}))})}(); \ No newline at end of file diff --git a/blocks/build/newsletter-block.asset.php b/blocks/build/newsletter-block.asset.php index cd1241cb..10c6ce98 100644 --- a/blocks/build/newsletter-block.asset.php +++ b/blocks/build/newsletter-block.asset.php @@ -1 +1 @@ - array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'fa68e943aa8bbd62c918'); + array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'b7e427ee568cf4aabe53'); diff --git a/blocks/build/newsletter-block.js b/blocks/build/newsletter-block.js index fe2194ed..ad6bd21c 100644 --- a/blocks/build/newsletter-block.js +++ b/blocks/build/newsletter-block.js @@ -1 +1 @@ -!function(){"use strict";var e,t={90:function(){var e=window.wp.element,t=window.wp.components,n=window.wp.blocks,l=window.wp.i18n,r=window.wp.blockEditor,o=window.wc.blocksCheckout,C=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}'),i=window.wc.wcSettings;const{optinDefaultText:c,gdprHeadline:a,gdprFields:s,gdprStatus:d}=(0,i.getSetting)("mailchimp-newsletter_data","");var m={text:{type:"string",default:c},gdprHeadline:{type:"string",default:a},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:d}};(0,n.registerBlockType)(C,{icon:{src:(0,e.createElement)(t.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"60",height:"60",viewBox:"0 0 46 49",fill:"none"},(0,e.createElement)("path",{d:"M34.5458 23.5193C34.8988 23.4778 35.2361 23.4759 35.5457 23.5193C35.7252 23.107 35.7568 22.397 35.5951 21.6239C35.3544 20.4741 35.029 19.7778 34.3584 19.8863C33.6859 19.9948 33.6622 20.8271 33.9028 21.9769C34.037 22.6238 34.2776 23.1761 34.5458 23.5193Z",fill:"black"}),(0,e.createElement)("path",{d:"M28.7763 24.4284C29.2575 24.6394 29.5534 24.7795 29.6678 24.6572C29.7427 24.5803 29.719 24.4363 29.6046 24.2489C29.368 23.8624 28.8788 23.4679 28.3621 23.249C27.303 22.7934 26.0407 22.9453 25.0664 23.6454C24.745 23.8801 24.4393 24.2075 24.4826 24.4047C24.4965 24.4698 24.5458 24.5172 24.6582 24.5329C24.9225 24.5625 25.8494 24.0951 26.9164 24.03C27.6718 23.9827 28.295 24.2174 28.7763 24.4284Z",fill:"black"}),(0,e.createElement)("path",{d:"M27.8105 24.9806C27.1852 25.0793 26.8381 25.2863 26.6172 25.4777C26.4279 25.6433 26.3115 25.8267 26.3115 25.9549C26.3115 26.0161 26.3391 26.0516 26.3589 26.0693C26.3865 26.095 26.422 26.1088 26.4614 26.1088C26.6034 26.1088 26.919 25.9826 26.919 25.9826C27.7907 25.6709 28.3647 25.7084 28.9346 25.7735C29.2502 25.809 29.3981 25.8287 29.4672 25.7202C29.4869 25.6887 29.5125 25.6216 29.4494 25.521C29.3054 25.2804 28.6723 24.8781 27.8105 24.9806Z",fill:"black"}),(0,e.createElement)("path",{d:"M32.5975 27.0061C33.0235 27.2152 33.4909 27.1324 33.6428 26.8227C33.7946 26.5131 33.5737 26.093 33.1497 25.8839C32.7237 25.6749 32.2563 25.7577 32.1044 26.0673C31.9506 26.377 32.1734 26.7971 32.5975 27.0061Z",fill:"black"}),(0,e.createElement)("path",{d:"M35.3306 24.6177C34.9854 24.6118 34.6995 24.9905 34.6916 25.4638C34.6837 25.9372 34.9578 26.3257 35.303 26.3317C35.6481 26.3376 35.9341 25.9589 35.942 25.4855C35.9499 25.0122 35.6757 24.6237 35.3306 24.6177Z",fill:"black"}),(0,e.createElement)("path",{d:"M12.1324 33.1577C12.0456 33.0492 11.9056 33.0827 11.7695 33.1143C11.6749 33.136 11.5664 33.1616 11.448 33.1596C11.1936 33.1557 10.9786 33.0452 10.8583 32.8598C10.7006 32.6192 10.7104 32.2583 10.884 31.8461C10.9076 31.7909 10.9353 31.7297 10.9648 31.6607C11.241 31.0394 11.7064 30 11.1857 29.008C10.7932 28.2625 10.1542 27.797 9.38702 27.7004C8.64939 27.6077 7.89006 27.8798 7.40685 28.4143C6.64358 29.2565 6.52328 30.4044 6.6712 30.8087C6.72445 30.9566 6.80925 30.998 6.87237 31.0059C7.00254 31.0237 7.19385 30.929 7.31416 30.6055C7.32205 30.5819 7.33388 30.5464 7.34769 30.501C7.40094 30.3294 7.50152 30.0099 7.66522 29.7555C7.86245 29.4478 8.17012 29.2348 8.53105 29.1579C8.89789 29.079 9.2746 29.15 9.58819 29.3551C10.1227 29.7062 10.3298 30.361 10.101 30.9862C9.98264 31.3096 9.79133 31.9289 9.83275 32.4378C9.91756 33.4673 10.5507 33.8795 11.1206 33.9249C11.6729 33.9466 12.0594 33.6349 12.1581 33.4081C12.2133 33.274 12.164 33.1932 12.1324 33.1577Z",fill:"black"}),(0,e.createElement)("path",{d:"M44.044 31.2761C44.0223 31.2012 43.8862 30.7002 43.6969 30.0967C43.5075 29.4932 43.3142 29.0672 43.3142 29.0672C44.0696 27.9351 44.0834 26.9233 43.9828 26.3514C43.8763 25.6414 43.5805 25.0359 42.9829 24.4107C42.3873 23.7854 41.1684 23.1445 39.4545 22.6632C39.2593 22.608 38.6123 22.4305 38.5551 22.4127C38.5512 22.3753 38.5078 20.2945 38.4684 19.3991C38.4408 18.7522 38.3836 17.7444 38.0719 16.7504C37.6992 15.4053 37.0483 14.2298 36.2377 13.4764C38.4763 11.157 39.8726 8.60091 39.8707 6.40774C39.8647 2.19102 34.6855 0.914962 28.3033 3.55781C28.2974 3.55978 26.9602 4.1278 26.9503 4.13174C26.9444 4.12582 24.5066 1.73346 24.4692 1.7019C17.1954 -4.64488 -5.55475 20.6436 1.71899 26.7853L3.30864 28.1323C2.89644 29.2013 2.73471 30.4241 2.86685 31.7396C3.03647 33.4299 3.90822 35.0511 5.32234 36.3015C6.66348 37.4908 8.42669 38.2422 10.1386 38.2402C12.9688 44.7626 19.4359 48.7643 27.0193 48.9891C35.153 49.2317 41.981 45.4134 44.8428 38.5578C45.0301 38.0765 45.825 35.909 45.825 33.9939C45.825 32.0729 44.7382 31.2761 44.044 31.2761ZM10.7638 36.41C10.5173 36.4514 10.2649 36.4691 10.0104 36.4632C7.55298 36.3981 4.90027 34.1852 4.63598 31.5621C4.34409 28.6629 5.82527 26.4322 8.44839 25.9017C8.76198 25.8386 9.14066 25.8011 9.54892 25.8228C11.0183 25.9037 13.1838 27.0318 13.6789 30.2328C14.1187 33.0689 13.4225 35.9564 10.7638 36.41ZM8.02041 24.1681C6.38736 24.4856 4.9476 25.4106 4.06797 26.6886C3.54137 26.2508 2.56115 25.4007 2.38956 25.0694C0.985306 22.4009 3.92202 17.2138 5.97516 14.285C11.0478 7.04676 18.9922 1.56581 22.6705 2.55984C23.2681 2.72945 25.2482 5.02518 25.2482 5.02518C25.2482 5.02518 21.5719 7.06451 18.1618 9.90853C13.5704 13.4468 10.0992 18.5885 8.02041 24.1681ZM33.8079 35.3252C33.8611 35.3035 33.8986 35.2424 33.8927 35.1812C33.8848 35.1063 33.8177 35.0531 33.7448 35.0609C33.7448 35.0609 29.8969 35.6309 26.26 34.2996C26.6564 33.0117 27.7096 33.4772 29.3012 33.6054C32.1709 33.777 34.7408 33.3569 36.642 32.8125C38.2889 32.3392 40.4505 31.4083 42.1309 30.0829C42.6969 31.3274 42.8981 32.6962 42.8981 32.6962C42.8981 32.6962 43.3359 32.6173 43.7028 32.8441C44.0499 33.0571 44.3024 33.5009 44.1288 34.6448C43.7758 36.7847 42.8665 38.5223 41.338 40.1198C40.4071 41.1217 39.277 41.9935 37.9852 42.6266C37.2988 42.9875 36.5671 43.2991 35.7959 43.5516C30.033 45.4331 24.1339 43.3642 22.2326 38.9207C22.0807 38.5874 21.9525 38.2363 21.852 37.8714C21.0414 34.9426 21.7297 31.43 23.8795 29.2171C23.8795 29.2171 23.8795 29.2171 23.8795 29.2151C24.0116 29.0751 24.1477 28.9094 24.1477 28.7004C24.1477 28.5248 24.0372 28.3414 23.9406 28.2112C23.1892 27.1206 20.5818 25.2607 21.1045 21.6613C21.4792 19.0757 23.7414 17.2553 25.8498 17.3637C26.0273 17.3736 26.2067 17.3834 26.3842 17.3953C27.2974 17.4485 28.0942 17.5669 28.8476 17.5984C30.1059 17.6537 31.238 17.4702 32.5792 16.3519C33.0308 15.9752 33.3937 15.6478 34.0071 15.5453C34.0722 15.5335 34.2319 15.4763 34.5534 15.492C34.8808 15.5098 35.1924 15.5985 35.4725 15.7859C36.5474 16.5018 36.6992 18.2335 36.7545 19.4997C36.786 20.2235 36.8728 21.9729 36.9044 22.4759C36.9734 23.6237 37.2751 23.7874 37.8846 23.9886C38.2278 24.101 38.5473 24.1858 39.0167 24.318C40.4387 24.7183 41.2828 25.1227 41.8153 25.6433C42.1329 25.9688 42.2808 26.3139 42.3261 26.6433C42.4938 27.8661 41.3755 29.3788 38.4171 30.7515C35.1826 32.2524 31.2577 32.6331 28.5459 32.3313C28.3388 32.3076 27.5992 32.2248 27.5952 32.2248C25.4257 31.9329 24.1891 34.7355 25.4908 36.6565C26.329 37.8951 28.6149 38.6998 30.9008 38.6998C36.1431 38.6998 40.1724 36.4613 41.6713 34.5284C41.7167 34.4712 41.7206 34.4633 41.7916 34.3568C41.8646 34.2464 41.8055 34.1852 41.7128 34.2464C40.488 35.0846 35.0484 38.4099 29.2322 37.4099C29.2322 37.4099 28.5261 37.2936 27.8792 37.0431C27.3664 36.8439 26.2935 36.3508 26.1634 35.2483C30.8514 36.6979 33.8079 35.3252 33.8079 35.3252ZM26.3704 34.4476C26.3704 34.4476 26.3724 34.4476 26.3704 34.4476C26.3724 34.4495 26.3724 34.4495 26.3724 34.4515C26.3724 34.4495 26.3724 34.4476 26.3704 34.4476ZM17.3887 14.2554C19.1914 12.1707 21.4121 10.3602 23.4002 9.34249C23.4692 9.30699 23.5422 9.38193 23.5047 9.44899C23.3469 9.73497 23.0432 10.3464 22.9466 10.8118C22.9308 10.8848 23.0097 10.9381 23.0708 10.8966C24.3074 10.0525 26.4612 9.14921 28.3486 9.03284C28.4295 9.02693 28.4689 9.13146 28.4039 9.18076C28.1159 9.40166 27.8023 9.70539 27.5735 10.0131C27.5341 10.0663 27.5716 10.1413 27.6366 10.1413C28.962 10.1511 30.8317 10.6146 32.0486 11.297C32.1315 11.3424 32.0723 11.5021 31.9796 11.4824C30.1375 11.0603 27.1199 10.7389 23.986 11.5041C21.1893 12.1865 19.0533 13.2397 17.4952 14.3738C17.4203 14.4329 17.3256 14.3304 17.3887 14.2554Z",fill:"black"})),foreground:"#874FB9"},edit:({attributes:n,setAttributes:C})=>{const{text:i,gdprHeadline:c,gdpr:a,gdprStatus:s}=n,d=(0,r.useBlockProps)(),m="check"===s;return(0,e.createElement)("div",{...d},(0,e.createElement)(r.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,l.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,l.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>C({gdprStatus:e})}))),"hide"===s&&(0,e.createElement)("p",null,"Opt-in now hidden. Click for change option"),(0,e.createElement)("div",{style:{display:"hide"===s?"none":"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(o.CheckboxControl,{id:"newsletter-text",checked:m,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(r.RichText,{value:i,help:(0,l.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>C({text:e})})),a&&a.length&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(r.RichText,{value:c,help:(0,l.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>C({gdprHeadline:e})})),a.map(((t,n)=>(0,e.createElement)("div",{style:{display:"flex",marginTop:"1rem"}},(0,e.createElement)(o.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:a[n].enabled,onChange:()=>{a[n].enabled=!a[n].enabled,C({gdpr:a})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))))))},save:()=>(0,e.createElement)("div",{...r.useBlockProps.save()}),attributes:{...C.attributes,...m}})}},n={};function l(e){var r=n[e];if(void 0!==r)return r.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,l),o.exports}l.m=t,e=[],l.O=function(t,n,r,o){if(!n){var C=1/0;for(s=0;s=o)&&Object.keys(l.O).every((function(e){return l.O[e](n[c])}))?n.splice(c--,1):(i=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={457:0,411:0};l.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,o,C=n[0],i=n[1],c=n[2],a=0;if(C.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(c)var s=c(l)}for(t&&t(n);a{const{text:c,gdprHeadline:i,gdpr:a,gdprStatus:s}=l,d=(0,r.useBlockProps)(),m="check"===s;return(0,e.createElement)("div",{...d},(0,e.createElement)(r.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,n.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,n.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>o({gdprStatus:e})}))),(0,e.createElement)("div",{style:{display:"hide"===s?"none":"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(C.CheckboxControl,{id:"newsletter-text",checked:m,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(r.RichText,{value:c,help:(0,n.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>o({text:e})})),a&&a.length&&"hide"!=s&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(r.RichText,{value:i,help:(0,n.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>o({gdprHeadline:e})})),a.map(((t,l)=>(0,e.createElement)(C.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:a[l].enabled,onChange:()=>{a[l].enabled=!a[l].enabled,o({gdpr:a})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}}))))))},save:()=>(0,e.createElement)("div",{...r.useBlockProps.save()}),attributes:{...o.attributes,...m}})}},l={};function n(e){var r=l[e];if(void 0!==r)return r.exports;var C=l[e]={exports:{}};return t[e](C,C.exports,n),C.exports}n.m=t,e=[],n.O=function(t,l,r,C){if(!l){var o=1/0;for(s=0;s=C)&&Object.keys(n.O).every((function(e){return n.O[e](l[i])}))?l.splice(i--,1):(c=!1,C0&&e[s-1][2]>C;s--)e[s]=e[s-1];e[s]=[l,r,C]},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={457:0,411:0};n.O.j=function(t){return 0===e[t]};var t=function(t,l){var r,C,o=l[0],c=l[1],i=l[2],a=0;if(o.some((function(t){return 0!==e[t]}))){for(r in c)n.o(c,r)&&(n.m[r]=c[r]);if(i)var s=i(n)}for(t&&t(l);a Date: Wed, 18 Oct 2023 18:09:12 +0300 Subject: [PATCH 20/57] Fixed bug with subscription in the checkout block --- blocks/newsletter.php | 29 +++--- ...ocommerce-blocks-extend-store-endpoint.php | 89 +++++++++++++++++++ blocks/woocommerce-blocks-integration.php | 68 +------------- mailchimp-woocommerce.php | 6 +- 4 files changed, 112 insertions(+), 80 deletions(-) create mode 100644 blocks/woocommerce-blocks-extend-store-endpoint.php diff --git a/blocks/newsletter.php b/blocks/newsletter.php index b27933da..d4eed1c7 100644 --- a/blocks/newsletter.php +++ b/blocks/newsletter.php @@ -2,15 +2,20 @@ define( 'MAILCHIMP_WOOCOMMERCE_NEWSLETTER_VERSION', '1.0.0' ); -if (class_exists( '\Automattic\WooCommerce\Blocks\Package' ) && - interface_exists('\Automattic\WooCommerce\Blocks\Integrations\IntegrationInterface')) { - require dirname( __FILE__ ) . '/woocommerce-blocks-integration.php'; - add_action( - 'woocommerce_blocks_checkout_block_registration', - function( $integration_registry ) { - $integration_registry->register( new Mailchimp_Woocommerce_Newsletter_Blocks_Integration() ); - }, - 10, - 1 - ); -} +add_action( 'woocommerce_blocks_loaded', function() { + if (class_exists( '\Automattic\WooCommerce\Blocks\Package' ) && + interface_exists('\Automattic\WooCommerce\Blocks\Integrations\IntegrationInterface')) { + require_once dirname( __FILE__ ) . '/woocommerce-blocks-integration.php'; + require_once dirname( __FILE__ ) . '/woocommerce-blocks-extend-store-endpoint.php'; + add_action( + 'woocommerce_blocks_checkout_block_registration', + function( $integration_registry ) { + $integration_registry->register( new Mailchimp_Woocommerce_Newsletter_Blocks_Integration() ); + } + ); + + Mailchimp_Woocommerce_Newsletter_Blocks_Extend_Store_Endpoint::init(); + } +} ); + +add_action( 'woocommerce_store_api_checkout_update_order_from_request', array( 'Mailchimp_Woocommerce_Newsletter_Blocks_Integration', 'order_processed' ), 10, 2 ); \ No newline at end of file diff --git a/blocks/woocommerce-blocks-extend-store-endpoint.php b/blocks/woocommerce-blocks-extend-store-endpoint.php new file mode 100644 index 00000000..106d12fe --- /dev/null +++ b/blocks/woocommerce-blocks-extend-store-endpoint.php @@ -0,0 +1,89 @@ +get( Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema::class ); + self::extend_store(); + } + + /** + * Registers the actual data into each endpoint. + */ + public static function extend_store() { + + if ( is_callable( [ self::$extend, 'register_endpoint_data' ] ) ) { + self::$extend->register_endpoint_data( + [ + 'endpoint' => CheckoutSchema::IDENTIFIER, + 'namespace' => self::IDENTIFIER, + 'schema_callback' => array( 'Mailchimp_Woocommerce_Newsletter_Blocks_Extend_Store_Endpoint', 'extend_checkout_schema' ), + 'schema_type' => ARRAY_A, + ] + ); + } + } + + /** + * Register shipping workshop schema into the Checkout endpoint. + * + * @return array Registered schema. + * + */ + public static function extend_checkout_schema() { + + return array( + 'optin' => array( + 'description' => __( 'Subscribe to marketing opt-in.', 'mailchimp-newsletter' ), + 'type' => array( 'boolean', 'null' ), + 'context' => array( 'view', 'edit' ), + 'arg_options' => array( + 'validate_callback' => function( $value ) { + if ( ! is_null( $value ) && ! is_bool( $value ) ) { + return new WP_Error( 'api-error', 'value of type ' . gettype( $value ) . ' was posted to the newsletter optin callback' ); + } + return true; + }, + 'sanitize_callback' => function ( $value ) { + if ( is_bool( $value ) ) { + return $value; + } + + // Return a boolean when "null" is passed, + // which is the only non-boolean value allowed. + return false; + }, + ), + ), + 'gdprFields' => array( + 'description' => __( 'GDPR marketing opt-in.', 'mailchimp-newsletter' ), + 'type' => 'object', + 'context' => array(), + 'arg_options' => array( + 'validate_callback' => function( $value ) { + return true; + }, + ), + ), + ); + } +} \ No newline at end of file diff --git a/blocks/woocommerce-blocks-integration.php b/blocks/woocommerce-blocks-integration.php index 03086e8f..3925dd58 100644 --- a/blocks/woocommerce-blocks-integration.php +++ b/blocks/woocommerce-blocks-integration.php @@ -1,11 +1,7 @@ register_frontend_scripts(); $this->register_editor_scripts(); $this->register_editor_blocks(); - $this->extend_store_api(); add_filter( '__experimental_woocommerce_blocks_add_data_attributes_to_block', [ $this, 'add_attributes_to_frontend_blocks' ], 10, 1 ); add_action('woocommerce_before_order_object_save', [$this, 'capture_from_store_api'], 1); - add_action('woocommerce_blocks_checkout_update_order_from_request', [$this, 'order_processed'], 10, 2); - //add_action('woocommerce_blocks_checkout_order_processed', [$this, 'order_processed'], 10, 2); } /** @@ -179,65 +172,12 @@ public function add_attributes_to_frontend_blocks( $allowed_blocks ) return $allowed_blocks; } - /** - * @throws Exception - */ - public function extend_store_api() - { - /** @var ExtendRestApi $extend */ - /** @var ExtendSchema $extend */ - $extend = class_exists('Automattic\WooCommerce\StoreApi\Schemas\ExtendSchema') ? StoreApi::container()->get(ExtendSchema::class) : Package::container()->get(ExtendRestApi::class); - - $extend->register_endpoint_data( - array( - 'endpoint' => CheckoutSchema::IDENTIFIER, - 'namespace' => $this->get_name(), - 'schema_callback' => function() { - return array( - 'optin' => array( - 'description' => __( 'Subscribe to marketing opt-in.', 'mailchimp-newsletter' ), - 'type' => array( 'boolean', 'null' ), - 'context' => array(), - 'arg_options' => array( - 'validate_callback' => function( $value ) { - if ( ! is_null( $value ) && ! is_bool( $value ) ) { - return new WP_Error( 'api-error', 'value of type ' . gettype( $value ) . ' was posted to the newsletter optin callback' ); - } - return true; - }, - 'sanitize_callback' => function ( $value ) { - if ( is_bool( $value ) ) { - return $value; - } - - // Return a boolean when "null" is passed, - // which is the only non-boolean value allowed. - return false; - }, - ), - ), - 'gdprFields' => array( - 'description' => __( 'GDPR marketing opt-in.', 'mailchimp-newsletter' ), - 'type' => 'object', - 'context' => array(), - 'arg_options' => array( - 'validate_callback' => function( $value ) { - return true; - }, - ), - ), - ); - }, - ) - ); - } - /** * Store guest info when they submit email from Store API. * * The guest email, first name and last name are captured. * - * @see \Automattic\WooCommerce\Blocks\StoreApi\Routes\CartUpdateCustomer + * @see \Automattic\WooCommerce\StoreApi\Routes\V1\CartUpdateCustomer * * @param WC_Order|WC_Order_Refund $order * @@ -267,8 +207,8 @@ public function capture_from_store_api($order) * @param WC_Order $order * @param $request */ - public function order_processed($order, $request) - { + public static function order_processed($order, $request) + { $meta_key = 'mailchimp_woocommerce_is_subscribed'; $optin = $request['extensions']['mailchimp-newsletter']['optin']; $gdpr_fields = isset($request['extensions']['mailchimp-newsletter']['gdprFields']) ? diff --git a/mailchimp-woocommerce.php b/mailchimp-woocommerce.php index cdb4cece..036e12b8 100644 --- a/mailchimp-woocommerce.php +++ b/mailchimp-woocommerce.php @@ -48,10 +48,8 @@ // plugins loaded callback add_action('plugins_loaded', 'mailchimp_on_all_plugins_loaded', 12); -add_action('plugins_loaded', function() { - // make this a one liner for testing and code separation - include_once __DIR__ . '/blocks/newsletter.php'; -}, 1); +// make this a one liner for testing and code separation +include_once __DIR__ . '/blocks/newsletter.php'; add_action( 'before_woocommerce_init', function() { if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { From f462bd548e121f00b582cb087946cf7813accfb0 Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 25 Oct 2023 13:08:22 +0300 Subject: [PATCH 21/57] fix saving abandoned carts for checkout blocks --- includes/class-mailchimp-woocommerce.php | 1 + public/js/mailchimp-woocommerce-public.js | 6 ++++++ public/js/mailchimp-woocommerce-public.min.js | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce.php b/includes/class-mailchimp-woocommerce.php index 43b8d111..6ea13ad5 100644 --- a/includes/class-mailchimp-woocommerce.php +++ b/includes/class-mailchimp-woocommerce.php @@ -380,6 +380,7 @@ private function activateMailChimpService() $this->loader->add_action('edit_user_profile_update', $service, 'user_update_subscribe_status', 100); // cart hooks $this->loader->add_filter('woocommerce_update_cart_action_cart_updated', $service, 'handleCartUpdated'); + $this->loader->add_filter('woocommerce_cart_contents_changed', $service, 'handleCartUpdated'); $this->loader->add_action('woocommerce_add_to_cart', $service, 'handleCartUpdated'); $this->loader->add_action('woocommerce_cart_item_removed', $service, 'handleCartUpdated'); diff --git a/public/js/mailchimp-woocommerce-public.js b/public/js/mailchimp-woocommerce-public.js index 27519b09..26dea134 100644 --- a/public/js/mailchimp-woocommerce-public.js +++ b/public/js/mailchimp-woocommerce-public.js @@ -202,12 +202,18 @@ mailchimpReady(function () { void 0 !== b.mc_cart_id && mailchimpGetCurrentUserByHash(b.mc_cart_id); var subscribed = document.querySelector('#mailchimp_woocommerce_newsletter'); + var blockSubscribed = document.querySelector("#subscribe-to-newsletter"); if (subscribed) { subscribed.onchange = function() { mailchimp_submitted_email = null; mailchimpHandleBillingEmail('#billing_email'); } + } else if (blockSubscribed) { + blockSubscribed.onchange = function() { + mailchimp_submitted_email = null; + mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); + } } mailchimp_username_email = document.querySelector("#username"); diff --git a/public/js/mailchimp-woocommerce-public.min.js b/public/js/mailchimp-woocommerce-public.min.js index eb06cfc0..d1762544 100644 --- a/public/js/mailchimp-woocommerce-public.min.js +++ b/public/js/mailchimp-woocommerce-public.min.js @@ -1 +1 @@ -var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=false,mailchimpReady=function(a){/in/.test(document.readyState)?setTimeout("mailchimpReady("+a+")",9):a()};function mailchimpGetCurrentUserByHash(a){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;var b=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+a,c=new XMLHttpRequest;c.open("POST",b,!0),c.onload=function(){if(c.status>=200&&c.status<400){var a=JSON.parse(c.responseText);if(!a)return;mailchimp_cart.valueEmail(a.email)&&mailchimp_cart.setEmail(a.email)}};c.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",c.responseText)};c.setRequestHeader("Content-Type","application/json");c.setRequestHeader("Accept","application/json");c.send()}catch(a){console.log("mailchimp.get_email_by_hash.error",a)}}function mailchimpHandleBillingEmail(selector){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;if(mailchimp_public_data.disable_carts)return;var subscribed=document.querySelector("#mailchimp_woocommerce_newsletter");if(!selector)selector="#billing_email";var a=document.querySelector(selector);var b=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(b)||mailchimp_submitted_email===b){return false}mailchimp_cart.setEmail(b);console.log(b);console.log(mailchimp_cart);var c=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email";var d=new XMLHttpRequest;d.open("POST",c,!0);d.onload=function(){console.log(d);var successful=d.status>=200&&d.status<400;var msg=successful?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error";if(successful){mailchimp_submitted_email=b}console.log(msg,d.responseText)};d.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",d.responseText)};d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");d.setRequestHeader("Accept","application/json");d.send("email="+b+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(subscribed&&subscribed.checked?"1":"0"));return true}catch(a){console.log("mailchimp.handle_billing_email.error",a);mailchimp_submitted_email=!1}}!function(){"use strict";function mailchimpCart(){this.email_types="input[type=email]";this.regex_email=/^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;this.current_email=null;this.previous_email=null;this.expireUser=function(){this.current_email=null;if(!mailchimp_public_data.allowed_to_set_cookies)return;mailchimp.storage.expire("mailchimp.cart.current_email")};this.expireSaved=function(){if(!mailchimp_public_data.allowed_to_set_cookies)return;mailchimp.storage.expire("mailchimp.cart.items")};this.setEmail=function(a){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(!this.valueEmail(a))return false;this.setPreviousEmail(this.getEmail());mailchimp.storage.set("mailchimp.cart.current_email",this.current_email=a)};this.getEmail=function(){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(this.current_email)return this.current_email;var a=mailchimp.storage.get("mailchimp.cart.current_email",!1);if(!a||!this.valueEmail(a))return false;return this.current_email=a};this.setPreviousEmail=function(a){if(!mailchimp_public_data.allowed_to_set_cookies)return;if(!this.valueEmail(a))return false;mailchimp.storage.set("mailchimp.cart.previous_email",this.previous_email=a)};this.valueEmail=function(a){return this.regex_email.test(a)};return this}var g={extend:function(a,b){for(var c in b||{})b.hasOwnProperty(c)&&(a[c]=b[c]);return a},getQueryStringVars:function(){var a=window.location.search||"",b=[],c={};if(a=a.substr(1),a.length){b=a.split("&");for(var d in b){var e=b[d];if("string"==typeof e){var f=e.split("="),g=f[0],h=f[1];g.length&&("undefined"==typeof c[g]&&(c[g]=[]),c[g].push(h))}}}return c},unEscape:function(a){return decodeURIComponent(a)},escape:function(a){return encodeURIComponent(a)},createDate:function(a,b){a||(a=0);var c=new Date,d=b?c.getDate()-a:c.getDate()+a;return c.setDate(d),c},arrayUnique:function(a){for(var b=a.concat(),c=0;c=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(m){console.log("mailchimp.handle_billing_email.error",m),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l Date: Thu, 26 Oct 2023 20:33:20 +0300 Subject: [PATCH 22/57] bump public script version --- public/class-mailchimp-woocommerce-public.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/class-mailchimp-woocommerce-public.php b/public/class-mailchimp-woocommerce-public.php index c3d61196..5f1bbbab 100644 --- a/public/class-mailchimp-woocommerce-public.php +++ b/public/class-mailchimp-woocommerce-public.php @@ -65,7 +65,7 @@ public static function instance() * @since 1.0.0 */ public function enqueue_scripts() { - wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.03'); + wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.04'); wp_localize_script($this->plugin_name, 'mailchimp_public_data', array( 'site_url' => site_url(), 'ajax_url' => admin_url('admin-ajax.php'), From 8dfadb2b54456767fd5fc177cff9cb7060e66150 Mon Sep 17 00:00:00 2001 From: tarassych Date: Mon, 30 Oct 2023 15:18:27 +0200 Subject: [PATCH 23/57] abandoned carts for checkout blocks | Set user email when is valid --- public/class-mailchimp-woocommerce-public.php | 2 +- public/js/mailchimp-woocommerce-public.js | 13 +++++++++++++ public/js/mailchimp-woocommerce-public.min.js | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/public/class-mailchimp-woocommerce-public.php b/public/class-mailchimp-woocommerce-public.php index 5f1bbbab..51a8879d 100644 --- a/public/class-mailchimp-woocommerce-public.php +++ b/public/class-mailchimp-woocommerce-public.php @@ -65,7 +65,7 @@ public static function instance() * @since 1.0.0 */ public function enqueue_scripts() { - wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.04'); + wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.05'); wp_localize_script($this->plugin_name, 'mailchimp_public_data', array( 'site_url' => site_url(), 'ajax_url' => admin_url('admin-ajax.php'), diff --git a/public/js/mailchimp-woocommerce-public.js b/public/js/mailchimp-woocommerce-public.js index 26dea134..c3312852 100644 --- a/public/js/mailchimp-woocommerce-public.js +++ b/public/js/mailchimp-woocommerce-public.js @@ -32,6 +32,7 @@ function mailchimpHandleBillingEmail(selector) { if (!mailchimp_public_data.allowed_to_set_cookies) return; if (mailchimp_public_data.disable_carts) return; var subscribed = document.querySelector('#mailchimp_woocommerce_newsletter'); + if (!subscribed) subscribed = document.querySelector("#subscribe-to-newsletter"); if (!selector) selector = "#billing_email"; var a = document.querySelector(selector); var b = void 0 !== a ? a.value : ""; @@ -219,6 +220,7 @@ mailchimpReady(function () { mailchimp_username_email = document.querySelector("#username"); mailchimp_billing_email = document.querySelector("#billing_email"); mailchimp_registration_email = document.querySelector("#reg_email"); + var mailchimp_username_email_block = document.querySelector("#contact-fields input[type=\"email\"]"); if (mailchimp_billing_email) { mailchimp_billing_email.onblur = function () { mailchimpHandleBillingEmail('#billing_email'); }; @@ -235,6 +237,17 @@ mailchimpReady(function () { mailchimp_registration_email.onfocus = function () { mailchimpHandleBillingEmail('#reg_email'); } } + if (mailchimp_username_email_block) { + mailchimp_username_email_block.onblur = function () { mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); }; + mailchimp_username_email_block.onfocus = function () { mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); } + + mailchimp_username_email_block.addEventListener("input", function() { + if (mailchimp_cart.valueEmail(mailchimp_username_email_block.value)) { + mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); + } + }); + } + } catch (e) { console.log('mailchimp ready error', e); } diff --git a/public/js/mailchimp-woocommerce-public.min.js b/public/js/mailchimp-woocommerce-public.min.js index d1762544..0d563672 100644 --- a/public/js/mailchimp-woocommerce-public.min.js +++ b/public/js/mailchimp-woocommerce-public.min.js @@ -1 +1 @@ -var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=!1,mailchimpReady=function(e){/in/.test(document.readyState)?setTimeout("mailchimpReady("+e+")",9):e()};function mailchimpGetCurrentUserByHash(e){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;var i=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+e,a=new XMLHttpRequest;a.open("POST",i,!0),a.onload=function(){if(a.status>=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(m){console.log("mailchimp.handle_billing_email.error",m),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");i||(i=document.querySelector("#subscribe-to-newsletter")),e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(n){console.log("mailchimp.handle_billing_email.error",n),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l Date: Tue, 31 Oct 2023 14:20:37 +0200 Subject: [PATCH 24/57] abandoned carts for checkout blocks | Added timer for set user email --- public/class-mailchimp-woocommerce-public.php | 2 +- public/js/mailchimp-woocommerce-public.js | 18 ++++++++++++++---- public/js/mailchimp-woocommerce-public.min.js | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/public/class-mailchimp-woocommerce-public.php b/public/class-mailchimp-woocommerce-public.php index 51a8879d..1198aef2 100644 --- a/public/class-mailchimp-woocommerce-public.php +++ b/public/class-mailchimp-woocommerce-public.php @@ -65,7 +65,7 @@ public static function instance() * @since 1.0.0 */ public function enqueue_scripts() { - wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.05'); + wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.06'); wp_localize_script($this->plugin_name, 'mailchimp_public_data', array( 'site_url' => site_url(), 'ajax_url' => admin_url('admin-ajax.php'), diff --git a/public/js/mailchimp-woocommerce-public.js b/public/js/mailchimp-woocommerce-public.js index c3312852..37c9a637 100644 --- a/public/js/mailchimp-woocommerce-public.js +++ b/public/js/mailchimp-woocommerce-public.js @@ -241,10 +241,20 @@ mailchimpReady(function () { mailchimp_username_email_block.onblur = function () { mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); }; mailchimp_username_email_block.onfocus = function () { mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); } - mailchimp_username_email_block.addEventListener("input", function() { - if (mailchimp_cart.valueEmail(mailchimp_username_email_block.value)) { - mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); - } + var typingTimer; + // on keyup, start the countdown + mailchimp_username_email_block.addEventListener('keyup', function() { + clearTimeout(typingTimer); + typingTimer = setTimeout(function() { + if (mailchimp_cart.valueEmail(mailchimp_username_email_block.value)) { + mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); + } + }, 2000); + }); + + // on keydown, clear the countdown + mailchimp_username_email_block.addEventListener('keydown', function () { + clearTimeout(typingTimer); }); } diff --git a/public/js/mailchimp-woocommerce-public.min.js b/public/js/mailchimp-woocommerce-public.min.js index 0d563672..da8b5272 100644 --- a/public/js/mailchimp-woocommerce-public.min.js +++ b/public/js/mailchimp-woocommerce-public.min.js @@ -1 +1 @@ -var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=!1,mailchimpReady=function(e){/in/.test(document.readyState)?setTimeout("mailchimpReady("+e+")",9):e()};function mailchimpGetCurrentUserByHash(e){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;var i=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+e,a=new XMLHttpRequest;a.open("POST",i,!0),a.onload=function(){if(a.status>=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");i||(i=document.querySelector("#subscribe-to-newsletter")),e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(n){console.log("mailchimp.handle_billing_email.error",n),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");i||(i=document.querySelector("#subscribe-to-newsletter")),e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(n){console.log("mailchimp.handle_billing_email.error",n),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l Date: Tue, 31 Oct 2023 15:21:14 +0200 Subject: [PATCH 25/57] timer for set user email corrected --- public/class-mailchimp-woocommerce-public.php | 2 +- public/js/mailchimp-woocommerce-public.js | 4 ++-- public/js/mailchimp-woocommerce-public.min.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/public/class-mailchimp-woocommerce-public.php b/public/class-mailchimp-woocommerce-public.php index 1198aef2..d49a3d0e 100644 --- a/public/class-mailchimp-woocommerce-public.php +++ b/public/class-mailchimp-woocommerce-public.php @@ -65,7 +65,7 @@ public static function instance() * @since 1.0.0 */ public function enqueue_scripts() { - wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.06'); + wp_register_script($this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-public.min.js', array(), $this->version.'.07'); wp_localize_script($this->plugin_name, 'mailchimp_public_data', array( 'site_url' => site_url(), 'ajax_url' => admin_url('admin-ajax.php'), diff --git a/public/js/mailchimp-woocommerce-public.js b/public/js/mailchimp-woocommerce-public.js index 37c9a637..12f9bdba 100644 --- a/public/js/mailchimp-woocommerce-public.js +++ b/public/js/mailchimp-woocommerce-public.js @@ -244,7 +244,7 @@ mailchimpReady(function () { var typingTimer; // on keyup, start the countdown mailchimp_username_email_block.addEventListener('keyup', function() { - clearTimeout(typingTimer); + typingTimer && clearTimeout(typingTimer); typingTimer = setTimeout(function() { if (mailchimp_cart.valueEmail(mailchimp_username_email_block.value)) { mailchimpHandleBillingEmail('#contact-fields input[type="email"]'); @@ -254,7 +254,7 @@ mailchimpReady(function () { // on keydown, clear the countdown mailchimp_username_email_block.addEventListener('keydown', function () { - clearTimeout(typingTimer); + typingTimer && clearTimeout(typingTimer); }); } diff --git a/public/js/mailchimp-woocommerce-public.min.js b/public/js/mailchimp-woocommerce-public.min.js index da8b5272..5fe2e3a3 100644 --- a/public/js/mailchimp-woocommerce-public.min.js +++ b/public/js/mailchimp-woocommerce-public.min.js @@ -1 +1 @@ -var mailchimp,mailchimp_cart,mailchimp_billing_email,mailchimp_username_email,mailchimp_registration_email,mailchimp_submitted_email=!1,mailchimpReady=function(e){/in/.test(document.readyState)?setTimeout("mailchimpReady("+e+")",9):e()};function mailchimpGetCurrentUserByHash(e){try{if(!mailchimp_public_data.allowed_to_set_cookies)return;var i=mailchimp_public_data.ajax_url+"?action=mailchimp_get_user_by_hash&hash="+e,a=new XMLHttpRequest;a.open("POST",i,!0),a.onload=function(){if(a.status>=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");i||(i=document.querySelector("#subscribe-to-newsletter")),e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(n){console.log("mailchimp.handle_billing_email.error",n),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l=200&&a.status<400){var e=JSON.parse(a.responseText);e&&mailchimp_cart.valueEmail(e.email)&&mailchimp_cart.setEmail(e.email)}},a.onerror=function(){console.log("mailchimp.get_email_by_hash.request.error",a.responseText)},a.setRequestHeader("Content-Type","application/json"),a.setRequestHeader("Accept","application/json"),a.send()}catch(t){console.log("mailchimp.get_email_by_hash.error",t)}}function mailchimpHandleBillingEmail(e){try{if(!mailchimp_public_data.allowed_to_set_cookies||mailchimp_public_data.disable_carts)return;var i=document.querySelector("#mailchimp_woocommerce_newsletter");i||(i=document.querySelector("#subscribe-to-newsletter")),e||(e="#billing_email");var a=document.querySelector(e),t=void 0!==a?a.value:"";if(!mailchimp_cart.valueEmail(t)||mailchimp_submitted_email===t)return!1;mailchimp_cart.setEmail(t),console.log(t),console.log(mailchimp_cart);var l=mailchimp_public_data.ajax_url+"?action=mailchimp_set_user_by_email",r=new XMLHttpRequest;return r.open("POST",l,!0),r.onload=function(){console.log(r);var e=r.status>=200&&r.status<400;e&&(mailchimp_submitted_email=t),console.log(e?"mailchimp.handle_billing_email.request.success":"mailchimp.handle_billing_email.request.error",r.responseText)},r.onerror=function(){console.log("mailchimp.handle_billing_email.request.error",r.responseText)},r.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),r.setRequestHeader("Accept","application/json"),r.send("email="+t+"&mc_language="+mailchimp_public_data.language+"&subscribed="+(i&&i.checked?"1":"0")),!0}catch(n){console.log("mailchimp.handle_billing_email.error",n),mailchimp_submitted_email=!1}}!function(){"use strict";var e,i,a,t;mailchimp={storage:(e=document,(a=function(e,i,t){return 1===arguments.length?a.get(e):a.set(e,i,t)}).get=function(i,t){return e.cookie!==a._cacheString&&a._populateCache(),void 0==a._cache[i]?t:a._cache[i]},a.defaults={path:"/",secure:!0,samesite:"strict"},a.set=function(t,l,r){switch(r={path:r&&r.path||a.defaults.path,domain:r&&r.domain||a.defaults.domain,expires:r&&r.expires||a.defaults.expires,secure:r&&r.secure!==i?r.secure:a.defaults.secure,samesite:r&&r.samesite||a.defaults.samesite},l===i&&(r.expires=-1),typeof r.expires){case"number":r.expires=new Date((new Date).getTime()+1e3*r.expires);break;case"string":r.expires=new Date(r.expires)}return t=encodeURIComponent(t)+"="+(l+"").replace(/[^!#-+\--:<-\[\]-~]/g,encodeURIComponent),t+=r.path?";path="+r.path:"",t+=r.domain?";domain="+r.domain:"",t+=r.expires?";expires="+r.expires.toGMTString():"",t+=r.secure?";secure":"",t+=r.samesite?";samesite="+r.samesite:"",e.cookie=t,a},a.expire=function(e,t){return a.set(e,i,t)},a._populateCache=function(){a._cache={};try{a._cacheString=e.cookie;for(var t=a._cacheString.split("; "),l=0;l Date: Wed, 1 Nov 2023 10:54:34 +0200 Subject: [PATCH 26/57] preventing sync cart for not subscribed customers --- includes/class-mailchimp-woocommerce-service.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index 4287ae12..da168a3c 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -1032,6 +1032,8 @@ public function set_user_by_email() { if (mailchimp_carts_disabled()) { $this->respondJSON(array('success' => false, 'message' => 'filter blocked due to carts being disabled')); + } elseif (mailchimp_carts_subscribers_only()) { + $this->respondJSON(array('success' => false, 'message' => 'filter blocked due to carts for subscribers only')); } if ($this->is_admin) { From c682470a4a31725e27c81260d73970d9f9c83da3 Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 2 Nov 2023 22:18:21 +0200 Subject: [PATCH 27/57] fix sync abandoned cart --- includes/class-mailchimp-woocommerce-service.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index da168a3c..0062d034 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -242,14 +242,14 @@ public function handleCartUpdated($updated = null) // if the user chose to send to subscribers only we need to do a quick check // to see if this email has already subscribed. - if (!$this->cart_subscribe && (mailchimp_carts_subscribers_only() || mailchimp_submit_subscribed_only())) { + if (mailchimp_carts_subscribers_only() || mailchimp_submit_subscribed_only()) { $transient_key = mailchimp_hash_trim_lower($user_email).".mc.status"; $cached_status = mailchimp_get_transient($transient_key); if ($cached_status === null) { $cached_status = mailchimp_get_subscriber_status($user_email); mailchimp_set_transient($transient_key, $cached_status ? $cached_status : false, 300); } - if ($cached_status !== 'subscribed') { + if (isset($cached_status['value']) && $cached_status['value'] !== 'subscribed') { mailchimp_debug('filter', "preventing {$user_email} from submitting cart data due to subscriber settings."); return $updated; } @@ -1032,8 +1032,6 @@ public function set_user_by_email() { if (mailchimp_carts_disabled()) { $this->respondJSON(array('success' => false, 'message' => 'filter blocked due to carts being disabled')); - } elseif (mailchimp_carts_subscribers_only()) { - $this->respondJSON(array('success' => false, 'message' => 'filter blocked due to carts for subscribers only')); } if ($this->is_admin) { From 5d3f6204016f34d028f3cc1b82441024a63db48b Mon Sep 17 00:00:00 2001 From: tarassych Date: Fri, 3 Nov 2023 15:57:46 +0200 Subject: [PATCH 28/57] bug fix when receiving data from the transient option --- includes/class-mailchimp-woocommerce-service.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index 0062d034..cc044598 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -249,7 +249,12 @@ public function handleCartUpdated($updated = null) $cached_status = mailchimp_get_subscriber_status($user_email); mailchimp_set_transient($transient_key, $cached_status ? $cached_status : false, 300); } - if (isset($cached_status['value']) && $cached_status['value'] !== 'subscribed') { + + if (isset($cached_status['value'])) { + $cached_status = $cached_status['value']; + } + + if ($cached_status !== 'subscribed') { mailchimp_debug('filter', "preventing {$user_email} from submitting cart data due to subscriber settings."); return $updated; } From 1049ea2117b9060cbb4eea9fd16a761893591c59 Mon Sep 17 00:00:00 2001 From: tarassych Date: Mon, 6 Nov 2023 15:35:09 +0200 Subject: [PATCH 29/57] fix of TypeError: unserialize() in new PHP versions --- includes/class-mailchimp-woocommerce-options.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce-options.php b/includes/class-mailchimp-woocommerce-options.php index e81160a2..dbf6d1fe 100644 --- a/includes/class-mailchimp-woocommerce-options.php +++ b/includes/class-mailchimp-woocommerce-options.php @@ -185,7 +185,7 @@ public function removeData($key) public function getCached($key, $default = null) { $cached = $this->getData("cached-$key", false); - if (empty($cached) || !($cached = unserialize($cached))) { + if (empty($cached) || !($cached = is_string($cached) ? unserialize($cached) : [])) { return $default; } From c6648b747891c7fd2ffa73c60ea3dfc8c60f8fa9 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Fri, 10 Nov 2023 14:19:00 -0500 Subject: [PATCH 30/57] address array update for tower --- includes/api/class-mailchimp-woocommerce-tower.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index d7fc524e..0a1c34ab 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -191,7 +191,7 @@ public function getData() { 'average_monthly_sales' => $this->getShopSales(), 'address' => (object) array( 'street' => isset( $options['store_street'] ) && $options['store_street'] ? $options['store_street'] : '', - 'city' => isset( $options['store_street'] ) && $options['store_street'] ? $options['store_street'] : '', + 'city' => isset( $options['store_city'] ) && $options['store_city'] ? $options['store_city'] : '', 'state' => isset( $options['store_state'] ) && $options['store_state'] ? $options['store_state'] : '', 'country' => isset( $options['store_country'] ) && $options['store_country'] ? $options['store_country'] : '', 'zip' => isset( $options['store_postal_code'] ) && $options['store_postal_code'] ? $options['store_postal_code'] : '', From a9b2c8b6194f07a608ca7a121535955a1e004d00 Mon Sep 17 00:00:00 2001 From: jrdnrch <3683251+jrdnrch@users.noreply.github.com> Date: Mon, 13 Nov 2023 11:18:14 -0500 Subject: [PATCH 31/57] Update README.txt Update tested up to and WP version for v3.3 --- README.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index e79d50e6..a5712efb 100644 --- a/README.txt +++ b/README.txt @@ -3,11 +3,11 @@ Contributors: ryanhungate, Mailchimp Tags: ecommerce,email,workflows,mailchimp Donate link: https://mailchimp.com Requires at least: 4.9 -Tested up to: 6.3 +Tested up to: 6.4 Stable tag: 3.2 Requires PHP: 7.4 WC requires at least: 4.2 -WC tested up to: 8.2 +WC tested up to: 8.3 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Connect your store to your Mailchimp audience to track sales, create targeted emails, send abandoned cart emails, and more. From 0b7f875430ea4f9cd4b26d27b68f5d677d6ace11 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 14 Nov 2023 16:04:54 -0500 Subject: [PATCH 32/57] fix wp_rewrite issue with webhook url creation --- CHANGELOG.txt | 2 + README.txt | 11 +--- bootstrap.php | 5 +- .../class-mailchimp-woocommerce-rest-api.php | 63 ++++++++++++++++++- mailchimp-woocommerce.php | 2 +- 5 files changed, 69 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index c424a2c4..ac402081 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,4 +1,6 @@ == Changelog == += 3.4 = +* Fix rest_url function for installs that are not using wp_rewrite = 3.3 = * Performance enhancement: Removing excessive double opt-in api calls during initial sync * Fix for translated product issue diff --git a/README.txt b/README.txt index a5712efb..58db4f51 100644 --- a/README.txt +++ b/README.txt @@ -4,7 +4,7 @@ Tags: ecommerce,email,workflows,mailchimp Donate link: https://mailchimp.com Requires at least: 4.9 Tested up to: 6.4 -Stable tag: 3.2 +Stable tag: 3.3 Requires PHP: 7.4 WC requires at least: 4.2 WC tested up to: 8.3 @@ -78,10 +78,5 @@ At this time, the synchronization of product categories from WooCommerce to Mail If you are unable to sync or connect with Mailchimp, you can open a ticket on our [Github plugin page](https://github.com/mailchimp/mc-woocommerce/issues). Please provide the version of the plugin and PHP you're using, any fatal errors in the WooCommerce logs (WooCommerce -> Status -> Logs) you're seeing, along with relevant information to the problem you're experiencing. == Changelog == -= 3.3 = -* Performance enhancement: Removing excessive double opt-in api calls during initial sync -* Fix for translated product issue -* Fix for ongoing sync settings failing when double opt-in enabled -* Fix for permalink conflicting with Webhook creation -* Fix for GDPR Marketing Preferences not captured on checkout -* Word-wrap version update to 1.2.3 in blocks += 3.4 = +* Fix rest_url function for installs that are not using wp_rewrite diff --git a/bootstrap.php b/bootstrap.php index 22b5191f..f826de70 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -97,7 +97,7 @@ function mailchimp_environment_variables() { return (object) array( 'repo' => 'master', 'environment' => 'production', // staging or production - 'version' => '3.3', + 'version' => '3.4', 'php_version' => phpversion(), 'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version), 'wc_version' => function_exists('WC') ? WC()->version : null, @@ -1215,9 +1215,6 @@ function run_mailchimp_woocommerce() { $env = mailchimp_environment_variables(); $plugin = new MailChimp_WooCommerce($env->environment, $env->version); $plugin->run(); - if (isset($_GET['restart_order_sync']) && $_GET['restart_order_sync'] === '1') { - mailchimp_as_push(new MailChimp_WooCommerce_Process_Orders()); - } } function mailchimp_on_all_plugins_loaded() { diff --git a/includes/class-mailchimp-woocommerce-rest-api.php b/includes/class-mailchimp-woocommerce-rest-api.php index da64a4d9..b8c10221 100644 --- a/includes/class-mailchimp-woocommerce-rest-api.php +++ b/includes/class-mailchimp-woocommerce-rest-api.php @@ -11,7 +11,7 @@ class MailChimp_WooCommerce_Rest_Api */ public static function url($path) { - return esc_url_raw(rest_url(static::$namespace.'/'.ltrim($path, '/'))); + return esc_url_raw(static::mc_get_rest_url(static::$namespace.'/'.ltrim($path, '/'))); } /** * Register all Mailchimp API routes. @@ -798,4 +798,65 @@ private function getAuthQueryStringParam(WP_REST_Request $request) $params = $request->get_query_params(); return empty($params['auth']) ? false : $params['auth']; } + + /** + * Retrieves the URL to a REST endpoint on a site. + * + * Note: The returned URL is NOT escaped. + * + * @since 4.4.0 + * + * @todo Check if this is even necessary + * @global WP_Rewrite $wp_rewrite + * + * @param int $blog_id Optional. Blog ID. Default of null returns URL for current blog. + * @param string $path Optional. REST route. Default '/'. + * @param string $scheme Optional. Sanitization scheme. Default 'rest'. + * @return string Full URL to the endpoint. + */ + private static function mc_get_rest_url( $blog_id = null, $path = '/', $scheme = 'rest' ) { + if ( empty( $path ) ) { + $path = '/'; + } + + if ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) || get_option( 'permalink_structure' ) ) { + global $wp_rewrite; + + // for some reason this global is not available - causing errors. + if (!empty($wp_rewrite) && $wp_rewrite->using_index_permalinks() ) { + $url = get_home_url( $blog_id, $wp_rewrite->index . '/' . rest_get_url_prefix(), $scheme ); + } else { + $url = get_home_url( $blog_id, rest_get_url_prefix(), $scheme ); + } + + $url .= '/' . ltrim( $path, '/' ); + } else { + $url = trailingslashit( get_home_url( $blog_id, '', $scheme ) ); + + $path = '/' . ltrim( $path, '/' ); + + $url = add_query_arg( 'rest_route', $path, $url ); + } + + if ( is_ssl() ) { + // If the current host is the same as the REST URL host, force the REST URL scheme to HTTPS. + if ( $_SERVER['SERVER_NAME'] === parse_url( get_home_url( $blog_id ), PHP_URL_HOST ) ) { + $url = set_url_scheme( $url, 'https' ); + } + } + + /** + * Filters the REST URL. + * + * Use this filter to adjust the url returned by the get_rest_url() function. + * + * @since 4.4.0 + * + * @param string $url REST URL. + * @param string $path REST route. + * @param int $blog_id Blog ID. + * @param string $scheme Sanitization scheme. + */ + return apply_filters( 'rest_url', $url, $path, $blog_id, $scheme ); + } } \ No newline at end of file diff --git a/mailchimp-woocommerce.php b/mailchimp-woocommerce.php index 036e12b8..d4ec81fd 100644 --- a/mailchimp-woocommerce.php +++ b/mailchimp-woocommerce.php @@ -16,7 +16,7 @@ * Plugin Name: Mailchimp for WooCommerce * Plugin URI: https://mailchimp.com/connect-your-store/ * Description: Connects WooCommerce to Mailchimp to sync your store data, send targeted campaigns to your customers, and sell more stuff. - * Version: 3.3 + * Version: 3.4 * Author: Mailchimp * Author URI: https://mailchimp.com * License: GPL-2.0+ From a714ca802fb2fcba3a6496f195ee5f979670c567 Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 16 Nov 2023 13:46:11 +0200 Subject: [PATCH 33/57] Changed hook woocommerce_cart_contents_changed -> woocommerce_cart_item_set_quantity --- includes/class-mailchimp-woocommerce.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce.php b/includes/class-mailchimp-woocommerce.php index 6ea13ad5..cbf6e276 100644 --- a/includes/class-mailchimp-woocommerce.php +++ b/includes/class-mailchimp-woocommerce.php @@ -380,7 +380,7 @@ private function activateMailChimpService() $this->loader->add_action('edit_user_profile_update', $service, 'user_update_subscribe_status', 100); // cart hooks $this->loader->add_filter('woocommerce_update_cart_action_cart_updated', $service, 'handleCartUpdated'); - $this->loader->add_filter('woocommerce_cart_contents_changed', $service, 'handleCartUpdated'); + $this->loader->add_action('woocommerce_cart_item_set_quantity', $service, 'handleCartUpdated'); $this->loader->add_action('woocommerce_add_to_cart', $service, 'handleCartUpdated'); $this->loader->add_action('woocommerce_cart_item_removed', $service, 'handleCartUpdated'); From 6ee95538c7f26dd1dfc8c1413901631b79721dd0 Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 16 Nov 2023 15:24:24 +0200 Subject: [PATCH 34/57] fix set webhook when plugin updated --- includes/class-mailchimp-woocommerce.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce.php b/includes/class-mailchimp-woocommerce.php index cbf6e276..72ea235f 100644 --- a/includes/class-mailchimp-woocommerce.php +++ b/includes/class-mailchimp-woocommerce.php @@ -251,7 +251,7 @@ private function define_admin_hooks() { $this->loader->add_action('plugins_loaded', $plugin_admin, 'update_db_check'); $this->loader->add_action('upgrader_process_complete', $plugin_admin, 'plugin_upgrade_completed', 10, 2); - $this->loader->add_action('plugins_loaded', $plugin_admin, 'update_plugin_check', 13); + $this->loader->add_action('init', $plugin_admin, 'update_plugin_check', 13); $this->loader->add_action('admin_init', $plugin_admin, 'setup_survey_form'); $this->loader->add_action('admin_footer', $plugin_admin, 'inject_sync_ajax_call'); From 12b76cf3816858778aef85c35301822e38df9a4a Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 16 Nov 2023 21:50:57 +0200 Subject: [PATCH 35/57] changed the way to determine if WP_CLI is installed --- includes/api/class-mailchimp-woocommerce-tower.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index 0a1c34ab..67600034 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -515,7 +515,7 @@ public function getSystemReport() { ), array( 'key' => 'WP CLI Enabled', - 'value' => defined('WP_CLI') && WP_CLI, + 'value' => shell_exec('wp cli version') !== null, ), array( 'key' => 'Curl Enabled', From 5f933bc9f3a2e75f3de6c13249278a89872261c1 Mon Sep 17 00:00:00 2001 From: tarassych Date: Mon, 20 Nov 2023 20:41:26 +0200 Subject: [PATCH 36/57] Updated dependencies --- .../build/newsletter-block-frontend.asset.php | 2 +- blocks/build/newsletter-block-frontend.js | 2 +- blocks/build/newsletter-block.asset.php | 2 +- blocks/build/newsletter-block.js | 2 +- blocks/package-lock.json | 5666 ++++++++++++----- blocks/package.json | 22 +- 6 files changed, 4033 insertions(+), 1663 deletions(-) diff --git a/blocks/build/newsletter-block-frontend.asset.php b/blocks/build/newsletter-block-frontend.asset.php index c6dc1c94..533072c5 100644 --- a/blocks/build/newsletter-block-frontend.asset.php +++ b/blocks/build/newsletter-block-frontend.asset.php @@ -1 +1 @@ - array('wc-blocks-checkout', 'wc-blocks-shared-hocs', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'efc574ba3f91671dcd10'); + array('wc-blocks-checkout', 'wc-blocks-shared-hocs', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6c38ea938266abe7c582'); diff --git a/blocks/build/newsletter-block-frontend.js b/blocks/build/newsletter-block-frontend.js index eb9ceae9..394ffaa3 100644 --- a/blocks/build/newsletter-block-frontend.js +++ b/blocks/build/newsletter-block-frontend.js @@ -1 +1 @@ -!function(){"use strict";var e=window.wc.blocksCheckout,t=window.wc.wcBlocksSharedHocs,n=window.wp.element,i=window.wp.i18n,o=window.wc.wcSettings;const{optinDefaultText:c,gdprHeadline:r,gdprFields:s,gdprStatus:a}=(0,o.getSetting)("mailchimp-newsletter_data","");var l={text:{type:"string",default:c},gdprHeadline:{type:"string",default:r},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:a}},m=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}');(0,e.registerCheckoutBlock)({metadata:m,component:(0,t.withFilteredAttributes)(l)((({cart:t,extensions:o,text:c,gdprHeadline:r,gdprStatus:s,gdpr:a,checkoutExtensionData:l})=>{let m={};a&&a.length&&a.forEach((e=>{m[e.marketing_permission_id]=!1}));const d="check"===s,[p,u]=(0,n.useState)(d),[h]=(0,n.useState)({}),{setExtensionData:w}=l;return(0,n.useEffect)((()=>{w("mailchimp-newsletter","optin",p)}),[p,w]),(0,n.createElement)("div",{className:"wc-block-components-checkout-step__container"},(0,n.createElement)("div",{style:{display:"hide"===s?"none":""},className:"wc-block-components-checkout-step__content"},(0,n.createElement)(e.CheckboxControl,{id:"subscribe-to-newsletter",checked:p,onChange:u},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:c}})),a&&a.length?(0,i.__)(r,"mailchimp-for-woocommerce"):"",a&&a.length?a.map((t=>(0,n.createElement)(e.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:h[t.marketing_permission_id],onChange:e=>{h[t.marketing_permission_id]=!h[t.marketing_permission_id],w("mailchimp-newsletter","gdprFields",h)}},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))):""))}))})}(); \ No newline at end of file +(()=>{"use strict";const e=window.wc.blocksCheckout,t=window.wc.wcBlocksSharedHocs,n=window.wp.element,i=window.wp.i18n,o=window.wc.wcSettings,{optinDefaultText:c,gdprHeadline:r,gdprFields:s,gdprStatus:a}=(0,o.getSetting)("mailchimp-newsletter_data",""),l={text:{type:"string",default:c},gdprHeadline:{type:"string",default:r},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:a}},m=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}');(0,e.registerCheckoutBlock)({metadata:m,component:(0,t.withFilteredAttributes)(l)((({cart:t,extensions:o,text:c,gdprHeadline:r,gdprStatus:s,gdpr:a,checkoutExtensionData:l})=>{let m={};a&&a.length&&a.forEach((e=>{m[e.marketing_permission_id]=!1}));const d="check"===s,[p,u]=(0,n.useState)(d),[h]=(0,n.useState)({}),{setExtensionData:w}=l;return(0,n.useEffect)((()=>{w("mailchimp-newsletter","optin",p)}),[p,w]),(0,n.createElement)("div",{className:"wc-block-components-checkout-step__container"},(0,n.createElement)("div",{style:{display:"hide"===s?"none":""},className:"wc-block-components-checkout-step__content"},(0,n.createElement)(e.CheckboxControl,{id:"subscribe-to-newsletter",checked:p,onChange:u},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:c}})),a&&a.length?(0,i.__)(r,"mailchimp-for-woocommerce"):"",a&&a.length?a.map((t=>(0,n.createElement)(e.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:h[t.marketing_permission_id],onChange:e=>{h[t.marketing_permission_id]=!h[t.marketing_permission_id],w("mailchimp-newsletter","gdprFields",h)}},(0,n.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}})))):""))}))})})(); \ No newline at end of file diff --git a/blocks/build/newsletter-block.asset.php b/blocks/build/newsletter-block.asset.php index 10c6ce98..0b51914a 100644 --- a/blocks/build/newsletter-block.asset.php +++ b/blocks/build/newsletter-block.asset.php @@ -1 +1 @@ - array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'b7e427ee568cf4aabe53'); + array('wc-blocks-checkout', 'wc-settings', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '1cac73b423b8e8027e1b'); diff --git a/blocks/build/newsletter-block.js b/blocks/build/newsletter-block.js index ad6bd21c..0086b0be 100644 --- a/blocks/build/newsletter-block.js +++ b/blocks/build/newsletter-block.js @@ -1 +1 @@ -!function(){"use strict";var e,t={90:function(){var e=window.wp.element,t=window.wp.components,l=window.wp.blocks,n=window.wp.i18n,r=window.wp.blockEditor,C=window.wc.blocksCheckout,o=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}'),c=window.wc.wcSettings;const{optinDefaultText:i,gdprHeadline:a,gdprFields:s,gdprStatus:d}=(0,c.getSetting)("mailchimp-newsletter_data","");var m={text:{type:"string",default:i},gdprHeadline:{type:"string",default:a},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:d}};(0,l.registerBlockType)(o,{icon:{src:(0,e.createElement)(t.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"60",height:"60",viewBox:"0 0 46 49",fill:"none"},(0,e.createElement)("path",{d:"M34.5458 23.5193C34.8988 23.4778 35.2361 23.4759 35.5457 23.5193C35.7252 23.107 35.7568 22.397 35.5951 21.6239C35.3544 20.4741 35.029 19.7778 34.3584 19.8863C33.6859 19.9948 33.6622 20.8271 33.9028 21.9769C34.037 22.6238 34.2776 23.1761 34.5458 23.5193Z",fill:"black"}),(0,e.createElement)("path",{d:"M28.7763 24.4284C29.2575 24.6394 29.5534 24.7795 29.6678 24.6572C29.7427 24.5803 29.719 24.4363 29.6046 24.2489C29.368 23.8624 28.8788 23.4679 28.3621 23.249C27.303 22.7934 26.0407 22.9453 25.0664 23.6454C24.745 23.8801 24.4393 24.2075 24.4826 24.4047C24.4965 24.4698 24.5458 24.5172 24.6582 24.5329C24.9225 24.5625 25.8494 24.0951 26.9164 24.03C27.6718 23.9827 28.295 24.2174 28.7763 24.4284Z",fill:"black"}),(0,e.createElement)("path",{d:"M27.8105 24.9806C27.1852 25.0793 26.8381 25.2863 26.6172 25.4777C26.4279 25.6433 26.3115 25.8267 26.3115 25.9549C26.3115 26.0161 26.3391 26.0516 26.3589 26.0693C26.3865 26.095 26.422 26.1088 26.4614 26.1088C26.6034 26.1088 26.919 25.9826 26.919 25.9826C27.7907 25.6709 28.3647 25.7084 28.9346 25.7735C29.2502 25.809 29.3981 25.8287 29.4672 25.7202C29.4869 25.6887 29.5125 25.6216 29.4494 25.521C29.3054 25.2804 28.6723 24.8781 27.8105 24.9806Z",fill:"black"}),(0,e.createElement)("path",{d:"M32.5975 27.0061C33.0235 27.2152 33.4909 27.1324 33.6428 26.8227C33.7946 26.5131 33.5737 26.093 33.1497 25.8839C32.7237 25.6749 32.2563 25.7577 32.1044 26.0673C31.9506 26.377 32.1734 26.7971 32.5975 27.0061Z",fill:"black"}),(0,e.createElement)("path",{d:"M35.3306 24.6177C34.9854 24.6118 34.6995 24.9905 34.6916 25.4638C34.6837 25.9372 34.9578 26.3257 35.303 26.3317C35.6481 26.3376 35.9341 25.9589 35.942 25.4855C35.9499 25.0122 35.6757 24.6237 35.3306 24.6177Z",fill:"black"}),(0,e.createElement)("path",{d:"M12.1324 33.1577C12.0456 33.0492 11.9056 33.0827 11.7695 33.1143C11.6749 33.136 11.5664 33.1616 11.448 33.1596C11.1936 33.1557 10.9786 33.0452 10.8583 32.8598C10.7006 32.6192 10.7104 32.2583 10.884 31.8461C10.9076 31.7909 10.9353 31.7297 10.9648 31.6607C11.241 31.0394 11.7064 30 11.1857 29.008C10.7932 28.2625 10.1542 27.797 9.38702 27.7004C8.64939 27.6077 7.89006 27.8798 7.40685 28.4143C6.64358 29.2565 6.52328 30.4044 6.6712 30.8087C6.72445 30.9566 6.80925 30.998 6.87237 31.0059C7.00254 31.0237 7.19385 30.929 7.31416 30.6055C7.32205 30.5819 7.33388 30.5464 7.34769 30.501C7.40094 30.3294 7.50152 30.0099 7.66522 29.7555C7.86245 29.4478 8.17012 29.2348 8.53105 29.1579C8.89789 29.079 9.2746 29.15 9.58819 29.3551C10.1227 29.7062 10.3298 30.361 10.101 30.9862C9.98264 31.3096 9.79133 31.9289 9.83275 32.4378C9.91756 33.4673 10.5507 33.8795 11.1206 33.9249C11.6729 33.9466 12.0594 33.6349 12.1581 33.4081C12.2133 33.274 12.164 33.1932 12.1324 33.1577Z",fill:"black"}),(0,e.createElement)("path",{d:"M44.044 31.2761C44.0223 31.2012 43.8862 30.7002 43.6969 30.0967C43.5075 29.4932 43.3142 29.0672 43.3142 29.0672C44.0696 27.9351 44.0834 26.9233 43.9828 26.3514C43.8763 25.6414 43.5805 25.0359 42.9829 24.4107C42.3873 23.7854 41.1684 23.1445 39.4545 22.6632C39.2593 22.608 38.6123 22.4305 38.5551 22.4127C38.5512 22.3753 38.5078 20.2945 38.4684 19.3991C38.4408 18.7522 38.3836 17.7444 38.0719 16.7504C37.6992 15.4053 37.0483 14.2298 36.2377 13.4764C38.4763 11.157 39.8726 8.60091 39.8707 6.40774C39.8647 2.19102 34.6855 0.914962 28.3033 3.55781C28.2974 3.55978 26.9602 4.1278 26.9503 4.13174C26.9444 4.12582 24.5066 1.73346 24.4692 1.7019C17.1954 -4.64488 -5.55475 20.6436 1.71899 26.7853L3.30864 28.1323C2.89644 29.2013 2.73471 30.4241 2.86685 31.7396C3.03647 33.4299 3.90822 35.0511 5.32234 36.3015C6.66348 37.4908 8.42669 38.2422 10.1386 38.2402C12.9688 44.7626 19.4359 48.7643 27.0193 48.9891C35.153 49.2317 41.981 45.4134 44.8428 38.5578C45.0301 38.0765 45.825 35.909 45.825 33.9939C45.825 32.0729 44.7382 31.2761 44.044 31.2761ZM10.7638 36.41C10.5173 36.4514 10.2649 36.4691 10.0104 36.4632C7.55298 36.3981 4.90027 34.1852 4.63598 31.5621C4.34409 28.6629 5.82527 26.4322 8.44839 25.9017C8.76198 25.8386 9.14066 25.8011 9.54892 25.8228C11.0183 25.9037 13.1838 27.0318 13.6789 30.2328C14.1187 33.0689 13.4225 35.9564 10.7638 36.41ZM8.02041 24.1681C6.38736 24.4856 4.9476 25.4106 4.06797 26.6886C3.54137 26.2508 2.56115 25.4007 2.38956 25.0694C0.985306 22.4009 3.92202 17.2138 5.97516 14.285C11.0478 7.04676 18.9922 1.56581 22.6705 2.55984C23.2681 2.72945 25.2482 5.02518 25.2482 5.02518C25.2482 5.02518 21.5719 7.06451 18.1618 9.90853C13.5704 13.4468 10.0992 18.5885 8.02041 24.1681ZM33.8079 35.3252C33.8611 35.3035 33.8986 35.2424 33.8927 35.1812C33.8848 35.1063 33.8177 35.0531 33.7448 35.0609C33.7448 35.0609 29.8969 35.6309 26.26 34.2996C26.6564 33.0117 27.7096 33.4772 29.3012 33.6054C32.1709 33.777 34.7408 33.3569 36.642 32.8125C38.2889 32.3392 40.4505 31.4083 42.1309 30.0829C42.6969 31.3274 42.8981 32.6962 42.8981 32.6962C42.8981 32.6962 43.3359 32.6173 43.7028 32.8441C44.0499 33.0571 44.3024 33.5009 44.1288 34.6448C43.7758 36.7847 42.8665 38.5223 41.338 40.1198C40.4071 41.1217 39.277 41.9935 37.9852 42.6266C37.2988 42.9875 36.5671 43.2991 35.7959 43.5516C30.033 45.4331 24.1339 43.3642 22.2326 38.9207C22.0807 38.5874 21.9525 38.2363 21.852 37.8714C21.0414 34.9426 21.7297 31.43 23.8795 29.2171C23.8795 29.2171 23.8795 29.2171 23.8795 29.2151C24.0116 29.0751 24.1477 28.9094 24.1477 28.7004C24.1477 28.5248 24.0372 28.3414 23.9406 28.2112C23.1892 27.1206 20.5818 25.2607 21.1045 21.6613C21.4792 19.0757 23.7414 17.2553 25.8498 17.3637C26.0273 17.3736 26.2067 17.3834 26.3842 17.3953C27.2974 17.4485 28.0942 17.5669 28.8476 17.5984C30.1059 17.6537 31.238 17.4702 32.5792 16.3519C33.0308 15.9752 33.3937 15.6478 34.0071 15.5453C34.0722 15.5335 34.2319 15.4763 34.5534 15.492C34.8808 15.5098 35.1924 15.5985 35.4725 15.7859C36.5474 16.5018 36.6992 18.2335 36.7545 19.4997C36.786 20.2235 36.8728 21.9729 36.9044 22.4759C36.9734 23.6237 37.2751 23.7874 37.8846 23.9886C38.2278 24.101 38.5473 24.1858 39.0167 24.318C40.4387 24.7183 41.2828 25.1227 41.8153 25.6433C42.1329 25.9688 42.2808 26.3139 42.3261 26.6433C42.4938 27.8661 41.3755 29.3788 38.4171 30.7515C35.1826 32.2524 31.2577 32.6331 28.5459 32.3313C28.3388 32.3076 27.5992 32.2248 27.5952 32.2248C25.4257 31.9329 24.1891 34.7355 25.4908 36.6565C26.329 37.8951 28.6149 38.6998 30.9008 38.6998C36.1431 38.6998 40.1724 36.4613 41.6713 34.5284C41.7167 34.4712 41.7206 34.4633 41.7916 34.3568C41.8646 34.2464 41.8055 34.1852 41.7128 34.2464C40.488 35.0846 35.0484 38.4099 29.2322 37.4099C29.2322 37.4099 28.5261 37.2936 27.8792 37.0431C27.3664 36.8439 26.2935 36.3508 26.1634 35.2483C30.8514 36.6979 33.8079 35.3252 33.8079 35.3252ZM26.3704 34.4476C26.3704 34.4476 26.3724 34.4476 26.3704 34.4476C26.3724 34.4495 26.3724 34.4495 26.3724 34.4515C26.3724 34.4495 26.3724 34.4476 26.3704 34.4476ZM17.3887 14.2554C19.1914 12.1707 21.4121 10.3602 23.4002 9.34249C23.4692 9.30699 23.5422 9.38193 23.5047 9.44899C23.3469 9.73497 23.0432 10.3464 22.9466 10.8118C22.9308 10.8848 23.0097 10.9381 23.0708 10.8966C24.3074 10.0525 26.4612 9.14921 28.3486 9.03284C28.4295 9.02693 28.4689 9.13146 28.4039 9.18076C28.1159 9.40166 27.8023 9.70539 27.5735 10.0131C27.5341 10.0663 27.5716 10.1413 27.6366 10.1413C28.962 10.1511 30.8317 10.6146 32.0486 11.297C32.1315 11.3424 32.0723 11.5021 31.9796 11.4824C30.1375 11.0603 27.1199 10.7389 23.986 11.5041C21.1893 12.1865 19.0533 13.2397 17.4952 14.3738C17.4203 14.4329 17.3256 14.3304 17.3887 14.2554Z",fill:"black"})),foreground:"#874FB9"},edit:({attributes:l,setAttributes:o})=>{const{text:c,gdprHeadline:i,gdpr:a,gdprStatus:s}=l,d=(0,r.useBlockProps)(),m="check"===s;return(0,e.createElement)("div",{...d},(0,e.createElement)(r.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,n.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,n.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>o({gdprStatus:e})}))),(0,e.createElement)("div",{style:{display:"hide"===s?"none":"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(C.CheckboxControl,{id:"newsletter-text",checked:m,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(r.RichText,{value:c,help:(0,n.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>o({text:e})})),a&&a.length&&"hide"!=s&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(r.RichText,{value:i,help:(0,n.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>o({gdprHeadline:e})})),a.map(((t,l)=>(0,e.createElement)(C.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:a[l].enabled,onChange:()=>{a[l].enabled=!a[l].enabled,o({gdpr:a})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}}))))))},save:()=>(0,e.createElement)("div",{...r.useBlockProps.save()}),attributes:{...o.attributes,...m}})}},l={};function n(e){var r=l[e];if(void 0!==r)return r.exports;var C=l[e]={exports:{}};return t[e](C,C.exports,n),C.exports}n.m=t,e=[],n.O=function(t,l,r,C){if(!l){var o=1/0;for(s=0;s=C)&&Object.keys(n.O).every((function(e){return n.O[e](l[i])}))?l.splice(i--,1):(c=!1,C0&&e[s-1][2]>C;s--)e[s]=e[s-1];e[s]=[l,r,C]},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={457:0,411:0};n.O.j=function(t){return 0===e[t]};var t=function(t,l){var r,C,o=l[0],c=l[1],i=l[2],a=0;if(o.some((function(t){return 0!==e[t]}))){for(r in c)n.o(c,r)&&(n.m[r]=c[r]);if(i)var s=i(n)}for(t&&t(l);a{"use strict";var e,t={90:()=>{const e=window.wp.element,t=window.wp.components,l=window.wp.blocks,C=window.wp.i18n,r=window.wp.blockEditor,o=window.wc.blocksCheckout,a=JSON.parse('{"apiVersion":2,"name":"woocommerce/mailchimp-newsletter-subscription","version":"1.0.0","title":"Mailchimp Newsletter!","category":"woocommerce","description":"Adds a newsletter subscription checkbox to the checkout.","supports":{"html":true,"align":false,"multiple":false,"reusable":false},"parent":["woocommerce/checkout-contact-information-block"],"attributes":{"lock":{"type":"object","default":{"remove":true,"move":true}}},"textdomain":"mailchimp-woocommerce","editorStyle":"file:../../../build/style-newsletter-block.css"}'),n=window.wc.wcSettings,{optinDefaultText:i,gdprHeadline:c,gdprFields:s,gdprStatus:d}=(0,n.getSetting)("mailchimp-newsletter_data",""),m={text:{type:"string",default:i},gdprHeadline:{type:"string",default:c},gdpr:{type:"array",default:s},gdprStatus:{type:"string",default:d}};(0,l.registerBlockType)(a,{icon:{src:(0,e.createElement)(t.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"60",height:"60",viewBox:"0 0 46 49",fill:"none"},(0,e.createElement)("path",{d:"M34.5458 23.5193C34.8988 23.4778 35.2361 23.4759 35.5457 23.5193C35.7252 23.107 35.7568 22.397 35.5951 21.6239C35.3544 20.4741 35.029 19.7778 34.3584 19.8863C33.6859 19.9948 33.6622 20.8271 33.9028 21.9769C34.037 22.6238 34.2776 23.1761 34.5458 23.5193Z",fill:"black"}),(0,e.createElement)("path",{d:"M28.7763 24.4284C29.2575 24.6394 29.5534 24.7795 29.6678 24.6572C29.7427 24.5803 29.719 24.4363 29.6046 24.2489C29.368 23.8624 28.8788 23.4679 28.3621 23.249C27.303 22.7934 26.0407 22.9453 25.0664 23.6454C24.745 23.8801 24.4393 24.2075 24.4826 24.4047C24.4965 24.4698 24.5458 24.5172 24.6582 24.5329C24.9225 24.5625 25.8494 24.0951 26.9164 24.03C27.6718 23.9827 28.295 24.2174 28.7763 24.4284Z",fill:"black"}),(0,e.createElement)("path",{d:"M27.8105 24.9806C27.1852 25.0793 26.8381 25.2863 26.6172 25.4777C26.4279 25.6433 26.3115 25.8267 26.3115 25.9549C26.3115 26.0161 26.3391 26.0516 26.3589 26.0693C26.3865 26.095 26.422 26.1088 26.4614 26.1088C26.6034 26.1088 26.919 25.9826 26.919 25.9826C27.7907 25.6709 28.3647 25.7084 28.9346 25.7735C29.2502 25.809 29.3981 25.8287 29.4672 25.7202C29.4869 25.6887 29.5125 25.6216 29.4494 25.521C29.3054 25.2804 28.6723 24.8781 27.8105 24.9806Z",fill:"black"}),(0,e.createElement)("path",{d:"M32.5975 27.0061C33.0235 27.2152 33.4909 27.1324 33.6428 26.8227C33.7946 26.5131 33.5737 26.093 33.1497 25.8839C32.7237 25.6749 32.2563 25.7577 32.1044 26.0673C31.9506 26.377 32.1734 26.7971 32.5975 27.0061Z",fill:"black"}),(0,e.createElement)("path",{d:"M35.3306 24.6177C34.9854 24.6118 34.6995 24.9905 34.6916 25.4638C34.6837 25.9372 34.9578 26.3257 35.303 26.3317C35.6481 26.3376 35.9341 25.9589 35.942 25.4855C35.9499 25.0122 35.6757 24.6237 35.3306 24.6177Z",fill:"black"}),(0,e.createElement)("path",{d:"M12.1324 33.1577C12.0456 33.0492 11.9056 33.0827 11.7695 33.1143C11.6749 33.136 11.5664 33.1616 11.448 33.1596C11.1936 33.1557 10.9786 33.0452 10.8583 32.8598C10.7006 32.6192 10.7104 32.2583 10.884 31.8461C10.9076 31.7909 10.9353 31.7297 10.9648 31.6607C11.241 31.0394 11.7064 30 11.1857 29.008C10.7932 28.2625 10.1542 27.797 9.38702 27.7004C8.64939 27.6077 7.89006 27.8798 7.40685 28.4143C6.64358 29.2565 6.52328 30.4044 6.6712 30.8087C6.72445 30.9566 6.80925 30.998 6.87237 31.0059C7.00254 31.0237 7.19385 30.929 7.31416 30.6055C7.32205 30.5819 7.33388 30.5464 7.34769 30.501C7.40094 30.3294 7.50152 30.0099 7.66522 29.7555C7.86245 29.4478 8.17012 29.2348 8.53105 29.1579C8.89789 29.079 9.2746 29.15 9.58819 29.3551C10.1227 29.7062 10.3298 30.361 10.101 30.9862C9.98264 31.3096 9.79133 31.9289 9.83275 32.4378C9.91756 33.4673 10.5507 33.8795 11.1206 33.9249C11.6729 33.9466 12.0594 33.6349 12.1581 33.4081C12.2133 33.274 12.164 33.1932 12.1324 33.1577Z",fill:"black"}),(0,e.createElement)("path",{d:"M44.044 31.2761C44.0223 31.2012 43.8862 30.7002 43.6969 30.0967C43.5075 29.4932 43.3142 29.0672 43.3142 29.0672C44.0696 27.9351 44.0834 26.9233 43.9828 26.3514C43.8763 25.6414 43.5805 25.0359 42.9829 24.4107C42.3873 23.7854 41.1684 23.1445 39.4545 22.6632C39.2593 22.608 38.6123 22.4305 38.5551 22.4127C38.5512 22.3753 38.5078 20.2945 38.4684 19.3991C38.4408 18.7522 38.3836 17.7444 38.0719 16.7504C37.6992 15.4053 37.0483 14.2298 36.2377 13.4764C38.4763 11.157 39.8726 8.60091 39.8707 6.40774C39.8647 2.19102 34.6855 0.914962 28.3033 3.55781C28.2974 3.55978 26.9602 4.1278 26.9503 4.13174C26.9444 4.12582 24.5066 1.73346 24.4692 1.7019C17.1954 -4.64488 -5.55475 20.6436 1.71899 26.7853L3.30864 28.1323C2.89644 29.2013 2.73471 30.4241 2.86685 31.7396C3.03647 33.4299 3.90822 35.0511 5.32234 36.3015C6.66348 37.4908 8.42669 38.2422 10.1386 38.2402C12.9688 44.7626 19.4359 48.7643 27.0193 48.9891C35.153 49.2317 41.981 45.4134 44.8428 38.5578C45.0301 38.0765 45.825 35.909 45.825 33.9939C45.825 32.0729 44.7382 31.2761 44.044 31.2761ZM10.7638 36.41C10.5173 36.4514 10.2649 36.4691 10.0104 36.4632C7.55298 36.3981 4.90027 34.1852 4.63598 31.5621C4.34409 28.6629 5.82527 26.4322 8.44839 25.9017C8.76198 25.8386 9.14066 25.8011 9.54892 25.8228C11.0183 25.9037 13.1838 27.0318 13.6789 30.2328C14.1187 33.0689 13.4225 35.9564 10.7638 36.41ZM8.02041 24.1681C6.38736 24.4856 4.9476 25.4106 4.06797 26.6886C3.54137 26.2508 2.56115 25.4007 2.38956 25.0694C0.985306 22.4009 3.92202 17.2138 5.97516 14.285C11.0478 7.04676 18.9922 1.56581 22.6705 2.55984C23.2681 2.72945 25.2482 5.02518 25.2482 5.02518C25.2482 5.02518 21.5719 7.06451 18.1618 9.90853C13.5704 13.4468 10.0992 18.5885 8.02041 24.1681ZM33.8079 35.3252C33.8611 35.3035 33.8986 35.2424 33.8927 35.1812C33.8848 35.1063 33.8177 35.0531 33.7448 35.0609C33.7448 35.0609 29.8969 35.6309 26.26 34.2996C26.6564 33.0117 27.7096 33.4772 29.3012 33.6054C32.1709 33.777 34.7408 33.3569 36.642 32.8125C38.2889 32.3392 40.4505 31.4083 42.1309 30.0829C42.6969 31.3274 42.8981 32.6962 42.8981 32.6962C42.8981 32.6962 43.3359 32.6173 43.7028 32.8441C44.0499 33.0571 44.3024 33.5009 44.1288 34.6448C43.7758 36.7847 42.8665 38.5223 41.338 40.1198C40.4071 41.1217 39.277 41.9935 37.9852 42.6266C37.2988 42.9875 36.5671 43.2991 35.7959 43.5516C30.033 45.4331 24.1339 43.3642 22.2326 38.9207C22.0807 38.5874 21.9525 38.2363 21.852 37.8714C21.0414 34.9426 21.7297 31.43 23.8795 29.2171C23.8795 29.2171 23.8795 29.2171 23.8795 29.2151C24.0116 29.0751 24.1477 28.9094 24.1477 28.7004C24.1477 28.5248 24.0372 28.3414 23.9406 28.2112C23.1892 27.1206 20.5818 25.2607 21.1045 21.6613C21.4792 19.0757 23.7414 17.2553 25.8498 17.3637C26.0273 17.3736 26.2067 17.3834 26.3842 17.3953C27.2974 17.4485 28.0942 17.5669 28.8476 17.5984C30.1059 17.6537 31.238 17.4702 32.5792 16.3519C33.0308 15.9752 33.3937 15.6478 34.0071 15.5453C34.0722 15.5335 34.2319 15.4763 34.5534 15.492C34.8808 15.5098 35.1924 15.5985 35.4725 15.7859C36.5474 16.5018 36.6992 18.2335 36.7545 19.4997C36.786 20.2235 36.8728 21.9729 36.9044 22.4759C36.9734 23.6237 37.2751 23.7874 37.8846 23.9886C38.2278 24.101 38.5473 24.1858 39.0167 24.318C40.4387 24.7183 41.2828 25.1227 41.8153 25.6433C42.1329 25.9688 42.2808 26.3139 42.3261 26.6433C42.4938 27.8661 41.3755 29.3788 38.4171 30.7515C35.1826 32.2524 31.2577 32.6331 28.5459 32.3313C28.3388 32.3076 27.5992 32.2248 27.5952 32.2248C25.4257 31.9329 24.1891 34.7355 25.4908 36.6565C26.329 37.8951 28.6149 38.6998 30.9008 38.6998C36.1431 38.6998 40.1724 36.4613 41.6713 34.5284C41.7167 34.4712 41.7206 34.4633 41.7916 34.3568C41.8646 34.2464 41.8055 34.1852 41.7128 34.2464C40.488 35.0846 35.0484 38.4099 29.2322 37.4099C29.2322 37.4099 28.5261 37.2936 27.8792 37.0431C27.3664 36.8439 26.2935 36.3508 26.1634 35.2483C30.8514 36.6979 33.8079 35.3252 33.8079 35.3252ZM26.3704 34.4476C26.3704 34.4476 26.3724 34.4476 26.3704 34.4476C26.3724 34.4495 26.3724 34.4495 26.3724 34.4515C26.3724 34.4495 26.3724 34.4476 26.3704 34.4476ZM17.3887 14.2554C19.1914 12.1707 21.4121 10.3602 23.4002 9.34249C23.4692 9.30699 23.5422 9.38193 23.5047 9.44899C23.3469 9.73497 23.0432 10.3464 22.9466 10.8118C22.9308 10.8848 23.0097 10.9381 23.0708 10.8966C24.3074 10.0525 26.4612 9.14921 28.3486 9.03284C28.4295 9.02693 28.4689 9.13146 28.4039 9.18076C28.1159 9.40166 27.8023 9.70539 27.5735 10.0131C27.5341 10.0663 27.5716 10.1413 27.6366 10.1413C28.962 10.1511 30.8317 10.6146 32.0486 11.297C32.1315 11.3424 32.0723 11.5021 31.9796 11.4824C30.1375 11.0603 27.1199 10.7389 23.986 11.5041C21.1893 12.1865 19.0533 13.2397 17.4952 14.3738C17.4203 14.4329 17.3256 14.3304 17.3887 14.2554Z",fill:"black"})),foreground:"#874FB9"},edit:({attributes:l,setAttributes:a})=>{const{text:n,gdprHeadline:i,gdpr:c,gdprStatus:s}=l,d=(0,r.useBlockProps)(),m="check"===s;return(0,e.createElement)("div",{...d},(0,e.createElement)(r.InspectorControls,null,(0,e.createElement)(t.PanelBody,{title:(0,C.__)("Block options","mailchimp-for-woocommerce")},(0,e.createElement)("p",null,(0,C.__)("Choose how you want the opt-in to your newsletter checkbox to render at checkout","mailchimp-for-woocommerce")),(0,e.createElement)(t.RadioControl,{selected:s,options:[{label:"Visible, checked by default",value:"check"},{label:"Visible, unchecked by default",value:"uncheck"},{label:"Hidden, unchecked by default",value:"hide"}],onChange:e=>a({gdprStatus:e})}))),(0,e.createElement)("div",{style:{display:"hide"===s?"none":"flex",lineHeight:"1.5em",alignItems:"center"}},(0,e.createElement)(o.CheckboxControl,{id:"newsletter-text",checked:m,disabled:!0,style:{marginTop:0}}),(0,e.createElement)(r.RichText,{value:n,help:(0,C.__)("Set the newsletter confirmation text.","mailchimp-for-woocommerce"),onChange:e=>a({text:e})})),c&&c.length&&"hide"!=s&&(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{style:{display:"flex",marginTop:"2rem"}},(0,e.createElement)(r.RichText,{value:i,help:(0,C.__)("Set the GDPR headline.","mailchimp-for-woocommerce"),onChange:e=>a({gdprHeadline:e})})),c.map(((t,l)=>(0,e.createElement)(o.CheckboxControl,{id:"gdpr_"+t.marketing_permission_id,checked:c[l].enabled,onChange:()=>{c[l].enabled=!c[l].enabled,a({gdpr:c})}},(0,e.createElement)("span",{dangerouslySetInnerHTML:{__html:t.text}}))))))},save:()=>(0,e.createElement)("div",{...r.useBlockProps.save()}),attributes:{...a.attributes,...m}})}},l={};function C(e){var r=l[e];if(void 0!==r)return r.exports;var o=l[e]={exports:{}};return t[e](o,o.exports,C),o.exports}C.m=t,e=[],C.O=(t,l,r,o)=>{if(!l){var a=1/0;for(s=0;s=o)&&Object.keys(C.O).every((e=>C.O[e](l[i])))?l.splice(i--,1):(n=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[l,r,o]},C.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={457:0,411:0};C.O.j=t=>0===e[t];var t=(t,l)=>{var r,o,[a,n,i]=l,c=0;if(a.some((t=>0!==e[t]))){for(r in n)C.o(n,r)&&(C.m[r]=n[r]);if(i)var s=i(C)}for(t&&t(l);cC(90)));r=C.O(r)})(); \ No newline at end of file diff --git a/blocks/package-lock.json b/blocks/package-lock.json index 8eae0524..0feed4ee 100644 --- a/blocks/package-lock.json +++ b/blocks/package-lock.json @@ -13,19 +13,19 @@ }, "devDependencies": { "@automattic/color-studio": "^2.5.0", - "@woocommerce/dependency-extraction-webpack-plugin": "^2.2.0", + "@woocommerce/dependency-extraction-webpack-plugin": "^2.3.0", "@woocommerce/eslint-plugin": "^2.2.0", - "@wordpress/api-fetch": "^6.36.0", - "@wordpress/block-editor": "^12.7.0", - "@wordpress/blocks": "^12.16.0", - "@wordpress/components": "^25.5.0", - "@wordpress/element": "^5.16.0", - "@wordpress/html-entities": "^3.39.0", - "@wordpress/i18n": "4.39.0", - "@wordpress/plugins": "^6.7.0", - "@wordpress/scripts": "^26.10.0", + "@wordpress/api-fetch": "^6.43.0", + "@wordpress/block-editor": "^12.14.0", + "@wordpress/blocks": "^12.23.0", + "@wordpress/components": "^25.12.0", + "@wordpress/element": "^5.23.0", + "@wordpress/html-entities": "^3.46.0", + "@wordpress/i18n": "4.46.0", + "@wordpress/plugins": "^6.14.0", + "@wordpress/scripts": "^26.17.0", "node-wp-i18n": "~1.2.7", - "wp-prettier": "npm:wp-prettier@^2.8.5" + "wp-prettier": "npm:wp-prettier@^3.0.3" }, "engines": { "node": ">=8.9.3", @@ -55,18 +55,18 @@ } }, "node_modules/@ariakit/core": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.2.8.tgz", - "integrity": "sha512-cyRWvzR4XPEundtjW5iiZTEE/7Vpj8iYtKrFZJW2pQHCrU12uPiliY65007s7fnQgSw51ndCuyjZSRIywKM4kw==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.4.tgz", + "integrity": "sha512-mMTWYOs0SvkrBbLPy4IY15E+fgvSbZKg4XzpBwE17meBG+G7wJjnuHq8lNiIAn9VnQBIc/lsXxqH3FCD7hHaUg==", "dev": true }, "node_modules/@ariakit/react": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.2.16.tgz", - "integrity": "sha512-3Xns6kjMfO+iLBIjVVy2uqS8Kivkvk0S5Oi9LzL38aE5ogEszkTG/RVRJNo/HG/RlZo7FZxuRx0+CLQSFa4N2g==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.3.5.tgz", + "integrity": "sha512-x7LfGP0on0lVV1NcDNO8+aEBb64sUI6YYB1akEWXkb4lTiU4uG1sHGc8YhfHVh0cFS1kwpQcqyiNPzyB8OgymA==", "dev": true, "dependencies": { - "@ariakit/react-core": "0.2.16" + "@ariakit/react-core": "0.3.5" }, "funding": { "type": "opencollective", @@ -78,12 +78,12 @@ } }, "node_modules/@ariakit/react-core": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.2.16.tgz", - "integrity": "sha512-JwFl1X48Ap+29f0WV1w00JCKdV64kmJW5touXKToQaCX93n/NoQVC+iSHnQo7IOUKxURif0htaCRymhR/Uw2fA==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.3.5.tgz", + "integrity": "sha512-TdQmUj7BPJ7QWjpjlpP5M1YbANDQL/voYYvKq1Hele7uoEWk51v2nZNaNXo9DZ4He/bkG99ISDx5Tgkzi5En8Q==", "dev": true, "dependencies": { - "@ariakit/core": "0.2.8", + "@ariakit/core": "0.3.4", "@floating-ui/dom": "^1.0.0", "use-sync-external-store": "^1.2.0" }, @@ -335,12 +335,12 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -457,27 +457,27 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -711,9 +711,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1461,9 +1461,9 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.22.5.tgz", - "integrity": "sha512-BF5SXoO+nX3h5OhlN78XbbDrBOffv+AxPP2ENaJOVqjWCgBDeOY3WcaUcddutGSfoap+5NEQ/q/4I3WZIvgkXA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", + "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1476,9 +1476,9 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1491,16 +1491,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" @@ -1525,9 +1525,9 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -1857,17 +1857,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" }, "engines": { "node": ">=6.9.0" @@ -1949,13 +1949,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", - "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2268,31 +2268,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", - "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", "dev": true, "dependencies": { - "@floating-ui/utils": "^0.1.1" + "@floating-ui/utils": "^0.1.3" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", - "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", "dev": true, "dependencies": { - "@floating-ui/core": "^1.4.1", - "@floating-ui/utils": "^0.1.1" + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" } }, "node_modules/@floating-ui/react-dom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.0.0.tgz", - "integrity": "sha512-uiOalFKPG937UCLm42RxjESTWUVpbbatvlphQAU6bsv+ence6IoVG8JOUZcy8eW81NkU+Idiwvx10WFLmR4MIg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", + "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", "dev": true, "dependencies": { - "@floating-ui/dom": "^1.0.0" + "@floating-ui/dom": "^1.5.1" }, "peerDependencies": { "react": ">=16.8.0", @@ -2300,9 +2300,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", - "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==", "dev": true }, "node_modules/@hapi/hoek": { @@ -2440,16 +2440,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.2.tgz", - "integrity": "sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -2527,37 +2527,37 @@ } }, "node_modules/@jest/core": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.2.tgz", - "integrity": "sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.6.2", - "@jest/reporters": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.2", - "jest-haste-map": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-resolve-dependencies": "^29.6.2", - "jest-runner": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", - "jest-watcher": "^29.6.2", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -2644,88 +2644,88 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.2.tgz", - "integrity": "sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.2" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.2.tgz", - "integrity": "sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.6.2", - "jest-snapshot": "^29.6.2" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.2.tgz", - "integrity": "sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.2.tgz", - "integrity": "sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.2", - "jest-mock": "^29.6.2", - "jest-util": "^29.6.2" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.2.tgz", - "integrity": "sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/expect": "^29.6.2", - "@jest/types": "^29.6.1", - "jest-mock": "^29.6.2" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.2.tgz", - "integrity": "sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -2734,13 +2734,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -2816,6 +2816,49 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@jest/reporters/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2828,10 +2871,16 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@jest/schemas": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", - "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { "@sinclair/typebox": "^0.27.8" @@ -2841,9 +2890,9 @@ } }, "node_modules/@jest/source-map": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", - "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", @@ -2855,13 +2904,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.2.tgz", - "integrity": "sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -2870,14 +2919,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz", - "integrity": "sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.2", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -2885,22 +2934,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.2.tgz", - "integrity": "sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.2", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -2987,12 +3036,12 @@ } }, "node_modules/@jest/types": { - "version": "29.6.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", - "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -3181,6 +3230,122 @@ "node": ">= 8" } }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@playwright/test": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.0.tgz", + "integrity": "sha512-PdW+kn4eV99iP5gxWNSDQCbhMaDVej+RXL5xr6t04nbKLCBwYtA046t7ofoczHOm8u6c+45hpDKQVZqtqwkeQg==", + "dev": true, + "peer": true, + "dependencies": { + "playwright": "1.40.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { "version": "0.5.11", "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", @@ -3241,9 +3406,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", "dev": true }, "node_modules/@popperjs/core": { @@ -3256,6 +3421,75 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@puppeteer/browsers": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", + "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.0", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.1" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dev": true, + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/@puppeteer/browsers/node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/@puppeteer/browsers/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@radix-ui/primitive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz", @@ -3320,48 +3554,188 @@ "react": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@radix-ui/react-direction": { + "node_modules/@radix-ui/react-dialog": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.0.tgz", - "integrity": "sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz", + "integrity": "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.13.10" + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.0", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-context": "1.0.0", + "@radix-ui/react-dismissable-layer": "1.0.0", + "@radix-ui/react-focus-guards": "1.0.0", + "@radix-ui/react-focus-scope": "1.0.0", + "@radix-ui/react-id": "1.0.0", + "@radix-ui/react-portal": "1.0.0", + "@radix-ui/react-presence": "1.0.0", + "@radix-ui/react-primitive": "1.0.0", + "@radix-ui/react-slot": "1.0.0", + "@radix-ui/react-use-controllable-state": "1.0.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.4" }, "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.3.tgz", - "integrity": "sha512-nXZOvFjOuHS1ovumntGV7NNoLaEp9JEvTht3MBjP44NSW5hUKj/8OnfN3+8WmB+CEhN44XaGhpHoSsUIEl5P7Q==", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.0.tgz", + "integrity": "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==", "dev": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-primitive": "1.0.2", + "@radix-ui/react-primitive": "1.0.0", "@radix-ui/react-use-callback-ref": "1.0.0", - "@radix-ui/react-use-escape-keydown": "1.0.2" + "@radix-ui/react-use-escape-keydown": "1.0.0" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0", "react-dom": "^16.8 || ^17.0 || ^18.0" } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.4.tgz", - "integrity": "sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg==", + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.0.tgz", + "integrity": "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.0", "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-context": "1.0.0", - "@radix-ui/react-id": "1.0.0", - "@radix-ui/react-menu": "2.0.4", + "@radix-ui/react-primitive": "1.0.0", + "@radix-ui/react-use-callback-ref": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz", + "integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.0.tgz", + "integrity": "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.0.tgz", + "integrity": "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.0.tgz", + "integrity": "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.0" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz", + "integrity": "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==", + "dev": true, + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.0.tgz", + "integrity": "sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.3.tgz", + "integrity": "sha512-nXZOvFjOuHS1ovumntGV7NNoLaEp9JEvTht3MBjP44NSW5hUKj/8OnfN3+8WmB+CEhN44XaGhpHoSsUIEl5P7Q==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.0", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-primitive": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.0", + "@radix-ui/react-use-escape-keydown": "1.0.2" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.4.tgz", + "integrity": "sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.0", + "@radix-ui/react-compose-refs": "1.0.0", + "@radix-ui/react-context": "1.0.0", + "@radix-ui/react-id": "1.0.0", + "@radix-ui/react-menu": "2.0.4", "@radix-ui/react-primitive": "1.0.2", "@radix-ui/react-use-controllable-state": "1.0.0" }, @@ -3722,6 +4096,130 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/@sentry/core": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", + "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", + "dev": true, + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/hub": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", + "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", + "dev": true, + "dependencies": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/minimal": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", + "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", + "dev": true, + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/node": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", + "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", + "dev": true, + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@sentry/types": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", + "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", + "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", + "dev": true, + "dependencies": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -3768,12 +4266,12 @@ } }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3816,12 +4314,12 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3832,12 +4330,12 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3848,12 +4346,12 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3864,12 +4362,12 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3880,9 +4378,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "dev": true, "engines": { "node": ">=12" @@ -3896,22 +4394,22 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dev": true, "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3922,36 +4420,80 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@svgr/core/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/core/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3959,39 +4501,39 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dev": true, "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -4001,23 +4543,67 @@ "@svgr/core": "*" } }, - "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "node_modules/@svgr/plugin-svgo/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" }, "funding": { "type": "github", @@ -4064,6 +4650,12 @@ "node": ">= 10" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -4074,9 +4666,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -4087,18 +4679,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -4106,9 +4698,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" @@ -4213,14 +4805,26 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, + "node_modules/@types/gradient-parser": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.3.tgz", + "integrity": "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==", + "dev": true + }, + "node_modules/@types/highlight-words-core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz", + "integrity": "sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==", + "dev": true + }, "node_modules/@types/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", @@ -4296,15 +4900,15 @@ "dev": true }, "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, "node_modules/@types/mousetrap": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.11.tgz", - "integrity": "sha512-F0oAily9Q9QQpv9JKxKn0zMKfOo36KHCW7myYsmUyf2t0g+sBTbG3UleTPoguHdE1z3GLFr3p7/wiOio52QFjQ==", + "version": "1.6.14", + "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.14.tgz", + "integrity": "sha512-aY69yje/bZllr99dbIcQwB365YDH/9myLodpxQ8cQZhGfavICi389aRvwa5LUoW+gTpcZKHjVI/sc0dDjUqVuw==", "dev": true }, "node_modules/@types/node": { @@ -4314,9 +4918,9 @@ "dev": true }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "node_modules/@types/parse-json": { @@ -5010,34 +5614,42 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, - "dependencies": { - "envinfo": "^7.7.3" + "engines": { + "node": ">=14.15.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -5046,12 +5658,16 @@ } }, "node_modules/@woocommerce/dependency-extraction-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@woocommerce/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-0wDY3EIUwWrPm0KrWvt1cf2SZDSX7CzBXvv4TyCqWOPuVPvC/ajyY8kD1HTFI80q6/RHoxWf3BYCmhuBzPbe9A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@woocommerce/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-dfa5bBZFRKcjFpqTEXyuUKC16n85RlKQ4EamdAAqUVQedv4DMRCj2jWUcId7pN2mOFGgAp+heGgb9i6fwiZk2Q==", "dev": true, "dependencies": { "@wordpress/dependency-extraction-webpack-plugin": "^3.3.0" + }, + "engines": { + "node": "^16.14.1", + "pnpm": "^8.6.7" } }, "node_modules/@woocommerce/eslint-plugin": { @@ -5068,37 +5684,37 @@ } }, "node_modules/@wordpress/a11y": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.39.0.tgz", - "integrity": "sha512-UbPf1BEES25aLZiS+SxpavRhRJqM6vSE5I87fQSFING8JmsyuBsGnVCWXUwhMsyueXcwC6XrHLZJMx2onY175w==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.46.0.tgz", + "integrity": "sha512-ixblk5YMbouTPonALm+NxvLE2rk/KwIBNlAoz0kFhk+PTdg05FKD2P891S5BeWBFIbshI0rdPA2OR+wForcilQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/dom-ready": "^3.39.0", - "@wordpress/i18n": "^4.39.0" + "@wordpress/dom-ready": "^3.46.0", + "@wordpress/i18n": "^4.46.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/api-fetch": { - "version": "6.36.0", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.36.0.tgz", - "integrity": "sha512-0jFvqkK08hhd6UXgXXhn9SiM3fg+qNIHZX21sKy5MmHXFA3WBIzLsPivuQKe54MSQMKP/UsUbeiBOMa0r6fEPQ==", + "version": "6.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.43.0.tgz", + "integrity": "sha512-DYtawNaOHDxgIl+B/E1oU+VMhFJJfy/oYR5e7+PFUX0t0yHhHuH8XaWKpZvpvo0Y/GOuJ2NkDcJDqSZXD2TFYw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/url": "^3.40.0" + "@wordpress/i18n": "^4.46.0", + "@wordpress/url": "^3.47.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/autop": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.39.0.tgz", - "integrity": "sha512-15bVYe8qpnKYlEjjtanGONDbs2SxV45dfkidRo5AbRUUo3jqSYHuMgufDNGzAs6VnoUuHFl/mANaadiIvoHfPw==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.46.0.tgz", + "integrity": "sha512-3sgXHWrbrsXY2nalkJYmJ+JxyfM6RQ5cCymqcs0KyIL+WNOVyxfbgiGsjL0HQjQLMlHdQoWT081rZLPEbJvodw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5219,15 +5835,15 @@ } }, "node_modules/@wordpress/base-styles": { - "version": "4.30.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.30.0.tgz", - "integrity": "sha512-sK1RpF/vulOnUbHWaYdc48mNAUz8gQROLCoAfeQVGO6CjMjjyonBkjti5/3AntMj7Ilk3c319LPIX6tEhEnqIg==", + "version": "4.37.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.37.0.tgz", + "integrity": "sha512-HxYlZHHpq0XDd+/ixTjB0g2smw8NIhal0gZgKJsQSPra/TN5Swjt0e3QwW3MBGZKWhV9poNmsBGNZonVCe9bSA==", "dev": true }, "node_modules/@wordpress/blob": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.39.0.tgz", - "integrity": "sha512-biHwK960cuUE1tqera9nsrXLAkz3rrJwPCcvze/2bYw4yyZS70J4vIdPcnFE8kT0/PH8Op+JstNNyzoxSkY4PQ==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.46.0.tgz", + "integrity": "sha512-yWGes81l58SFeQ1/3tzKOjEutmwtQyBdtWpFyyg1vJC89WfENub7JM2yYRJZ/cpdu/7qMQY88TvVhH7MX5WRSA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5237,44 +5853,44 @@ } }, "node_modules/@wordpress/block-editor": { - "version": "12.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.7.0.tgz", - "integrity": "sha512-YiI3Q0wQd77N8KovCsvMp+/BlJtt7mq3olIIy3i14sWuzttJzYQYXymJTEojkPHIt9/l8B+I3n83ktLQA96yTQ==", + "version": "12.14.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.14.0.tgz", + "integrity": "sha512-xgfluTjTZB8nWRoN2Xob+taFiKZQ1TPzm2cPGXn8Srg2LkWPd2f+ln13YdTB6OZ3TIyulyMxGb3Q8duhXiBzZw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@emotion/react": "^11.7.1", "@emotion/styled": "^11.6.0", "@react-spring/web": "^9.4.5", - "@wordpress/a11y": "^3.39.0", - "@wordpress/api-fetch": "^6.36.0", - "@wordpress/blob": "^3.39.0", - "@wordpress/blocks": "^12.16.0", - "@wordpress/components": "^25.5.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/data": "^9.9.0", - "@wordpress/date": "^4.39.0", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/dom": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/escape-html": "^2.39.0", - "@wordpress/hooks": "^3.39.0", - "@wordpress/html-entities": "^3.39.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/icons": "^9.30.0", - "@wordpress/is-shallow-equal": "^4.39.0", - "@wordpress/keyboard-shortcuts": "^4.16.0", - "@wordpress/keycodes": "^3.39.0", - "@wordpress/notices": "^4.7.0", - "@wordpress/preferences": "^3.16.0", - "@wordpress/private-apis": "^0.21.0", - "@wordpress/rich-text": "^6.16.0", - "@wordpress/shortcode": "^3.39.0", - "@wordpress/style-engine": "^1.22.0", - "@wordpress/token-list": "^2.39.0", - "@wordpress/url": "^3.40.0", - "@wordpress/warning": "^2.39.0", - "@wordpress/wordcount": "^3.39.0", + "@wordpress/a11y": "^3.46.0", + "@wordpress/api-fetch": "^6.43.0", + "@wordpress/blob": "^3.46.0", + "@wordpress/blocks": "^12.23.0", + "@wordpress/commands": "^0.17.0", + "@wordpress/components": "^25.12.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/data": "^9.16.0", + "@wordpress/date": "^4.46.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/dom": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/escape-html": "^2.46.0", + "@wordpress/hooks": "^3.46.0", + "@wordpress/html-entities": "^3.46.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/icons": "^9.37.0", + "@wordpress/is-shallow-equal": "^4.46.0", + "@wordpress/keyboard-shortcuts": "^4.23.0", + "@wordpress/keycodes": "^3.46.0", + "@wordpress/notices": "^4.14.0", + "@wordpress/preferences": "^3.23.0", + "@wordpress/private-apis": "^0.28.0", + "@wordpress/rich-text": "^6.23.0", + "@wordpress/style-engine": "^1.29.0", + "@wordpress/token-list": "^2.46.0", + "@wordpress/url": "^3.47.0", + "@wordpress/warning": "^2.46.0", + "@wordpress/wordcount": "^3.46.0", "change-case": "^4.1.2", "classnames": "^2.3.1", "colord": "^2.7.0", @@ -5282,12 +5898,14 @@ "diff": "^4.0.2", "dom-scroll-into-view": "^1.2.1", "fast-deep-equal": "^3.1.3", - "inherits": "^2.0.3", + "memize": "^2.1.0", + "postcss": "^8.4.21", + "postcss-prefixwrap": "^1.41.0", + "postcss-urlrebase": "^1.0.0", "react-autosize-textarea": "^7.1.0", "react-easy-crop": "^4.5.1", "rememo": "^4.0.2", - "remove-accents": "^0.4.2", - "traverse": "^0.6.6" + "remove-accents": "^0.5.0" }, "engines": { "node": ">=12" @@ -5298,9 +5916,9 @@ } }, "node_modules/@wordpress/block-serialization-default-parser": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.39.0.tgz", - "integrity": "sha512-Y6saQad//uWtsOQ0vTiUeGf2HvqBIrLIB7OL1mSUjBcX8OFqsSzNiN1Vyrse+cR34DRdRWSsgf0OfIpiQmmLZg==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.46.0.tgz", + "integrity": "sha512-XjCdpde6+oixrqDMO3l6QjB5s7NCTyAVGf3W5iZ0PE7DmbI5xsl4G9AdhHUY05vEQQsDRY3pf1Bo3tN3TY3bNA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5310,26 +5928,26 @@ } }, "node_modules/@wordpress/blocks": { - "version": "12.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.16.0.tgz", - "integrity": "sha512-qWH/1YwmumY9YRGhzLh/9RRZe2E1cgnsxzeSA10BDr6h21h4hUgMg+F0RbDtgAJbbGhXPaL+hA6icibfwZEA8w==", + "version": "12.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.23.0.tgz", + "integrity": "sha512-V/3+VHCSbOIi6ltYhaKOOQes2FuvtbCdOoyaFHqSPuZmD4sYOZVtbjKcbEXbe7fE7lx9pRs0KFQTZrD7GmVRvQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/autop": "^3.39.0", - "@wordpress/blob": "^3.39.0", - "@wordpress/block-serialization-default-parser": "^4.39.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/data": "^9.9.0", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/dom": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/hooks": "^3.39.0", - "@wordpress/html-entities": "^3.39.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/is-shallow-equal": "^4.39.0", - "@wordpress/private-apis": "^0.21.0", - "@wordpress/shortcode": "^3.39.0", + "@wordpress/autop": "^3.46.0", + "@wordpress/blob": "^3.46.0", + "@wordpress/block-serialization-default-parser": "^4.46.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/data": "^9.16.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/dom": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/hooks": "^3.46.0", + "@wordpress/html-entities": "^3.46.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/is-shallow-equal": "^4.46.0", + "@wordpress/private-apis": "^0.28.0", + "@wordpress/shortcode": "^3.46.0", "change-case": "^4.1.2", "colord": "^2.7.0", "deepmerge": "^4.3.0", @@ -5338,10 +5956,10 @@ "is-plain-object": "^5.0.0", "memize": "^2.1.0", "rememo": "^4.0.2", - "remove-accents": "^0.4.2", + "remove-accents": "^0.5.0", "showdown": "^1.9.1", "simple-html-tokenizer": "^0.5.7", - "uuid": "^8.3.0" + "uuid": "^9.0.1" }, "engines": { "node": ">=12" @@ -5350,6 +5968,19 @@ "react": "^18.0.0" } }, + "node_modules/@wordpress/blocks/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@wordpress/browserslist-config": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-4.1.3.tgz", @@ -5359,13 +5990,39 @@ "node": ">=12" } }, + "node_modules/@wordpress/commands": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-0.17.0.tgz", + "integrity": "sha512-wTCwfUN0epKGqLPKrbv0B1Y/dcAvoXGfuPJm6KOKrwEx2na8cAEKN63nTL0d81z+XpdPagQVTNAkVAoSBngLjw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/components": "^25.12.0", + "@wordpress/data": "^9.16.0", + "@wordpress/element": "^5.23.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/icons": "^9.37.0", + "@wordpress/keyboard-shortcuts": "^4.23.0", + "@wordpress/private-apis": "^0.28.0", + "classnames": "^2.3.1", + "cmdk": "^0.2.0", + "rememo": "^4.0.2" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, "node_modules/@wordpress/components": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-25.5.0.tgz", - "integrity": "sha512-+2akjB7glLrVlZwAvWWWS+baPnHK6H5Vmgc7II2D32JhTTD139prCfxFTmyPxZbIv+arWSgs7yCvywF7CEnwQQ==", + "version": "25.12.0", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-25.12.0.tgz", + "integrity": "sha512-jWh71SsIwTVCbOiL5tYscI8zvTUhKMfnmpgF/WfPpEBU9Bgx4dqlWSYDCZOTAyn89GJPfn95+e+wW13H0qPQ1Q==", "dev": true, "dependencies": { - "@ariakit/react": "^0.2.12", + "@ariakit/react": "^0.3.5", "@babel/runtime": "^7.16.0", "@emotion/cache": "^11.7.1", "@emotion/css": "^11.7.1", @@ -5373,26 +6030,28 @@ "@emotion/serialize": "^1.0.2", "@emotion/styled": "^11.6.0", "@emotion/utils": "^1.0.0", - "@floating-ui/react-dom": "1.0.0", + "@floating-ui/react-dom": "^2.0.1", "@radix-ui/react-dropdown-menu": "2.0.4", + "@types/gradient-parser": "0.1.3", + "@types/highlight-words-core": "1.2.1", "@use-gesture/react": "^10.2.24", - "@wordpress/a11y": "^3.39.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/date": "^4.39.0", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/dom": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/escape-html": "^2.39.0", - "@wordpress/hooks": "^3.39.0", - "@wordpress/html-entities": "^3.39.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/icons": "^9.30.0", - "@wordpress/is-shallow-equal": "^4.39.0", - "@wordpress/keycodes": "^3.39.0", - "@wordpress/primitives": "^3.37.0", - "@wordpress/private-apis": "^0.21.0", - "@wordpress/rich-text": "^6.16.0", - "@wordpress/warning": "^2.39.0", + "@wordpress/a11y": "^3.46.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/date": "^4.46.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/dom": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/escape-html": "^2.46.0", + "@wordpress/hooks": "^3.46.0", + "@wordpress/html-entities": "^3.46.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/icons": "^9.37.0", + "@wordpress/is-shallow-equal": "^4.46.0", + "@wordpress/keycodes": "^3.46.0", + "@wordpress/primitives": "^3.44.0", + "@wordpress/private-apis": "^0.28.0", + "@wordpress/rich-text": "^6.23.0", + "@wordpress/warning": "^2.46.0", "change-case": "^4.1.2", "classnames": "^2.3.1", "colord": "^2.7.0", @@ -5410,9 +6069,9 @@ "re-resizable": "^6.4.0", "react-colorful": "^5.3.1", "reakit": "^1.3.11", - "remove-accents": "^0.4.2", + "remove-accents": "^0.5.0", "use-lilius": "^2.0.1", - "uuid": "^8.3.0", + "uuid": "^9.0.1", "valtio": "1.7.0" }, "engines": { @@ -5423,20 +6082,34 @@ "react-dom": "^18.0.0" } }, + "node_modules/@wordpress/components/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@wordpress/compose": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.16.0.tgz", - "integrity": "sha512-GQWb93OR17clnK6J60ybMnM6ct8mSAx/lMP0Vvt5d7rficiVLYnXsfD7l7MRECWJf5rz8p4V6+5ESuv6EfMMFQ==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.23.0.tgz", + "integrity": "sha512-MMWwYkbmA4IkdZQ/p3BMvgD9MvCGK2lJd8PjnftDw6NjRteXyA6CQjP1h+/mTlNJvHytqRu2cNPey0V0mnRx6A==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@types/mousetrap": "^1.6.8", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/dom": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/is-shallow-equal": "^4.39.0", - "@wordpress/keycodes": "^3.39.0", - "@wordpress/priority-queue": "^2.39.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/dom": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/is-shallow-equal": "^4.46.0", + "@wordpress/keycodes": "^3.46.0", + "@wordpress/priority-queue": "^2.46.0", + "@wordpress/undo-manager": "^0.6.0", "change-case": "^4.1.2", "clipboard": "^2.0.8", "mousetrap": "^1.6.5", @@ -5450,25 +6123,25 @@ } }, "node_modules/@wordpress/data": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.9.0.tgz", - "integrity": "sha512-E3lk4mUi6hvUFZV0tOT7QjMIixZguEMUYyChMLb9TYt+JrKR+OjQ0juQ86QQfZDHeXEVzj7TyNQSHXCXDb/oow==", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.16.0.tgz", + "integrity": "sha512-FEfHR5wlbtqssSVzey45Yq9+sFaFxiKZrY6MInkOVY7B/GtdSDpKDioDdTgmHKOnyaal4l1KHAE0bVEoMLfaFQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/is-shallow-equal": "^4.39.0", - "@wordpress/priority-queue": "^2.39.0", - "@wordpress/private-apis": "^0.21.0", - "@wordpress/redux-routine": "^4.39.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/is-shallow-equal": "^4.46.0", + "@wordpress/priority-queue": "^2.46.0", + "@wordpress/private-apis": "^0.28.0", + "@wordpress/redux-routine": "^4.46.0", "deepmerge": "^4.3.0", "equivalent-key-map": "^0.2.2", "is-plain-object": "^5.0.0", "is-promise": "^4.0.0", "redux": "^4.1.2", - "turbo-combine-reducers": "^1.0.2", + "rememo": "^4.0.2", "use-memo-one": "^1.1.1" }, "engines": { @@ -5479,13 +6152,13 @@ } }, "node_modules/@wordpress/date": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.39.0.tgz", - "integrity": "sha512-cepDETyxQBlx8OwAZI44RYG8Vweq6V1urt1zR4lUMfdlwOnRf1wmuFSODQwQ65fKWjmJjQyC86ELoZacp29yjg==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.46.0.tgz", + "integrity": "sha512-IsbAXOVYJfSVISGppERnZMWVvvCo07bjSXSKhbd6CDgzTFDPCyUrOmv8tcMUdHw7a4jbL0w/KRMqdhN/C8A0JQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/deprecated": "^3.39.0", + "@wordpress/deprecated": "^3.46.0", "moment": "^2.29.4", "moment-timezone": "^0.5.40" }, @@ -5510,35 +6183,35 @@ } }, "node_modules/@wordpress/deprecated": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.39.0.tgz", - "integrity": "sha512-djk/bX5oXLoW2T49ThCnc0nKgKNnHiW9g9I4Hka6Uk4AVoizqTHxGzGt8HrbMAzzmJ/4ltY0kbZyMYcp7DZPjw==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.46.0.tgz", + "integrity": "sha512-i7stkwWr9vUc2A9ILb0qIUfqtyjaG9yNbqRcfWDjqhOn6R4Drm4edwdpZKdYHSTiiH2qPCWZGTc6KVZm5wc9/Q==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.39.0" + "@wordpress/hooks": "^3.46.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/dom": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.39.0.tgz", - "integrity": "sha512-OhPUys+peMqTDNfMs3jrKzYRhEs3ngdyrepR8N/BPjDLYcdElraFax/9YcqkjKiYFmdBHLYh1LYK5VrGgFVjQA==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.46.0.tgz", + "integrity": "sha512-NiGBTpE7lzTAjkxw5HVp3EzyMxZA378/yed0id0krvEId4prmbIJWRwSNC+Yvn0nhuHczIl4wj9T9zYpksAcUg==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/deprecated": "^3.39.0" + "@wordpress/deprecated": "^3.46.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/dom-ready": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.39.0.tgz", - "integrity": "sha512-Fv9FojQmozV0alxY0l+rAbe3rQ5wtnbOyOXFGGFLdguLlKrENrvue/rj4wRZm9/kOPkjU2YEkeowi+JPaVybcQ==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.46.0.tgz", + "integrity": "sha512-Xq/TPuOZk1DjBzuo4fPj226Lo8uoKk0v1Tydnb263gRmAniSXdwEyrLPMbo8DOAqEUPI9ZRbqomJo/mBR2V8TA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5547,16 +6220,51 @@ "node": ">=12" } }, + "node_modules/@wordpress/e2e-test-utils-playwright": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.14.0.tgz", + "integrity": "sha512-aeH6HhI67lfUTZ1miMhI/xq61JDd5yMFMN5wH24e1/1w7SItXZtCz306tht5h4HeqFeS6xzRwA8j6lM7PNdWQg==", + "dev": true, + "dependencies": { + "@wordpress/api-fetch": "^6.43.0", + "@wordpress/keycodes": "^3.46.0", + "@wordpress/url": "^3.47.0", + "change-case": "^4.1.2", + "form-data": "^4.0.0", + "get-port": "^5.1.1", + "lighthouse": "^10.4.0", + "mime": "^3.0.0", + "web-vitals": "^3.5.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@playwright/test": ">=1" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@wordpress/element": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.16.0.tgz", - "integrity": "sha512-vMUL+y1KtsPEDA3ksXZ49U65JqkuKoFze9Zvuo+qGv35lS5cfmv4+NdePbHDu92fPasnsw1LAzZzKz1vvqYozA==", + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.23.0.tgz", + "integrity": "sha512-6c1EG8UJDzJGX6yWJGIi78bgomWJ6rSkMRR9d0UBis9bm9YFBJDydsD9bNx6XItrMEXR7yykXblfGY2YUK3SAA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", - "@wordpress/escape-html": "^2.39.0", + "@wordpress/escape-html": "^2.46.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.2.0", @@ -5567,9 +6275,9 @@ } }, "node_modules/@wordpress/escape-html": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.39.0.tgz", - "integrity": "sha512-T9so6wu9OC+sg7yF7MpuOayykROpcTfemxsz0StzuLucGTVLK49CFE+08LAs10lIdmjXS9t2J3ggW7Vsmis9fg==", + "version": "2.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.46.0.tgz", + "integrity": "sha512-sPjBUMTSqjDF1niqb6NnKim8Ju7zWVlgZoifO3cC+4DGZcRsKF78eTeuEojQJN7h/FHCjpKX3dvnr+ihv7syEQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5649,9 +6357,9 @@ } }, "node_modules/@wordpress/hooks": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.39.0.tgz", - "integrity": "sha512-/qdS87k61YAbab8O2gVRqaaX5vjWfCkcbiEK/qwVIJMMI3MjOni/8con5x0NaCAsRQzow9bCi5HMXmUj624w4g==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.46.0.tgz", + "integrity": "sha512-TTYNZwMZeATpkWmvAoShP43UONd/WPNTtsy1czMSyiqPzFhzGJbKD75CdJtPp5DqIAiuWQEuDmcxRAPcZ/1Qgw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5661,9 +6369,9 @@ } }, "node_modules/@wordpress/html-entities": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.39.0.tgz", - "integrity": "sha512-68BEBpdPPW/NiENzjGg5hIBguSK8eKcJMzucQhPQ8SOsmLacxyATQ55OLyKNnniIlbKOuyT7lfVkLw9BpEJp2g==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.46.0.tgz", + "integrity": "sha512-2L3aJtWOLb2XMqgmM3voCIi8Oif1Vx+sc6C4kGwM336Sgx+EqZulFsN7OBt6CuK3PcAk1qaMPu59ANx3OJm60g==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5673,13 +6381,13 @@ } }, "node_modules/@wordpress/i18n": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.39.0.tgz", - "integrity": "sha512-JbberLX7et//6l6OWMhtpVpiNvbLXJcYhqENbRpWTQ06aAQvsSrxQoDQ2UfFip9cpEBrDNoVxGNVN8oCdK3Jug==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.46.0.tgz", + "integrity": "sha512-5/61hd50KkqGgoQpf66DDft6sMTKfeGVdmZOt42GWymylxFSmbZLLnR8YafECQrmia/TdwIco5I4n0hIikYbNQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/hooks": "^3.39.0", + "@wordpress/hooks": "^3.46.0", "gettext-parser": "^1.3.1", "memize": "^2.1.0", "sprintf-js": "^1.1.1", @@ -5693,23 +6401,23 @@ } }, "node_modules/@wordpress/icons": { - "version": "9.30.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.30.0.tgz", - "integrity": "sha512-9fiFmsUcS1zYS0DzBFyywiItuRHIlxduo3MQifB8ekQ5bZGl6ZLl1lzIqaY1mmdc12bLB+Sxd9SeIcC2t08FfA==", + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.37.0.tgz", + "integrity": "sha512-AoUne0i5U39+FulHR0O6yTKaocEAEl3RNzWgCOmJ8PCEoDtmU5seRm7yd3f6rWC5GXpaMABVB3pQM3TSMLx9fw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/element": "^5.16.0", - "@wordpress/primitives": "^3.37.0" + "@wordpress/element": "^5.23.0", + "@wordpress/primitives": "^3.44.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/is-shallow-equal": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.39.0.tgz", - "integrity": "sha512-49DiLWyQmyxXHLdxsoA0r4iid2/S2J/Nh0njzhJDp7SsdycX+LiBFHL/zb7suxIaUBWirFqV9uOsjq0FgXn//A==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.46.0.tgz", + "integrity": "sha512-1K5RTTi99ozF9vPKxoVl+RR6mSYy64DKYnijACDN9Sigzbe6OWeL6ky47r09G0JtDnRpzA0itIfFcV8iRNzpvA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5719,13 +6427,13 @@ } }, "node_modules/@wordpress/jest-console": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.10.0.tgz", - "integrity": "sha512-di88CZVKLAzPpBi+c/LLytCjwAssri2OyO5KI0sDSbXPwrjYsX//pWR/sEagH+ceY9w6yIlImBVI7vpu4gEEVQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.17.0.tgz", + "integrity": "sha512-i1r0fGEZforoB1C8QuSfDDYwMycAJ/MqkEvhqWNLwcJy/JFYGWiKhkzhKfQ7aMUuwtrEJMb+41AOxelT565bDw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "jest-matcher-utils": "^29.5.0" + "jest-matcher-utils": "^29.6.2" }, "engines": { "node": ">=14" @@ -5735,13 +6443,13 @@ } }, "node_modules/@wordpress/jest-preset-default": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.10.0.tgz", - "integrity": "sha512-MKpN9oZyqyeLOI+M6R9pZ/lXpPaIl66WrZHIRdyeiqkmN00rdOg/AIzJzR0LFVGLx19qNbz7NMRA9sMElNFN6A==", + "version": "11.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.17.0.tgz", + "integrity": "sha512-Z1KAr9ViDLFiVAYsRkyAAwLBzxu6MTv1dAZpHhyZhYfxTNdTOnnHbNGHpsfv5OlT5xHxptkrESLP8klU2/kw4A==", "dev": true, "dependencies": { - "@wordpress/jest-console": "^7.10.0", - "babel-jest": "^29.5.0" + "@wordpress/jest-console": "^7.17.0", + "babel-jest": "^29.6.2" }, "engines": { "node": ">=14" @@ -5752,15 +6460,15 @@ } }, "node_modules/@wordpress/keyboard-shortcuts": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.16.0.tgz", - "integrity": "sha512-mhhefJsFNj0SgtzEDcFEfPg5GFeIgCg7KiOnVohCrAzuU7JygWkpOZgzxmXcQmwSRmErxZWfDa61FIwPCBzKbA==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.23.0.tgz", + "integrity": "sha512-KRc1eJ07pm6Z7gsUQFBy58Msv1JUpLWKVU6c62+t0LA11j5GJ86xuiyOwTvh/pXqXzvduPUTmJe63OKqSxbtTA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/data": "^9.9.0", - "@wordpress/element": "^5.16.0", - "@wordpress/keycodes": "^3.39.0", + "@wordpress/data": "^9.16.0", + "@wordpress/element": "^5.23.0", + "@wordpress/keycodes": "^3.46.0", "rememo": "^4.0.2" }, "engines": { @@ -5771,13 +6479,13 @@ } }, "node_modules/@wordpress/keycodes": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.39.0.tgz", - "integrity": "sha512-5KPcrADRLzypFxz4s7meZ1Uw4soyPaHcPIxrbYlx8vMh/PZ+njsmhUcg09mBuL8emW+oJif/RN4tMgpXkfcliQ==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.46.0.tgz", + "integrity": "sha512-08ubCD321T85BZBUQuco2/vwIC5Pfzbw4CY7E2xR3rGzX3vb7SjDbKIqKeJL/UfYSmZF9GY+KaspSa1ywFtWiA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/i18n": "^4.39.0", + "@wordpress/i18n": "^4.46.0", "change-case": "^4.1.2" }, "engines": { @@ -5785,60 +6493,64 @@ } }, "node_modules/@wordpress/notices": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.7.0.tgz", - "integrity": "sha512-2g7BsxzKLYYnvnK6mVpVo2tOkiGdiI+OqtYe2gIn1DgT0dEw5Ltc6mx1e4ZUCcfTu2e1AFWB3Zktt9CGlmILLA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.14.0.tgz", + "integrity": "sha512-KvltcNd+PZB6h6wnYzi/KYn6cAM4I5IBU0Z2IDMQuvsCl4acAdmr/YrUY8Ya+qUaRuhBU7NON+XDQgNt7VIq7g==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/a11y": "^3.39.0", - "@wordpress/data": "^9.9.0" + "@wordpress/a11y": "^3.46.0", + "@wordpress/data": "^9.16.0" }, "engines": { "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0" } }, "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.24.0.tgz", - "integrity": "sha512-aw6p2pNrD9SFg05BKgnMDazO4/M6edqPM2ZPiQINjgaA5eKSPy0WGTD0WTH46eBe+Z4Ox2FJ7YgS1OE40DG1Ag==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.31.0.tgz", + "integrity": "sha512-Y/MxST3sK/En6ZAChlyq5A7qtII9/1MLqk6o75yWPIDn1ew40V7iPBDkFKE3uMEPw1RW8rJ9WSQxNpcN+4k+Zg==", "dev": true, "engines": { "node": ">=14" }, "peerDependencies": { - "npm-package-json-lint": ">=3.6.0" + "npm-package-json-lint": ">=6.0.0" } }, "node_modules/@wordpress/plugins": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-6.7.0.tgz", - "integrity": "sha512-7bL4q8oUsiQFptVe+Mb2RL1+gp7bRlGJ6QAC5hnQSWKLFgcWgOilN6VajyO4CEQRXx7vMM2mfYYwo1LqPNlHCg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-6.14.0.tgz", + "integrity": "sha512-TCw3gLqUWQn72C2BP9Ja+WkUBawIgeWDoN7U/s5V/XOLQqz/f0uCFFx524srZZ8BI4kJXMWBsWdSCry8ATu3Bw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/components": "^25.5.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/element": "^5.16.0", - "@wordpress/hooks": "^3.39.0", - "@wordpress/icons": "^9.30.0", - "@wordpress/is-shallow-equal": "^4.39.0", + "@wordpress/components": "^25.12.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/element": "^5.23.0", + "@wordpress/hooks": "^3.46.0", + "@wordpress/icons": "^9.37.0", + "@wordpress/is-shallow-equal": "^4.46.0", "memize": "^2.0.1" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "^18.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" } }, "node_modules/@wordpress/postcss-plugins-preset": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.23.0.tgz", - "integrity": "sha512-1cVJrUNce31n+/T2RNLcCpGhERW6Fw1wvHq4ELL74jjcCzKPDjNM31f1Xo7FkK/Y5cqR2W8bIMkwhP9IJ3I7yw==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.30.0.tgz", + "integrity": "sha512-b/APWKhvocBrs+IHJNe7BOfFmvyRmOZEHEXvwPZy2iGIC95tA5p2/7h3/iSwUGNUcyGObqwd90Htfit9oIdQJA==", "dev": true, "dependencies": { - "@wordpress/base-styles": "^4.30.0", + "@wordpress/base-styles": "^4.37.0", "autoprefixer": "^10.2.5" }, "engines": { @@ -5849,17 +6561,18 @@ } }, "node_modules/@wordpress/preferences": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.16.0.tgz", - "integrity": "sha512-wBbLARG+RSW0Od7JPO5+UbvohJlpx7j6Um0+LZQj7ITuRG+0HBNA1Pe5J7msUM6yo7vfhb+03o6ILhAbPWPxTg==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.23.0.tgz", + "integrity": "sha512-IZnmjbCbte0YALO03SEIfm4ALezTAuXKWZgz/I7DGBe2KgJsvjvllIz6f0dQuLvmi931EUEqLuC5ssB/LnjNHQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/a11y": "^3.39.0", - "@wordpress/components": "^25.5.0", - "@wordpress/data": "^9.9.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/icons": "^9.30.0", + "@wordpress/a11y": "^3.46.0", + "@wordpress/components": "^25.12.0", + "@wordpress/data": "^9.16.0", + "@wordpress/element": "^5.23.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/icons": "^9.37.0", "classnames": "^2.3.1" }, "engines": { @@ -5883,13 +6596,13 @@ } }, "node_modules/@wordpress/primitives": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.37.0.tgz", - "integrity": "sha512-d+TioEE+T4Hye0CKIQwxTQVdMOFnk/GJW1BS0NatNWKcwaj3nQszxHkWAUWYg401dKx+TDeYae4He1ufur5AWA==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.44.0.tgz", + "integrity": "sha512-bpDHPTecyALcFK40Nz8DFToQGmv9s5kTqeNMCtbgqd7nWej4NTE4vRVrEnzGS/BHrUQPk6UCRSgtRuXpLfuHGA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/element": "^5.16.0", + "@wordpress/element": "^5.23.0", "classnames": "^2.3.1" }, "engines": { @@ -5897,9 +6610,9 @@ } }, "node_modules/@wordpress/priority-queue": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.39.0.tgz", - "integrity": "sha512-noC3ywF5JpAbO+8GTV2p3WF1/W1Lmtgg4WCF+B5L4FY4ejaCXG2e78Wq30ipuVyMfV/LTnxOiRZM8vrEeDu/Rg==", + "version": "2.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.46.0.tgz", + "integrity": "sha512-ElNF4ONApHwwkEvP3Ta6Wly2RCljXLZpfyahOziq3rlK8gaeU82qRt13KBE85Djz+90yHSyDlX9YpmJebV9oPw==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -5910,9 +6623,9 @@ } }, "node_modules/@wordpress/private-apis": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.21.0.tgz", - "integrity": "sha512-sJRZUvI5gXhZf/RYZDhx0E9ubY4SzMWmqU3JHyZpuJFpixJGbBYSRP1Ob9JUKstPKfoYVXaxDRHZJ3bi4J6cig==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-0.28.0.tgz", + "integrity": "sha512-OAwLJfNIkSV2e77T7sXaGWtrbYuzhpusL0ufaR0hux6HfavHDmFuCjyyk3kUdq/GY6bFWDrWIvOTAkmVLYXdYg==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -5922,9 +6635,9 @@ } }, "node_modules/@wordpress/redux-routine": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.39.0.tgz", - "integrity": "sha512-aRPItqSR5W8uXh4733qo3LNST+Y0LB/uqbWAyXY3a88XWn4vyNLkwYLb4xF+H6oPcpE91z0DyFLC4fsAGxtF4w==", + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.46.0.tgz", + "integrity": "sha512-gvyCIp5zh9Nxj3+H6tD6+DrXal7ER68yuvWgWe6+XRWG0D/MhBog6xe1TCJ6Ec5tFcL30cEEy33YPxCiNnPtjA==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -5940,20 +6653,20 @@ } }, "node_modules/@wordpress/rich-text": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.16.0.tgz", - "integrity": "sha512-3Q6sxmA4XOwj1a92CiIk6Zhar2xIw2Dat9R4XPltMLdfSiMB1PJxSirSCYmCs8Pq8i5B6OHdSxparR/snhxyWA==", + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.23.0.tgz", + "integrity": "sha512-NTq0BSN0cnS54BoOKl+3pDrnCM1WNHs/dENRqZaQr+vak0jGJXK8JLJJXJazt2iFniJTZFlDBUEPj/43c2VfwQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "@wordpress/a11y": "^3.39.0", - "@wordpress/compose": "^6.16.0", - "@wordpress/data": "^9.9.0", - "@wordpress/deprecated": "^3.39.0", - "@wordpress/element": "^5.16.0", - "@wordpress/escape-html": "^2.39.0", - "@wordpress/i18n": "^4.39.0", - "@wordpress/keycodes": "^3.39.0", + "@wordpress/a11y": "^3.46.0", + "@wordpress/compose": "^6.23.0", + "@wordpress/data": "^9.16.0", + "@wordpress/deprecated": "^3.46.0", + "@wordpress/element": "^5.23.0", + "@wordpress/escape-html": "^2.46.0", + "@wordpress/i18n": "^4.46.0", + "@wordpress/keycodes": "^3.46.0", "memize": "^2.1.0", "rememo": "^4.0.2" }, @@ -5965,55 +6678,57 @@ } }, "node_modules/@wordpress/scripts": { - "version": "26.10.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.10.0.tgz", - "integrity": "sha512-vMBky4/44rTt+IjOCneMKJ/vTjmfmtPTa0v63umUDFR9/7wzQc1jAtxhBTzFkA5tefEKhPRC0tqgiUM0vGBJAQ==", + "version": "26.17.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.17.0.tgz", + "integrity": "sha512-DmnZphBSkp9cX5YVAh9PchBh45iSaPFyh9Ria8rlH9zp/O5KQ2eWte4xv84B5FbKzUIqilNdtLTPrvsm0PQiGg==", "dev": true, "dependencies": { "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.2", - "@svgr/webpack": "^6.2.1", - "@wordpress/babel-preset-default": "^7.23.0", - "@wordpress/browserslist-config": "^5.22.0", - "@wordpress/dependency-extraction-webpack-plugin": "^4.22.0", - "@wordpress/eslint-plugin": "^14.12.0", - "@wordpress/jest-preset-default": "^11.10.0", - "@wordpress/npm-package-json-lint-config": "^4.24.0", - "@wordpress/postcss-plugins-preset": "^4.23.0", - "@wordpress/prettier-config": "^2.22.0", - "@wordpress/stylelint-config": "^21.22.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.0.1", + "@wordpress/babel-preset-default": "^7.30.0", + "@wordpress/browserslist-config": "^5.29.0", + "@wordpress/dependency-extraction-webpack-plugin": "^4.29.0", + "@wordpress/e2e-test-utils-playwright": "^0.14.0", + "@wordpress/eslint-plugin": "^17.3.0", + "@wordpress/jest-preset-default": "^11.17.0", + "@wordpress/npm-package-json-lint-config": "^4.31.0", + "@wordpress/postcss-plugins-preset": "^4.30.0", + "@wordpress/prettier-config": "^3.3.0", + "@wordpress/stylelint-config": "^21.29.0", "adm-zip": "^0.5.9", - "babel-jest": "^29.5.0", + "babel-jest": "^29.6.2", "babel-loader": "^8.2.3", - "browserslist": "^4.21.9", + "browserslist": "^4.21.10", "chalk": "^4.0.0", "check-node-version": "^4.1.0", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^10.2.0", "cross-spawn": "^5.1.0", "css-loader": "^6.2.0", - "cssnano": "^5.0.7", + "cssnano": "^6.0.1", "cwd": "^0.10.0", "dir-glob": "^3.0.1", "eslint": "^8.3.0", "expect-puppeteer": "^4.4.0", "fast-glob": "^3.2.7", "filenamify": "^4.2.0", - "jest": "^29.5.0", + "jest": "^29.6.2", "jest-dev-server": "^6.0.2", - "jest-environment-jsdom": "^29.5.0", - "jest-environment-node": "^29.5.0", + "jest-environment-jsdom": "^29.6.2", + "jest-environment-node": "^29.6.2", "markdownlint-cli": "^0.31.1", "merge-deep": "^3.0.3", "mini-css-extract-plugin": "^2.5.1", "minimist": "^1.2.0", - "npm-package-json-lint": "^5.0.0", + "npm-package-json-lint": "^6.4.0", "npm-packlist": "^3.0.0", + "playwright-core": "1.39.0", "postcss": "^8.4.5", "postcss-loader": "^6.2.1", - "prettier": "npm:wp-prettier@2.8.5", + "prettier": "npm:wp-prettier@3.0.3", "puppeteer-core": "^13.2.0", - "react-refresh": "^0.10.0", + "react-refresh": "^0.14.0", "read-pkg-up": "^7.0.1", "resolve-bin": "^0.4.0", "sass": "^1.35.2", @@ -6022,10 +6737,10 @@ "stylelint": "^14.2.0", "terser-webpack-plugin": "^5.3.9", "url-loader": "^4.1.1", - "webpack": "^5.47.1", - "webpack-bundle-analyzer": "^4.4.2", - "webpack-cli": "^4.9.1", - "webpack-dev-server": "^4.4.0" + "webpack": "^5.88.2", + "webpack-bundle-analyzer": "^4.9.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1" }, "bin": { "wp-scripts": "bin/wp-scripts.js" @@ -6035,172 +6750,388 @@ "npm": ">=6.14.4" }, "peerDependencies": { + "@playwright/test": "^1.39.0", "react": "^18.0.0", "react-dom": "^18.0.0" } }, "node_modules/@wordpress/scripts/node_modules/@es-joy/jsdoccomment": { - "version": "0.36.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz", - "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==", + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz", + "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==", "dev": true, "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~3.1.0" + "comment-parser": "1.4.1", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/babel-plugin-import-jsx-pragma": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.22.0.tgz", - "integrity": "sha512-eD2bI6ami6VFNIvAITXD65Hv+oLfZF6LhO78txyj9q+Q9l+XSpylBvqkyUWnTgw+H/jnT6kWCKrIabhm7fkbCQ==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", + "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/type-utils": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.12.9" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/babel-preset-default": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.23.0.tgz", - "integrity": "sha512-GvdnURzJoMBk480Znuh97QVs+1Sbm30wkUkSnskz6wjxib+CZwNqVEkd01NXzZCIttLkkwNhw/SAGBZMaOuKlg==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", "dev": true, "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.0", - "@babel/preset-env": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.0", - "@wordpress/babel-plugin-import-jsx-pragma": "^4.22.0", - "@wordpress/browserslist-config": "^5.22.0", - "@wordpress/element": "^5.16.0", - "@wordpress/warning": "^2.39.0", - "browserslist": "^4.21.9", - "core-js": "^3.31.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/browserslist-config": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.22.0.tgz", - "integrity": "sha512-vcAbwq0SCxLWlBS9KDIIVbpuLJyzSkbfYuOM2wgDsReYQv3l0BmDJPt3k81AUhyd0r6Z7QMuRkFA7VnTrBJckQ==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/parser": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", + "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.22.0.tgz", - "integrity": "sha512-EWbx0jj6ltxhgG90olxxTxSFxbvfDWwURUU0Gld30de+rmcJzn2Zp5YktY5qDmqTvA0ONpfQ+UlrxI2wu4oAOg==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/scope-manager": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", + "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", "dev": true, "dependencies": { - "json2php": "^0.0.7", - "webpack-sources": "^3.2.2" + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0" }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" }, - "peerDependencies": { - "webpack": "^4.8.3 || ^5.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/eslint-plugin": { - "version": "14.12.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-14.12.0.tgz", - "integrity": "sha512-RJDYbdOl3IdunpqYA3A1ask1nYO/KcAhyxTwCFBcXJdi++LtlwUJJNlo+qdXzRFDcqT2QjrpszUJJV9zAL6/Hw==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/type-utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", + "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", "dev": true, "dependencies": { - "@babel/eslint-parser": "^7.16.0", - "@typescript-eslint/eslint-plugin": "^5.3.0", - "@typescript-eslint/parser": "^5.3.0", - "@wordpress/babel-preset-default": "^7.23.0", - "@wordpress/prettier-config": "^2.22.0", - "cosmiconfig": "^7.0.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-jsdoc": "^39.6.9", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-prettier": "^3.3.0", - "eslint-plugin-react": "^7.27.0", - "eslint-plugin-react-hooks": "^4.3.0", - "globals": "^13.12.0", - "requireindex": "^1.2.0" + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=14", - "npm": ">=6.14.4" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": ">=7", - "eslint": ">=8", - "prettier": ">=2", - "typescript": ">=4" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "prettier": { - "optional": true - }, "typescript": { "optional": true } } }, - "node_modules/@wordpress/scripts/node_modules/@wordpress/prettier-config": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.22.0.tgz", - "integrity": "sha512-LosWw/2Plhv9DnhqBcHAL1aDoSvdUrgFwh32jev+MV7FPSIJHK0gAZFcPUI7OHZWjEIkz0mQbnIDkzSYMLXWtw==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "semver": "^7.5.4" + }, "engines": { - "node": ">=14" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "prettier": ">=2" + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@wordpress/scripts/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/types": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", + "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@wordpress/scripts/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", + "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=10" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@wordpress/scripts/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "node_modules/@wordpress/scripts/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", + "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.12.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.29.0.tgz", + "integrity": "sha512-VPAn1iVZae1sQ6QaiMKbp3AzFPbhBl6YQeDr3AKpj24GTiUmsho6WgxijzyhBEBX5xPHVCahhQ8mjiZ5Ql6FwA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.12.9" + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/babel-preset-default": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.30.0.tgz", + "integrity": "sha512-O/IA8Jvh6MzlTyeo0As2chhZ2w6WdvMYSjjTDDC66SkbnUxUf4jWqehncHGrtQLoQJfwsCUnyWSH4ePb/j+kIw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.29.0", + "@wordpress/browserslist-config": "^5.29.0", + "@wordpress/warning": "^2.46.0", + "browserslist": "^4.21.10", + "core-js": "^3.31.0", + "react": "^18.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/browserslist-config": { + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.29.0.tgz", + "integrity": "sha512-sVDgPWcI3wdKd3cIvgf/NLO7HtEkwyV4bWuSztzoemNMGQW17BhH2Blx46HnJFXm9ooYw4SpAOyioHTkuT+JFg==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/dependency-extraction-webpack-plugin": { + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.29.0.tgz", + "integrity": "sha512-cYvTkjDvxpZSEjM1RRNciK/7W+RXC+qXXzbdRyGhkE0AzIspA7UAV3NoEyjtbL2V2wNJmBmsZKJf0wuYandDQA==", + "dev": true, + "dependencies": { + "json2php": "^0.0.7", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "webpack": "^4.8.3 || ^5.0.0" + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/eslint-plugin": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.3.0.tgz", + "integrity": "sha512-u6ZMf8sL4act3bNuX0CTuu9quCBw68BItpb5gpyo7LGmV4+/cic14GVWPBTroA9oz6z5UHjIfjKMqib7NGecWQ==", + "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": "^7.30.0", + "@wordpress/prettier-config": "^3.3.0", + "cosmiconfig": "^7.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-jest": "^27.2.3", + "eslint-plugin-jsdoc": "^46.4.6", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-playwright": "^0.15.3", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.27.0", + "eslint-plugin-react-hooks": "^4.3.0", + "globals": "^13.12.0", + "requireindex": "^1.2.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6.14.4" + }, + "peerDependencies": { + "@babel/core": ">=7", + "eslint": ">=8", + "prettier": ">=3", + "typescript": ">=4" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@wordpress/scripts/node_modules/@wordpress/prettier-config": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.3.0.tgz", + "integrity": "sha512-G0HoubSikorLtXs0CZ0TNGbhKImCr+Ztg0HQUKv683r+yiZBOQV1igk7TaHOmIaf6702Bt4E3++IoAQN8Nr5ew==", + "dev": true, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "prettier": ">=3" + } + }, + "node_modules/@wordpress/scripts/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@wordpress/scripts/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@wordpress/scripts/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { @@ -6217,18 +7148,18 @@ "dev": true }, "node_modules/@wordpress/scripts/node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" } }, "node_modules/@wordpress/scripts/node_modules/eslint-plugin-jest": { - "version": "27.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz", - "integrity": "sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==", + "version": "27.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz", + "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -6251,30 +7182,76 @@ } }, "node_modules/@wordpress/scripts/node_modules/eslint-plugin-jsdoc": { - "version": "39.9.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.9.1.tgz", - "integrity": "sha512-Rq2QY6BZP2meNIs48aZ3GlIlJgBqFCmR55+UBvaDkA3ZNQ0SvQXOs2QKkubakEijV8UbIVbVZKsOVN8G3MuqZw==", + "version": "46.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", + "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.36.1", - "comment-parser": "1.3.1", + "@es-joy/jsdoccomment": "~0.41.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.8", + "esquery": "^1.5.0", + "is-builtin-module": "^3.2.1", + "semver": "^7.5.4", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@wordpress/scripts/node_modules/eslint-plugin-playwright": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz", + "integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==", + "dev": true, + "peerDependencies": { + "eslint": ">=7", + "eslint-plugin-jest": ">=25" + }, + "peerDependenciesMeta": { + "eslint-plugin-jest": { + "optional": true + } + } + }, + "node_modules/@wordpress/scripts/node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/@wordpress/scripts/node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6296,9 +7273,9 @@ } }, "node_modules/@wordpress/scripts/node_modules/jsdoc-type-pratt-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", - "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "engines": { "node": ">=12.0.0" @@ -6324,15 +7301,15 @@ }, "node_modules/@wordpress/scripts/node_modules/prettier": { "name": "wp-prettier", - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-2.8.5.tgz", - "integrity": "sha512-gkphzYtVksWV6D7/V530bTehKkhrABUru/Gy4reOLOHJoKH4i9lcE1SxqU2VDxC3gCOx/Nk9alZmWk6xL/IBCw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz", + "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -6384,9 +7361,9 @@ "dev": true }, "node_modules/@wordpress/shortcode": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.39.0.tgz", - "integrity": "sha512-es2TGET1QCn17qzezA2t+tKratgSduoy8wAA5F2AgNuhG4sZbDBBToVmVYyARKzoNvFvaaDe3km+LgEnZEmIkA==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.46.0.tgz", + "integrity": "sha512-Jq6rI8GC9dOYQUErd3KUruyE+mY6nzsB8Y+B1L3XjY4JLkQbs5oiOzpPa0a3jL3D1POAYDVzBeaCSs7o2POf5w==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -6397,9 +7374,9 @@ } }, "node_modules/@wordpress/style-engine": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.22.0.tgz", - "integrity": "sha512-OZ0oljeU/rPsaT9/oQ08LOe2XNfpAOPUC+sd+5H+XlA5KG+YfqavAVCf1WKFnv9UbBFWI9e91zK+Pvs80UG+LA==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.29.0.tgz", + "integrity": "sha512-W+JgmQS6Kyg5iBQFTIkEAtdajLG1vSOwEggGKl/pABE5vcI9pV3OkQ2GD8dOabwe4t6kwLX+576o0MrBcg+hAg==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", @@ -6410,9 +7387,9 @@ } }, "node_modules/@wordpress/stylelint-config": { - "version": "21.22.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.22.0.tgz", - "integrity": "sha512-P2uM+WAVZsGPw5HjRblvHwLOBgV7j0mEV/NoW/KowB+FXoF7r1zTLrKloR+Jy7oO0Wz8A1AH8NgSXVoBmfi+iw==", + "version": "21.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.29.0.tgz", + "integrity": "sha512-8VetLM5CTg8iLgodgpY4x132Yf4gPWMMffqfAG8HFwwvVQxm0mjl/dNtj6RBrxemdTi7dHr1jnZvqU+XxQlHXQ==", "dev": true, "dependencies": { "stylelint-config-recommended": "^6.0.0", @@ -6426,9 +7403,9 @@ } }, "node_modules/@wordpress/token-list": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.39.0.tgz", - "integrity": "sha512-l2dQunMv1ZjmO3YUXw95HhMquM/wVddnubEjpGH0JoFK2JDBXuXet5ek+Z5Khf33CqwJUP0AOltnNOFBBXmWJg==", + "version": "2.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.46.0.tgz", + "integrity": "sha512-GZyzfHyjjG5+V4bF62UPZQFhoMLpX5Dt1Jl/J3jQFmUpbccNlCxRPEtTd9p7N6JeQlPUgQlyUjykQ1aBWU984A==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -6437,32 +7414,45 @@ "node": ">=12" } }, + "node_modules/@wordpress/undo-manager": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-0.6.0.tgz", + "integrity": "sha512-u/oW1LAx0yANHzFHz/H1Tnopa7r/8q1D/bV2fescjQ947LLOpaImh7hlLn6ryEt8qCj2YSL9Ry2dDE2R/U1gQQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/is-shallow-equal": "^4.46.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@wordpress/url": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.40.0.tgz", - "integrity": "sha512-NzBdIrnDxM2qmOh8zxhGRg+OdknVk7baIO1pznYO9JvIvteu4y5Suho1WBEtzqeTI2ndRcdZMVPdnYd83dThjg==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.47.0.tgz", + "integrity": "sha512-eDj7eDDYS8/UaUioulM54JkhmYvplvwW8+rbidR0fKZLr9zu3mfM7vrlwpIv9OK2RMenqEvu7Ij2gc5n/YEAcQ==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", - "remove-accents": "^0.4.2" + "remove-accents": "^0.5.0" }, "engines": { "node": ">=12" } }, "node_modules/@wordpress/warning": { - "version": "2.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.39.0.tgz", - "integrity": "sha512-GBOe63ROWqGh7z83VXTJQes/nMI82Q/GKs7pv52Q6EUBk/CE3LTnfDMw/+WbtGBMDc+Rd07gYqB/OHoedk2wkg==", + "version": "2.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.46.0.tgz", + "integrity": "sha512-oyUNmDz64nF8vnS9LaobXMIx6K5w+XhAtvo3Cjv3kCVIuWFwpxoeMus3pUo1A7v2H9zcW+E87zwEuqsLPYjNfQ==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/@wordpress/wordcount": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.39.0.tgz", - "integrity": "sha512-JHp9CFz4UpwHcvlumg8zgfzWWOox6GMvmsITXOrXEP1Xf0wWdEywKiQvS6lQnrDjumg/zZLDHfoD3SRETBfzEQ==", + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.46.0.tgz", + "integrity": "sha512-R9u3WTSQoaVtZkk6oDlW2hhpNwCxZW6CKQmDQhlj+15aDTHtf58JEPBNstwXSovQlrjB1RpyhBa37nWkC8Bsag==", "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" @@ -6645,6 +7635,15 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -6706,6 +7705,15 @@ "node": ">= 8" } }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -6904,6 +7912,18 @@ "node": ">=0.10.0" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -6926,9 +7946,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.15", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", - "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -6946,8 +7966,8 @@ ], "dependencies": { "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001520", - "fraction.js": "^4.2.0", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -7007,16 +8027,22 @@ "dequal": "^2.0.3" } }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, "node_modules/babel-jest": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.2.tgz", - "integrity": "sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.2", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -7152,9 +8178,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -7244,12 +8270,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -7285,12 +8311,30 @@ } ] }, + "node_modules/basic-ftp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -7410,6 +8454,18 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -7512,41 +8568,110 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "semver": "^7.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "node_modules/builtins/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, "dependencies": { "pascal-case": "^3.1.2", @@ -7604,9 +8729,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001520", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001520.tgz", - "integrity": "sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==", + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", "dev": true, "funding": [ { @@ -7818,6 +8943,24 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -7827,6 +8970,18 @@ "node": ">=6.0" } }, + "node_modules/chromium-bidi": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", + "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", + "dev": true, + "dependencies": { + "mitt": "3.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/ci-info": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", @@ -7922,6 +9077,20 @@ "node": ">=0.10.0" } }, + "node_modules/cmdk": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.0.tgz", + "integrity": "sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==", + "dev": true, + "dependencies": { + "@radix-ui/react-dialog": "1.0.0", + "command-score": "0.1.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7977,6 +9146,12 @@ "node": ">= 0.8" } }, + "node_modules/command-score": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/command-score/-/command-score-0.1.2.tgz", + "integrity": "sha512-VtDvQpIJBvBatnONUsPzXYFVKQQAhuf3XTNOAsdBxCNO/QCtUUd8LSgjn0GVarBkCad6aJCZfXgrjYbl/KRr7w==", + "dev": true + }, "node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", @@ -8076,6 +9251,35 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -8316,6 +9520,97 @@ "node": ">=10" } }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -8352,6 +9647,21 @@ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "dev": true }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/csp_evaluator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz", + "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==", + "dev": true + }, "node_modules/css-declaration-sorter": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", @@ -8365,12 +9675,12 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", - "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", + "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", "dev": true, "engines": { - "node": ">=12.22" + "node": ">=12 || >=16" } }, "node_modules/css-loader": { @@ -8433,15 +9743,15 @@ "dev": true }, "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { @@ -8449,25 +9759,16 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -8495,17 +9796,16 @@ } }, "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", + "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.0.1", + "lilconfig": "^2.1.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", @@ -8516,72 +9816,93 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", + "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" + "cssnano-utils": "^4.0.0", + "postcss-calc": "^9.0.0", + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.1", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, "dependencies": { - "css-tree": "^1.1.2" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -8631,6 +9952,15 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -8661,99 +9991,299 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" }, "engines": { - "node": ">=6.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/default-browser/node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "node_modules/default-browser/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "node_modules/default-browser/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/default-browser/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/default-gateway": { @@ -8793,6 +10323,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", @@ -8928,9 +10472,9 @@ } }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8985,28 +10529,19 @@ "dev": true }, "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -9032,12 +10567,12 @@ } }, "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -9047,14 +10582,14 @@ } }, "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -9070,6 +10605,18 @@ "tslib": "^2.0.3" } }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/downshift": { "version": "6.1.12", "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.12.tgz", @@ -9171,6 +10718,19 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -9184,9 +10744,9 @@ } }, "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -10178,17 +11738,16 @@ } }, "node_modules/expect": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.2.tgz", - "integrity": "sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.6.2", - "@types/node": "*", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10316,6 +11875,12 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", @@ -10641,6 +12206,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -10749,16 +12323,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/framer-motion": { @@ -10826,6 +12400,29 @@ "node": ">=0.10.0" } }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/fs-monkey": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", @@ -10936,6 +12533,18 @@ "node": ">=8.0.0" } }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", @@ -10976,6 +12585,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-uri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", + "dev": true, + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.0", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/gettext-parser": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz", @@ -11299,9 +12923,33 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/hpack.js": { @@ -11426,6 +13074,15 @@ "node": ">= 0.8" } }, + "node_modules/http-link-header": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.1.tgz", + "integrity": "sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", @@ -11571,6 +13228,12 @@ "node": ">=10" } }, + "node_modules/image-ssim": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", + "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==", + "dev": true + }, "node_modules/immutable": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", @@ -11685,14 +13348,30 @@ } }, "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" + } + }, + "node_modules/intl-messageformat": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", + "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", + "dev": true, + "dependencies": { + "intl-messageformat-parser": "^1.8.1" } }, + "node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "dev": true + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -11702,6 +13381,12 @@ "loose-envify": "^1.0.0" } }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", @@ -11786,6 +13471,21 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -11888,6 +13588,39 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -11924,6 +13657,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -12084,6 +13826,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -12151,9 +13899,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -12295,15 +14043,15 @@ } }, "node_modules/jest": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", - "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.6.2" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -12321,12 +14069,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -12334,28 +14083,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.2.tgz", - "integrity": "sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/expect": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.2", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -12435,22 +14184,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.2.tgz", - "integrity": "sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -12539,31 +14287,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.2.tgz", - "integrity": "sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.2", - "@jest/types": "^29.6.1", - "babel-jest": "^29.6.2", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.2", - "jest-environment-node": "^29.6.2", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-runner": "^29.6.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -12739,15 +14487,15 @@ } }, "node_modules/jest-diff": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.2.tgz", - "integrity": "sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -12824,9 +14572,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -12836,16 +14584,16 @@ } }, "node_modules/jest-each": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.2.tgz", - "integrity": "sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.6.2", - "pretty-format": "^29.6.2" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -12949,46 +14697,46 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.2.tgz", - "integrity": "sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/fake-timers": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.2", - "jest-util": "^29.6.2" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.2.tgz", - "integrity": "sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -13000,28 +14748,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz", - "integrity": "sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz", - "integrity": "sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.2", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.2" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13098,18 +14846,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.2.tgz", - "integrity": "sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -13188,14 +14936,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.2.tgz", - "integrity": "sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.2" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13219,26 +14967,26 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.2.tgz", - "integrity": "sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.2", - "jest-validate": "^29.6.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -13248,13 +14996,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz", - "integrity": "sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.2" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13331,30 +15079,30 @@ } }, "node_modules/jest-runner": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.2.tgz", - "integrity": "sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.2", - "@jest/environment": "^29.6.2", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.2", - "jest-haste-map": "^29.6.2", - "jest-leak-detector": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-resolve": "^29.6.2", - "jest-runtime": "^29.6.2", - "jest-util": "^29.6.2", - "jest-watcher": "^29.6.2", - "jest-worker": "^29.6.2", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -13433,31 +15181,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.2.tgz", - "integrity": "sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.6.2", - "@jest/fake-timers": "^29.6.2", - "@jest/globals": "^29.6.2", - "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-mock": "^29.6.2", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.2", - "jest-snapshot": "^29.6.2", - "jest-util": "^29.6.2", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -13536,9 +15284,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.2.tgz", - "integrity": "sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -13546,20 +15294,20 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.2", - "@jest/transform": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.2", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.2", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.2", - "jest-message-util": "^29.6.2", - "jest-util": "^29.6.2", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.2", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { @@ -13670,12 +15418,12 @@ "dev": true }, "node_modules/jest-util": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.2.tgz", - "integrity": "sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -13757,17 +15505,17 @@ } }, "node_modules/jest-validate": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", - "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.1", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.2" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13844,18 +15592,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.2.tgz", - "integrity": "sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.2", - "@jest/types": "^29.6.1", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.2", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -13933,13 +15681,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.2.tgz", - "integrity": "sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.2", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -13984,6 +15732,21 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true + }, + "node_modules/js-library-detector": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz", + "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -14111,6 +15874,15 @@ "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -14218,6 +15990,219 @@ "node": ">= 0.8.0" } }, + "node_modules/lighthouse": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz", + "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==", + "dev": true, + "dependencies": { + "@sentry/node": "^6.17.4", + "axe-core": "4.7.2", + "chrome-launcher": "^0.15.2", + "configstore": "^5.0.1", + "csp_evaluator": "1.1.1", + "devtools-protocol": "0.0.1155343", + "enquirer": "^2.3.6", + "http-link-header": "^1.1.1", + "intl-messageformat": "^4.4.0", + "jpeg-js": "^0.4.4", + "js-library-detector": "^6.6.0", + "lighthouse-logger": "^1.4.1", + "lighthouse-stack-packs": "1.11.0", + "lodash": "^4.17.21", + "lookup-closest-locale": "6.2.0", + "metaviewport-parser": "0.3.0", + "open": "^8.4.0", + "parse-cache-control": "1.0.1", + "ps-list": "^8.0.0", + "puppeteer-core": "^20.8.0", + "robots-parser": "^3.0.0", + "semver": "^5.3.0", + "speedline-core": "^1.4.3", + "third-party-web": "^0.23.3", + "ws": "^7.0.0", + "yargs": "^17.3.1", + "yargs-parser": "^21.0.0" + }, + "bin": { + "chrome-debug": "core/scripts/manual-chrome-launcher.js", + "lighthouse": "cli/index.js", + "smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js" + }, + "engines": { + "node": ">=16.16" + } + }, + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" + } + }, + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/lighthouse-logger/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/lighthouse-stack-packs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz", + "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==", + "dev": true + }, + "node_modules/lighthouse/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/lighthouse/node_modules/devtools-protocol": { + "version": "0.0.1155343", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz", + "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==", + "dev": true + }, + "node_modules/lighthouse/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", + "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "1.4.6", + "chromium-bidi": "0.4.16", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1147663", + "ws": "8.13.0" + }, + "engines": { + "node": ">=16.3.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1147663", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", + "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", + "dev": true + }, + "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/lighthouse/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/lighthouse/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/lighthouse/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/lighthouse/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/lighthouse/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -14414,6 +16399,12 @@ "node": ">=8" } }, + "node_modules/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", + "dev": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -14435,6 +16426,12 @@ "tslib": "^2.0.3" } }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -14598,6 +16595,12 @@ "integrity": "sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==", "dev": true }, + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", + "dev": true + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -14609,9 +16612,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, "node_modules/mdurl": { @@ -14648,40 +16651,50 @@ "dev": true }, "node_modules/meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", "dev": true, "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", "read-pkg-up": "^7.0.1", "redent": "^3.0.0", "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/meow/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/merge-deep": { @@ -14719,6 +16732,12 @@ "node": ">= 8" } }, + "node_modules/metaviewport-parser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz", + "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==", + "dev": true + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -14923,6 +16942,12 @@ "node": ">=0.10.0" } }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "dev": true + }, "node_modules/mixin-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", @@ -15063,6 +17088,15 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -15166,26 +17200,53 @@ } }, "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/normalize-package-data/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -15204,18 +17265,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/normalize-wheel": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", @@ -15238,32 +17287,34 @@ "dev": true }, "node_modules/npm-package-json-lint": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-5.4.2.tgz", - "integrity": "sha512-DH1MSvYvm+cuQFXcPehIIu/WiYzMYs7BOxlhOOFHaH2SNrA+P2uDtTEe5LOG90Ci7PTwgF/dCmSKM2HWTgWXNA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz", + "integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==", "dev": true, "dependencies": { "ajv": "^6.12.6", "ajv-errors": "^1.0.1", "chalk": "^4.1.2", - "cosmiconfig": "^7.0.1", - "debug": "^4.3.2", - "globby": "^11.0.4", - "ignore": "^5.1.9", + "cosmiconfig": "^8.0.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "ignore": "^5.2.0", "is-plain-obj": "^3.0.0", - "jsonc-parser": "^3.0.0", + "jsonc-parser": "^3.2.0", "log-symbols": "^4.1.0", - "meow": "^6.1.1", + "meow": "^9.0.0", "plur": "^4.0.0", - "semver": "^7.3.5", + "semver": "^7.3.8", "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "strip-json-comments": "^3.1.1", + "type-fest": "^3.2.0", + "validate-npm-package-name": "^5.0.0" }, "bin": { - "npmPkgJsonLint": "src/cli.js" + "npmPkgJsonLint": "dist/cli.js" }, "engines": { - "node": ">=10.0.0", + "node": ">=14.0.0", "npm": ">=6.0.0" } }, @@ -15282,6 +17333,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/npm-package-json-lint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/npm-package-json-lint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -15316,6 +17373,32 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/npm-package-json-lint/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/npm-package-json-lint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -15325,6 +17408,24 @@ "node": ">=8" } }, + "node_modules/npm-package-json-lint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/npm-package-json-lint/node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "node_modules/npm-package-json-lint/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -15364,6 +17465,18 @@ "node": ">=8" } }, + "node_modules/npm-package-json-lint/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-package-json-lint/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -15706,6 +17819,77 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dev": true, + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", + "dev": true, + "dependencies": { + "degenerator": "^5.0.0", + "ip": "^1.1.8", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -15728,6 +17912,12 @@ "node": ">=6" } }, + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "dev": true + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -15977,6 +18167,50 @@ "node": ">=8" } }, + "node_modules/playwright": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.0.tgz", + "integrity": "sha512-gyHAgQjiDf1m34Xpwzaqb76KgfzYrhK7iih+2IzcOCoZWr/8ZqmdBw+t0RU85ZmfJMgtgAiNtBQ/KS2325INXw==", + "dev": true, + "peer": true, + "dependencies": { + "playwright-core": "1.40.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", + "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/playwright-core": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.0.tgz", + "integrity": "sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q==", + "dev": true, + "peer": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/plur": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", @@ -15993,9 +18227,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -16021,22 +18255,25 @@ } }, "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "dependencies": { - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -16045,71 +18282,71 @@ "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -16177,98 +18414,98 @@ "dev": true }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", + "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", "dev": true, "dependencies": { "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -16334,181 +18571,189 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", "dev": true, "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", "dev": true, "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, + "node_modules/postcss-prefixwrap": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/postcss-prefixwrap/-/postcss-prefixwrap-1.42.0.tgz", + "integrity": "sha512-lg2e3mot/RoAVvMG9nfaw7me5pWPWnQKr1iWLUSkHBgIruP3IPeq6yXK5mUlJNTd4ybYSBfTWDtzd3iS8eQoaA==", + "dev": true, + "peerDependencies": { + "postcss": "*" + } + }, "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -16537,9 +18782,9 @@ } }, "node_modules/postcss-scss": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz", - "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, "funding": [ { @@ -16549,13 +18794,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "engines": { "node": ">=12.0" }, "peerDependencies": { - "postcss": "^8.4.19" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { @@ -16572,34 +18821,46 @@ } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { "postcss": "^8.2.15" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-urlrebase": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.3.0.tgz", + "integrity": "sha512-LOFN43n1IewKriXiypMNNinXeptttSyGGRLPbBMdQzuTvvCEo5mz/gG06y/HqrkN7p3ayHQf2R2bTBv639FOaQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.3.0" } }, "node_modules/postcss-value-parser": { @@ -16646,12 +18907,12 @@ } }, "node_modules/pretty-format": { - "version": "29.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.2.tgz", - "integrity": "sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -16744,6 +19005,72 @@ "node": ">= 0.10" } }, + "node_modules/proxy-agent": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", + "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/proxy-compare": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.3.0.tgz", @@ -16756,6 +19083,18 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, + "node_modules/ps-list": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz", + "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -16847,9 +19186,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { @@ -16903,6 +19242,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -17053,9 +19398,9 @@ "dev": true }, "node_modules/react-refresh": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz", - "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -17224,6 +19569,33 @@ "node": ">=8" } }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -17316,15 +19688,15 @@ } }, "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redent": { @@ -17453,9 +19825,9 @@ "dev": true }, "node_modules/remove-accents": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz", - "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", "dev": true }, "node_modules/requestidlecallback": { @@ -17603,6 +19975,30 @@ "rimraf": "bin.js" } }, + "node_modules/robots-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz", + "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-con": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz", @@ -18305,14 +20701,14 @@ "dev": true }, "node_modules/sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", + "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", - "totalist": "^1.0.0" + "totalist": "^3.0.0" }, "engines": { "node": ">= 10" @@ -18383,6 +20779,16 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -18404,6 +20810,52 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -18535,19 +20987,26 @@ "wbuf": "^1.7.3" } }, + "node_modules/speedline-core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", + "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", + "dev": true, + "dependencies": { + "@types/node": "*", + "image-ssim": "^0.2.0", + "jpeg-js": "^0.4.1" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -18584,6 +21043,16 @@ "node": ">= 0.8" } }, + "node_modules/streamx": { + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -18772,16 +21241,16 @@ "dev": true }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { "postcss": "^8.2.15" @@ -18862,171 +21331,64 @@ "stylelint-config-recommended": "^6.0.0", "stylelint-scss": "^4.0.0" }, - "peerDependencies": { - "stylelint": "^14.0.0" - } - }, - "node_modules/stylelint-scss": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", - "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", - "dev": true, - "dependencies": { - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1 || ^15.0.0" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true - }, - "node_modules/stylelint/node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylelint/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylelint/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylelint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "stylelint": "^14.0.0" } }, - "node_modules/stylelint/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0" } }, - "node_modules/stylelint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6" } }, - "node_modules/stylelint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/stylelint/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, "node_modules/stylis": { @@ -19106,24 +21468,28 @@ "dev": true }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.4.tgz", + "integrity": "sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "css-what": "^6.1.0", + "csso": "5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { @@ -19141,6 +21507,22 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/table": { "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", @@ -19360,6 +21742,12 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/third-party-web": { + "version": "0.23.4", + "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz", + "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==", + "dev": true + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -19378,6 +21766,18 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", "dev": true }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -19442,9 +21842,9 @@ } }, "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "engines": { "node": ">=6" @@ -19477,15 +21877,6 @@ "node": ">=12" } }, - "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -19525,6 +21916,18 @@ "node": ">=0.8.0" } }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -19585,12 +21988,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/turbo-combine-reducers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz", - "integrity": "sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -19702,6 +22099,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typescript": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", @@ -19787,6 +22193,18 @@ "node": ">=4" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", @@ -19805,6 +22223,15 @@ "node": ">= 0.8" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -20018,19 +22445,25 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -20041,6 +22474,18 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/valtio": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.7.0.tgz", @@ -20153,6 +22598,12 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/web-vitals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.0.tgz", + "integrity": "sha512-f5YnCHVG9Y6uLCePD4tY8bO/Ge15NPEQWtvm3tPzDKygloiqtb4SVqRHBcrIAqo2ztqX5XueqDn97zHF0LdT6w==", + "dev": true + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -20210,20 +22661,23 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz", - "integrity": "sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "lodash": "^4.17.20", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", "opener": "^1.5.2", - "sirv": "^1.0.7", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", "ws": "^7.3.1" }, "bin": { @@ -20233,55 +22687,6 @@ "node": ">= 10.13.0" } }, - "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/webpack-bundle-analyzer/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -20291,27 +22696,6 @@ "node": ">= 10" } }, - "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", @@ -20334,44 +22718,42 @@ } }, "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/migrate": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -20381,12 +22763,12 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": ">= 10" + "node": ">=14" } }, "node_modules/webpack-cli/node_modules/cross-spawn": { @@ -20643,12 +23025,13 @@ } }, "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -20828,15 +23211,15 @@ "dev": true }, "node_modules/wp-prettier": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-2.8.5.tgz", - "integrity": "sha512-gkphzYtVksWV6D7/V530bTehKkhrABUru/Gy4reOLOHJoKH4i9lcE1SxqU2VDxC3gCOx/Nk9alZmWk6xL/IBCw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz", + "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -20932,6 +23315,15 @@ } } }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -20990,28 +23382,6 @@ } }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", diff --git a/blocks/package.json b/blocks/package.json index a6da601a..d7513606 100644 --- a/blocks/package.json +++ b/blocks/package.json @@ -11,19 +11,19 @@ }, "devDependencies": { "@automattic/color-studio": "^2.5.0", - "@woocommerce/dependency-extraction-webpack-plugin": "^2.2.0", + "@woocommerce/dependency-extraction-webpack-plugin": "^2.3.0", "@woocommerce/eslint-plugin": "^2.2.0", - "@wordpress/api-fetch": "^6.36.0", - "@wordpress/block-editor": "^12.7.0", - "@wordpress/blocks": "^12.16.0", - "@wordpress/components": "^25.5.0", - "@wordpress/element": "^5.16.0", - "@wordpress/html-entities": "^3.39.0", - "@wordpress/i18n": "4.39.0", - "@wordpress/plugins": "^6.7.0", - "@wordpress/scripts": "^26.10.0", + "@wordpress/api-fetch": "^6.43.0", + "@wordpress/block-editor": "^12.14.0", + "@wordpress/blocks": "^12.23.0", + "@wordpress/components": "^25.12.0", + "@wordpress/element": "^5.23.0", + "@wordpress/html-entities": "^3.46.0", + "@wordpress/i18n": "4.46.0", + "@wordpress/plugins": "^6.14.0", + "@wordpress/scripts": "^26.17.0", "node-wp-i18n": "~1.2.7", - "wp-prettier": "npm:wp-prettier@^2.8.5" + "wp-prettier": "npm:wp-prettier@^3.0.3" }, "scripts": { "prebuild": "rm -rf ./vendor", From 3c6010c45e91bbd14225c895afc57b536ecbe44e Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 22 Nov 2023 14:50:29 +0200 Subject: [PATCH 37/57] added function to check if shell is enabled --- .../api/class-mailchimp-woocommerce-tower.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index 67600034..798a78e6 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -515,7 +515,7 @@ public function getSystemReport() { ), array( 'key' => 'WP CLI Enabled', - 'value' => shell_exec('wp cli version') !== null, + 'value' => $this->is_shell_enabled() ? shell_exec('wp cli version') !== null : 'N/A', ), array( 'key' => 'Curl Enabled', @@ -775,4 +775,19 @@ protected function get_action_status_date( $status, $date_type = 'oldest' ) { } return $action_date; } + + public function is_shell_enabled() { + /*Check if shell_exec() is enabled on this server*/ + if ( function_exists( 'shell_exec' ) && ! in_array( 'shell_exec', array_map( 'trim', explode( ', ', ini_get( 'disable_functions' ) ) ) ) ) { + /*If enabled, check if shell_exec() actually have execution power*/ + $returnVal = shell_exec( 'cat /proc/cpuinfo' ); + if ( ! empty( $returnVal ) ) { + return true; + } + + return false; + } + + return false; + } } From a0e0b54b7f6ffa9136b2c87acc6b05a52af9cb6a Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 23 Nov 2023 10:23:10 +0200 Subject: [PATCH 38/57] update is_shell_enabled method --- includes/api/class-mailchimp-woocommerce-tower.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index 798a78e6..b1742834 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -780,7 +780,7 @@ public function is_shell_enabled() { /*Check if shell_exec() is enabled on this server*/ if ( function_exists( 'shell_exec' ) && ! in_array( 'shell_exec', array_map( 'trim', explode( ', ', ini_get( 'disable_functions' ) ) ) ) ) { /*If enabled, check if shell_exec() actually have execution power*/ - $returnVal = shell_exec( 'cat /proc/cpuinfo' ); + $returnVal = shell_exec( 'pwd' ); if ( ! empty( $returnVal ) ) { return true; } From 622402bef688317ae2e4a2f54896b8e889101b12 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 28 Nov 2023 08:14:35 -0500 Subject: [PATCH 39/57] update readme --- CHANGELOG.txt | 3 +++ README.txt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ac402081..b08b6e47 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,9 @@ == Changelog == = 3.4 = * Fix rest_url function for installs that are not using wp_rewrite +* Strict type-checks before calling unserialize +* Better wp-cli detection for support +* Fix webhook validation during plugin updates = 3.3 = * Performance enhancement: Removing excessive double opt-in api calls during initial sync * Fix for translated product issue diff --git a/README.txt b/README.txt index 58db4f51..6dc173a1 100644 --- a/README.txt +++ b/README.txt @@ -80,3 +80,6 @@ If you are unable to sync or connect with Mailchimp, you can open a ticket on ou == Changelog == = 3.4 = * Fix rest_url function for installs that are not using wp_rewrite +* Strict type-checks before calling unserialize +* Better wp-cli detection for support +* Fix webhook validation during plugin updates From d8a6cf42f0a12f3adf33e6cfc766f8091f61ef44 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 28 Nov 2023 08:19:33 -0500 Subject: [PATCH 40/57] admin warning if oauthed but no list id --- admin/class-mailchimp-woocommerce-admin.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/admin/class-mailchimp-woocommerce-admin.php b/admin/class-mailchimp-woocommerce-admin.php index f95d8dd7..87f75acc 100644 --- a/admin/class-mailchimp-woocommerce-admin.php +++ b/admin/class-mailchimp-woocommerce-admin.php @@ -364,7 +364,8 @@ public function options_update() { * Displays notice when plugin is installed but not yet configured / connected to Mailchimp. */ public function initial_notice() { - if ( ! mailchimp_is_configured() ) { + // if they've logged in oauth - but have not selected a list id yet - show the admin notice. + if ( (bool) (mailchimp_get_api_key() && !mailchimp_get_list_id())) { $class = 'notice notice-warning is-dismissible'; $message = sprintf( /* translators: Placeholders %1$s - opening strong HTML tag, %2$s - closing strong HTML tag, %3$s - opening link HTML tag, %4$s - closing link HTML tag */ From 0b80db0fbcc1aae387b92187272c9a18ab297b34 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 28 Nov 2023 08:30:51 -0500 Subject: [PATCH 41/57] strict check for getting cart --- includes/class-mailchimp-woocommerce-service.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index cc044598..96c27493 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -678,7 +678,13 @@ public function getCurrentUserEmail() public function getCartItems() { if (!($this->cart = $this->getWooSession('cart', false))) { - $this->cart = !function_exists('WC') ? false : WC()->cart->get_cart(); + if (!function_exists('WC')) { + $this->cart = false; + } else if (WC()->cart) { + $this->cart = WC()->cart->get_cart(); + } else { + return false; + } } else { $cart_session = array(); foreach ( $this->cart as $key => $values ) { From dc26fb134dbe7cca8826601a22323fdd24839d09 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Tue, 28 Nov 2023 09:01:05 -0500 Subject: [PATCH 42/57] =?UTF-8?q?don=E2=80=99t=20show=20notices=20if=20you?= =?UTF-8?q?=E2=80=99re=20in=20the=20plugin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/class-mailchimp-woocommerce-admin.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/admin/class-mailchimp-woocommerce-admin.php b/admin/class-mailchimp-woocommerce-admin.php index 87f75acc..42ed9cd4 100644 --- a/admin/class-mailchimp-woocommerce-admin.php +++ b/admin/class-mailchimp-woocommerce-admin.php @@ -364,6 +364,13 @@ public function options_update() { * Displays notice when plugin is installed but not yet configured / connected to Mailchimp. */ public function initial_notice() { + global $pagenow; + + // if we're on the mc admin setup pages - don't do anything + if ($pagenow == 'admin.php' && isset( $_GET ) && isset( $_GET['page'] ) && 'mailchimp-woocommerce' === $_GET['page'] ) { + return null; + } + // if they've logged in oauth - but have not selected a list id yet - show the admin notice. if ( (bool) (mailchimp_get_api_key() && !mailchimp_get_list_id())) { $class = 'notice notice-warning is-dismissible'; From aff2c7ee6f042126ffebfd9cb14bfd1610767594 Mon Sep 17 00:00:00 2001 From: tarassych Date: Wed, 29 Nov 2023 15:10:36 +0200 Subject: [PATCH 43/57] Removed campaign_id attribute --- blocks/woocommerce-blocks-integration.php | 8 +- bootstrap.php | 1 - includes/api/assets/class-mailchimp-cart.php | 34 ----- includes/api/assets/class-mailchimp-order.php | 40 ------ ...chimp-woocommerce-transform-orders-wc3.php | 10 -- .../class-mailchimp-woocommerce-service.php | 117 +++--------------- ...lass-mailchimp-woocommerce-cart-update.php | 17 +-- ...ilchimp-woocommerce-pull-last-campaign.php | 95 -------------- ...ass-mailchimp-woocommerce-single-order.php | 84 ++----------- 9 files changed, 28 insertions(+), 378 deletions(-) delete mode 100644 includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php diff --git a/blocks/woocommerce-blocks-integration.php b/blocks/woocommerce-blocks-integration.php index 3925dd58..8352cb0e 100644 --- a/blocks/woocommerce-blocks-integration.php +++ b/blocks/woocommerce-blocks-integration.php @@ -245,21 +245,15 @@ public static function order_processed($order, $request) $tracking = MailChimp_Service::instance()->onNewOrder($order->get_id()); // queue up the single order to be processed. - $campaign_id = isset($tracking) && isset($tracking['campaign_id']) ? $tracking['campaign_id'] : null; $landing_site = isset($tracking) && isset($tracking['landing_site']) ? $tracking['landing_site'] : null; $language = substr( get_locale(), 0, 2 ); // update the post meta with campaign tracking details for future sync - if (!empty($campaign_id)) { - MailChimp_WooCommerce_HPOS::update_order_meta($order->get_id(), 'mailchimp_woocommerce_campaign_id', $campaign_id); - /*update_post_meta($order->get_id(), 'mailchimp_woocommerce_campaign_id', $campaign_id);*/ - } if (!empty($landing_site)) { MailChimp_WooCommerce_HPOS::update_order_meta($order->get_id(), 'mailchimp_woocommerce_landing_site', $landing_site); - //update_post_meta($order->get_id(), 'mailchimp_woocommerce_landing_site', $landing_site); } - $handler = new MailChimp_WooCommerce_Single_Order($order->get_id(), null, $campaign_id, $landing_site, $language, $gdpr_fields); + $handler = new MailChimp_WooCommerce_Single_Order($order->get_id(), null, $landing_site, $language, $gdpr_fields); $handler->is_update = false; $handler->is_admin_save = is_admin(); diff --git a/bootstrap.php b/bootstrap.php index f826de70..6c5f42f5 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -68,7 +68,6 @@ 'MailChimp_WooCommerce_Process_Full_Sync_Manager' => 'includes/processes/class-mailchimp-woocommerce-full-sync-manager.php', 'MailChimp_WooCommerce_Subscriber_Sync' => 'includes/processes/class-mailchimp-woocommerce-subscriber-sync.php', 'MailChimp_WooCommerce_WebHooks_Sync' => 'includes/processes/class-mailchimp-woocommerce-webhooks-sync.php', - 'MailChimp_WooCommerce_Pull_Last_Campaign' => 'includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php', 'MailChimp_WooCommerce_Public' => 'public/class-mailchimp-woocommerce-public.php', 'MailChimp_WooCommerce_Admin' => 'admin/class-mailchimp-woocommerce-admin.php', diff --git a/includes/api/assets/class-mailchimp-cart.php b/includes/api/assets/class-mailchimp-cart.php index a12337c3..6a02dabd 100644 --- a/includes/api/assets/class-mailchimp-cart.php +++ b/includes/api/assets/class-mailchimp-cart.php @@ -13,7 +13,6 @@ class MailChimp_WooCommerce_Cart { protected $store_id; protected $id; protected $customer; - protected $campaign_id; protected $checkout_url; protected $currency_code; protected $order_total; @@ -79,36 +78,6 @@ public function getCustomer() { return $this->customer; } - /** - * @param $id - * @param bool $throw_if_invalid - * @return $this - * @throws Exception - */ - public function setCampaignID( $id, $throw_if_invalid = false ) { - $api = MailChimp_WooCommerce_MailChimpApi::getInstance(); - $cid = trim( $id ); - if ( ! empty( $cid ) && ( $campaign = $api->getCampaign( $cid, $throw_if_invalid ) ) ) { - $this->campaign_id = $campaign['id']; - } - return $this; - } - - /** - * @return $this - */ - public function removeCampaignID() { - $this->campaign_id = null; - return $this; - } - - /** - * @return mixed - */ - public function getCampaignID() { - return $this->campaign_id; - } - /** * @param $url * @return $this @@ -208,7 +177,6 @@ public function toArray() { array( 'id' => (string) $this->getId(), 'customer' => $this->getCustomer()->toArray(), - 'campaign_id' => (string) $this->getCampaignID(), 'checkout_url' => (string) $this->getCheckoutURL(), 'currency_code' => (string) $this->getCurrencyCode(), 'order_total' => floatval( $this->getOrderTotal() ), @@ -229,7 +197,6 @@ function( $item ) { public function toArrayForUpdate() { return mailchimp_array_remove_empty( array( - 'campaign_id' => (string) $this->getCampaignID(), 'checkout_url' => (string) $this->getCheckoutURL(), 'currency_code' => (string) $this->getCurrencyCode(), 'order_total' => $this->getOrderTotal(), @@ -252,7 +219,6 @@ public function fromArray( array $data ) { $singles = array( 'store_id', 'id', - 'campaign_id', 'checkout_url', 'currency_code', 'order_total', diff --git a/includes/api/assets/class-mailchimp-order.php b/includes/api/assets/class-mailchimp-order.php index 25976b39..8ca03d51 100644 --- a/includes/api/assets/class-mailchimp-order.php +++ b/includes/api/assets/class-mailchimp-order.php @@ -13,7 +13,6 @@ class MailChimp_WooCommerce_Order { protected $id = null; protected $landing_site = null; protected $customer = null; - protected $campaign_id = null; protected $financial_status = null; protected $fulfillment_status = null; protected $currency_code = null; @@ -113,7 +112,6 @@ public function getValidation() { 'id' => 'required|string', 'landing_site' => 'required|string', 'customer' => 'required', - 'campaign_id' => 'string', 'financial_status' => 'string', 'fulfillment_status' => 'string', 'currency_code' => 'required|currency_code', @@ -221,35 +219,6 @@ public function items() { return $this->lines; } - /** - * @return null - */ - public function getCampaignId() { - // if the campaign ID is empty, let's try to pull the last clicked campaign from Mailchimp. - if (empty($this->campaign_id)) { - $job = new MailChimp_WooCommerce_Pull_Last_Campaign($this->getCustomer()->getEmailAddress()); - $this->campaign_id = $job->handle(); - } - return $this->campaign_id; - } - - /** - * @param $id - * - * @return $this - * @throws MailChimp_WooCommerce_Error - * @throws MailChimp_WooCommerce_RateLimitError - * @throws MailChimp_WooCommerce_ServerError - */ - public function setCampaignId( $id ) { - $api = MailChimp_WooCommerce_MailChimpApi::getInstance(); - $cid = trim( $id ); - if ( ! empty( $cid ) && $campaign = $api->getCampaign( $cid, false ) ) { - $this->campaign_id = $campaign['id']; - } - return $this; - } - /** * @return null */ @@ -591,15 +560,12 @@ public function getTrackingCarrier() { * @return array */ public function toArray() { - $campaign_id = (string) $this->getCampaignId(); $this->setTrackingInfo(); return mailchimp_array_remove_empty( array( 'id' => (string) $this->getId(), 'landing_site' => (string) $this->getLandingSite(), 'customer' => $this->getCustomer()->toArray(), - // 'campaign_id' => (string) $this->getCampaignId(), - 'outreach' => $campaign_id ? array( 'id' => $campaign_id ) : null, 'financial_status' => (string) $this->getFinancialStatus(), 'fulfillment_status' => (string) $this->getFulfillmentStatus(), 'currency_code' => (string) $this->getCurrencyCode(), @@ -636,7 +602,6 @@ public function fromArray( array $data ) { $singles = array( 'id', 'landing_site', - 'campaign_id', 'financial_status', 'fulfillment_status', 'currency_code', @@ -685,11 +650,6 @@ public function fromArray( array $data ) { $this->setCustomer( $customer_object->fromArray( $data['customer'] ) ); } - // apply the campaign id from the response if there is one. - if (array_key_exists('outreach', $data) && !empty($data['outreach']) && array_key_exists('id', $data['outreach'])) { - $this->setCampaignId($data['outreach']['id']); - } - return $this; } /** diff --git a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php index c7206f55..4cc6981f 100644 --- a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php +++ b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php @@ -5,7 +5,6 @@ */ class MailChimp_WooCommerce_Transform_Orders { - public $campaign_id = null; protected $is_syncing = false; /** @@ -97,15 +96,6 @@ public function transform( $woo ) { $order->setId( $woo->get_order_number() ); - // if we have a campaign id let's set it now. - if ( ! empty( $this->campaign_id ) ) { - try { - $order->setCampaignId( $this->campaign_id ); - } catch ( Exception $e ) { - mailchimp_log( 'transform_order_set_campaign_id.error', 'No campaign added to order, with provided ID: ' . $this->campaign_id . ' :: ' . $e->getMessage() . ' :: in ' . $e->getFile() . ' :: on ' . $e->getLine() ); - } - } - $order->setProcessedAt( $woo->get_date_created()->setTimezone( new DateTimeZone( 'UTC' ) ) ); $order->setCurrencyCode( $woo->get_currency() ); diff --git a/includes/class-mailchimp-woocommerce-service.php b/includes/class-mailchimp-woocommerce-service.php index 96c27493..bd4e5c14 100644 --- a/includes/class-mailchimp-woocommerce-service.php +++ b/includes/class-mailchimp-woocommerce-service.php @@ -92,16 +92,6 @@ public function onNewOrder($order_id) return; } - // see if we have a session id and a campaign id, also only do this when this user is not the admin. - $campaign_id = $this->getCampaignTrackingID(); - if (empty($campaign_id)) { - $campaign_id = $order->get_meta('mailchimp_woocommerce_campaign_id'); - // make sure this campaign ID has a valid format before we submit something - if (!$this->campaignIdMatchesFormat($campaign_id)) { - $campaign = null; - } - } - // grab the landing site cookie if we have one here. $landing_site = $this->getLandingSiteCookie(); if (empty($landing_site)) { @@ -116,7 +106,6 @@ public function onNewOrder($order_id) $this->clearCartData(); return array ( - 'campaign_id' => $campaign_id, 'landing_site' => $landing_site ); } @@ -129,7 +118,7 @@ public function onNewOrder($order_id) public function handleOrderStatusChanged($order_id, $old_status, $new_status) { if (!mailchimp_is_configured()) return; - + $tracking = null; $newOrder = false; @@ -150,9 +139,8 @@ public function handleOrderStatusChanged($order_id, $old_status, $new_status) */ public function onOrderSave($order_id, $tracking = null, $newOrder = null) { - if (!mailchimp_is_configured()) return; + if (!mailchimp_is_configured()) return; // queue up the single order to be processed. - $campaign_id = isset($tracking) && isset($tracking['campaign_id']) ? $tracking['campaign_id'] : null; $landing_site = isset($tracking) && isset($tracking['landing_site']) ? $tracking['landing_site'] : null; $language = $newOrder ? substr( get_locale(), 0, 2 ) : null; @@ -162,11 +150,7 @@ public function onOrderSave($order_id, $tracking = null, $newOrder = null) $is_subscribed = isset($_POST['mailchimp_woocommerce_newsletter']) ? (bool) $_POST['mailchimp_woocommerce_newsletter'] : false; - // update the post meta with campaign tracking and landing site details - if (!empty($campaign_id)) { - MailChimp_WooCommerce_HPOS::update_order_meta($order_id,'mailchimp_woocommerce_campaign_id', $campaign_id); - //update_post_meta($order_id, 'mailchimp_woocommerce_campaign_id', $campaign_id); - } + // update the post meta with landing site details if (!empty($landing_site)) { MailChimp_WooCommerce_HPOS::update_order_meta($order_id, 'mailchimp_woocommerce_landing_site', $landing_site); //update_post_meta($order_id, 'mailchimp_woocommerce_landing_site', $landing_site); @@ -182,7 +166,7 @@ public function onOrderSave($order_id, $tracking = null, $newOrder = null) MailChimp_WooCommerce_HPOS::update_order_meta($order_id, 'mailchimp_woocommerce_is_subscribed', $is_subscribed); } - $handler = new MailChimp_WooCommerce_Single_Order($order_id, null, $campaign_id, $landing_site, $language, $gdpr_fields); + $handler = new MailChimp_WooCommerce_Single_Order($order_id, null, $landing_site, $language, $gdpr_fields); $handler->is_update = $newOrder ? !$newOrder : null; $handler->is_admin_save = is_admin(); @@ -287,14 +271,11 @@ public function handleCartUpdated($updated = null) $this->cart_was_submitted = true; - // grab the cookie data that could play important roles in the submission - $campaign = $this->getCampaignTrackingID(); - // get user language or default to admin main language $language = $this->user_language ?: substr(get_locale(), 0, 2); - + // fire up the job handler - $handler = new MailChimp_WooCommerce_Cart_Update($uid, $user_email, $campaign, $this->cart, $language); + $handler = new MailChimp_WooCommerce_Cart_Update($uid, $user_email, $this->cart, $language); // if they had the checkbox checked - go ahead and subscribe them if this is the first post. //$handler->setStatus($this->cart_subscribe); @@ -525,7 +506,7 @@ public function handleOrderUpdate($order_id, $order = null) { */ public function handlePostTrashed($post_id) { - if (!mailchimp_is_configured()) return; + if (!mailchimp_is_configured()) return; switch (MailChimp_WooCommerce_HPOS::get_type($post_id)) { case 'shop_coupon': try { @@ -553,7 +534,7 @@ public function handlePostTrashed($post_id) * @return void */ public function handlePostRestored($post_id) - { + { if (!mailchimp_is_configured() || !($post = MailChimp_WooCommerce_HPOS::get_type( $post_id ))) { return; } @@ -562,7 +543,7 @@ public function handlePostRestored($post_id) if (in_array($post->post_status, array('trash', 'auto-draft', 'draft', 'pending'))) { return; } - + switch(get_post_type($post_id)) { case 'shop_coupon': $this->handleCouponRestored($post_id); @@ -583,7 +564,7 @@ public function handleUserRegistration($user_id) $subscribed = (bool) isset($_POST['mailchimp_woocommerce_newsletter']) && $_POST['mailchimp_woocommerce_newsletter']; if (isset($_POST['mailchimp_woocommerce_newsletter']) && $_POST['mailchimp_woocommerce_newsletter']) { - $gdpr_fields = isset($_POST['mailchimp_woocommerce_gdpr']) ? + $gdpr_fields = isset($_POST['mailchimp_woocommerce_gdpr']) ? $_POST['mailchimp_woocommerce_gdpr'] : false; } else { $gdpr_fields = null; @@ -753,72 +734,6 @@ public function handleCampaignTracking() } } - /** - * @return mixed|null - */ - public function getCampaignTrackingID() - { - if ($this->isAdmin()) { - return false; - } - - $cookie = $this->cookie('mailchimp_campaign_id', false); - - if (empty($cookie)) { - $cookie = $this->getWooSession('mailchimp_campaign_id', false); - } - - // we must follow a pattern at minimum in order to think this is possibly a valid campaign ID. - if (!$this->campaignIdMatchesFormat($cookie)) { - return false; - } - - return $cookie; - } - - /** - * @param $id - * @param $cookie_duration - * - * @return $this - * @throws MailChimp_WooCommerce_Error - * @throws MailChimp_WooCommerce_RateLimitError - * @throws MailChimp_WooCommerce_ServerError - */ - public function setCampaignTrackingID($id, $cookie_duration) - { - if (!mailchimp_is_configured()) { - return $this; - } - - $cid = trim($id); - - // we must follow a pattern at minimum in order to think this is possibly a valid campaign ID. - if (!$this->campaignIdMatchesFormat($cid)) { - return $this; - } - - // don't throw the error if it's not found. - if (!$this->api()->getCampaign($cid, false)) { - $cid = null; - } - - mailchimp_set_cookie('mailchimp_campaign_id', $cid, $cookie_duration, '/' ); - $this->setWooSession('mailchimp_campaign_id', $cid); - - return $this; - } - - /** - * @param $cid - * @return bool - */ - public function campaignIdMatchesFormat($cid) - { - if (!is_string($cid) || empty($cid)) return false; - return (bool) preg_match("/^[a-zA-Z0-9]{10,12}$/", $cid, $matches); - } - /** * @return bool * Checks if the current request is a WP REST API request. @@ -868,12 +783,12 @@ public function setLandingSiteCookie() // grab the current landing url since it's a referral. $landing_site = home_url() . wp_unslash($_SERVER['REQUEST_URI']); - + // Catch all possible file requests to avoid false positives // We need to catch just real pages of the website // Catching images, videos and fonts file types preg_match("/^.*\.(ai|bmp|gif|ico|jpeg|jpg|png|ps|psd|svg|tif|tiff|fnt|fon|otf|ttf|3g2|3gp|avi|flv|h264|m4v|mkv|mov|mp4|mpg|mpeg|rm|swf|vob|wmv|aif|cda|mid|midi|mp3|mpa|ogg|wav|wma|wpl)$/i", $landing_site, $matches); - + if (!empty($landing_site) && !wp_doing_ajax() && ( count($matches) == 0 ) && !$this->is_rest() ) { mailchimp_set_cookie('mailchimp_landing_site', $landing_site, $this->getCookieDuration(), '/' ); $this->setWooSession('mailchimp_landing_site', $landing_site); @@ -1240,23 +1155,23 @@ public function mailchimp_process_single_job($obj_id = null) { global $wpdb; $sql = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mailchimp_jobs WHERE obj_id = %s", $obj_id ); $job_row = $wpdb->get_row( $sql ); - + if (is_null($job_row) || !is_object($job_row)) { mailchimp_error('action_scheduler.process_job.fail','Job '.current_action().' not found at '.$wpdb->prefix.'_mailchimp_jobs database table :: obj_id '.$obj_id); return false; } // get variables $job = unserialize($job_row->job); - + $job_id =$job_row->id; // process job $job->handle(); - + // delete processed job $sql = $wpdb->prepare("DELETE FROM {$wpdb->prefix}mailchimp_jobs WHERE id = %s AND obj_id = %s", array($job_id, $obj_id)); $wpdb->query($sql); - + return true; } catch (Exception $e) { $message = !empty($e->getMessage()) ? ' - ' . $e->getMessage() :''; diff --git a/includes/processes/class-mailchimp-woocommerce-cart-update.php b/includes/processes/class-mailchimp-woocommerce-cart-update.php index 5d377eea..d0118634 100644 --- a/includes/processes/class-mailchimp-woocommerce-cart-update.php +++ b/includes/processes/class-mailchimp-woocommerce-cart-update.php @@ -13,7 +13,6 @@ class MailChimp_WooCommerce_Cart_Update extends Mailchimp_Woocommerce_Job public $id; public $email; public $previous_email; - public $campaign_id; public $cart_data; public $ip_address; public $user_language; @@ -25,11 +24,10 @@ class MailChimp_WooCommerce_Cart_Update extends Mailchimp_Woocommerce_Job * * @param null $uid * @param null $email - * @param null $campaign_id * @param array $cart_data * @param null $user_language */ - public function __construct($uid = null, $email = null, $campaign_id = null, array $cart_data = array(), $user_language = null) + public function __construct($uid = null, $email = null, array $cart_data = array(), $user_language = null) { if ($uid) { $this->id = $uid; @@ -41,10 +39,6 @@ public function __construct($uid = null, $email = null, $campaign_id = null, arr $this->cart_data = json_encode($cart_data); } - if ($campaign_id) { - $this->campaign_id = $campaign_id; - } - if ($user_language) { $this->user_language = $user_language; } @@ -127,15 +121,6 @@ public function process() $cart = new MailChimp_WooCommerce_Cart(); $cart->setId($this->id); - // if we have a campaign id let's set it now. - if (!empty($this->campaign_id)) { - try { - $cart->setCampaignID($this->campaign_id, true); - } catch (Exception $e) { - mailchimp_log('cart_set_campaign_id.error', 'No campaign added to abandoned cart, with provided ID: '. $this->campaign_id. ' :: '. $e->getMessage(). ' :: in '.$e->getFile().' :: on '.$e->getLine()); - } - } - $cart->setCheckoutUrl($checkout_url); $cart->setCurrencyCode(); diff --git a/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php b/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php deleted file mode 100644 index 08b7df99..00000000 --- a/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php +++ /dev/null @@ -1,95 +0,0 @@ -email = $email; - $this->cache_for = $cache_for; - $this->member_activity = null; - } - - /** - * @return string|null - */ - public function handle() - { - if (!is_email($this->email)) { - return null; - } - - try { - $list_id = mailchimp_get_list_id(); - $md5 = md5(trim(strtolower($this->email))); - // if we have a cached value ( anything from the last 30 days ) use this because it won. - if ($this->cache_for > 0 && ($cached = mailchimp_get_transient("last_click.{$md5}"))) { - return $cached; - } - // pull the list member's activity from Mailchimp - $this->member_activity = mailchimp_get_api()->activity($list_id, $this->email); - // make sure the response id valid. - if (is_array($this->member_activity) && array_key_exists('activity',$this->member_activity) && is_array($this->member_activity['activity'])) { - // loop through each activity item - foreach ($this->member_activity['activity'] as $item) { - // try to find a "click" event - if ((isset($item['action']) && $item['action'] === 'click') && isset($item['url'])) { - // get the number of seconds since the button click - $diff = (int) abs( strtotime('now') - (int) $item['timestamp'] ); - // and as long as it's less than 30 days ago we use this. ( 86400 seconds in a day ) - if ((int) round($diff/86400) < 31) { - // store it in the cache for faster use later. - mailchimp_set_transient("last_click.{$md5}", $item['campaign_id'], ($this->cache_for*60)); - // grab the clicked URL, the date, and the campaign ID. - $this->clicked_url = $item['url']; - $this->click_date = new \DateTime($item['timestamp']); - // return the actual campaign ID to attach to the order - return $this->campaign_id = $item['campaign_id']; - } - } - } - } - } catch (\Exception $e) { - - } - - return null; - } - - /** - * @return bool|\DateTime - */ - public function getClickDate() - { - return $this->click_date; - } - - /** - * @return bool|string - */ - public function getClickedURL() - { - return $this->clicked_url; - } - - /** - * @return bool|mixed - */ - public function getCampaignID() - { - return $this->campaign_id; - } -} diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index 3b878ac5..f628fadd 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -14,7 +14,6 @@ class MailChimp_WooCommerce_Single_Order extends Mailchimp_Woocommerce_Job { public $id; public $cart_session_id; - public $campaign_id; public $landing_site; public $user_language; public $is_update = false; @@ -31,16 +30,14 @@ class MailChimp_WooCommerce_Single_Order extends Mailchimp_Woocommerce_Job * * @param null $id * @param null $cart_session_id - * @param null $campaign_id * @param null $landing_site * @param null $user_language * @param null $gdpr_fields */ - public function __construct($id = null, $cart_session_id = null, $campaign_id = null, $landing_site = null, $user_language = null, $gdpr_fields = null) + public function __construct($id = null, $cart_session_id = null, $landing_site = null, $user_language = null, $gdpr_fields = null) { if (!empty($id)) $this->id = $id; if (!empty($cart_session_id)) $this->cart_session_id = $cart_session_id; - if (!empty($campaign_id)) $this->campaign_id = $campaign_id; if (!empty($landing_site)) $this->landing_site = $landing_site; if (!empty($user_language)) $this->user_language = $user_language; if (!empty($gdpr_fields)) $this->gdpr_fields = $gdpr_fields; @@ -118,9 +115,6 @@ public function process() $job = new MailChimp_WooCommerce_Transform_Orders(); - // set the campaign ID - $job->campaign_id = $this->campaign_id; - try { $call = ($api_response = $api->getStoreOrder($store_id, $woo_order_number, true)) ? 'updateStoreOrder' : 'addStoreOrder'; } catch (Exception $e) { @@ -141,15 +135,13 @@ public function process() // if we already pushed this order into the system, we need to unset it now just in case there // was another campaign that had been sent and this was only an order update. if (!$new_order) { - $job->campaign_id = null; - $this->campaign_id = null; $this->landing_site = null; } $email = null; // will either add or update the order - try { + try { if (!($order_post = MailChimp_WooCommerce_HPOS::get_order($this->id))) { return false; } @@ -262,18 +254,6 @@ public function process() // will be the same as the customer id. an md5'd hash of a lowercased email. $this->cart_session_id = $order->getCustomer()->getId(); - // see if we have a campaign ID already from the order transformer / cookie. - $campaign_id = $order->getCampaignId(); - - // if the campaign ID is empty, and we have a cart session id - if (empty($campaign_id) && !empty($this->cart_session_id)) { - // pull the cart info from Mailchimp - if (($abandoned_cart_record = $api->getCart($store_id, $this->cart_session_id))) { - // set the campaign ID - $order->setCampaignId($this->campaign_id = $abandoned_cart_record->getCampaignID()); - } - } - if ($order->getOriginalWooStatus() !== 'pending') { // delete the AC cart record. $deleted_abandoned_cart = !empty($this->cart_session_id) && $api->deleteCartByID($store_id, $this->cart_session_id); @@ -320,53 +300,12 @@ public function process() $log = "$call :: #{$order->getId()} :: email: {$email}"; - // if we have the saved order meta from previous syncs let's use it. - // This should help with reporting after people may have disconnected and reconnected to a new store. - if ($saved = $order_post->get_meta('mailchimp_woocommerce_campaign_id') ) { - $this->campaign_id = $saved; - } // only do this stuff on new orders - if ($new_order) { - - // if the campaign ID is empty, let's try to pull the last clicked campaign from Mailchimp. - // but only do this if we're not in a syncing status. - if (empty($this->campaign_id) && !$this->is_full_sync) { - // see if we have a saved version - // pull the last clicked campaign for this email address - $job = new MailChimp_WooCommerce_Pull_Last_Campaign($email); - $job->handle(); - - /// get the click date - $clicked = $job->getClickDate(); - $processed = $order->getProcessedAtDate(); - - // if the order was placed after the click event we can assign the campaign id. - if ($clicked && $processed && $processed->getTimestamp() > $clicked->getTimestamp()) { - $this->campaign_id = $job->getCampaignID(); - mailchimp_debug('campaign_id', "Order {$order->getId()} pulled mailchimp user activity for {$email} and found campaign {$this->campaign_id}, clicked on {$clicked->format( 'Y-m-d H:i:s' )}"); - } - } - - // apply a campaign id if we have one. - if (!empty($this->campaign_id)) { - try { - $order->setCampaignId($this->campaign_id); - $log .= ' :: campaign id ' . $this->campaign_id; - // save it for later if we don't have this value. - MailChimp_WooCommerce_HPOS::update_order_meta($order_post->get_id(), 'mailchimp_woocommerce_campaign_id', $campaign_id); - //update_post_meta($order_post->ID, 'mailchimp_woocommerce_campaign_id', $campaign_id); - } - catch (Exception $e) { - mailchimp_log('single_order_set_campaign_id.error', 'No campaign added to order, with provided ID: '. $this->campaign_id. ' :: '. $e->getMessage(). ' :: in '.$e->getFile().' :: on '.$e->getLine()); - } - } - - // apply the landing site if we have one. - if (!empty($this->landing_site)) { - $log .= ' :: landing site ' . $this->landing_site; - $order->setLandingSite($this->landing_site); - } - } + // apply the landing site if we have one. + if ( $new_order && ! empty( $this->landing_site ) ) { + $log .= ' :: landing site ' . $this->landing_site; + $order->setLandingSite($this->landing_site); + } if ($this->is_full_sync) { $line_items = $order->items(); @@ -446,7 +385,7 @@ public function process() if ($this->is_full_sync && $new_order) { // if the customer has a flag to double opt in - we need to push this data over to MailChimp as pending - //TODO: RYAN: this is the only place getOriginalSubscriberStatus() is called, but the iterate method uses another way. + //TODO: RYAN: this is the only place getOriginalSubscriberStatus() is called, but the iterate method uses another way. // mailchimp_update_member_with_double_opt_in($order, ($should_auto_subscribe || $status)); mailchimp_update_member_with_double_opt_in($order, ((isset($should_auto_subscribe) && $should_auto_subscribe) || $order->getCustomer()->getOriginalSubscriberStatus())); } @@ -467,7 +406,7 @@ public function process() $message = strtolower($e->getMessage()); mailchimp_error('order_submit.tracing_error', $e); if (!isset($order)) { - // transform the order + // transform the order $order = MailChimp_WooCommerce_HPOS::get_order($this->id); /*$order = $job->transform(get_post($this->id));*/ $this->cart_session_id = $order->getCustomer()->getId(); @@ -481,9 +420,6 @@ public function process() // update or create $api_response = $api->$call($store_id, $order, false); $log = "Deleted Customer :: $call :: #{$order->getId()} :: email: {$email}"; - if (!empty($job->campaign_id)) { - $log .= ' :: campaign id '.$job->campaign_id; - } mailchimp_log('order_submit.success', $log); // if we're adding a new order and the session id is here, we need to delete the AC cart record. if (!empty($this->cart_session_id)) { @@ -503,7 +439,7 @@ public function process() */ public function getRealOrderNumber() { - try { + try { if (empty($this->id) || !($order_post = MailChimp_WooCommerce_HPOS::get_order($this->id))) { return false; } From a67ad3d994296879b5b5fbb4d965a168a6f065dd Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Wed, 29 Nov 2023 11:23:23 -0500 Subject: [PATCH 44/57] tower support url --- .../api/class-mailchimp-woocommerce-tower.php | 2 +- .../class-mailchimp-woocommerce-rest-api.php | 63 +------------------ 2 files changed, 2 insertions(+), 63 deletions(-) diff --git a/includes/api/class-mailchimp-woocommerce-tower.php b/includes/api/class-mailchimp-woocommerce-tower.php index b1742834..cfc10a40 100644 --- a/includes/api/class-mailchimp-woocommerce-tower.php +++ b/includes/api/class-mailchimp-woocommerce-tower.php @@ -672,7 +672,7 @@ public function toggle( $enable = true ) { $akamai_block = false; if ( (bool) $enable ) { - mailchimp_set_data( 'tower.token', $support_token = wp_generate_password() ); + mailchimp_set_data( 'tower.token', $support_token = wp_generate_password(12, false, false) ); } else { $support_token = mailchimp_get_data( 'tower.token' ); delete_option( 'mailchimp-woocommerce-tower.support_token' ); diff --git a/includes/class-mailchimp-woocommerce-rest-api.php b/includes/class-mailchimp-woocommerce-rest-api.php index b8c10221..e7deb5f7 100644 --- a/includes/class-mailchimp-woocommerce-rest-api.php +++ b/includes/class-mailchimp-woocommerce-rest-api.php @@ -11,7 +11,7 @@ class MailChimp_WooCommerce_Rest_Api */ public static function url($path) { - return esc_url_raw(static::mc_get_rest_url(static::$namespace.'/'.ltrim($path, '/'))); + return esc_url_raw(rest_url(static::$namespace.'/'.ltrim($path, '/'))); } /** * Register all Mailchimp API routes. @@ -798,65 +798,4 @@ private function getAuthQueryStringParam(WP_REST_Request $request) $params = $request->get_query_params(); return empty($params['auth']) ? false : $params['auth']; } - - /** - * Retrieves the URL to a REST endpoint on a site. - * - * Note: The returned URL is NOT escaped. - * - * @since 4.4.0 - * - * @todo Check if this is even necessary - * @global WP_Rewrite $wp_rewrite - * - * @param int $blog_id Optional. Blog ID. Default of null returns URL for current blog. - * @param string $path Optional. REST route. Default '/'. - * @param string $scheme Optional. Sanitization scheme. Default 'rest'. - * @return string Full URL to the endpoint. - */ - private static function mc_get_rest_url( $blog_id = null, $path = '/', $scheme = 'rest' ) { - if ( empty( $path ) ) { - $path = '/'; - } - - if ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) || get_option( 'permalink_structure' ) ) { - global $wp_rewrite; - - // for some reason this global is not available - causing errors. - if (!empty($wp_rewrite) && $wp_rewrite->using_index_permalinks() ) { - $url = get_home_url( $blog_id, $wp_rewrite->index . '/' . rest_get_url_prefix(), $scheme ); - } else { - $url = get_home_url( $blog_id, rest_get_url_prefix(), $scheme ); - } - - $url .= '/' . ltrim( $path, '/' ); - } else { - $url = trailingslashit( get_home_url( $blog_id, '', $scheme ) ); - - $path = '/' . ltrim( $path, '/' ); - - $url = add_query_arg( 'rest_route', $path, $url ); - } - - if ( is_ssl() ) { - // If the current host is the same as the REST URL host, force the REST URL scheme to HTTPS. - if ( $_SERVER['SERVER_NAME'] === parse_url( get_home_url( $blog_id ), PHP_URL_HOST ) ) { - $url = set_url_scheme( $url, 'https' ); - } - } - - /** - * Filters the REST URL. - * - * Use this filter to adjust the url returned by the get_rest_url() function. - * - * @since 4.4.0 - * - * @param string $url REST URL. - * @param string $path REST route. - * @param int $blog_id Blog ID. - * @param string $scheme Sanitization scheme. - */ - return apply_filters( 'rest_url', $url, $path, $blog_id, $scheme ); - } } \ No newline at end of file From c02eb4978244c0e6b0fd56d99f0af6b1a3ba4554 Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 30 Nov 2023 11:25:43 +0200 Subject: [PATCH 45/57] Reverted some functionals with campaign id --- bootstrap.php | 1 + includes/api/assets/class-mailchimp-order.php | 40 ++++++++ ...chimp-woocommerce-transform-orders-wc3.php | 10 ++ ...ilchimp-woocommerce-pull-last-campaign.php | 95 +++++++++++++++++++ ...ass-mailchimp-woocommerce-single-order.php | 3 + 5 files changed, 149 insertions(+) create mode 100644 includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php diff --git a/bootstrap.php b/bootstrap.php index 6c5f42f5..f826de70 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -68,6 +68,7 @@ 'MailChimp_WooCommerce_Process_Full_Sync_Manager' => 'includes/processes/class-mailchimp-woocommerce-full-sync-manager.php', 'MailChimp_WooCommerce_Subscriber_Sync' => 'includes/processes/class-mailchimp-woocommerce-subscriber-sync.php', 'MailChimp_WooCommerce_WebHooks_Sync' => 'includes/processes/class-mailchimp-woocommerce-webhooks-sync.php', + 'MailChimp_WooCommerce_Pull_Last_Campaign' => 'includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php', 'MailChimp_WooCommerce_Public' => 'public/class-mailchimp-woocommerce-public.php', 'MailChimp_WooCommerce_Admin' => 'admin/class-mailchimp-woocommerce-admin.php', diff --git a/includes/api/assets/class-mailchimp-order.php b/includes/api/assets/class-mailchimp-order.php index 8ca03d51..25976b39 100644 --- a/includes/api/assets/class-mailchimp-order.php +++ b/includes/api/assets/class-mailchimp-order.php @@ -13,6 +13,7 @@ class MailChimp_WooCommerce_Order { protected $id = null; protected $landing_site = null; protected $customer = null; + protected $campaign_id = null; protected $financial_status = null; protected $fulfillment_status = null; protected $currency_code = null; @@ -112,6 +113,7 @@ public function getValidation() { 'id' => 'required|string', 'landing_site' => 'required|string', 'customer' => 'required', + 'campaign_id' => 'string', 'financial_status' => 'string', 'fulfillment_status' => 'string', 'currency_code' => 'required|currency_code', @@ -219,6 +221,35 @@ public function items() { return $this->lines; } + /** + * @return null + */ + public function getCampaignId() { + // if the campaign ID is empty, let's try to pull the last clicked campaign from Mailchimp. + if (empty($this->campaign_id)) { + $job = new MailChimp_WooCommerce_Pull_Last_Campaign($this->getCustomer()->getEmailAddress()); + $this->campaign_id = $job->handle(); + } + return $this->campaign_id; + } + + /** + * @param $id + * + * @return $this + * @throws MailChimp_WooCommerce_Error + * @throws MailChimp_WooCommerce_RateLimitError + * @throws MailChimp_WooCommerce_ServerError + */ + public function setCampaignId( $id ) { + $api = MailChimp_WooCommerce_MailChimpApi::getInstance(); + $cid = trim( $id ); + if ( ! empty( $cid ) && $campaign = $api->getCampaign( $cid, false ) ) { + $this->campaign_id = $campaign['id']; + } + return $this; + } + /** * @return null */ @@ -560,12 +591,15 @@ public function getTrackingCarrier() { * @return array */ public function toArray() { + $campaign_id = (string) $this->getCampaignId(); $this->setTrackingInfo(); return mailchimp_array_remove_empty( array( 'id' => (string) $this->getId(), 'landing_site' => (string) $this->getLandingSite(), 'customer' => $this->getCustomer()->toArray(), + // 'campaign_id' => (string) $this->getCampaignId(), + 'outreach' => $campaign_id ? array( 'id' => $campaign_id ) : null, 'financial_status' => (string) $this->getFinancialStatus(), 'fulfillment_status' => (string) $this->getFulfillmentStatus(), 'currency_code' => (string) $this->getCurrencyCode(), @@ -602,6 +636,7 @@ public function fromArray( array $data ) { $singles = array( 'id', 'landing_site', + 'campaign_id', 'financial_status', 'fulfillment_status', 'currency_code', @@ -650,6 +685,11 @@ public function fromArray( array $data ) { $this->setCustomer( $customer_object->fromArray( $data['customer'] ) ); } + // apply the campaign id from the response if there is one. + if (array_key_exists('outreach', $data) && !empty($data['outreach']) && array_key_exists('id', $data['outreach'])) { + $this->setCampaignId($data['outreach']['id']); + } + return $this; } /** diff --git a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php index 4cc6981f..c7206f55 100644 --- a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php +++ b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php @@ -5,6 +5,7 @@ */ class MailChimp_WooCommerce_Transform_Orders { + public $campaign_id = null; protected $is_syncing = false; /** @@ -96,6 +97,15 @@ public function transform( $woo ) { $order->setId( $woo->get_order_number() ); + // if we have a campaign id let's set it now. + if ( ! empty( $this->campaign_id ) ) { + try { + $order->setCampaignId( $this->campaign_id ); + } catch ( Exception $e ) { + mailchimp_log( 'transform_order_set_campaign_id.error', 'No campaign added to order, with provided ID: ' . $this->campaign_id . ' :: ' . $e->getMessage() . ' :: in ' . $e->getFile() . ' :: on ' . $e->getLine() ); + } + } + $order->setProcessedAt( $woo->get_date_created()->setTimezone( new DateTimeZone( 'UTC' ) ) ); $order->setCurrencyCode( $woo->get_currency() ); diff --git a/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php b/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php new file mode 100644 index 00000000..08b7df99 --- /dev/null +++ b/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php @@ -0,0 +1,95 @@ +email = $email; + $this->cache_for = $cache_for; + $this->member_activity = null; + } + + /** + * @return string|null + */ + public function handle() + { + if (!is_email($this->email)) { + return null; + } + + try { + $list_id = mailchimp_get_list_id(); + $md5 = md5(trim(strtolower($this->email))); + // if we have a cached value ( anything from the last 30 days ) use this because it won. + if ($this->cache_for > 0 && ($cached = mailchimp_get_transient("last_click.{$md5}"))) { + return $cached; + } + // pull the list member's activity from Mailchimp + $this->member_activity = mailchimp_get_api()->activity($list_id, $this->email); + // make sure the response id valid. + if (is_array($this->member_activity) && array_key_exists('activity',$this->member_activity) && is_array($this->member_activity['activity'])) { + // loop through each activity item + foreach ($this->member_activity['activity'] as $item) { + // try to find a "click" event + if ((isset($item['action']) && $item['action'] === 'click') && isset($item['url'])) { + // get the number of seconds since the button click + $diff = (int) abs( strtotime('now') - (int) $item['timestamp'] ); + // and as long as it's less than 30 days ago we use this. ( 86400 seconds in a day ) + if ((int) round($diff/86400) < 31) { + // store it in the cache for faster use later. + mailchimp_set_transient("last_click.{$md5}", $item['campaign_id'], ($this->cache_for*60)); + // grab the clicked URL, the date, and the campaign ID. + $this->clicked_url = $item['url']; + $this->click_date = new \DateTime($item['timestamp']); + // return the actual campaign ID to attach to the order + return $this->campaign_id = $item['campaign_id']; + } + } + } + } + } catch (\Exception $e) { + + } + + return null; + } + + /** + * @return bool|\DateTime + */ + public function getClickDate() + { + return $this->click_date; + } + + /** + * @return bool|string + */ + public function getClickedURL() + { + return $this->clicked_url; + } + + /** + * @return bool|mixed + */ + public function getCampaignID() + { + return $this->campaign_id; + } +} diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index f628fadd..44896447 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -420,6 +420,9 @@ public function process() // update or create $api_response = $api->$call($store_id, $order, false); $log = "Deleted Customer :: $call :: #{$order->getId()} :: email: {$email}"; + if ( ! empty( $api_response->campaign_id ) ) { + $log .= ' :: campaign id ' . $api_response->campaign_id; + } mailchimp_log('order_submit.success', $log); // if we're adding a new order and the session id is here, we need to delete the AC cart record. if (!empty($this->cart_session_id)) { From 6bea77d0f0c214d8d89944d9d76d3a200d267b4f Mon Sep 17 00:00:00 2001 From: tarassych Date: Thu, 30 Nov 2023 15:58:19 +0200 Subject: [PATCH 46/57] Removed campaign_id attribute v2 --- bootstrap.php | 1 - includes/api/assets/class-mailchimp-order.php | 31 ++---- ...chimp-woocommerce-transform-orders-wc3.php | 10 -- ...ilchimp-woocommerce-pull-last-campaign.php | 95 ------------------- ...ass-mailchimp-woocommerce-single-order.php | 3 - 5 files changed, 6 insertions(+), 134 deletions(-) delete mode 100644 includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php diff --git a/bootstrap.php b/bootstrap.php index f826de70..6c5f42f5 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -68,7 +68,6 @@ 'MailChimp_WooCommerce_Process_Full_Sync_Manager' => 'includes/processes/class-mailchimp-woocommerce-full-sync-manager.php', 'MailChimp_WooCommerce_Subscriber_Sync' => 'includes/processes/class-mailchimp-woocommerce-subscriber-sync.php', 'MailChimp_WooCommerce_WebHooks_Sync' => 'includes/processes/class-mailchimp-woocommerce-webhooks-sync.php', - 'MailChimp_WooCommerce_Pull_Last_Campaign' => 'includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php', 'MailChimp_WooCommerce_Public' => 'public/class-mailchimp-woocommerce-public.php', 'MailChimp_WooCommerce_Admin' => 'admin/class-mailchimp-woocommerce-admin.php', diff --git a/includes/api/assets/class-mailchimp-order.php b/includes/api/assets/class-mailchimp-order.php index 25976b39..f0598cd9 100644 --- a/includes/api/assets/class-mailchimp-order.php +++ b/includes/api/assets/class-mailchimp-order.php @@ -113,7 +113,6 @@ public function getValidation() { 'id' => 'required|string', 'landing_site' => 'required|string', 'customer' => 'required', - 'campaign_id' => 'string', 'financial_status' => 'string', 'fulfillment_status' => 'string', 'currency_code' => 'required|currency_code', @@ -225,28 +224,17 @@ public function items() { * @return null */ public function getCampaignId() { - // if the campaign ID is empty, let's try to pull the last clicked campaign from Mailchimp. - if (empty($this->campaign_id)) { - $job = new MailChimp_WooCommerce_Pull_Last_Campaign($this->getCustomer()->getEmailAddress()); - $this->campaign_id = $job->handle(); - } return $this->campaign_id; } /** - * @param $id + * @param $campaign_id * * @return $this - * @throws MailChimp_WooCommerce_Error - * @throws MailChimp_WooCommerce_RateLimitError - * @throws MailChimp_WooCommerce_ServerError - */ - public function setCampaignId( $id ) { - $api = MailChimp_WooCommerce_MailChimpApi::getInstance(); - $cid = trim( $id ); - if ( ! empty( $cid ) && $campaign = $api->getCampaign( $cid, false ) ) { - $this->campaign_id = $campaign['id']; - } + */ + public function setCampaignId( $campaign_id ) { + $this->campaign_id = $campaign_id; + return $this; } @@ -598,8 +586,7 @@ public function toArray() { 'id' => (string) $this->getId(), 'landing_site' => (string) $this->getLandingSite(), 'customer' => $this->getCustomer()->toArray(), - // 'campaign_id' => (string) $this->getCampaignId(), - 'outreach' => $campaign_id ? array( 'id' => $campaign_id ) : null, + 'campaign_id' => $campaign_id, 'financial_status' => (string) $this->getFinancialStatus(), 'fulfillment_status' => (string) $this->getFulfillmentStatus(), 'currency_code' => (string) $this->getCurrencyCode(), @@ -636,7 +623,6 @@ public function fromArray( array $data ) { $singles = array( 'id', 'landing_site', - 'campaign_id', 'financial_status', 'fulfillment_status', 'currency_code', @@ -685,11 +671,6 @@ public function fromArray( array $data ) { $this->setCustomer( $customer_object->fromArray( $data['customer'] ) ); } - // apply the campaign id from the response if there is one. - if (array_key_exists('outreach', $data) && !empty($data['outreach']) && array_key_exists('id', $data['outreach'])) { - $this->setCampaignId($data['outreach']['id']); - } - return $this; } /** diff --git a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php index c7206f55..4cc6981f 100644 --- a/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php +++ b/includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php @@ -5,7 +5,6 @@ */ class MailChimp_WooCommerce_Transform_Orders { - public $campaign_id = null; protected $is_syncing = false; /** @@ -97,15 +96,6 @@ public function transform( $woo ) { $order->setId( $woo->get_order_number() ); - // if we have a campaign id let's set it now. - if ( ! empty( $this->campaign_id ) ) { - try { - $order->setCampaignId( $this->campaign_id ); - } catch ( Exception $e ) { - mailchimp_log( 'transform_order_set_campaign_id.error', 'No campaign added to order, with provided ID: ' . $this->campaign_id . ' :: ' . $e->getMessage() . ' :: in ' . $e->getFile() . ' :: on ' . $e->getLine() ); - } - } - $order->setProcessedAt( $woo->get_date_created()->setTimezone( new DateTimeZone( 'UTC' ) ) ); $order->setCurrencyCode( $woo->get_currency() ); diff --git a/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php b/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php deleted file mode 100644 index 08b7df99..00000000 --- a/includes/processes/class-mailchimp-woocommerce-pull-last-campaign.php +++ /dev/null @@ -1,95 +0,0 @@ -email = $email; - $this->cache_for = $cache_for; - $this->member_activity = null; - } - - /** - * @return string|null - */ - public function handle() - { - if (!is_email($this->email)) { - return null; - } - - try { - $list_id = mailchimp_get_list_id(); - $md5 = md5(trim(strtolower($this->email))); - // if we have a cached value ( anything from the last 30 days ) use this because it won. - if ($this->cache_for > 0 && ($cached = mailchimp_get_transient("last_click.{$md5}"))) { - return $cached; - } - // pull the list member's activity from Mailchimp - $this->member_activity = mailchimp_get_api()->activity($list_id, $this->email); - // make sure the response id valid. - if (is_array($this->member_activity) && array_key_exists('activity',$this->member_activity) && is_array($this->member_activity['activity'])) { - // loop through each activity item - foreach ($this->member_activity['activity'] as $item) { - // try to find a "click" event - if ((isset($item['action']) && $item['action'] === 'click') && isset($item['url'])) { - // get the number of seconds since the button click - $diff = (int) abs( strtotime('now') - (int) $item['timestamp'] ); - // and as long as it's less than 30 days ago we use this. ( 86400 seconds in a day ) - if ((int) round($diff/86400) < 31) { - // store it in the cache for faster use later. - mailchimp_set_transient("last_click.{$md5}", $item['campaign_id'], ($this->cache_for*60)); - // grab the clicked URL, the date, and the campaign ID. - $this->clicked_url = $item['url']; - $this->click_date = new \DateTime($item['timestamp']); - // return the actual campaign ID to attach to the order - return $this->campaign_id = $item['campaign_id']; - } - } - } - } - } catch (\Exception $e) { - - } - - return null; - } - - /** - * @return bool|\DateTime - */ - public function getClickDate() - { - return $this->click_date; - } - - /** - * @return bool|string - */ - public function getClickedURL() - { - return $this->clicked_url; - } - - /** - * @return bool|mixed - */ - public function getCampaignID() - { - return $this->campaign_id; - } -} diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index 44896447..f628fadd 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -420,9 +420,6 @@ public function process() // update or create $api_response = $api->$call($store_id, $order, false); $log = "Deleted Customer :: $call :: #{$order->getId()} :: email: {$email}"; - if ( ! empty( $api_response->campaign_id ) ) { - $log .= ' :: campaign id ' . $api_response->campaign_id; - } mailchimp_log('order_submit.success', $log); // if we're adding a new order and the session id is here, we need to delete the AC cart record. if (!empty($this->cart_session_id)) { From c0a0734f5e8a07684eac19f3e1d7721e88485878 Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Thu, 30 Nov 2023 09:29:46 -0500 Subject: [PATCH 47/57] log the campaign ID if we have one on new order submission --- includes/api/assets/class-mailchimp-order.php | 11 +++++++---- .../class-mailchimp-woocommerce-single-order.php | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/includes/api/assets/class-mailchimp-order.php b/includes/api/assets/class-mailchimp-order.php index f0598cd9..2a93252c 100644 --- a/includes/api/assets/class-mailchimp-order.php +++ b/includes/api/assets/class-mailchimp-order.php @@ -579,14 +579,12 @@ public function getTrackingCarrier() { * @return array */ public function toArray() { - $campaign_id = (string) $this->getCampaignId(); $this->setTrackingInfo(); return mailchimp_array_remove_empty( array( 'id' => (string) $this->getId(), 'landing_site' => (string) $this->getLandingSite(), 'customer' => $this->getCustomer()->toArray(), - 'campaign_id' => $campaign_id, 'financial_status' => (string) $this->getFinancialStatus(), 'fulfillment_status' => (string) $this->getFulfillmentStatus(), 'currency_code' => (string) $this->getCurrencyCode(), @@ -671,13 +669,18 @@ public function fromArray( array $data ) { $this->setCustomer( $customer_object->fromArray( $data['customer'] ) ); } + // apply the campaign id from the response if there is one. + if (array_key_exists('outreach', $data) && !empty($data['outreach']) && array_key_exists('id', $data['outreach'])) { + $this->setCampaignId($data['outreach']['id']); + } + return $this; } /** * Set Tracking info before the job gets executed */ public function setTrackingInfo() { - // Support for woocomemrce shipment tracking plugin (https://woocommerce.com/products/shipment-tracking) + // Support for woocommerce shipment tracking plugin (https://woocommerce.com/products/shipment-tracking) if ( function_exists( 'wc_st_add_tracking_number' ) && class_exists( 'WC_Shipment_Tracking_Actions' ) ) { $trackings = get_post_meta( (int) $this->getId(), '_wc_shipment_tracking_items', true ); if ( empty( $trackings ) ) { @@ -700,7 +703,7 @@ public function setTrackingInfo() { } } - // Support for woocoomerce shipping plugin (https://woocommerce.com/woocommerce-shipping/) + // Support for woocommerce shipping plugin (https://woocommerce.com/woocommerce-shipping/) if ( class_exists( 'WC_Connect_Loader' ) ) { $label_data = get_post_meta( (int) $this->getId(), 'wc_connect_labels', true ); // return an empty array if the data doesn't exist. diff --git a/includes/processes/class-mailchimp-woocommerce-single-order.php b/includes/processes/class-mailchimp-woocommerce-single-order.php index f628fadd..482caede 100644 --- a/includes/processes/class-mailchimp-woocommerce-single-order.php +++ b/includes/processes/class-mailchimp-woocommerce-single-order.php @@ -344,11 +344,6 @@ public function process() $api->handleProductsMissingFromAPI($order); // make another attempt again to add the order. $api_response = $api->$call($store_id, $order, false); - } elseif (mailchimp_string_contains($e->getMessage(), 'campaign with the provided ID')) { - // the campaign was invalid, we need to remove it and re-submit - $order->setCampaignId(null); - // make another attempt again to add the order. - $api_response = $api->$call($store_id, $order, false); } else { throw $e; } @@ -363,6 +358,13 @@ public function process() $log .= " :: abandoned cart deleted [{$this->cart_session_id}]"; } + // log the campaign id if we have this value from the API response. + if ( $new_order && $api_response instanceof MailChimp_WooCommerce_Order ) { + if (($campaign_id = $api_response->getCampaignId()) && !empty($campaign_id)) { + $log .= " :: campaign id {$campaign_id}"; + } + } + // if we require double opt in on the list, and the customer requires double opt in, // we should mark them as pending so they get the opt in email now. if (mailchimp_list_has_double_optin()) { From 43da9e25509ee34f4c2837f099bc7f120ead977b Mon Sep 17 00:00:00 2001 From: Ryan Hungate Date: Thu, 30 Nov 2023 12:58:54 -0500 Subject: [PATCH 48/57] version bump --- bootstrap.php | 2 +- mailchimp-woocommerce.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap.php b/bootstrap.php index 6c5f42f5..2842d799 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -96,7 +96,7 @@ function mailchimp_environment_variables() { return (object) array( 'repo' => 'master', 'environment' => 'production', // staging or production - 'version' => '3.4', + 'version' => '3.5', 'php_version' => phpversion(), 'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version), 'wc_version' => function_exists('WC') ? WC()->version : null, diff --git a/mailchimp-woocommerce.php b/mailchimp-woocommerce.php index d4ec81fd..64996cfa 100644 --- a/mailchimp-woocommerce.php +++ b/mailchimp-woocommerce.php @@ -16,7 +16,7 @@ * Plugin Name: Mailchimp for WooCommerce * Plugin URI: https://mailchimp.com/connect-your-store/ * Description: Connects WooCommerce to Mailchimp to sync your store data, send targeted campaigns to your customers, and sell more stuff. - * Version: 3.4 + * Version: 3.5 * Author: Mailchimp * Author URI: https://mailchimp.com * License: GPL-2.0+ From dcf117b5a03f3bd6f985298d4fb66b90dd3353fd Mon Sep 17 00:00:00 2001 From: tarassych Date: Tue, 5 Dec 2023 15:40:03 +0200 Subject: [PATCH 49/57] Added "Continue to Mailchimp" button in admin --- admin/class-mailchimp-woocommerce-admin.php | 2 +- .../mailchimp-woocommerce-admin-settings.css | 14 ++++ .../mailchimp-woocommerce-admin-tabs.php | 79 ++++++++++--------- 3 files changed, 57 insertions(+), 38 deletions(-) diff --git a/admin/class-mailchimp-woocommerce-admin.php b/admin/class-mailchimp-woocommerce-admin.php index 42ed9cd4..99af505c 100644 --- a/admin/class-mailchimp-woocommerce-admin.php +++ b/admin/class-mailchimp-woocommerce-admin.php @@ -112,7 +112,7 @@ public function enqueue_styles( $hook ) { if ( get_bloginfo( 'version' ) < '5.3' ) { wp_enqueue_style( $this->plugin_name . '-settings', plugin_dir_url( __FILE__ ) . 'css/mailchimp-woocommerce-admin-settings-5.2.css', array(), $this->version ); } - wp_enqueue_style( $this->plugin_name . '-settings', plugin_dir_url( __FILE__ ) . 'css/mailchimp-woocommerce-admin-settings.css', array(), $this->version ); + wp_enqueue_style( $this->plugin_name . '-settings', plugin_dir_url( __FILE__ ) . 'css/mailchimp-woocommerce-admin-settings.css', array(), $this->version . '.01' ); wp_style_add_data( $this->plugin_name . '-settings', 'rtl', 'replace' ); } } diff --git a/admin/css/mailchimp-woocommerce-admin-settings.css b/admin/css/mailchimp-woocommerce-admin-settings.css index 036f75d7..11b9e595 100644 --- a/admin/css/mailchimp-woocommerce-admin-settings.css +++ b/admin/css/mailchimp-woocommerce-admin-settings.css @@ -125,6 +125,12 @@ a.button.back-step { padding-left: 58px; } +.mc-woocommerce-settings-subtitles-row { + display: flex; + align-items: center; + justify-content: space-between; +} + .mc-woocommerce-settings-subtitles { font-family: "proxima-nova", Arial, Helvetica, sans-serif; font-size: 22px !important; @@ -1228,6 +1234,14 @@ a.button.create-account { background: linear-gradient(0deg, rgba(255,255,255,0) 10%, rgba(255,255,255,0.6964986678265056) 36%, rgba(255,255,255,1) 100%); } +@media screen and (max-width: 960px) { + .mc-woocommerce-settings-subtitles-row { + flex-direction: column; + align-items: flex-start; + margin-bottom: 1.69em; + } +} + @media screen and (max-width: 782px) { .tab-content-wrapper, .notices-content-wrapper { padding: 0 1em; diff --git a/admin/partials/mailchimp-woocommerce-admin-tabs.php b/admin/partials/mailchimp-woocommerce-admin-tabs.php index 784bac1b..2cbd5bae 100644 --- a/admin/partials/mailchimp-woocommerce-admin-tabs.php +++ b/admin/partials/mailchimp-woocommerce-admin-tabs.php @@ -162,55 +162,60 @@ -

- +

+ array(), - ); + $allowed_html = array( + 'br' => array(), + ); - if ( 'api_key' === $active_tab ) { - echo wp_kses( __( 'Add Mailchimp for WooCommerce to build custom segments, send automations, and track purchase activity in Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); - } + if ( 'api_key' === $active_tab ) { + echo wp_kses( __( 'Add Mailchimp for WooCommerce to build custom segments, send automations, and track purchase activity in Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); + } - if ( 'store_info' === $active_tab && $has_valid_api_key ) { - if ( $show_sync_tab ) { - echo wp_kses( __( 'WooCommerce store and location', 'mailchimp-for-woocommerce' ), $allowed_html ); - } else { - echo wp_kses( __( 'Please provide a bit of information about your WooCommerce store', 'mailchimp-for-woocommerce' ), $allowed_html ); + if ( 'store_info' === $active_tab && $has_valid_api_key ) { + if ( $show_sync_tab ) { + echo wp_kses( __( 'WooCommerce store and location', 'mailchimp-for-woocommerce' ), $allowed_html ); + } else { + echo wp_kses( __( 'Please provide a bit of information about your WooCommerce store', 'mailchimp-for-woocommerce' ), $allowed_html ); + } } - } - if ( 'newsletter_settings' === $active_tab ) { - if ( $show_sync_tab ) { - echo wp_kses( __( 'Campaign and messaging settings', 'mailchimp-for-woocommerce' ), $allowed_html ); - } else { - if ( $only_one_list ) { - echo wp_kses( __( 'Please apply your audience settings.', 'mailchimp-for-woocommerce' ), $allowed_html ); + if ( 'newsletter_settings' === $active_tab ) { + if ( $show_sync_tab ) { + echo wp_kses( __( 'Campaign and messaging settings', 'mailchimp-for-woocommerce' ), $allowed_html ); } else { - echo wp_kses( __( 'Please apply your audience settings. ', 'mailchimp-for-woocommerce' ), $allowed_html ); - echo wp_kses( __( 'If you don’t have an audience, you can choose to create one', 'mailchimp-for-woocommerce' ), $allowed_html ); + if ( $only_one_list ) { + echo wp_kses( __( 'Please apply your audience settings.', 'mailchimp-for-woocommerce' ), $allowed_html ); + } else { + echo wp_kses( __( 'Please apply your audience settings. ', 'mailchimp-for-woocommerce' ), $allowed_html ); + echo wp_kses( __( 'If you don’t have an audience, you can choose to create one', 'mailchimp-for-woocommerce' ), $allowed_html ); + } } } - } - if ( 'sync' === $active_tab && $show_sync_tab ) { - if ( mailchimp_is_done_syncing() ) { - echo wp_kses( __( 'Success! You are connected to Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); - } else { - echo wp_kses( __( 'Your WooCommerce store is syncing to Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); + if ( 'sync' === $active_tab && $show_sync_tab ) { + if ( mailchimp_is_done_syncing() ) { + echo wp_kses( __( 'Success! You are connected to Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); + } else { + echo wp_kses( __( 'Your WooCommerce store is syncing to Mailchimp', 'mailchimp-for-woocommerce' ), $allowed_html ); + } } - } - if ( 'logs' === $active_tab && $show_sync_tab ) { - echo wp_kses( __( 'Log events from the Mailchimp plugin', 'mailchimp-for-woocommerce' ), $allowed_html ); - } + if ( 'logs' === $active_tab && $show_sync_tab ) { + echo wp_kses( __( 'Log events from the Mailchimp plugin', 'mailchimp-for-woocommerce' ), $allowed_html ); + } - if ( 'plugin_settings' === $active_tab && $show_sync_tab ) { - echo wp_kses( __( 'Connection settings', 'mailchimp-for-woocommerce' ), $allowed_html ); - } - ?> -

+ if ( 'plugin_settings' === $active_tab && $show_sync_tab ) { + echo wp_kses( __( 'Connection settings', 'mailchimp-for-woocommerce' ), $allowed_html ); + } + ?> +

+ + Continue to Mailchimp + +