Plugin Directory

Changeset 3253510


Ignore:
Timestamp:
03/10/2025 05:42:55 PM (13 months ago)
Author:
ryanhungate
Message:

pre-release 5.3

Location:
mailchimp-for-woocommerce/trunk
Files:
5 added
17 edited

Legend:

Unmodified
Added
Removed
  • mailchimp-for-woocommerce/trunk/CHANGELOG.txt

    r3234127 r3253510  
    11== Changelog ==
     2= 5.3 =
     3* Improved handling and mapping of extra fields in Mailchimp for WooCommerce
     4* WooCommerce Product Category Sync
     5* Updated compatibility with WPML 4.7
     6* Improved database query performance to reduce processing time and optimize overall plugin efficiency
     7* Fix issue where logs were being saved despite setting preferences to disable logging
     8* Fix for trash and permanently deleted coupons
     9* Removed duplicate queries
     10* Updated various dependencies including cookie, express, and @wordpress/e2e-test-utils
     11* Bumped `serialize-javascript` from 6.0.1 to 6.0.2 in `/blocks`
     12* Bumped cookie, express, and @wordpress/e2e-test-utils-playwright**: Bumped cookie from 0.4.2 to 0.7.1, express, and @wordpress/e2e-test-utils-playwright
    213= 5.2 =
    314* Fix cached value for double opt in ( optimization )
  • mailchimp-for-woocommerce/trunk/README.txt

    r3234861 r3253510  
    7979
    8080== Changelog ==
    81 = 5.2 =
    82 * Fix cached value for double opt in ( optimization )
    83 * Fix for subscription statuses changing on updates
    84 * Removes WooCommerce plugin check #1226
    85 * Fix for trashed and permanently deleted products appearing in Mailchimp
     81= 5.3 =
     82* Improved handling and mapping of extra fields in Mailchimp for WooCommerce
     83* WooCommerce Product Category Sync
     84* Updated compatibility with WPML 4.7
     85* Improved database query performance to reduce processing time and optimize overall plugin efficiency
     86* Fix issue where logs were being saved despite setting preferences to disable logging
     87* Fix for trash and permanently deleted coupons
     88* Removed duplicate queries
     89* Updated various dependencies including cookie, express, and @wordpress/e2e-test-utils
     90* Bumped `serialize-javascript` from 6.0.1 to 6.0.2 in `/blocks`
     91* Bumped cookie, express, and @wordpress/e2e-test-utils-playwright**: Bumped cookie from 0.4.2 to 0.7.1, express, and @wordpress/e2e-test-utils-playwright
  • mailchimp-for-woocommerce/trunk/admin/class-mailchimp-woocommerce-admin.php

    r3234127 r3253510  
    137137                $label = __( 'Subscribe to our newsletter', 'mailchimp-for-woocommerce' );
    138138            }
    139             $options                   = \Mailchimp_Woocommerce_DB_Helpers::get_option( $this->plugin_name, array() );
     139            $options                   = mailchimp_get_admin_options();
    140140            $checkbox_default_settings = ( array_key_exists( 'mailchimp_checkbox_defaults', $options ) && ! is_null( $options['mailchimp_checkbox_defaults'] ) ) ? $options['mailchimp_checkbox_defaults'] : 'check';
    141141            wp_register_script( $this->plugin_name . 'create-account', plugin_dir_url( __FILE__ ) . 'js/mailchimp-woocommerce-create-account.js', array( 'jquery', 'swal' ), $this->version );
  • mailchimp-for-woocommerce/trunk/admin/v2/templates/confirmation/tabs/overview.php

    r3219233 r3253510  
    181181                    <div class="sync-number">
    182182                        <span class="sync-number-finished">
    183                             <?php echo $mailchimp_total_customers; ?>
     183                            <?php echo number_format($mailchimp_total_customers); ?>
    184184                        </span>
    185185                    </div>
     
    197197                    <div class="sync-number">
    198198                        <span class="sync-number-finished">
    199                             <?php echo $mailchimp_total_orders; ?>
     199                            <?php
     200                            echo number_format($mailchimp_total_orders);
     201                            ?>
    200202                        </span>
    201203                    </div>
     
    213215                    <div class="sync-number">
    214216                        <span class="sync-number-finished">
    215                             <?php echo $mailchimp_total_promo_rules; ?>
     217                            <?php echo number_format($mailchimp_total_promo_rules); ?>
    216218                        </span>
    217219                    </div>
     
    229231                <div class="sync-number">
    230232                    <span class="sync-number-finished">
    231                         <?php echo $mailchimp_total_products; ?>
     233                        <?php echo number_format($mailchimp_total_products); ?>
    232234                    </span>
    233235                </div>
  • mailchimp-for-woocommerce/trunk/admin/v2/templates/mailchimp-woocommerce-admin-pages.php

    r3219233 r3253510  
    1212/** Grab all options for this particular tab we're viewing. */
    1313
    14 $options = \Mailchimp_Woocommerce_DB_Helpers::get_option( $this->plugin_name, array() );
     14$options = mailchimp_get_admin_options();
    1515
    1616/** Verify that the nonce is correct for the GET and POST variables. */
     
    9999$promo_active = false;
    100100?>
     101
     102<?php if ( defined( 'ICL_SITEPRESS_VERSION' )  && MC_WC_OVERVIEW_TAB === $active_tab): ?>
     103    <div class="notice notice-warning is-dismissible">
     104        <p><?php esc_html_e( 'Texts from embedded forms can not be translated with WPML.', 'mailchimp-for-woocommerce' ); ?></p>
     105    </div>
     106<?php endif; ?>
     107
    101108
    102109<div class="mc-wc-settings-wrapper woocommerce <?php echo $active_breadcrumb; ?>">
  • mailchimp-for-woocommerce/trunk/blocks/package-lock.json

    r3159961 r3253510  
    23122312      "dev": true
    23132313    },
     2314    "node_modules/@formatjs/ecma402-abstract": {
     2315      "version": "2.3.3",
     2316      "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.3.tgz",
     2317      "integrity": "sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg==",
     2318      "dev": true,
     2319      "license": "MIT",
     2320      "dependencies": {
     2321        "@formatjs/fast-memoize": "2.2.6",
     2322        "@formatjs/intl-localematcher": "0.6.0",
     2323        "decimal.js": "10",
     2324        "tslib": "2"
     2325      }
     2326    },
     2327    "node_modules/@formatjs/fast-memoize": {
     2328      "version": "2.2.6",
     2329      "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz",
     2330      "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==",
     2331      "dev": true,
     2332      "license": "MIT",
     2333      "dependencies": {
     2334        "tslib": "2"
     2335      }
     2336    },
     2337    "node_modules/@formatjs/icu-messageformat-parser": {
     2338      "version": "2.11.1",
     2339      "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.1.tgz",
     2340      "integrity": "sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA==",
     2341      "dev": true,
     2342      "license": "MIT",
     2343      "dependencies": {
     2344        "@formatjs/ecma402-abstract": "2.3.3",
     2345        "@formatjs/icu-skeleton-parser": "1.8.13",
     2346        "tslib": "2"
     2347      }
     2348    },
     2349    "node_modules/@formatjs/icu-skeleton-parser": {
     2350      "version": "1.8.13",
     2351      "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.13.tgz",
     2352      "integrity": "sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg==",
     2353      "dev": true,
     2354      "license": "MIT",
     2355      "dependencies": {
     2356        "@formatjs/ecma402-abstract": "2.3.3",
     2357        "tslib": "2"
     2358      }
     2359    },
     2360    "node_modules/@formatjs/intl-localematcher": {
     2361      "version": "0.6.0",
     2362      "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.0.tgz",
     2363      "integrity": "sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA==",
     2364      "dev": true,
     2365      "license": "MIT",
     2366      "dependencies": {
     2367        "tslib": "2"
     2368      }
     2369    },
    23142370    "node_modules/@hapi/hoek": {
    23152371      "version": "9.3.0",
     
    32163272      }
    32173273    },
     3274    "node_modules/@paulirish/trace_engine": {
     3275      "version": "0.0.39",
     3276      "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.39.tgz",
     3277      "integrity": "sha512-2Y/ejHX5DDi5bjfWY/0c/BLVSfQ61Jw1Hy60Hnh0hfEO632D3FVctkzT4Q/lVAdvIPR0bUaok9JDTr1pu/OziA==",
     3278      "dev": true,
     3279      "license": "BSD-3-Clause",
     3280      "dependencies": {
     3281        "third-party-web": "latest"
     3282      }
     3283    },
    32183284    "node_modules/@pkgr/core": {
    32193285      "version": "0.1.1",
     
    33103376    },
    33113377    "node_modules/@puppeteer/browsers": {
    3312       "version": "2.4.0",
    3313       "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.0.tgz",
    3314       "integrity": "sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==",
    3315       "dev": true,
    3316       "dependencies": {
    3317         "debug": "^4.3.6",
     3378      "version": "2.6.1",
     3379      "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz",
     3380      "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==",
     3381      "dev": true,
     3382      "license": "Apache-2.0",
     3383      "dependencies": {
     3384        "debug": "^4.4.0",
    33183385        "extract-zip": "^2.0.1",
    33193386        "progress": "^2.0.3",
    3320         "proxy-agent": "^6.4.0",
     3387        "proxy-agent": "^6.5.0",
    33213388        "semver": "^7.6.3",
    33223389        "tar-fs": "^3.0.6",
     
    33313398      }
    33323399    },
    3333     "node_modules/@puppeteer/browsers/node_modules/debug": {
    3334       "version": "4.3.7",
    3335       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
    3336       "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
    3337       "dev": true,
    3338       "dependencies": {
    3339         "ms": "^2.1.3"
    3340       },
    3341       "engines": {
    3342         "node": ">=6.0"
    3343       },
    3344       "peerDependenciesMeta": {
    3345         "supports-color": {
    3346           "optional": true
    3347         }
    3348       }
    3349     },
    3350     "node_modules/@puppeteer/browsers/node_modules/ms": {
    3351       "version": "2.1.3",
    3352       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
    3353       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
    3354       "dev": true
    3355     },
    33563400    "node_modules/@puppeteer/browsers/node_modules/semver": {
    3357       "version": "7.6.3",
    3358       "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
    3359       "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
    3360       "dev": true,
     3401      "version": "7.7.1",
     3402      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
     3403      "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
     3404      "dev": true,
     3405      "license": "ISC",
    33613406      "bin": {
    33623407        "semver": "bin/semver.js"
     
    36563701      }
    36573702    },
     3703    "node_modules/@sentry-internal/tracing": {
     3704      "version": "7.120.3",
     3705      "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.120.3.tgz",
     3706      "integrity": "sha512-Ausx+Jw1pAMbIBHStoQ6ZqDZR60PsCByvHdw/jdH9AqPrNE9xlBSf9EwcycvmrzwyKspSLaB52grlje2cRIUMg==",
     3707      "dev": true,
     3708      "license": "MIT",
     3709      "dependencies": {
     3710        "@sentry/core": "7.120.3",
     3711        "@sentry/types": "7.120.3",
     3712        "@sentry/utils": "7.120.3"
     3713      },
     3714      "engines": {
     3715        "node": ">=8"
     3716      }
     3717    },
    36583718    "node_modules/@sentry/core": {
    3659       "version": "6.19.7",
    3660       "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
    3661       "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
    3662       "dev": true,
    3663       "dependencies": {
    3664         "@sentry/hub": "6.19.7",
    3665         "@sentry/minimal": "6.19.7",
    3666         "@sentry/types": "6.19.7",
    3667         "@sentry/utils": "6.19.7",
    3668         "tslib": "^1.9.3"
    3669       },
    3670       "engines": {
    3671         "node": ">=6"
    3672       }
    3673     },
    3674     "node_modules/@sentry/core/node_modules/tslib": {
    3675       "version": "1.14.1",
    3676       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
    3677       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
    3678       "dev": true
    3679     },
    3680     "node_modules/@sentry/hub": {
    3681       "version": "6.19.7",
    3682       "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
    3683       "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
    3684       "dev": true,
    3685       "dependencies": {
    3686         "@sentry/types": "6.19.7",
    3687         "@sentry/utils": "6.19.7",
    3688         "tslib": "^1.9.3"
    3689       },
    3690       "engines": {
    3691         "node": ">=6"
    3692       }
    3693     },
    3694     "node_modules/@sentry/hub/node_modules/tslib": {
    3695       "version": "1.14.1",
    3696       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
    3697       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
    3698       "dev": true
    3699     },
    3700     "node_modules/@sentry/minimal": {
    3701       "version": "6.19.7",
    3702       "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
    3703       "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
    3704       "dev": true,
    3705       "dependencies": {
    3706         "@sentry/hub": "6.19.7",
    3707         "@sentry/types": "6.19.7",
    3708         "tslib": "^1.9.3"
    3709       },
    3710       "engines": {
    3711         "node": ">=6"
    3712       }
    3713     },
    3714     "node_modules/@sentry/minimal/node_modules/tslib": {
    3715       "version": "1.14.1",
    3716       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
    3717       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
    3718       "dev": true
     3719      "version": "7.120.3",
     3720      "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.120.3.tgz",
     3721      "integrity": "sha512-vyy11fCGpkGK3qI5DSXOjgIboBZTriw0YDx/0KyX5CjIjDDNgp5AGgpgFkfZyiYiaU2Ww3iFuKo4wHmBusz1uA==",
     3722      "dev": true,
     3723      "license": "MIT",
     3724      "dependencies": {
     3725        "@sentry/types": "7.120.3",
     3726        "@sentry/utils": "7.120.3"
     3727      },
     3728      "engines": {
     3729        "node": ">=8"
     3730      }
     3731    },
     3732    "node_modules/@sentry/integrations": {
     3733      "version": "7.120.3",
     3734      "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.120.3.tgz",
     3735      "integrity": "sha512-6i/lYp0BubHPDTg91/uxHvNui427df9r17SsIEXa2eKDwQ9gW2qRx5IWgvnxs2GV/GfSbwcx4swUB3RfEWrXrQ==",
     3736      "dev": true,
     3737      "license": "MIT",
     3738      "dependencies": {
     3739        "@sentry/core": "7.120.3",
     3740        "@sentry/types": "7.120.3",
     3741        "@sentry/utils": "7.120.3",
     3742        "localforage": "^1.8.1"
     3743      },
     3744      "engines": {
     3745        "node": ">=8"
     3746      }
    37193747    },
    37203748    "node_modules/@sentry/node": {
    3721       "version": "6.19.7",
    3722       "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz",
    3723       "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==",
    3724       "dev": true,
    3725       "dependencies": {
    3726         "@sentry/core": "6.19.7",
    3727         "@sentry/hub": "6.19.7",
    3728         "@sentry/types": "6.19.7",
    3729         "@sentry/utils": "6.19.7",
    3730         "cookie": "^0.4.1",
    3731         "https-proxy-agent": "^5.0.0",
    3732         "lru_map": "^0.3.3",
    3733         "tslib": "^1.9.3"
    3734       },
    3735       "engines": {
    3736         "node": ">=6"
    3737       }
    3738     },
    3739     "node_modules/@sentry/node/node_modules/cookie": {
    3740       "version": "0.4.2",
    3741       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
    3742       "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
    3743       "dev": true,
    3744       "engines": {
    3745         "node": ">= 0.6"
    3746       }
    3747     },
    3748     "node_modules/@sentry/node/node_modules/tslib": {
    3749       "version": "1.14.1",
    3750       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
    3751       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
    3752       "dev": true
     3749      "version": "7.120.3",
     3750      "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.120.3.tgz",
     3751      "integrity": "sha512-t+QtekZedEfiZjbkRAk1QWJPnJlFBH/ti96tQhEq7wmlk3VszDXraZvLWZA0P2vXyglKzbWRGkT31aD3/kX+5Q==",
     3752      "dev": true,
     3753      "license": "MIT",
     3754      "dependencies": {
     3755        "@sentry-internal/tracing": "7.120.3",
     3756        "@sentry/core": "7.120.3",
     3757        "@sentry/integrations": "7.120.3",
     3758        "@sentry/types": "7.120.3",
     3759        "@sentry/utils": "7.120.3"
     3760      },
     3761      "engines": {
     3762        "node": ">=8"
     3763      }
    37533764    },
    37543765    "node_modules/@sentry/types": {
    3755       "version": "6.19.7",
    3756       "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
    3757       "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
    3758       "dev": true,
    3759       "engines": {
    3760         "node": ">=6"
     3766      "version": "7.120.3",
     3767      "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.120.3.tgz",
     3768      "integrity": "sha512-C4z+3kGWNFJ303FC+FxAd4KkHvxpNFYAFN8iMIgBwJdpIl25KZ8Q/VdGn0MLLUEHNLvjob0+wvwlcRBBNLXOow==",
     3769      "dev": true,
     3770      "license": "MIT",
     3771      "engines": {
     3772        "node": ">=8"
    37613773      }
    37623774    },
    37633775    "node_modules/@sentry/utils": {
    3764       "version": "6.19.7",
    3765       "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
    3766       "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
    3767       "dev": true,
    3768       "dependencies": {
    3769         "@sentry/types": "6.19.7",
    3770         "tslib": "^1.9.3"
    3771       },
    3772       "engines": {
    3773         "node": ">=6"
    3774       }
    3775     },
    3776     "node_modules/@sentry/utils/node_modules/tslib": {
    3777       "version": "1.14.1",
    3778       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
    3779       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
    3780       "dev": true
     3776      "version": "7.120.3",
     3777      "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.120.3.tgz",
     3778      "integrity": "sha512-UDAOQJtJDxZHQ5Nm1olycBIsz2wdGX8SdzyGVHmD8EOQYAeDZQyIlQYohDe9nazdIOQLZCIc3fU0G9gqVLkaGQ==",
     3779      "dev": true,
     3780      "license": "MIT",
     3781      "dependencies": {
     3782        "@sentry/types": "7.120.3"
     3783      },
     3784      "engines": {
     3785        "node": ">=8"
     3786      }
    37813787    },
    37823788    "node_modules/@sideway/address": {
     
    42144220      "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
    42154221      "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
    4216       "dev": true
     4222      "dev": true,
     4223      "license": "MIT"
    42174224    },
    42184225    "node_modules/@trysound/sax": {
     
    46784685      "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
    46794686      "dev": true,
     4687      "license": "MIT",
    46804688      "optional": true,
    46814689      "dependencies": {
     
    57685776    },
    57695777    "node_modules/@wordpress/e2e-test-utils-playwright": {
    5770       "version": "1.8.1",
    5771       "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.8.1.tgz",
    5772       "integrity": "sha512-BKp2EpC35/SWJg1h69Q0RP7hlcNoqyuq1UA5CJycph2yuzrfl8+tfKqkrdCYhyLU/MuW6GFh9d92vb2cTYnSOQ==",
    5773       "dev": true,
     5778      "version": "1.18.0",
     5779      "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.18.0.tgz",
     5780      "integrity": "sha512-SGYU724cFM/EmDoTu9pVI+H2PLln9/NIKaxOLLhMhCBqb15nf6VzBU1ux1qHtG6YDA62S+kxO3gyI40amvX6Sg==",
     5781      "dev": true,
     5782      "license": "GPL-2.0-or-later",
    57745783      "dependencies": {
    57755784        "change-case": "^4.1.2",
    57765785        "form-data": "^4.0.0",
    57775786        "get-port": "^5.1.1",
    5778         "lighthouse": "^10.4.0",
     5787        "lighthouse": "^12.2.2",
    57795788        "mime": "^3.0.0",
    57805789        "web-vitals": "^4.2.1"
     
    72747283      "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
    72757284      "dev": true,
     7285      "license": "MIT",
    72767286      "engines": {
    72777287        "node": ">=6"
     
    75517561      "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
    75527562      "dev": true,
     7563      "license": "MIT",
    75537564      "dependencies": {
    75547565        "tslib": "^2.0.1"
     
    76357646    },
    76367647    "node_modules/axe-core": {
    7637       "version": "4.7.2",
    7638       "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
    7639       "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
    7640       "dev": true,
     7648      "version": "4.10.2",
     7649      "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
     7650      "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
     7651      "dev": true,
     7652      "license": "MPL-2.0",
    76417653      "engines": {
    76427654        "node": ">=4"
     
    76647676    },
    76657677    "node_modules/b4a": {
    7666       "version": "1.6.6",
    7667       "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
    7668       "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==",
    7669       "dev": true
     7678      "version": "1.6.7",
     7679      "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
     7680      "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
     7681      "dev": true,
     7682      "license": "Apache-2.0"
    76707683    },
    76717684    "node_modules/babel-jest": {
     
    79557968    },
    79567969    "node_modules/bare-events": {
    7957       "version": "2.4.2",
    7958       "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz",
    7959       "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==",
    7960       "dev": true,
     7970      "version": "2.5.4",
     7971      "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz",
     7972      "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==",
     7973      "dev": true,
     7974      "license": "Apache-2.0",
    79617975      "optional": true
    79627976    },
    79637977    "node_modules/bare-fs": {
    7964       "version": "2.3.4",
    7965       "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.4.tgz",
    7966       "integrity": "sha512-7YyxitZEq0ey5loOF5gdo1fZQFF7290GziT+VbAJ+JbYTJYaPZwuEz2r/Nq23sm4fjyTgUf2uJI2gkT3xAuSYA==",
    7967       "dev": true,
     7978      "version": "4.0.1",
     7979      "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz",
     7980      "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==",
     7981      "dev": true,
     7982      "license": "Apache-2.0",
    79687983      "optional": true,
    79697984      "dependencies": {
    79707985        "bare-events": "^2.0.0",
    7971         "bare-path": "^2.0.0",
     7986        "bare-path": "^3.0.0",
    79727987        "bare-stream": "^2.0.0"
     7988      },
     7989      "engines": {
     7990        "bare": ">=1.7.0"
    79737991      }
    79747992    },
    79757993    "node_modules/bare-os": {
    7976       "version": "2.4.2",
    7977       "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz",
    7978       "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==",
    7979       "dev": true,
    7980       "optional": true
     7994      "version": "3.4.0",
     7995      "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz",
     7996      "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==",
     7997      "dev": true,
     7998      "license": "Apache-2.0",
     7999      "optional": true,
     8000      "engines": {
     8001        "bare": ">=1.6.0"
     8002      }
    79818003    },
    79828004    "node_modules/bare-path": {
    7983       "version": "2.1.3",
    7984       "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
    7985       "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
    7986       "dev": true,
     8005      "version": "3.0.0",
     8006      "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
     8007      "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
     8008      "dev": true,
     8009      "license": "Apache-2.0",
    79878010      "optional": true,
    79888011      "dependencies": {
    7989         "bare-os": "^2.1.0"
     8012        "bare-os": "^3.0.1"
    79908013      }
    79918014    },
    79928015    "node_modules/bare-stream": {
    7993       "version": "2.2.1",
    7994       "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.1.tgz",
    7995       "integrity": "sha512-YTB47kHwBW9zSG8LD77MIBAAQXjU2WjAkMHeeb7hUplVs6+IoM5I7uEVQNPMB7lj9r8I76UMdoMkGnCodHOLqg==",
    7996       "dev": true,
     8016      "version": "2.6.5",
     8017      "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz",
     8018      "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==",
     8019      "dev": true,
     8020      "license": "Apache-2.0",
    79978021      "optional": true,
    79988022      "dependencies": {
    7999         "b4a": "^1.6.6",
    8000         "streamx": "^2.18.0"
     8023        "streamx": "^2.21.0"
     8024      },
     8025      "peerDependencies": {
     8026        "bare-buffer": "*",
     8027        "bare-events": "*"
     8028      },
     8029      "peerDependenciesMeta": {
     8030        "bare-buffer": {
     8031          "optional": true
     8032        },
     8033        "bare-events": {
     8034          "optional": true
     8035        }
    80018036      }
    80028037    },
     
    80198054          "url": "https://feross.org/support"
    80208055        }
    8021       ]
     8056      ],
     8057      "license": "MIT"
    80228058    },
    80238059    "node_modules/basic-ftp": {
     
    80268062      "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
    80278063      "dev": true,
     8064      "license": "MIT",
    80288065      "engines": {
    80298066        "node": ">=10.0.0"
     
    82208257        }
    82218258      ],
     8259      "license": "MIT",
    82228260      "dependencies": {
    82238261        "base64-js": "^1.3.1",
     
    82308268      "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
    82318269      "dev": true,
     8270      "license": "MIT",
    82328271      "engines": {
    82338272        "node": "*"
     
    85598598    },
    85608599    "node_modules/chrome-launcher": {
    8561       "version": "0.15.2",
    8562       "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
    8563       "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
    8564       "dev": true,
     8600      "version": "1.1.2",
     8601      "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.1.2.tgz",
     8602      "integrity": "sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==",
     8603      "dev": true,
     8604      "license": "Apache-2.0",
    85658605      "dependencies": {
    85668606        "@types/node": "*",
    85678607        "escape-string-regexp": "^4.0.0",
    85688608        "is-wsl": "^2.2.0",
    8569         "lighthouse-logger": "^1.0.0"
     8609        "lighthouse-logger": "^2.0.1"
    85708610      },
    85718611      "bin": {
     
    85868626    },
    85878627    "node_modules/chromium-bidi": {
    8588       "version": "0.6.5",
    8589       "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.5.tgz",
    8590       "integrity": "sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA==",
    8591       "dev": true,
     8628      "version": "0.11.0",
     8629      "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz",
     8630      "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==",
     8631      "dev": true,
     8632      "license": "Apache-2.0",
    85928633      "dependencies": {
    85938634        "mitt": "3.0.1",
    8594         "urlpattern-polyfill": "10.0.0",
    85958635        "zod": "3.23.8"
    85968636      },
     
    88668906      "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
    88678907      "dev": true,
     8908      "license": "BSD-2-Clause",
    88688909      "dependencies": {
    88698910        "dot-prop": "^5.2.0",
     
    88838924      "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
    88848925      "dev": true,
     8926      "license": "ISC",
    88858927      "dependencies": {
    88868928        "imurmurhash": "^0.1.4",
     
    89388980    },
    89398981    "node_modules/cookie": {
    8940       "version": "0.6.0",
    8941       "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
    8942       "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
    8943       "dev": true,
     8982      "version": "0.7.1",
     8983      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
     8984      "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
     8985      "dev": true,
     8986      "license": "MIT",
    89448987      "engines": {
    89458988        "node": ">= 0.6"
     
    92219264      }
    92229265    },
    9223     "node_modules/cross-fetch": {
    9224       "version": "4.0.0",
    9225       "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
    9226       "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
    9227       "dev": true,
    9228       "dependencies": {
    9229         "node-fetch": "^2.6.12"
    9230       }
    9231     },
    92329266    "node_modules/cross-spawn": {
    92339267      "version": "5.1.0",
     
    92629296      "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
    92639297      "dev": true,
     9298      "license": "MIT",
    92649299      "engines": {
    92659300        "node": ">=8"
     
    92709305      "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz",
    92719306      "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==",
    9272       "dev": true
     9307      "dev": true,
     9308      "license": "Apache-2.0"
    92739309    },
    92749310    "node_modules/css-declaration-sorter": {
     
    95679603      "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
    95689604      "dev": true,
     9605      "license": "MIT",
    95699606      "engines": {
    95709607        "node": ">= 14"
     
    96089645    },
    96099646    "node_modules/debug": {
    9610       "version": "4.3.4",
    9611       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
    9612       "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
    9613       "dev": true,
    9614       "dependencies": {
    9615         "ms": "2.1.2"
     9647      "version": "4.4.0",
     9648      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
     9649      "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
     9650      "dev": true,
     9651      "license": "MIT",
     9652      "dependencies": {
     9653        "ms": "^2.1.3"
    96169654      },
    96179655      "engines": {
     
    96249662      }
    96259663    },
     9664    "node_modules/debug/node_modules/ms": {
     9665      "version": "2.1.3",
     9666      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
     9667      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
     9668      "dev": true,
     9669      "license": "MIT"
     9670    },
    96269671    "node_modules/decamelize": {
    96279672      "version": "1.2.0",
     
    97619806      "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
    97629807      "dev": true,
     9808      "license": "MIT",
    97639809      "dependencies": {
    97649810        "ast-types": "^0.13.4",
     
    98909936    },
    98919937    "node_modules/devtools-protocol": {
    9892       "version": "0.0.1155343",
    9893       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz",
    9894       "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==",
    9895       "dev": true
     9938      "version": "0.0.1312386",
     9939      "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz",
     9940      "integrity": "sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==",
     9941      "dev": true,
     9942      "license": "BSD-3-Clause"
    98969943    },
    98979944    "node_modules/diff": {
     
    1003710084      "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
    1003810085      "dev": true,
     10086      "license": "MIT",
    1003910087      "dependencies": {
    1004010088        "is-obj": "^2.0.0"
     
    1012810176      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
    1012910177      "dev": true,
     10178      "license": "MIT",
    1013010179      "dependencies": {
    1013110180        "once": "^1.4.0"
     
    1015010199      "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
    1015110200      "dev": true,
     10201      "license": "MIT",
    1015210202      "dependencies": {
    1015310203        "ansi-colors": "^4.1.1",
     
    1120811258    },
    1120911259    "node_modules/express": {
    11210       "version": "4.21.0",
    11211       "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
    11212       "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
    11213       "dev": true,
     11260      "version": "4.21.2",
     11261      "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
     11262      "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
     11263      "dev": true,
     11264      "license": "MIT",
    1121411265      "dependencies": {
    1121511266        "accepts": "~1.3.8",
     
    1121811269        "content-disposition": "0.5.4",
    1121911270        "content-type": "~1.0.4",
    11220         "cookie": "0.6.0",
     11271        "cookie": "0.7.1",
    1122111272        "cookie-signature": "1.0.6",
    1122211273        "debug": "2.6.9",
     
    1123211283        "on-finished": "2.4.1",
    1123311284        "parseurl": "~1.3.3",
    11234         "path-to-regexp": "0.1.10",
     11285        "path-to-regexp": "0.1.12",
    1123511286        "proxy-addr": "~2.0.7",
    1123611287        "qs": "6.13.0",
     
    1124711298      "engines": {
    1124811299        "node": ">= 0.10.0"
     11300      },
     11301      "funding": {
     11302        "type": "opencollective",
     11303        "url": "https://opencollective.com/express"
    1124911304      }
    1125011305    },
     
    1127111326    },
    1127211327    "node_modules/express/node_modules/path-to-regexp": {
    11273       "version": "0.1.10",
    11274       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
    11275       "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
    11276       "dev": true
     11328      "version": "0.1.12",
     11329      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
     11330      "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
     11331      "dev": true,
     11332      "license": "MIT"
    1127711333    },
    1127811334    "node_modules/extract-zip": {
     
    1128111337      "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
    1128211338      "dev": true,
     11339      "license": "BSD-2-Clause",
    1128311340      "dependencies": {
    1128411341        "debug": "^4.1.1",
     
    1130111358      "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
    1130211359      "dev": true,
     11360      "license": "MIT",
    1130311361      "dependencies": {
    1130411362        "pump": "^3.0.0"
     
    1132711385      "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
    1132811386      "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
    11329       "dev": true
     11387      "dev": true,
     11388      "license": "MIT"
    1133011389    },
    1133111390    "node_modules/fast-glob": {
     
    1141911478      "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
    1142011479      "dev": true,
     11480      "license": "MIT",
    1142111481      "dependencies": {
    1142211482        "pend": "~1.2.0"
     
    1184811908      }
    1184911909    },
    11850     "node_modules/fs-extra": {
    11851       "version": "11.2.0",
    11852       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
    11853       "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
    11854       "dev": true,
    11855       "dependencies": {
    11856         "graceful-fs": "^4.2.0",
    11857         "jsonfile": "^6.0.1",
    11858         "universalify": "^2.0.0"
    11859       },
    11860       "engines": {
    11861         "node": ">=14.14"
    11862       }
    11863     },
    11864     "node_modules/fs-extra/node_modules/universalify": {
    11865       "version": "2.0.1",
    11866       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
    11867       "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
    11868       "dev": true,
    11869       "engines": {
    11870         "node": ">= 10.0.0"
    11871       }
    11872     },
    1187311910    "node_modules/fs-monkey": {
    1187411911      "version": "1.0.4",
     
    1204112078    },
    1204212079    "node_modules/get-uri": {
    12043       "version": "6.0.3",
    12044       "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz",
    12045       "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==",
    12046       "dev": true,
     12080      "version": "6.0.4",
     12081      "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz",
     12082      "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==",
     12083      "dev": true,
     12084      "license": "MIT",
    1204712085      "dependencies": {
    1204812086        "basic-ftp": "^5.0.2",
    1204912087        "data-uri-to-buffer": "^6.0.2",
    12050         "debug": "^4.3.4",
    12051         "fs-extra": "^11.2.0"
     12088        "debug": "^4.3.4"
    1205212089      },
    1205312090      "engines": {
     
    1254612583      "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==",
    1254712584      "dev": true,
     12585      "license": "MIT",
    1254812586      "engines": {
    1254912587        "node": ">=6.0.0"
     
    1267212710          "url": "https://feross.org/support"
    1267312711        }
    12674       ]
     12712      ],
     12713      "license": "BSD-3-Clause"
    1267512714    },
    1267612715    "node_modules/ignore": {
     
    1269912738      "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz",
    1270012739      "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==",
    12701       "dev": true
     12740      "dev": true,
     12741      "license": "MIT"
     12742    },
     12743    "node_modules/immediate": {
     12744      "version": "3.0.6",
     12745      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
     12746      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
     12747      "dev": true,
     12748      "license": "MIT"
    1270212749    },
    1270312750    "node_modules/immutable": {
     
    1282412871    },
    1282512872    "node_modules/intl-messageformat": {
    12826       "version": "4.4.0",
    12827       "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz",
    12828       "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==",
    12829       "dev": true,
    12830       "dependencies": {
    12831         "intl-messageformat-parser": "^1.8.1"
    12832       }
    12833     },
    12834     "node_modules/intl-messageformat-parser": {
    12835       "version": "1.8.1",
    12836       "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz",
    12837       "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==",
    12838       "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser",
    12839       "dev": true
     12873      "version": "10.7.15",
     12874      "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.15.tgz",
     12875      "integrity": "sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg==",
     12876      "dev": true,
     12877      "license": "BSD-3-Clause",
     12878      "dependencies": {
     12879        "@formatjs/ecma402-abstract": "2.3.3",
     12880        "@formatjs/fast-memoize": "2.2.6",
     12881        "@formatjs/icu-messageformat-parser": "2.11.1",
     12882        "tslib": "2"
     12883      }
    1284012884    },
    1284112885    "node_modules/invariant": {
     
    1285312897      "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
    1285412898      "dev": true,
     12899      "license": "MIT",
    1285512900      "dependencies": {
    1285612901        "jsbn": "1.1.0",
     
    1310313148      "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
    1310413149      "dev": true,
     13150      "license": "MIT",
    1310513151      "engines": {
    1310613152        "node": ">=8"
     
    1327113317      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
    1327213318      "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
    13273       "dev": true
     13319      "dev": true,
     13320      "license": "MIT"
    1327413321    },
    1327513322    "node_modules/is-unicode-supported": {
     
    1513815185      "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
    1513915186      "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
    15140       "dev": true
     15187      "dev": true,
     15188      "license": "BSD-3-Clause"
    1514115189    },
    1514215190    "node_modules/js-library-detector": {
     
    1514515193      "integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==",
    1514615194      "dev": true,
     15195      "license": "MIT",
    1514715196      "engines": {
    1514815197        "node": ">=12"
     
    1517215221      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
    1517315222      "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
    15174       "dev": true
     15223      "dev": true,
     15224      "license": "MIT"
    1517515225    },
    1517615226    "node_modules/jsdoc-type-pratt-parser": {
     
    1528215332      "dev": true
    1528315333    },
    15284     "node_modules/jsonfile": {
    15285       "version": "6.1.0",
    15286       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
    15287       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
    15288       "dev": true,
    15289       "dependencies": {
    15290         "universalify": "^2.0.0"
    15291       },
    15292       "optionalDependencies": {
    15293         "graceful-fs": "^4.1.6"
    15294       }
    15295     },
    15296     "node_modules/jsonfile/node_modules/universalify": {
    15297       "version": "2.0.1",
    15298       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
    15299       "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
    15300       "dev": true,
    15301       "engines": {
    15302         "node": ">= 10.0.0"
    15303       }
    15304     },
    1530515334    "node_modules/jsx-ast-utils": {
    1530615335      "version": "3.3.5",
     
    1541015439      }
    1541115440    },
     15441    "node_modules/lie": {
     15442      "version": "3.1.1",
     15443      "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
     15444      "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
     15445      "dev": true,
     15446      "license": "MIT",
     15447      "dependencies": {
     15448        "immediate": "~3.0.5"
     15449      }
     15450    },
    1541215451    "node_modules/lighthouse": {
    15413       "version": "10.4.0",
    15414       "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz",
    15415       "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==",
    15416       "dev": true,
    15417       "dependencies": {
    15418         "@sentry/node": "^6.17.4",
    15419         "axe-core": "4.7.2",
    15420         "chrome-launcher": "^0.15.2",
     15452      "version": "12.3.0",
     15453      "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.3.0.tgz",
     15454      "integrity": "sha512-OaLE8DasnwQkn2CBo2lKtD+IQv42mNP3T+Vaw29I++rAh0Zpgc6SM15usdIYyzhRMR5EWFxze5Fyb+HENJSh2A==",
     15455      "dev": true,
     15456      "license": "Apache-2.0",
     15457      "dependencies": {
     15458        "@paulirish/trace_engine": "0.0.39",
     15459        "@sentry/node": "^7.0.0",
     15460        "axe-core": "^4.10.2",
     15461        "chrome-launcher": "^1.1.2",
    1542115462        "configstore": "^5.0.1",
    1542215463        "csp_evaluator": "1.1.1",
    15423         "devtools-protocol": "0.0.1155343",
     15464        "devtools-protocol": "0.0.1312386",
    1542415465        "enquirer": "^2.3.6",
    1542515466        "http-link-header": "^1.1.1",
    15426         "intl-messageformat": "^4.4.0",
     15467        "intl-messageformat": "^10.5.3",
    1542715468        "jpeg-js": "^0.4.4",
    15428         "js-library-detector": "^6.6.0",
    15429         "lighthouse-logger": "^1.4.1",
    15430         "lighthouse-stack-packs": "1.11.0",
    15431         "lodash": "^4.17.21",
     15469        "js-library-detector": "^6.7.0",
     15470        "lighthouse-logger": "^2.0.1",
     15471        "lighthouse-stack-packs": "1.12.2",
     15472        "lodash-es": "^4.17.21",
    1543215473        "lookup-closest-locale": "6.2.0",
    1543315474        "metaviewport-parser": "0.3.0",
    1543415475        "open": "^8.4.0",
    1543515476        "parse-cache-control": "1.0.1",
    15436         "ps-list": "^8.0.0",
    15437         "puppeteer-core": "^20.8.0",
    15438         "robots-parser": "^3.0.0",
     15477        "puppeteer-core": "^23.10.4",
     15478        "robots-parser": "^3.0.1",
    1543915479        "semver": "^5.3.0",
    1544015480        "speedline-core": "^1.4.3",
    15441         "third-party-web": "^0.23.3",
     15481        "third-party-web": "^0.26.1",
     15482        "tldts-icann": "^6.1.16",
    1544215483        "ws": "^7.0.0",
    1544315484        "yargs": "^17.3.1",
     
    1545015491      },
    1545115492      "engines": {
    15452         "node": ">=16.16"
     15493        "node": ">=18.16"
    1545315494      }
    1545415495    },
    1545515496    "node_modules/lighthouse-logger": {
    15456       "version": "1.4.2",
    15457       "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
    15458       "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
    15459       "dev": true,
     15497      "version": "2.0.1",
     15498      "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.1.tgz",
     15499      "integrity": "sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==",
     15500      "dev": true,
     15501      "license": "Apache-2.0",
    1546015502      "dependencies": {
    1546115503        "debug": "^2.6.9",
     
    1546815510      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
    1546915511      "dev": true,
     15512      "license": "MIT",
    1547015513      "dependencies": {
    1547115514        "ms": "2.0.0"
     
    1547615519      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
    1547715520      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
    15478       "dev": true
     15521      "dev": true,
     15522      "license": "MIT"
    1547915523    },
    1548015524    "node_modules/lighthouse-stack-packs": {
    15481       "version": "1.11.0",
    15482       "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz",
    15483       "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==",
    15484       "dev": true
    15485     },
    15486     "node_modules/lighthouse/node_modules/@puppeteer/browsers": {
    15487       "version": "1.4.6",
    15488       "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz",
    15489       "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==",
    15490       "dev": true,
    15491       "dependencies": {
    15492         "debug": "4.3.4",
    15493         "extract-zip": "2.0.1",
    15494         "progress": "2.0.3",
    15495         "proxy-agent": "6.3.0",
    15496         "tar-fs": "3.0.4",
    15497         "unbzip2-stream": "1.4.3",
    15498         "yargs": "17.7.1"
    15499       },
     15525      "version": "1.12.2",
     15526      "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz",
     15527      "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==",
     15528      "dev": true,
     15529      "license": "Apache-2.0"
     15530    },
     15531    "node_modules/lighthouse/node_modules/semver": {
     15532      "version": "5.7.2",
     15533      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
     15534      "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
     15535      "dev": true,
     15536      "license": "ISC",
    1550015537      "bin": {
    15501         "browsers": "lib/cjs/main-cli.js"
    15502       },
    15503       "engines": {
    15504         "node": ">=16.3.0"
    15505       },
    15506       "peerDependencies": {
    15507         "typescript": ">= 4.7.4"
    15508       },
    15509       "peerDependenciesMeta": {
    15510         "typescript": {
    15511           "optional": true
    15512         }
    15513       }
    15514     },
    15515     "node_modules/lighthouse/node_modules/agent-base": {
    15516       "version": "7.1.1",
    15517       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
    15518       "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
    15519       "dev": true,
    15520       "dependencies": {
    15521         "debug": "^4.3.4"
    15522       },
    15523       "engines": {
    15524         "node": ">= 14"
    15525       }
    15526     },
    15527     "node_modules/lighthouse/node_modules/http-proxy-agent": {
    15528       "version": "7.0.2",
    15529       "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
    15530       "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
    15531       "dev": true,
    15532       "dependencies": {
    15533         "agent-base": "^7.1.0",
    15534         "debug": "^4.3.4"
    15535       },
    15536       "engines": {
    15537         "node": ">= 14"
    15538       }
    15539     },
    15540     "node_modules/lighthouse/node_modules/https-proxy-agent": {
    15541       "version": "7.0.5",
    15542       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
    15543       "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
    15544       "dev": true,
    15545       "dependencies": {
    15546         "agent-base": "^7.0.2",
    15547         "debug": "4"
    15548       },
    15549       "engines": {
    15550         "node": ">= 14"
    15551       }
    15552     },
    15553     "node_modules/lighthouse/node_modules/lru-cache": {
    15554       "version": "7.18.3",
    15555       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
    15556       "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
    15557       "dev": true,
    15558       "engines": {
    15559         "node": ">=12"
    15560       }
    15561     },
    15562     "node_modules/lighthouse/node_modules/mitt": {
    15563       "version": "3.0.0",
    15564       "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
    15565       "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==",
    15566       "dev": true
    15567     },
    15568     "node_modules/lighthouse/node_modules/proxy-agent": {
    15569       "version": "6.3.0",
    15570       "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
    15571       "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
    15572       "dev": true,
    15573       "dependencies": {
    15574         "agent-base": "^7.0.2",
    15575         "debug": "^4.3.4",
    15576         "http-proxy-agent": "^7.0.0",
    15577         "https-proxy-agent": "^7.0.0",
    15578         "lru-cache": "^7.14.1",
    15579         "pac-proxy-agent": "^7.0.0",
    15580         "proxy-from-env": "^1.1.0",
    15581         "socks-proxy-agent": "^8.0.1"
    15582       },
    15583       "engines": {
    15584         "node": ">= 14"
    15585       }
    15586     },
    15587     "node_modules/lighthouse/node_modules/puppeteer-core": {
    15588       "version": "20.9.0",
    15589       "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz",
    15590       "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==",
    15591       "dev": true,
    15592       "dependencies": {
    15593         "@puppeteer/browsers": "1.4.6",
    15594         "chromium-bidi": "0.4.16",
    15595         "cross-fetch": "4.0.0",
    15596         "debug": "4.3.4",
    15597         "devtools-protocol": "0.0.1147663",
    15598         "ws": "8.13.0"
    15599       },
    15600       "engines": {
    15601         "node": ">=16.3.0"
    15602       },
    15603       "peerDependencies": {
    15604         "typescript": ">= 4.7.4"
    15605       },
    15606       "peerDependenciesMeta": {
    15607         "typescript": {
    15608           "optional": true
    15609         }
    15610       }
    15611     },
    15612     "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": {
    15613       "version": "0.4.16",
    15614       "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz",
    15615       "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==",
    15616       "dev": true,
    15617       "dependencies": {
    15618         "mitt": "3.0.0"
    15619       },
    15620       "peerDependencies": {
    15621         "devtools-protocol": "*"
    15622       }
    15623     },
    15624     "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": {
    15625       "version": "0.0.1147663",
    15626       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
    15627       "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
    15628       "dev": true
    15629     },
    15630     "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": {
    15631       "version": "8.13.0",
    15632       "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
    15633       "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
    15634       "dev": true,
    15635       "engines": {
    15636         "node": ">=10.0.0"
     15538        "semver": "bin/semver"
     15539      }
     15540    },
     15541    "node_modules/lighthouse/node_modules/ws": {
     15542      "version": "7.5.10",
     15543      "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
     15544      "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
     15545      "dev": true,
     15546      "license": "MIT",
     15547      "engines": {
     15548        "node": ">=8.3.0"
    1563715549      },
    1563815550      "peerDependencies": {
    1563915551        "bufferutil": "^4.0.1",
    15640         "utf-8-validate": ">=5.0.2"
     15552        "utf-8-validate": "^5.0.2"
    1564115553      },
    1564215554      "peerDependenciesMeta": {
     
    1564915561      }
    1565015562    },
    15651     "node_modules/lighthouse/node_modules/semver": {
    15652       "version": "5.7.2",
    15653       "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
    15654       "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
    15655       "dev": true,
    15656       "bin": {
    15657         "semver": "bin/semver"
    15658       }
    15659     },
    15660     "node_modules/lighthouse/node_modules/tar-fs": {
    15661       "version": "3.0.4",
    15662       "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
    15663       "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
    15664       "dev": true,
    15665       "dependencies": {
    15666         "mkdirp-classic": "^0.5.2",
    15667         "pump": "^3.0.0",
    15668         "tar-stream": "^3.1.5"
    15669       }
    15670     },
    15671     "node_modules/lighthouse/node_modules/ws": {
    15672       "version": "7.5.10",
    15673       "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
    15674       "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
    15675       "dev": true,
    15676       "engines": {
    15677         "node": ">=8.3.0"
    15678       },
    15679       "peerDependencies": {
    15680         "bufferutil": "^4.0.1",
    15681         "utf-8-validate": "^5.0.2"
    15682       },
    15683       "peerDependenciesMeta": {
    15684         "bufferutil": {
    15685           "optional": true
    15686         },
    15687         "utf-8-validate": {
    15688           "optional": true
    15689         }
    15690       }
    15691     },
    15692     "node_modules/lighthouse/node_modules/yargs": {
    15693       "version": "17.7.1",
    15694       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
    15695       "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
    15696       "dev": true,
    15697       "dependencies": {
    15698         "cliui": "^8.0.1",
    15699         "escalade": "^3.1.1",
    15700         "get-caller-file": "^2.0.5",
    15701         "require-directory": "^2.1.1",
    15702         "string-width": "^4.2.3",
    15703         "y18n": "^5.0.5",
    15704         "yargs-parser": "^21.1.1"
    15705       },
    15706       "engines": {
    15707         "node": ">=12"
    15708       }
    15709     },
    1571015563    "node_modules/lilconfig": {
    1571115564      "version": "2.1.0",
     
    1576715620      }
    1576815621    },
     15622    "node_modules/localforage": {
     15623      "version": "1.10.0",
     15624      "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
     15625      "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
     15626      "dev": true,
     15627      "license": "Apache-2.0",
     15628      "dependencies": {
     15629        "lie": "3.1.1"
     15630      }
     15631    },
    1576915632    "node_modules/locate-path": {
    1577015633      "version": "6.0.0",
     
    1578815651      "dev": true
    1578915652    },
     15653    "node_modules/lodash-es": {
     15654      "version": "4.17.21",
     15655      "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
     15656      "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
     15657      "dev": true,
     15658      "license": "MIT"
     15659    },
    1579015660    "node_modules/lodash.debounce": {
    1579115661      "version": "4.0.8",
     
    1590815778      "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
    1590915779      "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
    15910       "dev": true
     15780      "dev": true,
     15781      "license": "MIT"
    1591115782    },
    1591215783    "node_modules/loose-envify": {
     
    1593015801        "tslib": "^2.0.3"
    1593115802      }
    15932     },
    15933     "node_modules/lru_map": {
    15934       "version": "0.3.3",
    15935       "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
    15936       "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
    15937       "dev": true
    1593815803    },
    1593915804    "node_modules/lru-cache": {
     
    1610415969      "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
    1610515970      "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==",
    16106       "dev": true
     15971      "dev": true,
     15972      "license": "Apache-2.0"
    1610715973    },
    1610815974    "node_modules/mathml-tag-names": {
     
    1624416110      "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz",
    1624516111      "integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==",
    16246       "dev": true
     16112      "dev": true,
     16113      "license": "MIT"
    1624716114    },
    1624816115    "node_modules/methods": {
     
    1645416321      "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
    1645516322      "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
    16456       "dev": true
     16323      "dev": true,
     16324      "license": "MIT"
    1645716325    },
    1645816326    "node_modules/mixin-object": {
     
    1648916357        "node": ">=10"
    1649016358      }
    16491     },
    16492     "node_modules/mkdirp-classic": {
    16493       "version": "0.5.3",
    16494       "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
    16495       "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
    16496       "dev": true
    1649716359    },
    1649816360    "node_modules/moment": {
     
    1660116463      "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
    1660216464      "dev": true,
     16465      "license": "MIT",
    1660316466      "engines": {
    1660416467        "node": ">= 0.4.0"
     
    1661316476        "lower-case": "^2.0.2",
    1661416477        "tslib": "^2.0.3"
    16615       }
    16616     },
    16617     "node_modules/node-fetch": {
    16618       "version": "2.7.0",
    16619       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
    16620       "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
    16621       "dev": true,
    16622       "dependencies": {
    16623         "whatwg-url": "^5.0.0"
    16624       },
    16625       "engines": {
    16626         "node": "4.x || >=6.0.0"
    16627       },
    16628       "peerDependencies": {
    16629         "encoding": "^0.1.0"
    16630       },
    16631       "peerDependenciesMeta": {
    16632         "encoding": {
    16633           "optional": true
    16634         }
    16635       }
    16636     },
    16637     "node_modules/node-fetch/node_modules/tr46": {
    16638       "version": "0.0.3",
    16639       "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
    16640       "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
    16641       "dev": true
    16642     },
    16643     "node_modules/node-fetch/node_modules/webidl-conversions": {
    16644       "version": "3.0.1",
    16645       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
    16646       "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
    16647       "dev": true
    16648     },
    16649     "node_modules/node-fetch/node_modules/whatwg-url": {
    16650       "version": "5.0.0",
    16651       "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
    16652       "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
    16653       "dev": true,
    16654       "dependencies": {
    16655         "tr46": "~0.0.3",
    16656         "webidl-conversions": "^3.0.0"
    1665716478      }
    1665816479    },
     
    1728917110    },
    1729017111    "node_modules/pac-proxy-agent": {
    17291       "version": "7.0.2",
    17292       "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz",
    17293       "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==",
    17294       "dev": true,
     17112      "version": "7.1.0",
     17113      "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz",
     17114      "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==",
     17115      "dev": true,
     17116      "license": "MIT",
    1729517117      "dependencies": {
    1729617118        "@tootallnate/quickjs-emscripten": "^0.23.0",
    17297         "agent-base": "^7.0.2",
     17119        "agent-base": "^7.1.2",
    1729817120        "debug": "^4.3.4",
    1729917121        "get-uri": "^6.0.1",
    1730017122        "http-proxy-agent": "^7.0.0",
    17301         "https-proxy-agent": "^7.0.5",
     17123        "https-proxy-agent": "^7.0.6",
    1730217124        "pac-resolver": "^7.0.1",
    17303         "socks-proxy-agent": "^8.0.4"
     17125        "socks-proxy-agent": "^8.0.5"
    1730417126      },
    1730517127      "engines": {
     
    1730817130    },
    1730917131    "node_modules/pac-proxy-agent/node_modules/agent-base": {
    17310       "version": "7.1.1",
    17311       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
    17312       "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
    17313       "dev": true,
    17314       "dependencies": {
    17315         "debug": "^4.3.4"
    17316       },
     17132      "version": "7.1.3",
     17133      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
     17134      "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
     17135      "dev": true,
     17136      "license": "MIT",
    1731717137      "engines": {
    1731817138        "node": ">= 14"
     
    1732417144      "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
    1732517145      "dev": true,
     17146      "license": "MIT",
    1732617147      "dependencies": {
    1732717148        "agent-base": "^7.1.0",
     
    1733317154    },
    1733417155    "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": {
    17335       "version": "7.0.5",
    17336       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
    17337       "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
    17338       "dev": true,
    17339       "dependencies": {
    17340         "agent-base": "^7.0.2",
     17156      "version": "7.0.6",
     17157      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
     17158      "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
     17159      "dev": true,
     17160      "license": "MIT",
     17161      "dependencies": {
     17162        "agent-base": "^7.1.2",
    1734117163        "debug": "4"
    1734217164      },
     
    1735017172      "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
    1735117173      "dev": true,
     17174      "license": "MIT",
    1735217175      "dependencies": {
    1735317176        "degenerator": "^5.0.0",
     
    1751217335      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
    1751317336      "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
    17514       "dev": true
     17337      "dev": true,
     17338      "license": "MIT"
    1751517339    },
    1751617340    "node_modules/picocolors": {
     
    1842218246      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
    1842318247      "dev": true,
     18248      "license": "MIT",
    1842418249      "engines": {
    1842518250        "node": ">=0.4.0"
     
    1847918304    },
    1848018305    "node_modules/proxy-agent": {
    18481       "version": "6.4.0",
    18482       "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz",
    18483       "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==",
    18484       "dev": true,
    18485       "dependencies": {
    18486         "agent-base": "^7.0.2",
     18306      "version": "6.5.0",
     18307      "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
     18308      "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
     18309      "dev": true,
     18310      "license": "MIT",
     18311      "dependencies": {
     18312        "agent-base": "^7.1.2",
    1848718313        "debug": "^4.3.4",
    1848818314        "http-proxy-agent": "^7.0.1",
    18489         "https-proxy-agent": "^7.0.3",
     18315        "https-proxy-agent": "^7.0.6",
    1849018316        "lru-cache": "^7.14.1",
    18491         "pac-proxy-agent": "^7.0.1",
     18317        "pac-proxy-agent": "^7.1.0",
    1849218318        "proxy-from-env": "^1.1.0",
    18493         "socks-proxy-agent": "^8.0.2"
     18319        "socks-proxy-agent": "^8.0.5"
    1849418320      },
    1849518321      "engines": {
     
    1849818324    },
    1849918325    "node_modules/proxy-agent/node_modules/agent-base": {
    18500       "version": "7.1.1",
    18501       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
    18502       "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
    18503       "dev": true,
    18504       "dependencies": {
    18505         "debug": "^4.3.4"
    18506       },
     18326      "version": "7.1.3",
     18327      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
     18328      "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
     18329      "dev": true,
     18330      "license": "MIT",
    1850718331      "engines": {
    1850818332        "node": ">= 14"
     
    1851418338      "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
    1851518339      "dev": true,
     18340      "license": "MIT",
    1851618341      "dependencies": {
    1851718342        "agent-base": "^7.1.0",
     
    1852318348    },
    1852418349    "node_modules/proxy-agent/node_modules/https-proxy-agent": {
    18525       "version": "7.0.5",
    18526       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
    18527       "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==",
    18528       "dev": true,
    18529       "dependencies": {
    18530         "agent-base": "^7.0.2",
     18350      "version": "7.0.6",
     18351      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
     18352      "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
     18353      "dev": true,
     18354      "license": "MIT",
     18355      "dependencies": {
     18356        "agent-base": "^7.1.2",
    1853118357        "debug": "4"
    1853218358      },
     
    1854018366      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
    1854118367      "dev": true,
     18368      "license": "ISC",
    1854218369      "engines": {
    1854318370        "node": ">=12"
     
    1855618383      "dev": true
    1855718384    },
    18558     "node_modules/ps-list": {
    18559       "version": "8.1.1",
    18560       "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz",
    18561       "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==",
    18562       "dev": true,
    18563       "engines": {
    18564         "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
    18565       },
    18566       "funding": {
    18567         "url": "https://github.com/sponsors/sindresorhus"
    18568       }
    18569     },
    1857018385    "node_modules/pseudomap": {
    1857118386      "version": "1.0.2",
     
    1858118396    },
    1858218397    "node_modules/pump": {
    18583       "version": "3.0.1",
    18584       "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.1.tgz",
    18585       "integrity": "sha512-2ynnAmUu45oUSq51AQbeugLkMSKaz8FqVpZ6ykTqzOVkzXe8u/ezkGsYrFJqKZx+D9cVxoDrSbR7CeAwxFa5cQ==",
    18586       "dev": true,
     18398      "version": "3.0.2",
     18399      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
     18400      "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
     18401      "dev": true,
     18402      "license": "MIT",
    1858718403      "dependencies": {
    1858818404        "end-of-stream": "^1.1.0",
     
    1860018416    },
    1860118417    "node_modules/puppeteer-core": {
    18602       "version": "23.3.0",
    18603       "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.3.0.tgz",
    18604       "integrity": "sha512-sB2SsVMFs4gKad5OCdv6w5vocvtEUrRl0zQqSyRPbo/cj1Ktbarmhxy02Zyb9R9HrssBcJDZbkrvBnbaesPyYg==",
    18605       "dev": true,
    18606       "dependencies": {
    18607         "@puppeteer/browsers": "2.4.0",
    18608         "chromium-bidi": "0.6.5",
    18609         "debug": "^4.3.6",
    18610         "devtools-protocol": "0.0.1330662",
     18418      "version": "23.11.1",
     18419      "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz",
     18420      "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==",
     18421      "dev": true,
     18422      "license": "Apache-2.0",
     18423      "dependencies": {
     18424        "@puppeteer/browsers": "2.6.1",
     18425        "chromium-bidi": "0.11.0",
     18426        "debug": "^4.4.0",
     18427        "devtools-protocol": "0.0.1367902",
    1861118428        "typed-query-selector": "^2.12.0",
    1861218429        "ws": "^8.18.0"
     
    1861618433      }
    1861718434    },
    18618     "node_modules/puppeteer-core/node_modules/debug": {
    18619       "version": "4.3.7",
    18620       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
    18621       "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
    18622       "dev": true,
    18623       "dependencies": {
    18624         "ms": "^2.1.3"
    18625       },
    18626       "engines": {
    18627         "node": ">=6.0"
    18628       },
    18629       "peerDependenciesMeta": {
    18630         "supports-color": {
    18631           "optional": true
    18632         }
    18633       }
    18634     },
    1863518435    "node_modules/puppeteer-core/node_modules/devtools-protocol": {
    18636       "version": "0.0.1330662",
    18637       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz",
    18638       "integrity": "sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==",
    18639       "dev": true
    18640     },
    18641     "node_modules/puppeteer-core/node_modules/ms": {
    18642       "version": "2.1.3",
    18643       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
    18644       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
    18645       "dev": true
     18436      "version": "0.0.1367902",
     18437      "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz",
     18438      "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==",
     18439      "dev": true,
     18440      "license": "BSD-3-Clause"
    1864618441    },
    1864718442    "node_modules/pure-rand": {
     
    1870218497      ]
    1870318498    },
    18704     "node_modules/queue-tick": {
    18705       "version": "1.0.1",
    18706       "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
    18707       "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
    18708       "dev": true
    18709     },
    1871018499    "node_modules/quick-lru": {
    1871118500      "version": "4.0.1",
     
    1940219191      "integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==",
    1940319192      "dev": true,
     19193      "license": "MIT",
    1940419194      "engines": {
    1940519195        "node": ">=10.0.0"
     
    1974419534    },
    1974519535    "node_modules/serialize-javascript": {
    19746       "version": "6.0.1",
    19747       "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
    19748       "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
    19749       "dev": true,
     19536      "version": "6.0.2",
     19537      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
     19538      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
     19539      "dev": true,
     19540      "license": "BSD-3-Clause",
    1975019541      "dependencies": {
    1975119542        "randombytes": "^2.1.0"
     
    2024620037      "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
    2024720038      "dev": true,
     20039      "license": "MIT",
    2024820040      "engines": {
    2024920041        "node": ">= 6.0.0",
     
    2027320065    },
    2027420066    "node_modules/socks": {
    20275       "version": "2.8.3",
    20276       "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
    20277       "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
    20278       "dev": true,
     20067      "version": "2.8.4",
     20068      "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz",
     20069      "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==",
     20070      "dev": true,
     20071      "license": "MIT",
    2027920072      "dependencies": {
    2028020073        "ip-address": "^9.0.5",
     
    2028720080    },
    2028820081    "node_modules/socks-proxy-agent": {
    20289       "version": "8.0.4",
    20290       "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz",
    20291       "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==",
    20292       "dev": true,
    20293       "dependencies": {
    20294         "agent-base": "^7.1.1",
     20082      "version": "8.0.5",
     20083      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
     20084      "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
     20085      "dev": true,
     20086      "license": "MIT",
     20087      "dependencies": {
     20088        "agent-base": "^7.1.2",
    2029520089        "debug": "^4.3.4",
    2029620090        "socks": "^2.8.3"
     
    2030120095    },
    2030220096    "node_modules/socks-proxy-agent/node_modules/agent-base": {
    20303       "version": "7.1.1",
    20304       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
    20305       "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
    20306       "dev": true,
    20307       "dependencies": {
    20308         "debug": "^4.3.4"
    20309       },
     20097      "version": "7.1.3",
     20098      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
     20099      "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
     20100      "dev": true,
     20101      "license": "MIT",
    2031020102      "engines": {
    2031120103        "node": ">= 14"
     
    2046220254      "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==",
    2046320255      "dev": true,
     20256      "license": "MIT",
    2046420257      "dependencies": {
    2046520258        "@types/node": "*",
     
    2051420307    },
    2051520308    "node_modules/streamx": {
    20516       "version": "2.20.0",
    20517       "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz",
    20518       "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==",
    20519       "dev": true,
     20309      "version": "2.22.0",
     20310      "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz",
     20311      "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==",
     20312      "dev": true,
     20313      "license": "MIT",
    2052020314      "dependencies": {
    2052120315        "fast-fifo": "^1.3.2",
    20522         "queue-tick": "^1.0.1",
    2052320316        "text-decoder": "^1.1.0"
    2052420317      },
     
    2105420847    },
    2105520848    "node_modules/tar-fs": {
    21056       "version": "3.0.6",
    21057       "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
    21058       "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
    21059       "dev": true,
     20849      "version": "3.0.8",
     20850      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz",
     20851      "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==",
     20852      "dev": true,
     20853      "license": "MIT",
    2106020854      "dependencies": {
    2106120855        "pump": "^3.0.0",
     
    2106320857      },
    2106420858      "optionalDependencies": {
    21065         "bare-fs": "^2.1.1",
    21066         "bare-path": "^2.1.0"
     20859        "bare-fs": "^4.0.1",
     20860        "bare-path": "^3.0.0"
    2106720861      }
    2106820862    },
     
    2107220866      "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
    2107320867      "dev": true,
     20868      "license": "MIT",
    2107420869      "dependencies": {
    2107520870        "b4a": "^1.6.4",
     
    2120821003    },
    2120921004    "node_modules/text-decoder": {
    21210       "version": "1.1.1",
    21211       "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz",
    21212       "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==",
    21213       "dev": true,
     21005      "version": "1.2.3",
     21006      "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
     21007      "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
     21008      "dev": true,
     21009      "license": "Apache-2.0",
    2121421010      "dependencies": {
    2121521011        "b4a": "^1.6.4"
     
    2122321019    },
    2122421020    "node_modules/third-party-web": {
    21225       "version": "0.23.4",
    21226       "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz",
    21227       "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==",
    21228       "dev": true
     21021      "version": "0.26.5",
     21022      "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.26.5.tgz",
     21023      "integrity": "sha512-tDuKQJUTfjvi9Fcrs1s6YAQAB9mzhTSbBZMfNgtWNmJlHuoFeXO6dzBFdGeCWRvYL50jQGK0jPsBZYxqZQJ2SA==",
     21024      "dev": true,
     21025      "license": "MIT"
    2122921026    },
    2123021027    "node_modules/through": {
     
    2123221029      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    2123321030      "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
    21234       "dev": true
     21031      "dev": true,
     21032      "license": "MIT"
    2123521033    },
    2123621034    "node_modules/thunky": {
     
    2124521043      "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
    2124621044      "dev": true
     21045    },
     21046    "node_modules/tldts-core": {
     21047      "version": "6.1.77",
     21048      "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.77.tgz",
     21049      "integrity": "sha512-bCaqm24FPk8OgBkM0u/SrEWJgHnhBWYqeBo6yUmcZJDCHt/IfyWBb+14CXdGi4RInMv4v7eUAin15W0DoA+Ytg==",
     21050      "dev": true,
     21051      "license": "MIT"
     21052    },
     21053    "node_modules/tldts-icann": {
     21054      "version": "6.1.77",
     21055      "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-6.1.77.tgz",
     21056      "integrity": "sha512-cE3Z66CjhVHdzS7jqP3N/1jJZynUo4I6Q3JfIRbZnVAdSu5XQxfFnr+O8xz1DboxCdAQV7bwAMUmKOdg34Ke1g==",
     21057      "dev": true,
     21058      "license": "MIT",
     21059      "dependencies": {
     21060        "tldts-core": "^6.1.77"
     21061      }
    2124721062    },
    2124821063    "node_modules/tmp": {
     
    2157821393      "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
    2157921394      "dev": true,
     21395      "license": "MIT",
    2158021396      "dependencies": {
    2158121397        "is-typedarray": "^1.0.0"
     
    2162221438      "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
    2162321439      "dev": true,
     21440      "license": "MIT",
    2162421441      "dependencies": {
    2162521442        "buffer": "^5.2.1",
     
    2167221489      "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
    2167321490      "dev": true,
     21491      "license": "MIT",
    2167421492      "dependencies": {
    2167521493        "crypto-random-string": "^2.0.0"
     
    2179021608        "requires-port": "^1.0.0"
    2179121609      }
    21792     },
    21793     "node_modules/urlpattern-polyfill": {
    21794       "version": "10.0.0",
    21795       "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz",
    21796       "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==",
    21797       "dev": true
    2179821610    },
    2179921611    "node_modules/use-callback-ref": {
     
    2277322585      "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
    2277422586      "dev": true,
     22587      "license": "MIT",
    2277522588      "engines": {
    2277622589        "node": ">=8"
     
    2284822661      "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
    2284922662      "dev": true,
     22663      "license": "MIT",
    2285022664      "dependencies": {
    2285122665        "buffer-crc32": "~0.2.3",
     
    2287022684      "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
    2287122685      "dev": true,
     22686      "license": "MIT",
    2287222687      "funding": {
    2287322688        "url": "https://github.com/sponsors/colinhacks"
  • mailchimp-for-woocommerce/trunk/bootstrap.php

    r3234127 r3253510  
    3535        'MailChimp_WooCommerce_LineItem' => 'includes/api/assets/class-mailchimp-line-item.php',
    3636        'MailChimp_WooCommerce_Order' => 'includes/api/assets/class-mailchimp-order.php',
     37        'Mailchimp_WooCommerce_Product_Category' => 'includes/api/assets/class-mailchimp-product-category.php',
    3738        'MailChimp_WooCommerce_Product' => 'includes/api/assets/class-mailchimp-product.php',
    3839        'MailChimp_WooCommerce_ProductVariation' => 'includes/api/assets/class-mailchimp-product-variation.php',
     
    5859        'MailChimp_WooCommerce_Transform_Orders' => 'includes/api/class-mailchimp-woocommerce-transform-orders-wc3.php',
    5960        'MailChimp_WooCommerce_Transform_Products' => 'includes/api/class-mailchimp-woocommerce-transform-products.php',
     61        'MailChimp_WooCommerce_Transform_Product_Categories' => 'includes/api/class-mailchimp-woocommerce-transform-product-categories.php',
    6062
    6163        // includes/processes
     
    6769        'MailChimp_WooCommerce_Process_Orders' => 'includes/processes/class-mailchimp-woocommerce-process-orders.php',
    6870        'MailChimp_WooCommerce_Process_Products' => 'includes/processes/class-mailchimp-woocommerce-process-products.php',
     71        'MailChimp_WooCommerce_Process_Product_Categories' => 'includes/processes/class-mailchimp-woocommerce-process-product-categories.php',
     72
    6973        'MailChimp_WooCommerce_SingleCoupon' => 'includes/processes/class-mailchimp-woocommerce-single-coupon.php',
    7074        'MailChimp_Woocommerce_Single_Customer' => 'includes/processes/class-mailchimp-woocommerce-single-customer.php',
     
    7276        'MailChimp_WooCommerce_Single_Product' => 'includes/processes/class-mailchimp-woocommerce-single-product.php',
    7377        'MailChimp_WooCommerce_Single_Product_Variation' => 'includes/processes/class-mailchimp-woocommerce-single-product-variation.php',
     78        'Mailchimp_WooCommerce_Single_Product_Category' => 'includes/processes/class-mailchimp-woocommerce-single-product-category.php',
    7479        'MailChimp_WooCommerce_User_Submit' => 'includes/processes/class-mailchimp-woocommerce-user-submit.php',
     80
    7581        'MailChimp_WooCommerce_Process_Full_Sync_Manager' => 'includes/processes/class-mailchimp-woocommerce-full-sync-manager.php',
    7682        'MailChimp_WooCommerce_Subscriber_Sync' => 'includes/processes/class-mailchimp-woocommerce-subscriber-sync.php',
     
    101107    global $wp_version;
    102108
    103     $o = \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce', false);
     109    $o = mailchimp_get_admin_options();
    104110
    105111    return (object) array(
    106112        'repo' => 'master',
    107113        'environment' => 'production', // staging or production
    108         'version' => '5.2',
     114        'version' => '5.3',
    109115        'php_version' => phpversion(),
    110116        'wp_version' => (empty($wp_version) ? 'Unknown' : $wp_version),
     
    398404    return $rest_url.$qs."auth={$key}";
    399405}
     406
    400407/**
    401408 * Generate random string
     
    525532 */
    526533function mailchimp_get_option($key, $default = null) {
    527     $options =\Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce');
     534    $options = mailchimp_get_admin_options();
     535
    528536    if (!is_array($options)) {
    529537        return $default;
     
    533541    }
    534542    return $options[$key];
     543}
     544
     545/**
     546 * @param $default
     547 * @return false
     548 */
     549function mailchimp_get_admin_options($default = array()) {
     550    $options = wp_cache_get('mailchimp-woocommerce-options', 'mailchimp-woocommerce');
     551
     552    if (!$options) {
     553        $options =\Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce', $default);
     554
     555        wp_cache_set('mailchimp-woocommerce-options', $options, 'mailchimp-woocommerce', 10);
     556    }
     557
     558    return $options;
    535559}
    536560
     
    847871}
    848872
     873
     874function mailchimp_get_product_categories_count() {
     875    global $wpdb;
     876
     877    $query = "SELECT COUNT( * ) FROM {$wpdb->term_taxonomy} WHERE taxonomy = %s";
     878    $terms = $wpdb->get_var($wpdb->prepare($query, 'product_cat'));
     879
     880    return $terms;
     881}
     882
    849883/**
    850884 * @return int
     
    12041238function mailchimp_check_if_on_sync_tab() {
    12051239    if ((isset($_GET['page']) && $_GET['page'] === 'mailchimp-woocommerce')) {
    1206         $options = \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce', array());
     1240        $options = mailchimp_get_admin_options();
    12071241        if (isset($_GET['tab'])) {
    12081242            if ($_GET['tab'] === 'sync') {
     
    12671301    \Mailchimp_Woocommerce_DB_Helpers::delete_option( 'mailchimp-woocommerce-sync.started_at' );
    12681302    \Mailchimp_Woocommerce_DB_Helpers::delete_option( 'mailchimp-woocommerce-sync.completed_at' );
    1269     foreach (array('customers', 'orders', 'products', 'coupons') as $resource_type) {
     1303    foreach (array('customers', 'orders', 'products', 'product_categories', 'coupons') as $resource_type) {
    12701304        mailchimp_flush_specific_resource_pointers($resource_type);
    12711305    }
  • mailchimp-for-woocommerce/trunk/includes/api/class-mailchimp-api.php

    r3219233 r3253510  
    16971697    }
    16981698
    1699     /**
     1699    /**
     1700     * @param $store_id
     1701     * @param $category_id
     1702     * @param $category
     1703     *
     1704     * @return bool
     1705     */
     1706    public function updateProductCategory( $store_id, $category_id, MailChimp_WooCommerce_Product_Category $category ) {
     1707        try {
     1708            return (bool) $this->put( "ecommerce/stores/{$store_id}/collections/$category_id", $category->toArray() );
     1709        } catch ( MailChimp_WooCommerce_Error $e ) {
     1710            mailchimp_log('mc_update_cat', 'failed', [
     1711                'error' => $e->getMessage(),
     1712            ]);
     1713
     1714            return false;
     1715        }
     1716    }
     1717
     1718    /**
     1719     * @param $store_id
     1720     * @param $category_id
     1721     * @param $product_ids
     1722     * @return bool
     1723     */
     1724    public function syncProductsToCollection($store_id, $category_id, $product_ids)
     1725    {
     1726        try {
     1727            $data = array(
     1728                'id' => $product_ids
     1729            );
     1730
     1731            return (bool) $this->put( "ecommerce/stores/{$store_id}/collections/$category_id/products", $data );
     1732        } catch ( MailChimp_WooCommerce_Error $e ) {
     1733            return false;
     1734        }
     1735    }
     1736
     1737
     1738    /**
    17001739     * @param $store_id
    17011740     * @param $product_id
  • mailchimp-for-woocommerce/trunk/includes/api/class-mailchimp-woocommerce-api.php

    r3141736 r3253510  
    6565    /**
    6666     * @param $resource
    67      * @return bool|MailChimp_WooCommerce_Transform_Orders|MailChimp_WooCommerce_Transform_Products|MailChimp_WooCommerce_Transform_Coupons|MailChimp_WooCommerce_Transform_Customers
     67     * @return bool|MailChimp_WooCommerce_Transform_Orders|MailChimp_WooCommerce_Transform_Products|MailChimp_WooCommerce_Transform_Product_Categories|MailChimp_WooCommerce_Transform_Coupons|MailChimp_WooCommerce_Transform_Customers
    6868     */
    6969    public function engine( $resource ) {
     
    7373            case 'products':
    7474                return new MailChimp_WooCommerce_Transform_Products();
     75            case 'product_categories':
     76                return new MailChimp_WooCommerce_Transform_Product_Categories();
    7577            case 'orders':
    7678                return new MailChimp_WooCommerce_Transform_Orders();
  • mailchimp-for-woocommerce/trunk/includes/api/class-mailchimp-woocommerce-transform-products.php

    r3234127 r3253510  
    2929
    3030        if ( ( $products = $this->getProductPostsIds( $page, $limit ) ) && ! empty( $products['items'] )) {
    31             foreach ( $products as $post_id ) {
     31            foreach ( $products['items'] as $post_id ) {
    3232                $response->items[] = $post_id;
    3333                $response->count++;
  • mailchimp-for-woocommerce/trunk/includes/class-mailchimp-woocommerce-options.php

    r3234127 r3253510  
    112112    {
    113113        $options = $this->getOptions();
     114
    114115        if (isset($options[$key])) {
    115116            return $options[$key];
    116117        }
     118
    117119        return $default;
    118120    }
     
    133135    public function resetOptions()
    134136    {
    135         return $this->plugin_options = \Mailchimp_Woocommerce_DB_Helpers::get_option($this->plugin_name);
     137        return $this->plugin_options = mailchimp_get_admin_options();
    136138    }
    137139
     
    142144    {
    143145        if (empty($this->plugin_options)) {
    144             $this->plugin_options = \Mailchimp_Woocommerce_DB_Helpers::get_option($this->plugin_name);
    145         }
     146            $this->plugin_options = mailchimp_get_admin_options();
     147        }
     148
    146149        return is_array($this->plugin_options) ? $this->plugin_options : array();
    147150    }
     
    299302        \Mailchimp_Woocommerce_DB_Helpers::delete_option('mailchimp-woocommerce-sync.products.current_page');
    300303        mailchimp_flush_specific_resource_pointers('products');
     304        mailchimp_flush_specific_resource_pointers('product_categories');
    301305    }
    302306
  • mailchimp-for-woocommerce/trunk/includes/class-mailchimp-woocommerce-service.php

    r3234732 r3253510  
    622622
    623623    /**
     624     * @param $product_id
     625     * @param $new_categories
     626     * @param $tt_ids
     627     * @param $taxonomy
     628     * @param $append
     629     * @param $old_categories
     630     * @return false|void
     631     */
     632    public function handleProductCategoriesChange($product_id, $new_categories, $tt_ids, $taxonomy, $append, $old_categories)
     633    {
     634        try {
     635            if (!mailchimp_is_configured()) {
     636                return false;
     637            }
     638
     639            if ($taxonomy !== 'product_cat') {
     640                return;
     641            }
     642
     643            // Find added and removed categories
     644            $added_categories = array_diff($new_categories, $old_categories);
     645            $removed_categories = array_diff($old_categories, $new_categories);
     646
     647            $categories_to_process = array_merge($added_categories, $removed_categories);
     648
     649            foreach ($categories_to_process as $category_id) {
     650                mailchimp_handle_or_queue(new Mailchimp_WooCommerce_Single_Product_Category($category_id));
     651
     652                mailchimp_debug('product_cat_changes', "Product ID {$product_id} assigned categories: ", [
     653                    'processing' => $category_id,
     654                ]);
     655            }
     656        } catch (Exception $e) {
     657            mailchimp_error('product_cat.update', 'Failed to push products to category', array(
     658                'message' => $e->getMessage()
     659            ));
     660        }
     661    }
     662
     663    /**
     664     * @param $term_id
     665     * @return void
     666     */
     667    public function handleProductCategory($term_id) {
     668        try {
     669            if (!mailchimp_is_configured()) {
     670                return false;
     671            }
     672
     673            if ($term = get_term($term_id, 'product_cat')) {
     674                $transformer = new MailChimp_WooCommerce_Transform_Product_Categories();
     675
     676                $product_category = $transformer->transform($term);
     677
     678                mailchimp_debug('product_cat.update',"Updating product category " , [
     679                    'mc_term' => $product_category->toArray(),
     680                    'term' => $term
     681                ]);
     682
     683                mailchimp_get_api()->updateProductCategory(mailchimp_get_store_id(), $term_id, $product_category);
     684
     685                mailchimp_log('product_cat.update',"Updated product category $term_id");
     686            }
     687        } catch (Exception $e) {
     688            mailchimp_error('product_cat.update', 'Failed to update product category', array(
     689                'message' => $e->getMessage()
     690            ));
     691        }
     692    }
     693
     694    /**
    624695     * @param $post_id
    625696     * @return void
  • mailchimp-for-woocommerce/trunk/includes/class-mailchimp-woocommerce.php

    r3234127 r3253510  
    7777        }
    7878
    79         $plugin_options = \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce');
     79        $plugin_options = mailchimp_get_admin_options(false);
    8080        $is_options = is_array($plugin_options);
    8181
     
    417417            $this->loader->add_action('wp_trash_post', $service, 'handlePostTrashed');
    418418            $this->loader->add_action('untrashed_post', $service, 'handlePostRestored');
     419
    419420            //coupons
    420421            $this->loader->add_action('woocommerce_new_coupon', $service, 'handleNewCoupon');
    421422            $this->loader->add_action('woocommerce_coupon_options_save', $service, 'handleCouponSaved', 10, 2);
    422423            $this->loader->add_action('woocommerce_api_create_coupon', $service, 'handleCouponSaved', 9, 2);
     424
     425            //product categories
     426            $this->loader->add_action('created_product_cat', $service, 'handleProductCategory', 10, 1);
     427            $this->loader->add_action('edited_product_cat', $service, 'handleProductCategory', 10, 1);
     428            $this->loader->add_action('set_object_terms', $service, 'handleProductCategoriesChange', 10, 6);
    423429
    424430            $this->loader->add_action('woocommerce_delete_coupon', $service, 'handlePostTrashed');
     
    449455                "MailChimp_WooCommerce_Single_Product",
    450456                "MailChimp_WooCommerce_Single_Product_Variation",
     457                "Mailchimp_WooCommerce_Single_Product_Category",
    451458                "MailChimp_WooCommerce_Cart_Update",
    452459                "MailChimp_WooCommerce_User_Submit",
     
    455462                "MailChimp_WooCommerce_Process_Orders",
    456463                "MailChimp_WooCommerce_Process_Products",
     464                "MailChimp_WooCommerce_Process_Product_Categories",
    457465                "MailChimp_WooCommerce_WebHooks_Sync",
    458466                "Mailchimp_Woocommerce_Complete_Resource_Sync"
  • mailchimp-for-woocommerce/trunk/includes/processes/class-mailchimp-woocommerce-abstract-sync.php

    r3234127 r3253510  
    6868            case 'customers':
    6969                $post_count = mailchimp_get_customer_lookup_count_all();
    70                break;
     70                break;
    7171           case 'coupons':
    7272                $post_count = mailchimp_get_coupons_count();
    73                break;
     73                break;
    7474            case 'products':
    7575                $post_count = mailchimp_get_product_count();
    76                break;
     76                break;
     77           case 'product_categories':
     78                $post_count = mailchimp_get_product_categories_count();
     79                break;
    7780            case 'orders':
    7881                $post_count = mailchimp_get_order_count();
    79                break;
     82                break;
    8083           default:
    8184                mailchimp_log('sync.error', $this->getResourceType().' is not a valid resource.');
    82                break;
     85                break;
    8386        }
    8487
     
    209212                   mailchimp_handle_or_queue(new MailChimp_Woocommerce_Single_Customer($resource));
    210213                   break;
    211                 case 'coupons':
     214               case 'coupons':
    212215                    mailchimp_handle_or_queue(new MailChimp_WooCommerce_SingleCoupon($resource));
    213216                   break;
    214                 case 'products':
     217               case 'products':
    215218                    mailchimp_handle_or_queue(new MailChimp_WooCommerce_Single_Product($resource));
    216219                   break;
    217                 case 'orders':
     220               case 'product_categories':
     221                    mailchimp_handle_or_queue(new Mailchimp_WooCommerce_Single_Product_Category($resource));
     222                   break;
     223               case 'orders':
    218224                    $order = new MailChimp_WooCommerce_Single_Order($resource);
    219225                    $order->set_full_sync(true);
     
    381387    public function getOptions()
    382388    {
    383         $options = \Mailchimp_Woocommerce_DB_Helpers::get_option($this->plugin_name);
     389        $options = mailchimp_get_admin_options();
    384390        return is_array($options) ? $options : array();
    385391    }
  • mailchimp-for-woocommerce/trunk/includes/processes/class-mailchimp-woocommerce-cart-update.php

    r3209992 r3253510  
    9292            }
    9393
    94             $options = \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce', array());
    9594            $store_id = mailchimp_get_store_id();
    9695
  • mailchimp-for-woocommerce/trunk/includes/processes/class-mailchimp-woocommerce-full-sync-manager.php

    r3234127 r3253510  
    133133                'coupons' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.coupons.started_at'),
    134134                'products' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.products.started_at'),
     135                'product_categories' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.product_categories.started_at'),
    135136                'orders' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.orders.started_at')
    136137            );
     
    141142                'coupons' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.coupons-queueing.completed_at'),
    142143                'products' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.products-queueing.completed_at'),
     144                'product_categories' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.product_categories-queueing.completed_at'),
    143145                'orders' => \Mailchimp_Woocommerce_DB_Helpers::get_option('mailchimp-woocommerce-sync.orders-queueing.completed_at')
    144146            );
     
    151153                // trigger subsequent jobs creation
    152154                $product_sync->createSyncManagers();
     155            }
     156
     157            if ($completed['products'] && !$started['product_categories']) {
     158                mailchimp_log('sync.full_sync_manager.queue', 'Starting PRODUCT CATEGORIES queueing.');
     159                // create product sync
     160                $product_categories_sync = new MailChimp_WooCommerce_Process_Product_Categories();
     161                // trigger subsequent jobs creation
     162                $product_categories_sync->createSyncManagers();
    153163            }
    154164
  • mailchimp-for-woocommerce/trunk/mailchimp-woocommerce.php

    r3234127 r3253510  
    1717 * Plugin URI:        https://mailchimp.com/connect-your-store/
    1818 * Description:       Connects WooCommerce to Mailchimp to sync your store data, send targeted campaigns to your customers, and sell more stuff.
    19  * Version:           5.2
     19 * Version:           5.3
    2020 * Author:            Mailchimp
    2121 * Author URI:        https://mailchimp.com
Note: See TracChangeset for help on using the changeset viewer.