Commit 28bee2b4e14 for woocommerce
commit 28bee2b4e14e33755cfe98f893ff0e3cb76799ae
Author: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Date: Mon Apr 13 19:58:07 2026 +0800
feat: merge woocommerce-analytics package from Jetpack with full git history (#64040)
* adding wp-super-cache by donncha
git-svn-id: http://plugins.svn.wordpress.org/wp-super-cache/trunk@22991 b8457f37-d9ea-0310-8a92-e5e31aec5664
* adding jetpack by mdawaffe
* adding vaultpress by automattic
git-svn-id: https://plugins.svn.wordpress.org/vaultpress/trunk@731108 b8457f37-d9ea-0310-8a92-e5e31aec5664
* WooCommerce Analytics: introduce new PHP package (#35754)
* WooCommerce Analytics: introduce new PHP package
Fixes #35629
It will be home to the WooComerce Analytics codebase currently living under modules/woocommerce-analytics in the Jetpack plugin.
* Update version
* No need for js files
* Woo Analytics: bring classes from module to package (#35756)
* Woo Analytics: bring classes from module to package
Fixes #35630
This brings in the codebase from the Jetpack module to the package.
In the process:
- It adds new package dependencies instead of relying on Jetpack classes.
- It moves away from a singleton.
* Update class name
See https://github.com/Automattic/jetpack/pull/35756#discussion_r1495738696
Co-authored-by: Juanma Rodriguez Escriche <juanma.rodriguez.escriche@automattic.com>
---------
Co-authored-by: Juanma Rodriguez Escriche <juanma.rodriguez.escriche@automattic.com>
* Woo Analytics: fix namespace reference (#35857)
Follow-up from #35756
* Woo Analytics: bail early when WooCommerce is not active. (#36278)
I missed this when bringing the codebase to the package and moving to a singleton.
* Woo Analytics: avoid errors when Jetpack is loaded in mu-plugin (#36287)
Follow-up to #36278, #35758, #35756.
* Backport mu-wpcom-plugin 2.1.3, jetpack 13.3-a.1 Changes (#36359)
* Changelog and readme.txt edits.
* Init new cycle
* Phan: Add phan configs to all php projects (#36332)
Per pdWQjU-IH-p2, we're going to use Phan for PHP static analysis.
This commit adds Phan configs to all the php-using projects, and to new
projects created with `jetpack generate`.
It also adds a global production-exclude for the `.phan/` directory, as
we'll never want that in mirror repos.
And finally, it adds a structure test to ensure php-using projects
continue to have phan configs.
---------
Co-authored-by: Igor Zinovyev <zinigor@gmail.com>
Co-authored-by: Steve D <33553323+sdixon194@users.noreply.github.com>
Co-authored-by: Samiff <samiff@users.noreply.github.com>
* Backport Jetpack 13.3-a.3 Jetpack-mu-plugin 2.1.6 Changes (#36439)
* Changelog and readme.txt edits.
* Init new cycle.
* Version bumps.
* phan: Add stubs for WordPress-defined constants (#36470)
Unfortunately the php-stubs/wordpress-globals package is
broken-as-designed, because the maintainer doesn't actually want anyone
to use it. Instead he wants people to use PHPStan, which needs a
bootstrap file for constants, which he provides in his PHPStan plugin.
This initial version copies most of the constants from that PHPStan
plugin's bootstrap.
* Backport mu-wpcom-plugin 2.1.9, jetpack 13.3-a.7 Changes (#36563)
* Changelog and readme.txt edits.
* Init new cycle
* Woo Analytics: prevent accessing undefined wp.hooks on checkout (#36560)
* Add checks for wp.hooks before accessing on checkout
* Add changelog
* bump version
---------
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
* phan: Rework how stubs are specified (#36791)
In preparation for adding more specialized stubs, add a way for configs
to specify which they want by keyword rather than having to do file
paths relative to the root.
As part of that, `'is_wordpress' => false` goes away in favor of
overriding the default list of stubs to load.
* Backport mu-wpcom-plugin 2.1.14, jetpack 13.4-a.1 Changes (#36792)
Changelog and readme.txt edits.
* Changelog and readme.txt edits. (#36903)
* phan: Fix phpdocs Phan can't parse (#37102)
A lot are things like `@returns` instead of `@return`, JS syntax like
`@param {int}`, and punctuation like `@return array.`.
One thing particularly of note is that when we have a doc comment for a
hook, then later in the function a closure without a doc comment, Phan
was thinking the hook doc belonged to the closure (and then complained
that none of the `@param`s matched). We can fix that by adding a doc
comment for the closure itself.
WAF was already using some advanced syntax 👍, but they syntax they used
was incompatible with Phan in a few places:
* Phan doesn't like leading/trailing spaces in array shapes, so do like
`array{int, int}` instead of `array{ int, int }`.
* A few places they did `array<>` rather than `array{}`.
* For some reason they were using `@template` where `@type` was
intended.
* Woo Analytics: ensure the package is only initialized once (#37154)
That should avoid any issues when multiple plugins run `Woocommerce_Analytics::init();`
* Fix some straightforward PhanUndeclared issues (#37201)
Mostly it's adding suppressions for false positives, and a few phpdoc
updates, `@phan-var` type assertions, and test updates.
There are some functional changes though:
* packages/forms: Add a missing `use Jetpack_Options`.
* packages/identity-crisis: Add missing `use` of some Connection
classes.
* packages/jetpack-mu-wpcom: Remove some references to wpcom stuff that
was removed from wpcom itself a year+ ago.
* packages/my-jetpack: Define `module_name` property on `Hybrid_Product`
(defaulting to null). Then replace some `empty()` checks with boolean
checks.
* packages/plans: Add missing `use Store_Product_List`.
* packages/search: Deprecate `Search_Widget->jetpack_search` prop that
has never been set since the package was created.
* packages/sync: Fix `Replicastore::get_user()` to actually work.
I left Jetpack for a separate PR, it looks to have a long list of fixes
being needed.
I also left CRM, WP Super Cache, and VaultPress alone for now thanks to
all the phpcs exclusions that will probably make any fixes have to go
down a rabbit hole of dealing with phpcs-changed.
* Backport mu-wpcom-plugin 2.1.21, jetpack 13.4-beta Changes (#37242)
* Changelog and readme.txt edits.
* Amend readme.txt
* Woo Analytics: avoid warning with malformed user data (#37440)
This should avoid notices like the one reported in this thread:
https://wordpress.org/support/topic/create-a-vendor-account-2/
* Backport mu-wpcom-plugin 2.1.27, jetpack 13.5-a.3 Changes (#37456)
* Changelog and readme.txt edits.
* Small tweaks
* Fix more phan undeclared issues (#38015)
Mostly wpcomsh-related stuff this time.
* Fix some phpdocs and suppress some false positives.
* Add a stub file for woocommerce-payments plugin.
* Add a few Phan config 'parse_file_list' for wpcomsh functions.
* Remove some no-longer-needed suppressions.
* Remove references to some long-gone Gutenberg plugin functions.
* `gutenberg_can_edit_post_type`, removed in 5.3.0 (2019) and core has had
`use_block_editor_for_post_type` in `wp-includes/post.php` since 6.1.
* `gutenberg_get_block_template`, removed in 15.8.0 (May 2023) and core has
had `get_block_template` since 5.8.
* Use 'wpcom' stubs in wpcomsh, and add a manually-curated stub file for some
Atomic stuff too.
* wpcomsh: Remove a use of `extract()`.
* wpcomsh: Remove a plugin hotfix that said "remove after Gutenberg 15.3.x
lands on WoA", which happened a while ago now.
* wpcomsh: Switch from Jetpack's `Jetpack_WPCOM_Block_Editor` class to
jetpack-mu-wpcom's namespaced version.
* Backport jetpack 13.6-a.9 mu-wpcom-plugin 2.3.1 (#38059)
* Changelog and readme.txt edits.
* Init new cycle.
* Update dependency yoast/phpunit-polyfills to ^1.1.1 (#39004)
* Update dependency yoast/phpunit-polyfills to 1.1.0 || 1.1.1
* Caret version
* wpcomsh: Remove unnecessary phpunit dep.
`yoast/phpunit-polyfills` already brings in an appropriate version of
phpunit.
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport mu-wpcom-plugin 2.5.9, jetpack 13.8-a.7, wpcomsh 5.6.1 Changes (#39080)
* Changelog and readme.txt edits.
* Init new cycle
* Add Store ID in common properties. (#38857)
* Add store_id in common properties
* Add changelog
* Bump Project Version
* Add changelog
* Update changelog
* Update changelog
* Update changelog
* Delete invalid changelog
---------
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>
* Changelog and readme.txt edits. (#39303)
* woocommerce-analytics: Check `WC_Install::STORE_ID_OPTION` before using it (#39306)
For compatibility with WooCommerce <8.4.0.
* Changelog and readme.txt edits. (#39322)
* Changelog and readme.txt edits. (#39497)
* Package release to update script-data bundle. (#39942)
* Add/delayed order creation tracking woocommerce checkout (#39939)
* add delayed account creation flags
* changelog
* Monorepo: Restore and add test coverage config (#39961)
* Enable and normalize test coverage commands
* Revert "Code Coverage: remove automation (#28542)"
This reverts commit da5e78803f56ea0fe54f29720c05be037093b97a.
* Revert "Remove remnants of automated code coverage support (#28982)"
This reverts commit 8cc32461b2d3b7e3a4a391c033163e5ebc3822fa.
* Fix starter plugin test broken by #31417
* Plugin tests are now run in the monorepo rather than wp-content/plugins.
* Removed undocumented WP_DEVELOP_DIR variable, documented WORDPRESS_DEVELOP_DIR and WORDPRESS_DIR
* Fixed JS tests in some packages where .scripts.test-js had never been added to composer.json.
---------
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* coverage: Switch to raw coverage files (#40013)
It turns out that there really aren't any really good generic coverage
reporting tools, the best you can get is something that highlights
covered lines without function/method stats, branch info, or anything
else fancy.
To provide useful coverage output, we're going to look instead at
generating separate coverage dashboards for PHP (PHPUnit) and JS
(jest/istanbul), each generated by those tools so we can get all the
useful info possible. To do that, we'll need all the coverage commands
to generate the tools' raw data formats rather than a lossy format like
clover.
As part of this conversion, we're adding `jest.config.cjs` everywhere so
we can consistently set `collectCoverageFrom`. By default the base
config will include non-test files under `src/`. Various packages need
additional dirs such as `components/`, and a root-level `index.jsx` or
`global.d.ts` seems common too. Then, since we have config files
everywhere, we can move `coverageDirectory` and `coverageReporters` into
the configs too.
* Backport jetpack 14.0-beta Changes (#40024)
* Changelog and readme.txt edits.
* Amend readme.txt
* General: Bump minimum PHP version to 7.2 (#40147)
* Bump minimum WP version to 6.6
* Match WP tested version to readme
* Add changelogs
* Remove 7.0 tests
* Update comments with more recent data
* Update composer.lock
* Fix comment
* Backup: Add next daily backup schedule time (#39914)
* Set up react-query, moment and typescript
* changelog
* Add endpoint to fetch site backup schedule time
* Setup react-query (queryClientProvider)
* Add useScheduledTimeQuery hook to fetch schedule time
* Add hook to parse and return the next backup schedule time
* Add component to render the next scheduled backup message
* Fix record Tracks event
* Removing changelog for migration and core plugin
* Bump `Automattic\Jetpack\Backup` namespace to V0005
* changelog
* Bump `Automattic\Jetpack\Transport_Helper` to V0005
* Remove `between` to make `Modify` fit in the same line
* Fix pnpm lock
* Bump PHP 7.0 refs
* Clean up false positive
* setMethods → onlyMethods
* Add changelogs
* Bump PHP 7.0 refs
* Clean up false positive
* setMethods → onlyMethods
* Add changelogs
* More changelogs
* Remove suppression for old PHP versions
* Make PHPCS and Phan rules match
* Docs tweak
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* Remove comment
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* Remove inaccurate changelogs
* Make params explicitly nullable
* Oops: onlyMethods → addMethods
* Another onlyMethods → addMethods
* Last one
* Split existing and new methods to mock
* Prevent error when not adding new methods
* Update Phan baselines
* Use a more recent theme
* Remove unneeded @requires
* Update composer.lock
* Debug
* More debug
* Remove debug
* Remove more debug
* Oops, missed one
* Add another changelog
---------
Co-authored-by: Rafael Agostini <rafael.agostini@automattic.com>
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* Changelog and readme.txt edits. (#40231)
* [WooCommerce Analytics] Add Common props, new events and bug fixing (#40562)
* Avoid to track Ajax and Login pages
* Support session_started event
* Add Common events
* Fix error triggering checkout_view when visiting classic cart
* Fix error not triggering cart_view when visiting a page with cart block
* Fix "null" as string error in user_id
* Fix consistency problems with totals and counts
* Fix update cart quantity
* Fix update cart in blocks
* Add totals, shipping totals & taxes
* Fix Checkout Product View data
* Changelog and readme.txt edits. (#40725)
* [WC Analytics] Fix fatal error when cart is null (#40729)
* Prevent fatal when cat is null
* Changelog
* Changelog and readme.txt edits. (#40731)
* [WooCommerce Analytics] Support for Search and Landing Page (#40698)
* Support for Search event and Landing Page tracking in WooCommerce Analytics package
* Backport jetpack 14.2-beta Changes (#40861)
* Changelog and readme.txt edits.
* Amend readme.txt
* WC Analytics: Disable session cookie that was breaking cache (#40937)
* Disable setcookie and record
* Add changelogs
* Comment problematic code regarding cache
---------
Co-authored-by: Miguel Pérez Pellicer <5908855+puntope@users.noreply.github.com>
* Backport jetpack 14.2.1 changes (#40940)
* Changelog and readme.txt edits.
* Changelog tweaks
* WC Analytics: Disable session cookie that was breaking cache (#40937)
* Disable setcookie and record
* Add changelogs
* Comment problematic code regarding cache
---------
Co-authored-by: Miguel Pérez Pellicer <5908855+puntope@users.noreply.github.com>
* Bump version to 14.2.1
* Write changelogs
* Bump stable tag in release branch
* Release packages/woocommerce-analytics 0.4.1
---------
Co-authored-by: Miguel Pérez Pellicer <5908855+puntope@users.noreply.github.com>
* Backport jetpack 14.3-a.1 Changes (#41003)
* Changelog and readme.txt edits.
* Remove changelog that belonged to old release
* Changelog and readme.txt edits. (#42002)
* phpunit: Cleanup remaining `phpunit.xml.dist` files (#42129)
PHPUnit 10+ requires that test class names match the filename, PSR-4
style. These projects have a `phpunit.xml.dist` that needs updating
even though they currently have no tests to be renamed.
This PR also updates the skeleton configs for `jetpack generate`.
* Changelog and readme.txt edits. (#42328)
* phpunit: Use phpunit-select-config, and some cleanup (#42266)
* Remove obsolete polyfills
* gitignore `.phpunit.cache` by default
* production-exclude `phpunit.xml.dist` and `phpunit.*.xml.dist` by default
* production-exclude tests dirs
* Use phpunit-select-config everywhere
* cli: Support copying symlinks for `jetpack generate`
* Changelog and readme.txt edits. (#42406)
* phpunit: Update `yoast/phpunit-polyfills` to v3, bringing PHPUnit 11 for PHP 8.2+ (#42517)
This adds PHPUnit 11 configurations for all PHPUnit-using projects, and
regularizes the PHPUnit 9 configurations as well.
It also drops `johnkary/phpunit-speedtrap` from `plugins/jetpack`, since
that doesn't support PHPUnit >9. If we decide we still want a slow-test
thing, `ergebnis/phpunit-slow-test-detector` looks like a popular
candidate.
* Changelog and readme.txt edits. (#42671)
* phpunit: Update to yoast/phpunit-polyfills v4 (#43231)
This brings in use of PHPUnit 12 for PHP 8.3+. Other than needing
`phpunit.12.xml.dist` files (as symlinks to the PHPUnit 11 configs),
this seems to work without issue after a few cleanups in #43215
and #43217.
* Changelog and readme.txt edits. (#43274)
* WooCommerce Analytics: Catch errant null param from third-party code (#43346)
* Account for null param
* Add changelog
* Combine conditions
* Collapse conditions further
* Backport jetpack 14.6-beta Changes (#43371)
* Changelog and readme.txt edits.
* Amend readme.txt
* Prevent PHP warnings due to non-WP_POST $post global and malformed block data (#43890)
* Catch PHP warning in carousel
* Add changelog
* Catch another case
* Add changelog
* PHP warning in forms
* PHP warning in VideoPress
* Add changelogs
* Update projects/plugins/jetpack/modules/carousel/jetpack-carousel.php
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
---------
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* Changelog and readme.txt edits. (#43971)
* WooCommerce Analytics: use Scan Delimiter instead of parse_blocks (#44544)
Co-authored-by: Peter Petrov <peter.petrov89@gmail.com>
* Backport jetpack 14.9-beta Changes (#44615)
* Changelog and readme.txt edits.
* Amend readme.txt
* Merge `release/woocommerce-analytics-0.5.0` into trunk (#44729)
* Fix Sessions support in WooCommerce Analytics (#41984)
* Fix woocomerceanalytics_session
* Add clickhouse param to record events in w.gif
* Fix bug with session event loop
* Block non clickhouse events for create sessions
* [WooCommerce Analytics] Implement Page View Tracking (#42259)
* Implement page view in WooCommerce Analytics Tracking
* [WooCommerce Analytics] Set session expiration to 30 mins or midnight (#42286)
* Implement session expiration (30 mins or midnight)
* [WooCommerce Analytics] Fix update cart not being triggered (#42369)
* Fix Update Cart not triggering
* [WooCommerce Analytics] Implement Session Engagement (#42423)
* Implement session engagement
* Update ClickHouse Event Triggering to Require Explicit Invocation (#44653)
* [WooCommerce Analytics] Refactor ClickHouse Event Handling and Engagement Logic
* Rename method to clarify intent for ClickHouse event checks.
* Introduce a new method to conditionally record engagement based on ClickHouse status.
* Simplify engagement recording logic to avoid unnecessary calls during initial page views.
* Add changelog
* WooCommerce Analytics: Improve `get_current_url()` and URL sanitization (#44679)
* [WooCommerce Analytics] Refactor session cookie handling and improve URL sanitization
* Refactor session cookie creation to use wp_json_encode for better data handling.
* Enhance get_current_url method to improve URL sanitization and handling of request components.
* Add changelog
* [WooCommerce Analytics] Refactor session cookie handling and improve data encoding
* Simplify session data creation by directly using an array and encoding it with rawurlencode.
* Update get_session_cookie method to handle cookie decoding more robustly without unnecessary sanitization.
* Ensure proper handling of session data retrieval from cookies.
* [WooCommerce Analytics] Refactor landing page handling and improve session data encoding
* Update landing page retrieval to use the method directly instead of a variable.
* Change session data encoding to use wp_json_encode for consistency and improved handling.
* Simplify cookie decoding by removing unnecessary rawurlencode.
* Update common props
* [WooCommerce Analytics] Refactor session engagement logic
* Simplify session engagement handling by directly modifying session data and using wp_json_encode for cookie creation.
* Remove unnecessary cookie decoding logic and streamline JavaScript enqueueing for engagement tracking.
* [WooCommerce Analytics] Enhance session data handling for landing page tracking
* Add landing page encoding to session data before cookie creation.
* Ensure session engagement flag is set correctly for improved tracking.
* WooCommerce Analytics: fix logic for capturing cart update event (#44731)
* WooCommerce Analytics: fix logic for capturing cart update event
* Update the logic for capturing add and remove to cart events to ensure proper session data handling.
* Simplify the conditions for event capturing by returning early when the quantity does not change, improving code clarity and performance.
* Add changelog
* Revert url change
* Remove url from woocommerceanalytics_page_view prop
---------
Co-authored-by: Miguel Pérez Pellicer <5908855+puntope@users.noreply.github.com>
* Backport packages/woocommerce-analytics 0.5.0 changes (#44770)
* Bump packages/woocommerce-analytics 0.5.0
* Bump other related packages
* WooCommerce Analytics: Fix various PHP warnings (#44808)
* Fix warnings in class-universal.php
* Add changelog
* WooCommerce Analytics: Replace URL tracking with breadcrumb-based landing page tracking (#44789)
* Enhance WooCommerce Analytics: Update landing page handling and add breadcrumb trail functionality
- Encode landing page data in JSON format for consistency.
- Introduce a new method to retrieve breadcrumb titles for better navigation context.
- Adjust session data handling to utilize the new breadcrumb titles instead of the current URL.
This improves user engagement tracking and enhances the overall analytics experience.
* Add changelog entry for breadcrumb landing page tracking
* Update landing page variable type to array and enhance JSON encoding logic
- Changed the type of the landing_page variable from string to array for better data handling.
- Updated the JSON encoding logic to return an empty string if the landing_page is empty, ensuring consistent output.
This change improves the flexibility and reliability of landing page data in WooCommerce Analytics.
* Refactor landing page handling in WooCommerce Analytics
- Updated the landing_page variable to store breadcrumb trail as a JSON string instead of an array for improved data consistency.
- Enhanced session data encoding by using rawurlencode for better handling of special characters.
- Adjusted the retrieval of landing page data to ensure proper JSON decoding.
These changes streamline the analytics process and enhance the accuracy of session tracking.
* Backport jetpack 15.0-a.5 Changes (#44823)
* Changelog and readme.txt edits.
* Apply suggestions from code review
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
---------
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* WooCommerce Analytics: Fix duplicate product purchase events (#44973)
* Refactor event tracking in Universal class: update order processing hooks and improve capture_event_in_session_data method to accept event properties.
This enhances the accuracy of event data captured during checkout and cart actions.
* changelog
* Fix woo analytics session event (#44992)
* WooCommerce Analytics: Simplify event property handling in Universal class
* Update event recording to directly use properties from data instances, removing redundant property assignments.
* Adjust quantity property key for consistency in event data structure.
* changelog
* Fix lint
* Backport jetpack 15.0-beta Changes (#45034)
* Bump Phan to 5.5.1 (#45163)
* Changelog and readme.txt edits. (#45179)
* WooCommerce Analytics: Implement server-side tracker class (#45208)
* Add WooCommerce Analytics Tracking classes for server side tracking
- Introduced WC_Analytics_Ch_Event class for handling ClickHouse pixel URL.
- Added WC_Analytics_Tracking class to manage event recording for WooCommerce Analytics, including support for ClickHouse events.
- Implemented methods for event property retrieval, session management, and IP address handling.
- Defined allowed ClickHouse events and integrated with existing tracking functionality.
* changelog
* Add doc
* Fix lint
* Fix lint
* Refactor WC_Analytics_Tracking to separate server detail gathering
- Moved server detail properties into a new method `get_server_details`.
- Cleaned up the required properties array for event tracking.
- Improved code organization and readability.
* Update projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Refactor IP address retrieval in WC_Analytics_Tracking
- Enhanced the get_user_ip_address method to validate and return the first valid IP address from a list of potential headers.
- Improved documentation to clarify the return value when no valid IP address is found.
* Enhance event recording in WC_Analytics_Tracking
- Added error handling for Tracks and ClickHouse event recording.
- Improved logic to return the appropriate error if both event recordings fail.
- Ensured that ClickHouse events are only recorded if applicable.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* WooCommerce Analytics: Implement server-side direct event delivery (#45209)
* Implement server-side direct event delivery
- Removed deprecated event queuing methods in My_Account and Universal classes.
- Replaced queued event tracking with direct event recording using WC_Analytics_Tracking.
- Updated event names for consistency and clarity in tracking user actions related to account management and cart interactions.
* Add changelog
* Update compose_event_properties
* Refactor event property handling in Universal class
- Replaced the `compose_event_properties` method with `get_cart_checkout_event_properties` to enhance clarity and functionality.
- Updated event tracking calls to use the new method, incorporating additional cart and checkout details for improved analytics.
* Changelog and readme.txt edits. (#45248)
* WooCommerce Analytics: Implement on-site pixel API endpoint with POST support (#45227)
* Add REST API tracking functionality to WooCommerce Analytics
- Introduced WC_Analytics_Tracking_Proxy class to handle tracking events via the REST API.
- Registered new REST API routes for tracking events.
- Implemented event validation and response handling in the track_events method.
- Enhanced the schema for tracking events to ensure proper structure and validation.
* Add changelog
* Fix lint
* Backport jetpack 15.1-a.7 Changes (#45266)
* Changelog and readme.txt edits.
* Apply suggestions from code review
Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
---------
Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
* WooCommerce Analytics: Implement client-side analytics tracking (#45268)
* WooCommerce Analytics: Add initial package setup and dependencies for JS client tracking
- Added dependencies and devDependencies for analytics tracking and build processes.
- Updated pnpm-lock.yaml to include new dependencies and versions.
- Modified .gitignore to exclude build artifacts and cache files.
* WooCommerce Analytics: Add queue events for client-side processing
- Removed direct event recording in favor of queuing events for client-side processing.
- Updated event names for consistency and clarity.
- Eliminated unused session management properties and methods to streamline the codebase.
- Introduced a new method to enqueue events, enhancing performance and maintainability.
* WooCommerce Analytics: Implement client-side analytics tracking
- Added a new client-side analytics module to handle event tracking and session management.
- Introduced the Analytics class to manage event recording and processing.
- Created a SessionManager to handle user sessions and cookies.
- Added event listeners for account and cart interactions to capture user actions.
- Registered a new client-side script for analytics tracking in the WooCommerce environment.
* Fix WooCommerce Analytics plugin URL handling in monorepo setup
- Updated the logic for constructing plugin URLs to differentiate between WooCommerce Analytics and other plugins.
- Added a condition to handle the specific case of 'class-woocommerce-analytics.php' for accurate URL generation.
- Improved the suffix construction for plugin paths to ensure correct symlink resolution in the monorepo structure.
* changelog
* Revert empty lines
* Remove unused dependency '@automattic/jetpack-analytics' from WooCommerce Analytics package and update pnpm-lock.yaml to reflect changes in webpack dependencies.
* Update .gitignore
* Refactor cart item removal tracking
- Moved the cart item removal tracking logic from the server-side to the client-side.
- Removed the `remove_from_cart_via_quantity` method from the Universal class.
- Implemented a new `trigger_cart_remove` function in the cart.js file to handle the event when the "Update Cart" button is clicked.
- Ensured the event is recorded when an item's quantity is updated to zero, improving the accuracy of cart analytics.
* Update event listener for "Update Cart" button to use optional chaining
- Modified the event listener for the "Update Cart" button to utilize optional chaining, ensuring that the listener is only added if the button exists in the DOM.
- This change improves the robustness of the cart item removal tracking by preventing potential errors when the button is not present.
* Change get_breadcrumb_titles back to private
* Update WooCommerce Analytics package version to 0.7.0 and modify composer.lock to include new dependencies and build steps. Add changelog entry for frontend JS tracking updates.
* Refactor event tracking method names in WooCommerce Analytics
- Updated method names from `queue_event` to `enqueue_event` across multiple classes to improve consistency and clarity in event handling.
- Adjusted related event tracking calls in the My Account and Universal classes to reflect the new method naming.
* Refactor Analytics class methods to use arrow functions
- Converted several methods in the Analytics class to arrow functions for improved context handling and consistency.
- Updated event listener initialization in the account and cart listener files to use the new recordEvent function signature.
* Enhance session management and event tracking in WooCommerce Analytics
- Refactored the Analytics class to ensure session initialization and event recording only occur when the ClickHouse feature is enabled.
- Updated the session manager to prevent re-initialization and ensure session data is only set if the session cookie is successfully created.
- Removed the unused method for listening to Store API calls, streamlining the event handling process.
- Improved the logic for recording engagement events based on session state and feature availability.
* Refactored session management logic
- Bumped the package version to 0.8.0.
- Refactored session management logic in the Analytics class to improve clarity and maintainability.
- Introduced a new method, `maybeRecordSessionStartedEvent`, to streamline session start event recording based on session state.
* Update jetpack/composer.lock
* Remove unnecessary client side cart tracking
* Refactor analytics data injection in WooCommerce Analytics
- Renamed the method `enenqueue_events_to_track` to `inject_analytics_data` for clarity.
- Enhanced the injected analytics data to include session tracking based on ClickHouse feature availability.
- Improved the structure of the injected JavaScript for better readability and maintainability.
* Use typescript
* Update pnpm-lock.yaml
* Fix prop names
* Fix uuid
* Fix is_guest value, it need to be 1 or 0
* Remove unused localization of wcAnalytics in WooCommerce Analytics class
* Apply suggestions
* Fix session cookie props
* Include build folder in production
* WooCommerce Analytics: Add experimental API-based event tracking (#45279)
* Add API client for event tracking in WooCommerce Analytics
- Introduced a new ApiClient class to handle sending analytics events to the WordPress REST API.
- Implemented event queuing with debouncing and batch sending capabilities.
- Updated the Analytics class to utilize the ApiClient for event recording when proxy tracking is enabled.
- Enhanced constants for API configuration, including namespace, endpoint, batch size, and debounce delay.
- Added new types for API events and fetch responses to improve type safety and clarity.
* Add api fetch
* Refactor analytics event properties handling in WooCommerce Analytics
- Introduced a new method, `get_cart_checkout_event_properties`, to standardize the structure of event properties for various analytics events.
- Updated the `inject_analytics_data` method to conditionally include common properties based on proxy tracking status.
- Enhanced event property merging logic to ensure overrides are applied correctly.
- Added a private method to check if proxy tracking is enabled, improving configurability for analytics tracking.
* Revert empty line
* Fix lint
* Disable proxy by default
* Add changelog
* Remove redundantly initializing properties
* WooCommerce Analytics: Add IP-based unique visitor identification (#45285)
* Add Features class for WooCommerce Analytics
* Refactor analytics tracking methods in WooCommerce Analytics
- Updated the `inject_analytics_data` method to use the new `Features` class for checking ClickHouse and proxy tracking statuses.
- Removed redundant private methods for checking ClickHouse and proxy tracking, streamlining the codebase.
* Add caching for visitor ID and IP address in WooCommerce Analytics
- Introduced caching for the visitor ID and user IP address to improve performance.
- Added methods for generating and retrieving a daily salt for visitor ID hashing, enhancing privacy protection.
- Updated the `get_visitor_id` and `get_user_ip_address` methods to utilize cached values, reducing redundant calculations.
* Add changelog
* Rename option
* Remove cleanup of expired/invalid salt data in WC_Analytics_Tracking class to streamline salt generation process.
* Disable proxy by default
* Use features::is_clickhouse_enabled
* Enhance visitor ID hashing in WC_Analytics_Tracking class
- Updated the hashing mechanism for visitor IDs to include the domain and user agent, improving uniqueness and security.
- The new hash input combines daily salt, domain, IP address, and user agent for better identification.
* Fix lint
* Update projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* WooCommerce Analytics: Add proxy speed module to enhance proxy API performance (#45243)
* Add proxy speed module to WooCommerce Analytics
- Introduced a new class `WooCommerceAnalyticsProxySpeed` to handle proxy requests and optimize performance.
- Added methods to manage the installation and removal of the proxy speed module.
- Implemented functionality to filter active plugins based on proxy requests.
- Created a new MU plugin file for the proxy speed module.
* Enhance WooCommerce Analytics proxy speed module integration
- Added a constant for the proxy speed module version.
- Updated methods to manage the addition and removal of the proxy speed module, removing unnecessary user capability checks.
- Changed the installation process to copy the proxy speed module file instead of a directory.
- Integrated calls to add and remove the proxy speed module in Jetpack plugin initialization and deactivation processes.
* changelog
* Improve WooCommerceAnalyticsProxySpeed
* Add changelog
* Update projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/packages/woocommerce-analytics/src/class-woocommerce-analytics.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update WooCommerce Analytics build for production (#45296)
* Update build scripts in WooCommerce Analytics package
- Refactored build scripts in composer.json to use arrays for build commands, enhancing clarity and maintainability.
- Updated package.json to streamline the build process by modifying the build command for production and client builds, ensuring consistency in execution.
* changelog
* Update composer.lock
* changelog
* WooCommerce Analytics 0.9.0 release (#45297)
* WooCommerce Analytics: README documentation update (#45316)
* WooCommerce Analytics: Comprehensive README documentation update
- Transform README from 25 lines to 230+ lines of detailed documentation
- Add complete event tracking table with 23 events organized by category (Session, Navigation, Store, Account)
- Document recording methods: JS, PHP → JS Queue, PHP (Immediate)
- Add feature flag configuration for ClickHouse and proxy tracking
- Document user identification system (tk_ai cookie, IP-based ID with daily salt rotation)
- Add session management details with expiration policies
- Include architecture overview and data flow diagrams
- Add development commands, debugging instructions, and troubleshooting
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add proxy API performance optimization documentation
- Document MU plugin speed module that reduces plugin loading overhead by 70-90%
- Explain how speed module only loads essential plugins (WooCommerce, WooCommerce Analytics, Jetpack) for proxy requests
- Add client-side batching logic details (10 events or 1s debounce delay)
- Include page unload handling and automatic retry for failed events
- Provide comprehensive proxy tracking performance guidance
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add changelog
* Update product_purchase trigger description
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Changelog and readme.txt edits. (#45324)
* WooCommerce Analytics: Fix WC_Tracks class not found fatal error (#45330)
* Fix WC_Tracks class not found fatal error
* Fix warnings
* Add changelog
* Changelog and readme.txt edits. (#45333)
* Update babel monorepo (#45334)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* WooCommerce Analytics: Implement WP Consent API Integration (#45323)
* Implement consent management in WooCommerce Analytics
* Introduce ConsentManager class to handle user consent for statistics tracking.
* Integrate consent checks in the Analytics class to conditionally record events based on user consent.
* Add consent change listener to reinitialize analytics when consent is granted.
* Update session management to clear session data upon consent withdrawal.
This update enhances user privacy compliance by ensuring analytics only operate with user consent.
* Implement consent management for event tracking in WooCommerce Analytics
* Introduce Consent_Manager class to handle user consent for statistics tracking.
* Integrate consent checks in WC_Analytics_Tracking and WC_Analytics_Tracking_Proxy classes to conditionally process events based on user consent.
* Ensure backward compatibility by defaulting to true when the WP Consent API is unavailable.
This update enhances user privacy compliance by ensuring analytics only operate with user consent.
* Fix watch command
* Update readme
* changelog
* Rename methods
* Add wp consent api stub
* Update comment
* Refine consent management terminology and clean up code
* Update comments to clarify the consent type related to the WP Consent API.
* Change message in the tracking proxy to specify 'analytics consent' for clarity.
* Remove unused global declarations and a consent change listener method from the ConsentManager class to streamline the codebase.
* Load script dynamically
* WooCommerce Analytics 0.10.0 release (#45349)
* WooCommerce Analytics: Add JSON_HEX_TAG to wp_json_encode (#45393)
* Enhance JSON encoding in WooCommerce Analytics by adding JSON_HEX_TAG and JSON_UNESCAPED_SLASHES options for better data handling.
* changelog
* Fix call to undefined method `WC_Tracks::get_server_details()` (#45394)
* Enhance WC_Analytics_Tracking: Add compatibility for server and blog details retrieval
* Implement conditional checks for `get_server_details` and `get_blog_details` methods to support WC_Site_Tracking for versions below 6.8.
* Ensure backward compatibility with existing parent class methods.
* changelog
* Fix phan check
* WooCommerce Analytic: Set anonymous id when initializing the tracker (#45547)
* SessionManager: Implement anonymous ID handling and random token generation
* Add maybeSetAnonId method to set a first-party cookie if not already present
* Introduce generateRandomToken method for creating secure random tokens
* Update session initialization to call maybeSetAnonId
* changelog
* Refactor Analytics and SessionManager for anonymous ID handling
* Introduce getCookie and generateRandomToken utility functions for cookie management and token generation
* Implement maybeSetAnonId method in Analytics to set a first-party cookie if not present
* Update SessionManager to utilize the new getCookie utility and remove redundant methods
* Enhance session initialization by ensuring anonymous ID is set correctly
* Generate anonymous ID in server side as well to ensure id always exists
* Add return statement for cached visitor ID in WC_Analytics_Tracking class
* Ensure cookie is set only if headers are not sent in WC_Analytics_Tracking class
* Update visitor ID generation in WC_Analytics_Tracking class to use base64-encoded random binary string for improved anonymity
* Fix lint
* Add bot detection to skip event recording in analytics tracking (#45552)
* Add bot detection to skip event recording in analytics tracking
- Implemented a method to identify bot requests based on user agent.
- Updated event recording logic to skip events from detected bots.
- Fixed a typo in the method documentation for event name parameter.
* changelog
* Update bot detection regex in analytics tracking to improve accuracy
- Replaced the existing user agent regex with a more comprehensive pattern to identify a wider range of bots.
- Adjusted regex delimiters to prevent issues with unescaped characters.
* Add new bot user agents to detection list
- Expanded the list of recognized bot user agents in the User_Agent_Info class to include various new bots, enhancing the accuracy of bot detection.
- This update includes well-known bots such as gptbot, claudebot, and others, improving overall functionality.
* Integrate Device Detection for Bot Tracking
- Added the Device Detection package to enhance bot detection capabilities in analytics tracking.
- Updated the logic to utilize the existing bot detection method, improving accuracy in skipping event recording for bot requests.
- Revised changelog entry for clarity on the changes made.
* Update changelog
* Update composer.lock
* changelog
* Backport jetpack 15.2-a.7 Changes (#45635)
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Update dependency typescript to v5.9.3 (#45652)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* WooCommerce Analytics: Prevent server-side track event rejections due to array event properties (#45544)
* Enhance WC_Analytics_Tracking: Convert array values to comma-separated strings and URL-encode for pixel URL compatibility. Serialize non-indexed arrays to JSON strings
* changelog
* WooCommerce Analytics: Set dynamic WebPack public path for split assets (#45654)
* Set dynamic WebPack public path for split assets in WooCommerce Analytics
* Added a new public-path.ts file to dynamically set WebPack's publicPath based on the assets_url from wcAnalytics.
* Updated class-universal.php to define assets_url for proper asset loading.
* Modified global.d.ts to include assets_url in the wcAnalytics type definition.
* Imported public-path in index.ts to ensure the public path is set correctly.
* changelog
* Fix path
* WooCommerce Analytics: Enable ClickHouse tracking by default to send all front-end data to both ClickHouse and Nosara (#45696)
* WooCommerce Analytics: Enable ClickHouse tracking by default to send all front-end data to both ClickHouse and Nosara
This change updates the default value for ClickHouse tracking from false to true, ensuring that all front-end analytics events are now sent to both ClickHouse and Nosara (Tracks) simultaneously. This supports the data team's transition to evaluate ClickHouse as the primary storage solution while maintaining compatibility with existing Nosara-based systems.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add changelog
---------
Co-authored-by: Claude <noreply@anthropic.com>
* WooCommerce Analytics: Send all front-end data to both ClickHouse and Nosara (#45723)
* WooCommerce Analytics: Disable ClickHouse tracking by default and remove related constants
This update changes the default setting for ClickHouse event tracking from true to false, effectively disabling it by default. Additionally, the code has been cleaned up by removing the constants related to ClickHouse events and refactoring the tracking logic to align with the new default behavior. This ensures a more streamlined approach to event tracking in WooCommerce Analytics.
* changelog
* Phan: Address PhanRedundantCondition, PhanRedundantArrayValuesCall, and PhanPluginRedundantAssignment violations (#45681)
* Backport jetpack 15.2-beta Changes (#45745)
* Changelog and readme.txt edits.
* Amend readme.txt
* Apply suggestions from code review
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
---------
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Use batch requests when possible (#45869)
* WooCommerce Analytics: Implement batched pixel requests
Implements request batching for analytics tracking pixels to improve performance by sending multiple tracking events together rather than individually.
Changes:
- Queue tracking pixels during request and send on shutdown hook
- Use WordPress Requests library request_multiple() for parallel execution when available (100ms timeout)
- Fallback to sequential non-blocking wp_remote_get() when batch API unavailable
- Maintains backward compatibility with existing WC_Tracks_Client implementation
Benefits:
- Parallel execution reduces total request time (10 pixels ~100ms vs ~1000ms sequential)
- Non-blocking fallback ensures no impact when batching unavailable
- Minimal overhead with only 2 new class properties
* Add changelog
* Fix build_pixel_url() method call - remove incorrect parameter
* WooCommerce Analytics: Only use batched requests when request_multiple is available
Optimize batching logic to check for request_multiple support before queuing events. When batching is not supported, fall back to the original implementation by sending events immediately using WC_Tracks_Client::record_event(). This ensures events are not unnecessarily queued when they cannot be batched, improving reliability on systems without the Requests library batching capability.
* WooCommerce Analytics: Remove unused send_with_individual_requests method
Remove the send_with_individual_requests method as it is no longer needed. With the updated logic, non-batching environments now send events immediately using WC_Tracks_Client::record_event() instead of queuing them.
* Fix type mismatch: send pixel URL directly for non-batching fallback
Replace WC_Tracks_Client::record_event() call with direct wp_remote_get() to send the pixel URL. WC_Tracks_Client::record_event() expects an array parameter but we have an event object, and we've already built the pixel URL. This matches the original implementation approach of sending pixel URLs via HTTP GET requests.
* Use WC_Tracks_Client::record_event for non-batching fallback
Simplify the non-batching fallback to use WC_Tracks_Client::record_event() directly, matching the existing pattern used elsewhere in the codebase. Add Phan suppression annotation to handle the type mismatch warning, as WC_Tracks_Client::record_event() accepts both array and event object parameters at runtime.
* Add phpcs ignore comment before Phan suppression
Ensure proper comment formatting by including phpcs ignore before the Phan suppression annotation.
* Fix Phan type mismatch suppression for WC_Tracks_Client::record_event
Corrected the Phan suppression format from @phan-suppress-current-line to @phan-suppress-next-line and used the correct error type PhanTypeMismatchArgument instead of PhanTypeMismatchArgumentProbablyReal. This properly suppresses the type mismatch error when passing WC_Tracks_Event or WC_Analytics_Ch_Event objects to WC_Tracks_Client::record_event() which expects an array.
* Remove error_log call from batch pixel request failure handler
Silently fail without logging when batch pixel requests fail, as tracking pixels should not generate error logs or break the site.
* Use WooCommerce logger instead of error_log for batch pixel failures
Replace error_log with wc_get_logger() to properly log batch pixel request failures through WooCommerce's logging system. This provides better integration with WooCommerce's status tools and maintains consistency with the rest of the WooCommerce ecosystem.
* Apply suggestion from @kangzj
* Update wordpress monorepo (#45915)
* Update wordpress monorepo
* pnpmfile: `@automattic/components` is not compatible with `@wordpress/icons` v11
* Pnpmfile hack for `@wordpress/media-utils` and `@wordpress/admin-ui` missing deps on `react`
* tests: Fix deep mocking
Various packages are now using `exports`, which means we can't have jest
mock some deep entry point anymore. Fortunately all the tests seem ok
with using a Proxy object to mock the whole package.
* pnpm: Hack packages to flag ESM files correctly as ESM
We do this by injecting a stub `package.json` into the directory holding
the ESM `.js` files, because the resolution algorithm looks at the
closest package.json rather than the package-as-a-whole's package.json.
On the down side, we have to make sure to copy the `sideEffects`
property into the stub, because that too looks at the closest one.
Hopefully there aren't more things like that.
In addition to the Gutenberg packages, the `uuid` package also has this
issue showing up now for some reason.
* webpack: Set `resolve.fullySpecified` to false for Gutenberg packages
When the file is correctly flagged as containing ESM, Webpack by default
requires the full file import rather than a directory or extensionless
import. We can change that behavior by setting `resolve.fullySpecified`.
Gutenberg itself doesn't run into this because they're relying on
webpack/babel to be lenient with files that are flagged as CommonJS but
contain ESM code.
* scan: Revert dataviews test hack from #45551
No longer necessary after the ESM-fixing hack in this PR.
* Gutenberg seems to have stopped publishing the `.native.js` entry
points. Disable linting of our `.native.[jt]s` files until that is
resolved.
* Fix typechecks
We can't deep-import the types directly anymore, so we have to start
with what we can import and use utility functions and accessors to drill
down to the types we need.
* forms: Hack around `@wordpress/interactivity` going ESM-only.
I worked out a hacky way to get the test to pass without being too
invasive.
In the long run it would be better to convert `packages/forms` to run
Jest in ESM mode, i.e.
`NODE_OPTIONS=--experimental-vm-modules jest --config=tests/jest.config.js`.
But making that happen will be a lot more invasive: probably you'll need
to set `"type": "module"` in `package.json` too so all the existing
ESM-containing `.js` files get properly interpreted as ESM, and then
you'll have to fully specify all the imports (i.e. change `import from
'./subdir'` to `import from './subdir/index.js'` and `import from
'./file'` to `import from './file.js'`), and clean up anything else that
breaks too.
On the easier side, you could just rename some of the config files, like
`babel.config.js` → `babel.config.cjs` and `tools/webpack.config.*.js` →
`tools/webpack.config.*.cjs`, if converting them is too annoying.
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Update JS unit testing packages (#45958)
* Update JS unit testing packages
* Update babel-jest too.
And added it to the 'JS unit testing packages' group going forward.
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.3-a.3 Changes (#45964)
* Changelog and readme.txt edits.
* Combining entires
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Combining entires
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Combining entires
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Combining entires
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Combining entires
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Apply suggestions from code review
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
---------
Co-authored-by: Grzegorz Chudzinski-Pawlowski <>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* WooCommerce Analytics: Add backwards compatibility for add_request_timestamp_and_nocache() (#45988)
* Add backwards compatibility for WC_Tracks_Client::add_request_timestamp_and_nocache()
The add_request_timestamp_and_nocache() method was introduced in WooCommerce 9.7.0. This commit adds a compatibility check to prevent fatal errors when running with older WooCommerce versions.
When the method is not available, the code now falls back to manually appending the timestamp and nocache parameters to the pixel URL, replicating the exact behavior of the newer method.
This ensures WooCommerce Analytics tracking continues to work correctly across all supported WooCommerce versions.
* changelog
* Changelog and readme.txt edits. (#45990)
Co-authored-by: Grzegorz Chudzinski-Pawlowski <>
* Phan: Address issues discovered while testing against old WooCommerce stubs (#46003)
* Backport jetpack 15.3-a.9 changes (#46063)
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* WooCommerce Analytics: Fix proxy speed module installation with proper error/path handling (#45801)
* Enhance WooCommerce Analytics: Add checks for mu-plugin directory writability and source file existence, improve error logging, and ensure proper file copying.
* Add changelog
* Update projects/packages/woocommerce-analytics/changelog/fix-woocomerce-analytics-proxy-speed-copy
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use copy directly
* WooCommerce Analytics: Use WP_Filesystem API consistently
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jasper Kang <jasper.kang@automattic.com>
* WooCommerce Analytics: Use Beacon API for reliable event tracking with fallback (#45891)
* Analytics: Use Beacon API for reliable event tracking with keepalive fallback
Implements navigator.sendBeacon() as the primary method for sending analytics events, with graceful fallback to fetch() with keepalive option. This ensures reliable event delivery, especially during page unload scenarios where traditional async requests may be cancelled by the browser.
Changes:
- Add sendEventsViaBeacon() method using navigator.sendBeacon API
- Replace @wordpress/api-fetch with native fetch() + keepalive option
- Pass REST API endpoint URL from server to handle plain permalinks correctly
- Add trackEndpoint to wcAnalytics config in PHP (using rest_url())
- Remove @wordpress/api-fetch dependency from package.json
- Remove unused API_NAMESPACE and API_ENDPOINT constants
Benefits:
- Guaranteed event delivery on page unload (browser queues beacon requests)
- Better mobile browser support (especially iOS Safari)
- Works correctly with plain permalinks
- Filters out sophisticated bots that disable beaconing APIs
- Simpler codebase with native Web APIs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* changelog
* Enhance event tracking reliability by checking for trackEndpoint availability
This update adds a check for the existence of the trackEndpoint in the wcAnalytics configuration before attempting to send events. If the trackEndpoint is not available, a debug message is logged, and the event sending process is halted. The fallback mechanism to fetch with keepalive is retained for cases where the Beacon API fails, ensuring robust event delivery.
Changes:
- Added a conditional check for window.wcAnalytics?.trackEndpoint
- Updated debug logging for better clarity on event sending status
* Update pnpm-lock.yaml
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Update wordpress monorepo (#46143)
* Update wordpress monorepo
* publicize-components: Remove no-longer-needed `@ts-expect-error`
* my-jetpack: Account for change of timezone offset from string to number
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.3-beta changes (#46157)
* Changelog and readme.txt edits.
* Amend readme.txt
* Update stable tag in readme.txt
---------
Co-authored-by: Grzegorz Chudzinski-Pawlowski <>
* Packages and Tools: Ensure proper flags are used with json_encode() (#46092)
This is a best-effort application of proper flags for `json_encode()`
and `wp_json_encode()`.
It also includes some cleanup of PHP 5.2 compatibility
(`JSON.parse(decodeURIComponent())`), which was a workaround for when
the flags we now use did not exist.
---------
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.4-a.1 changes (#46224)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Fix changelog message for social-logos
* Backport boost 4.5.4-beta changes (#46271)
* Backport jetpack 15.4-a.3 changes (#46303)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Update projects/js-packages/charts/CHANGELOG.md
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
---------
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Prerelease (#46381)
* update changelogs
* update changelogs
* Backport jetpack 15.4-a.5 changes (#46383)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Fix typo
* Update wordpress monorepo (#46456)
* Update wordpress monorepo.
* Downgrade `@wordpress/build` 0.x deps.
* pnpmfile hack for `@wordpress/image-cropper`.
* publicize-components: Add some `@ts-expect-error`.
* publicize-components: Set `TZ=UTC` for tests so a date-related test
doesn't fail on systems west of UTC.
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* WooCommerce Analytics: Fix product_purchase event not tracking for shortcode checkout (#46467)
* WooCommerce Analytics: Fix product_purchase event not tracking for shortcode checkout
The `woocommerce_checkout_order_processed` hook passes an integer order ID,
but `order_process()` was checking `is_string()` which returns false for
integers. This caused the code to treat the integer as an order object,
failing the `instanceof WC_Order` check and silently dropping events.
Changed to `is_numeric()` to properly handle both integer and string order IDs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* WooCommerce Analytics: Simplify order processing logic in order_process method
* Add unit tests for order_process method
Tests verify that order_process correctly handles different input types:
- Integer order ID (from woocommerce_checkout_order_processed hook)
- String order ID
- WC_Order object (from woocommerce_store_api_checkout_order_processed hook)
Also includes WooCommerce mock classes and functions for isolated testing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update Jetpack plugin composer.lock for woocommerce-analytics changes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Exclude test mocks from Phan analysis
Add exclude_file_regex for tests/php/mocks/ directory to avoid
PhanRedefinedClassReference errors from mock WooCommerce classes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Exclude all tests from Phan analysis
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix misleading test comment
Remove reference to mocking record_event since the test doesn't
actually verify that. Update assertion message to accurately
describe what the test validates.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Backport jetpack 15.5-a.1 changes (#46541)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Use code block for method name
Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
---------
Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
* Replace `jest-environment-jsdom` with `@jest/environment-jsdom-abstract` (#46558)
Jest has introduced a package `@jest/environment-jsdom-abstract` that
can use a specified version of `jsdom` instead of being stuck with the
one it's bundled with. Let's use that.
Most of our projects were already using a customized environment anyway,
to work around jsdom not having `structuredClone`. Although most of
these still had an unused `jest-environment-jsdom` dep, probably from
before that was added.
A few for some reason weren't; those have been fixed (and redundant
`@jest-environment jsdom` comments have been removed).
Then have pnpm reject attempts to re-install `jest-environment-jsdom`,
so people don't accidentally re-add it.
* Oops, fix stray `=` in changelog entries from #46558 (#46572)
* Add tablet device detection to WooCommerce Analytics events (#46631)
* Add tablet device detection to WooCommerce Analytics events
Uses Jetpack Device Detection package to distinguish between mobile phones,
tablets, and desktop devices in the 'device' event property. Previously,
wp_is_mobile() was used which grouped tablets with mobile phones.
The device property now reports:
- 'mobile' for phones
- 'tablet' for tablets
- 'desktop' for desktop/laptop browsers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add tablet device detection to the 'device' event property in WooCommerce Analytics
This update enhances the analytics by distinguishing between mobile, tablet, and desktop devices, improving the accuracy of device reporting.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Update wordpress monorepo (#46647)
* Update wordpress monorepo
* Remove no-longer-needed patches.
Still need a few for `@wordpress/dataviews`, as that's upgraded in a
separate PR.
* We can also remove setting `resolve.fullySpecified: false` for GB packages now.
Again, except when `@wordpress/dataviews` is involved.
* Fix jetpack static build i18n-to-php include
* Bump some `@types/react` versions, weird mismatch error
* charts: Fix design tokens in a story, new eslint sniff.
* pnpmfile hack for `@wordpress/sync` → `diff` now too
* Pnpmfile hack for `@wordpress/jest-console` → jest 29 too
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.5-a.3 changes (#46662)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Add filter to control proxy speed module auto-installation (#46719)
* Add filter to control proxy speed module auto-installation
This adds a `woocommerce_analytics_auto_install_proxy_speed_module` filter
that allows environments to opt out of automatic mu-plugin file creation.
This is the first step toward addressing concerns about the proxy speed
module causing issues on certain environments (e.g., CIAB garden sites).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add @since tag
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Prepare woocommerce-analytics 0.15.0 release (#46741)
* Backport jetpack 15.5-a.5 changes (#46758)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Update wordpress monorepo (#46854)
* Update wordpress monorepo
* Charts: Fix TypeScript error in story by using spacing instead of gap on HStack.
* Components: Fix TypeScript errors with WordPress components type changes
* Cast modal title to string in ThreatModal
* Add label to threats status toggle group
* Remove unused component
* Fix type errors related to ExternalLink missing children
* Fix icon type in forms actions
* Fix the remaining TS errors in forms
* NavigableMenu passes stopNavigationEvents by default
* Use controlled value for Filename TextControl
* Fix errors in my jetpack
* Fix publicize errors except tab panel one to avoid conflicts with #46856
* Fix multiple errors in jetpack blocks
* Suppress errors in the remaining publicize components for now
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
* Backport jetpack 15.5-beta changes (#46893)
* Changelog and readme.txt edits.
* Amend readme.txt
* Update stable tag in readme.txt
* Refactor WooCommerce Analytics to work without WooCommerce Core dependency (#46756)
* Refactor WooCommerce Analytics to work without WooCommerce dependency
Introduces a standalone Pixel_Builder class and removes inheritance from WC_Tracks
classes to enable tracking without requiring WooCommerce to be loaded.
Key changes:
- New Pixel_Builder class centralizes pixel URL construction and validation
- WC_Analytics_Tracking no longer extends WC_Tracks
- WC_Analytics_Ch_Event no longer extends WC_Tracks_Event
- Woo_Analytics_Trait delegates get_common_properties() to WC_Analytics_Tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update projects/packages/woocommerce-analytics/changelog/refactor-woocommerce-analytics-remove-wc-dependency
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix Phan static analysis errors in WooCommerce Analytics
- Add global namespace prefix to AllowDynamicProperties attribute
- Add is_array() guards before iterating over values that could be WP_Error
- Update get_blog_user_id() docblock to match actual return type (int)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Address pr feedback
* Fix PHP 8.5 deprecation warning in Pixel_Builder_Test
Add #[IgnoreDeprecations] attribute to test that triggers curl_close()
deprecation from WordPress core's Requests library. The deprecation is
in third-party code we can't modify.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Simplify WC version and store ID retrieval to fix Phan errors
Remove method_exists/defined checks for WC symbols that Phan cannot
statically verify. Use WC_VERSION constant and known option names directly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add tests for WC_Analytics_Ch_Event class
Add comprehensive tests covering:
- PIXEL constant verification
- Constructor validation (valid/invalid properties, missing event name)
- Dynamic properties assignment after validation
- Error propagation to build_pixel_url()
- Private IP removal and array value sanitization
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update .phan/baseline.php
* Refactor event properties handling in WooCommerce Analytics
- Moved the application of the 'jetpack_woocommerce_analytics_event_props' filter to the get_properties method in WC_Analytics_Tracking.
- Updated get_common_properties method in Woo_Analytics_Trait to apply the same filter, ensuring consistency in event property handling.
This change enhances the flexibility of defining custom event properties across the analytics tracking system.
* Fix baseline
* Restore error logging in batch pixel sending
Add error logging back to send_pixels_batched() catch block for
production debugging. Uses WC logger when available, with fallback
to error_log() for MU-plugin stage when WooCommerce is not loaded.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix the array indentation in get_server_details()
* Remove unused WC_Analytics_Ch_Event class
The class was a remnant from when it extended WC_Tracks_Event. After the
refactoring, WC_Analytics_Tracking uses Pixel_Builder::build_ch_url()
directly, making this class unnecessary.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Remove unnecessary check
* Update projects/packages/woocommerce-analytics/tests/php/Pixel_Builder_Test.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update dependency webpack to v5.104.1 [SECURITY] (#47002)
* Update dependency webpack to v5.104.1 [SECURITY]
* i18n-check-webpack-plugin: Update snapshots
* i18n-loader-webpack-plugin: Fix test and update snapshots
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.6-a.1 changes (#47038)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Update projects/js-packages/ai-client/CHANGELOG.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix changelog wording: use imperative mood and fix typo
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update babel monorepo (#47099)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Backport jetpack 15.6-a.3 changes (#47157)
* Changelog and readme.txt edits.
* Version bumps
* Update stable tag in readme.txt
* Update lockfiles
* Update lock
* Update lock
---------
Co-authored-by: Gergely Juhasz <gergely.juhasz@automattic.com>
* Update dependency webpack to v5.105.2 (#47173)
* Update dependency webpack to v5.105.2
* Bump indirect ajv dep
* i18n-check-webpack-plugin: Update test snapshots
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.6-a.5 changes (#47272)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Update wordpress monorepo (#47300)
* Update wordpress monorepo
* js-packages/components: Button: Loosen ref type
* js-packages/charts: Update `--wpds-dimension-gap-*` for `@wordpress/theme` 0.7.0.
* Cleanup obsolete pnpmfile hacks
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.6-a.7 changes (#47352)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* tsgo: Fix type errors in forms, shared-extension-utils, woocommerce-analytics, and jetpack (#47423)
* Fix type errors in js-packages/shared-extension-utils
* Fix type errors in forms package
* Fix TS type for randomBytes in WC Analytics
* Fix type error in Jetpack AI block
* Fix typo in return comment
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use Native TypeScript compiler (tsgo) (#47375)
* Backport jetpack 15.7-a.1 changes (#47510)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* Apply suggestions from code review
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Update projects/plugins/jetpack/readme.txt
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Update projects/plugins/jetpack/CHANGELOG.md
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Update projects/plugins/jetpack/readme.txt
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Change TS to TypeScript
---------
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Update wordpress monorepo (#47472)
* Update wordpress monorepo
* Update `@wordpress/interactivity` patch
* Fix flagged wpds tokens
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Handle proxy requests at MU-plugin stage and exit early (#46757)
* Handle proxy requests at MU-plugin stage and exit early
Updates the WooCommerce Analytics proxy speed module to handle tracking
requests completely at the MU-plugin stage and exit early, avoiding
full WordPress plugin initialization for significant response time improvement.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Improve proxy speed module compatibility and auto-update
- Add auto-update mechanism to update MU-plugin files when version changes
- Move ch property setting earlier in client to include in proxy requests
- Check ch property in server-side tracking to enable ClickHouse via proxy
- Apply wp_magic_quotes() for cookie compatibility in MU-plugin
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update changelog
* Optimize mu-plugin version check to avoid running on every admin request
- Add transient-based caching to limit version checks to once per day
- Add upgrader_process_complete hook for immediate updates via WP admin
- Rename mu-plugin source to template file with autoloader placeholder
- Clean up transient on plugin deactivation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix transient logic and remove unnecessary class_exists check
- Set transient before version check to prevent running on every admin_init
- Remove unnecessary class_exists check for User_Agent_Info since
jetpack-device-detection is a required dependency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update proxy speed module version to 2.0.0 in both class and template files
* Use dynamic version placeholder in MU-plugin template
Replace hardcoded version with {{VERSION}} placeholder that gets
replaced with PROXY_SPEED_MODULE_VERSION constant during installation.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Register admin hooks separately to work on admin pages
Move update hooks to register_admin_hooks() method called at the start
of init() before should_track_store() check. This ensures admin_init
and upgrader_process_complete hooks work on admin pages where
should_track_store() returns false.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update projects/packages/woocommerce-analytics/src/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/packages/woocommerce-analytics/src/class-wc-analytics-tracking.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/packages/woocommerce-analytics/src/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix lint
* Consolidate PROXY_SPEED_MODULE_VERSION with PACKAGE_VERSION
Remove separate PROXY_SPEED_MODULE_VERSION constant and use PACKAGE_VERSION
for MU-plugin version tracking. This simplifies maintenance by ensuring
the MU-plugin automatically updates whenever the package version changes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add ABSPATH security check to MU-plugin template
* Remove on_plugin_upgrade hook from MU-plugin auto-update
* Add tests for MU-plugin auto-update mechanism
* Improve MU-plugin robustness and disable auto-install by default
- Add error logging to load_autoloader() failure paths
- Add try-catch to handle_proxy_request() for uncaught exceptions
- Move transient after update attempt so failures are retried
- Check file deletion result in maybe_remove_proxy_speed_module()
- Move auto-install filter to Features class, default to false
- Auto-remove MU-plugin when feature flag is disabled
- Remove maybe_add/remove_proxy_speed_module calls from Jetpack plugin
- Rename get_request_uri() to get_request_path() to match behavior
- Fix wp_magic_quotes comment and error log message accuracy
* fix: handle first install in maybe_update_proxy_speed_module
Simplify the version check logic so the MU-plugin is installed on
first visit when the feature flag is enabled, not only on updates.
* Add changelog entry for Jetpack plugin
* Fix tests for feature flag default and add assertion
* refactor: remove early admin hook registration and streamline init process
* revert: remove jetpack changelog entry
* Remove unused $original_wpmu_plugin_dir property from test
* revert: restore jetpack plugin to trunk version
* test: remove obsolete register_admin_hooks test
The register_admin_hooks method was removed in a prior refactor;
the admin_init hook is now registered inside init().
* fix: use generic autoloader discovery for mu-plugin installation
Replace hardcoded dirname path with a multi-strategy locate_autoloader_file()
method (matching the WAF package pattern) so the autoloader is found correctly
regardless of which plugin bundles the woocommerce-analytics package.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Prepare woocommerce-analytics 0.16.0 release (#47600)
* Update wordpress monorepo (#47684)
* Update wordpress monorepo
* Remove obsolete patch
* Bump @types/* and fix various type errors
* Add eslint-disables for overzealous `@wordpress/no-unknown-ds-tokens` lint
---------
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: William Viana <vianasw@gmail.com>
* Disable batched analytics requests when SOCKS proxy is configured (#47707)
* WooCommerce Analytics: Disable batched requests when SOCKS proxy is configured
The WpOrg\Requests\Requests library doesn't support SOCKS proxies, so when
a SOCKS proxy is configured via WP_PROXY_HOST, we now fall back to individual
wp_remote_get() requests which properly respect WordPress proxy settings.
https://claude.ai/code/session_01A7wcjesPprjt7JwySMXP4b
* fix: use PHP 7.2 compatible functions for SOCKS proxy detection
Replace str_starts_with() (PHP 8.0+) with strpos() and add is_string()
check to satisfy nullable type analysis for WP_PROXY_HOST constant.
* test: add SOCKS proxy detection test coverage
Add separate-process tests for is_socks_proxy_configured() covering
SOCKS5, non-SOCKS proxy, and fallback path scenarios. Guard existing
test against environments where WP_PROXY_HOST may be pre-defined.
* test: fix serialization error in separate-process tests
Move SOCKS proxy tests to a dedicated test class extending plain
TestCase instead of WorDBless BaseTestCase to avoid closure
serialization errors when PHPUnit 9 runs @runInSeparateProcess.
* fix: resolve Phan lint and PHPUnit 9 separate-process test failures
Extract is_socks_proxy_host() as public testable method to avoid
@runInSeparateProcess which fails under PHPUnit 9 with WorDBless.
Add (string) cast to fix PhanTypeMismatchArgumentNullableInternal.
* fix: Phan nullable arg and PHP 8.5 setAccessible deprecation
Cast WP_PROXY_HOST to string at call site to fix
PhanTypeMismatchArgumentNullable. Only call setAccessible()
on PHP < 8.1 where it's required.
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Backport jetpack 15.7-a.5 changes (#47734)
* Changelog and readme.txt edits.
* Update stable tag in readme.txt
* fix: include WP REST nonce in analytics track endpoint for logged-in users (#47731)
* fix: include WP REST nonce in analytics track endpoint for logged-in users
WordPress REST API resets the authenticated user when cookies are present
but no nonce is sent. The analytics sendBeacon/fetch calls send cookies
but never included a nonce, causing store_admin to always be 0.
Append _wpnonce query param to trackEndpoint URL for logged-in users so
the REST API preserves authentication context.
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update projects/packages/woocommerce-analytics/src/class-universal.php
Co-authored-by: Dognose <dognose24@users.noreply.github.com>
* fix: add JSON encoding flags to wp_json_encode for trackEndpoint
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dognose <dognose24@users.noreply.github.com>
* Update JS unit testing packages (#47799)
* Update JS unit testing packages
* Bump more indirect deps too
---------
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
* Backport jetpack 15.7-a.7 changes (#47845)
* Backport jetpack 15.7-beta changes (#47960)
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
* Update wordpress monorepo (#47890)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Add woocommerce-analytics package from Jetpack monorepo (#63996)
* feat: adapt woocommerce-analytics package for WooCommerce monorepo
Adapt configuration files after verbatim copy from Jetpack:
composer.json:
- Change type from "jetpack-library" to "library"
- Pin dependency versions instead of @dev references
- Bump PHP minimum to >=7.4 (matching WooCommerce)
- Remove Jetpack monorepo path repositories
- Remove mirror-repo, autotagger, branch-alias (Jetpack publishing)
- Remove jetpack-changelogger and jetpack-test-environment dev deps
package.json:
- Update homepage, bugs, repository URLs to woocommerce/woocommerce
- Replace @automattic/jetpack-webpack-config (unpublished workspace
package) with standard npm dependencies
webpack.config.js:
- Replace Jetpack webpack config helpers with standalone webpack setup
- Use @wordpress/dependency-extraction-webpack-plugin directly
- Use babel-loader with @babel/preset-typescript
tsconfig.json:
- Replace Jetpack base config with inline compiler options
Also removed:
- .phan/ directory (Jetpack uses Phan; WooCommerce uses PHPStan)
- changelog/ directory (Jetpack changelogger format)
- Production-include/exclude rules from .gitattributes (mirror-repo)
* chore: add CI configuration for woocommerce-analytics package
Add config.ci section to package.json so the monorepo CI system
discovers and runs PHP tests on pull_request and push events.
Also add helper scripts:
- test:php / test:php:ci: run PHP unit tests via composer
- postinstall: auto-run composer install for PHP dependencies
* chore: add Packagist mirror build script for woocommerce-analytics
Add build:composer-package script and tasks/ directory to support
publishing via the package-php-mirror workflow to Automattic/woocommerce-analytics.
* Update packages/php/woocommerce-analytics/.gitattributes
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* fix: revert PHP requirement to >=7.2 and type to jetpack-library for Jetpack compat
* chore: remove Jetpack-specific extra.version-constants from composer.json
* chore: simplify phpunit config — drop phpunit-select-config and platform.php
* chore: update obsolete FSF address in license.txt
* chore: use package README.md for Packagist mirror instead of separate mirror-readme
* Remove license.txt
* Readd packages/php/woocommerce-analytics/LICENSE.txt
* chore: remove Jetpack-specific extra.textdomain from composer.json
* Update packages/php/woocommerce-analytics/tasks/build-package.sh
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
* Update packages/php/woocommerce-analytics/tasks/build-package.sh
Co-authored-by: louwie17 <lourensschep@gmail.com>
---------
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
Co-authored-by: louwie17 <lourensschep@gmail.com>
* fix: add blank lines around headings in analytics CHANGELOG.md for markdownlint
---------
Co-authored-by: plugin-master <plugin-master@b8457f37-d9ea-0310-8a92-e5e31aec5664>
Co-authored-by: plugin-master <plugin-master@wordpress.org>
Co-authored-by: Jeremy Herve <jeremy@jeremy.hu>
Co-authored-by: Brandon Kraft <public@brandonkraft.com>
Co-authored-by: Steve D <33553323+sdixon194@users.noreply.github.com>
Co-authored-by: Juanma Rodriguez Escriche <juanma.rodriguez.escriche@automattic.com>
Co-authored-by: Igor Zinovyev <zinigor@gmail.com>
Co-authored-by: Brad Jorsch <anomiex@users.noreply.github.com>
Co-authored-by: Samiff <samiff@users.noreply.github.com>
Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com>
Co-authored-by: Kuba Birecki <ice9js@users.noreply.github.com>
Co-authored-by: tbradsha <32492176+tbradsha@users.noreply.github.com>
Co-authored-by: Calypso Bot <sysops+ghmatticbot@automattic.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Brad Jorsch <brad.jorsch@automattic.com>
Co-authored-by: Miguel Pérez Pellicer <5908855+puntope@users.noreply.github.com>
Co-authored-by: Karen Attfield <karenlattfield@gmail.com>
Co-authored-by: Seghir Nadir <nadir.seghir@gmail.com>
Co-authored-by: Rafael Agostini <rafael.agostini@automattic.com>
Co-authored-by: Robert Sreberski <robertsreberski@gmail.com>
Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: Liam Sarsfield <43409125+LiamSarsfield@users.noreply.github.com>
Co-authored-by: Peter Petrov <peter.petrov89@gmail.com>
Co-authored-by: Gergely Márk Juhász <36671565+gmjuhasz@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jasper Kang <jasper.kang@automattic.com>
Co-authored-by: Grzegorz Chudzinski-Pawlowski <112354940+grzegorz-cp@users.noreply.github.com>
Co-authored-by: Anna McPhee <30754158+annacmc@users.noreply.github.com>
Co-authored-by: Gergely Juhasz <gergely.juhasz@automattic.com>
Co-authored-by: William Viana <vianasw@gmail.com>
Co-authored-by: Dognose <dognose24@users.noreply.github.com>
Co-authored-by: louwie17 <lourensschep@gmail.com>
diff --git a/packages/php/woocommerce-analytics/.gitattributes b/packages/php/woocommerce-analytics/.gitattributes
new file mode 100644
index 00000000000..c96f401cbb5
--- /dev/null
+++ b/packages/php/woocommerce-analytics/.gitattributes
@@ -0,0 +1,3 @@
+# Files not needed to be distributed in the package.
+.gitattributes export-ignore
+.github/ export-ignore
diff --git a/packages/php/woocommerce-analytics/.gitignore b/packages/php/woocommerce-analytics/.gitignore
new file mode 100644
index 00000000000..b9842877b89
--- /dev/null
+++ b/packages/php/woocommerce-analytics/.gitignore
@@ -0,0 +1,5 @@
+vendor/
+wordpress/
+node_modules/
+build/
+.cache/
diff --git a/packages/php/woocommerce-analytics/CHANGELOG.md b/packages/php/woocommerce-analytics/CHANGELOG.md
new file mode 100644
index 00000000000..f7c926cf730
--- /dev/null
+++ b/packages/php/woocommerce-analytics/CHANGELOG.md
@@ -0,0 +1,505 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.16.3] - 2026-04-06
+
+### Changed
+
+- Update dependencies. [#46383]
+
+## [0.16.2] - 2026-03-30
+
+### Changed
+
+- Update package dependencies. [#47799]
+
+### Fixed
+
+- Ensure store_admin property reports 1 for admin users in REST API tracking requests. [#47731]
+
+## [0.16.1] - 2026-03-23
+
+### Changed
+
+- Update package dependencies. [#47684]
+
+### Fixed
+
+- Disable batched analytics requests when a SOCKS proxy is configured, falling back to wp*remote_get() which respects WP_PROXY*\* settings. [#47707]
+
+## [0.16.0] - 2026-03-16
+
+### Changed
+
+- Handle proxy requests at MU plugin stage and exit early for faster response time. [#46757]
+- Update dependencies. [#47472]
+
+## [0.15.7] - 2026-03-09
+
+### Changed
+
+- Switch to Native TypeScript compiler based on Go. [#47375]
+
+### Fixed
+
+- Fix TypeScipt type errors detected by `tsgo`. [#47423]
+
+## [0.15.6] - 2026-02-26
+
+### Changed
+
+- Update package dependencies. [#47300]
+
+## [0.15.5] - 2026-02-23
+
+### Changed
+
+- Update package dependencies. [#47173]
+
+## [0.15.4] - 2026-02-16
+
+### Changed
+
+- Update package dependencies. [#47099]
+
+## [0.15.3] - 2026-02-10
+
+### Changed
+
+- Update package dependencies. [#47002]
+- Update tracking classes to work without WooCommerce dependency. [#46756]
+
+## [0.15.2] - 2026-02-02
+
+### Changed
+
+- Update package dependencies. [#46854]
+
+## [0.15.1] - 2026-01-26
+
+### Changed
+
+- Update dependencies. [#46383]
+
+## [0.15.0] - 2026-01-23
+
+### Added
+
+- Add woocommerce_analytics_auto_install_proxy_speed_module filter to control auto-installation of proxy speed module mu-plugin. [#46719]
+
+## [0.14.0] - 2026-01-19
+
+### Added
+
+- Add tablet device detection to the 'device' event property, distinguishing between mobile, tablet, and desktop devices. [#46631]
+
+### Changed
+
+- Update package dependencies. [#46647]
+
+## [0.13.4] - 2026-01-12
+
+### Changed
+
+- Update package dependencies. [#46456]
+
+### Fixed
+
+- Fix product_purchase event not tracking for shortcode checkout due to incorrect order ID type check. [#46467]
+
+## [0.13.3] - 2025-12-22
+
+### Changed
+
+- Update dependencies. [#46381]
+
+## [0.13.2] - 2025-12-15
+
+### Changed
+
+- Update dependencies. [#46271]
+
+## [0.13.1] - 2025-12-08
+
+### Fixed
+
+- Ensure proper flags are used with `json_encode()`. [#46092]
+
+## [0.13.0] - 2025-12-01
+
+### Changed
+
+- Added Beacon API support and replaced @wordpress/api-fetch with native fetch. [#45891]
+- Update package dependencies. [#46143]
+
+### Fixed
+
+- Fix proxy speed module installation using WP_Filesystem API with proper error handling. [#45801]
+
+## [0.12.2] - 2025-11-24
+
+### Fixed
+
+- Improve compatibility with old WooCommerce versions. [#46003]
+
+## [0.12.1] - 2025-11-19
+
+### Fixed
+
+- Fix compatibility issue with WooCommerce older than 9.7.0. [#45988]
+
+## [0.12.0] - 2025-11-17
+
+### Changed
+
+- Implement batched pixel requests for improved performance when sending tracking events. [#45869]
+- Update package dependencies. [#45915] [#45958]
+
+## [0.11.0] - 2025-11-03
+
+### Changed
+
+- Enable ClickHouse by default. [#45696] [#45723]
+- Update package dependencies. [#45652]
+
+### Fixed
+
+- Fix data handling with invalid prop names. [#45544]
+- Phan: Address PhanRedundantCondition, PhanRedundantArrayValuesCall, and PhanPluginRedundantAssignment violations. [#45681]
+- Set dynamic webpack public path for split assets. [#45654]
+
+## [0.10.1] - 2025-10-27
+
+### Changed
+
+- Enhance JSON encoding by adding `JSON_HEX_TAG` and `JSON_UNESCAPED_SLASHES` options. [#45393]
+- Ensure anonymous ID is set. [#45547]
+
+### Fixed
+
+- Fix call to undefined method `WC_Tracks::get_server_details()`. [#45394]
+- Use existing bot detection from Device Detection package to skip event recording in analytics tracking. [#45552]
+
+## [0.10.0] - 2025-10-02
+
+### Added
+
+- Implement WP Consent API Integration [#45323]
+
+### Changed
+
+- Update package dependencies. [#45334]
+
+## [0.9.2] - 2025-09-30
+
+### Fixed
+
+- Prevent PHP error when WC_Tracks class is not available. [#45330]
+- Prevent PHP warnings when array key is undefined. [#45330]
+
+## [0.9.1] - 2025-09-29
+
+### Changed
+
+- Internal updates.
+
+## [0.9.0] - 2025-09-25
+
+### Added
+
+- Add experimental API-based event tracking. [#45279]
+- Add IP-based visitor tracking as fallback when proxy tracking is enabled and cookies are unavailable. [#45279]
+- Add proxy speed module to enhance proxy API performance. [#45243]
+- Implement client-side analytics tracking. [#45268]
+
+### Changed
+
+- Update build scripts for production. [#45296]
+
+## [0.8.0] - 2025-09-22
+
+### Added
+
+- Implement on-site pixel API endpoint with POST support. [#45227]
+
+## [0.7.0] - 2025-09-19
+
+### Added
+
+- Add server-side tracking. [#45208]
+
+### Changed
+
+- Implement server-side direct event delivery. [#45209]
+
+## [0.6.2] - 2025-09-15
+
+### Changed
+
+- Internal updates.
+
+## [0.6.1] - 2025-09-01
+
+### Fixed
+
+- Fix duplicate product purchase events on order confirmation page. [#44973]
+
+## [0.6.0] - 2025-08-18
+
+### Changed
+
+- Replace URL-based landing page tracking with breadcrumb-based hierarchical page tracking. [#44789]
+
+### Fixed
+
+- Fix PHP warnings for `undefined` array keys and `null` object properties. [#44808]
+
+## [0.5.0] - 2025-08-13
+
+### Added
+
+- Add session engagement tracking. [#44729]
+- Track page views. [#44729]
+
+### Changed
+
+- Add clickhouse param to record events. [#44729]
+- Set expiration time for session cookie to 30 mins or midnight UTC. [#44729]
+
+### Fixed
+
+- Ensure update cart is triggered. [#44729]
+- Set woocommerceanalytics_session. [#44729]
+
+## [0.4.9] - 2025-08-04
+
+### Changed
+
+- Performance: Improve processing of blocks during Analytics gathering. [#44544]
+
+## [0.4.8] - 2025-06-16
+
+### Fixed
+
+- Prevent PHP warning in checkout view. [#43890]
+
+## [0.4.7] - 2025-05-05
+
+### Fixed
+
+- Catch PHP error if null param is errantly passed by third-party code. [#43346]
+
+## [0.4.6] - 2025-04-28
+
+### Changed
+
+- Internal updates.
+
+## [0.4.5] - 2025-03-24
+
+### Changed
+
+- Internal updates.
+
+## [0.4.4] - 2025-03-12
+
+### Changed
+
+- Internal updates.
+
+## [0.4.3] - 2025-03-10
+
+### Changed
+
+- Internal updates.
+
+## [0.4.2] - 2025-02-24
+
+### Changed
+
+- Update dependencies.
+
+## [0.4.1] - 2025-01-09
+
+### Fixed
+
+- Temporarily disable setcookie to avoid caching issues. [#40937]
+
+## [0.4.0] - 2025-01-06
+
+### Added
+
+- Add Search Event & landing Page support. [#40698]
+
+## [0.3.1] - 2024-12-25
+
+### Fixed
+
+- Fix fatal when WC()->cart returns null. [#40729]
+
+## [0.3.0] - 2024-12-23
+
+### Changed
+
+- Add common props, more events and bug fixing. [#40562]
+
+## [0.2.0] - 2024-11-18
+
+### Removed
+
+- General: Update minimum PHP version to 7.2. [#40147]
+
+## [0.1.13] - 2024-11-04
+
+### Added
+
+- Enable test coverage. [#39961]
+
+## [0.1.12] - 2024-10-29
+
+### Changed
+
+- Internal updates.
+
+## [0.1.11] - 2024-09-23
+
+### Changed
+
+- Update dependencies.
+
+## [0.1.10] - 2024-09-10
+
+### Fixed
+
+- Check whether `\WC_Install::STORE_ID_OPTION` is defined before attempting to use it, for compatibility with WooCommerce <8.4.0. [#39306]
+
+## [0.1.9] - 2024-09-09
+
+### Added
+
+- Add Store ID property in common woocommerce analytics properties. [#38857]
+
+## [0.1.8] - 2024-08-26
+
+### Changed
+
+- Updated package dependencies. [#39004]
+
+## [0.1.7] - 2024-06-26
+
+### Removed
+
+- Remove use of `gutenberg_get_block_template()`. Its replacement has been in WP Core since 5.8. [#38015]
+
+## [0.1.6] - 2024-05-20
+
+### Fixed
+
+- Customer creation: avoid PHP warnings when other plugins hook into customer creation process and return malformed user data. [#37440]
+
+## [0.1.5] - 2024-05-06
+
+### Changed
+
+- Ensure the package can only be initialized once. [#37154]
+
+## [0.1.4] - 2024-04-15
+
+### Changed
+
+- Internal updates.
+
+## [0.1.3] - 2024-04-08
+
+### Fixed
+
+- Fixed a JavaScript error when accessing the Shortcode checkout with WooCommerce Analytics enable. [#36560]
+
+## [0.1.2] - 2024-03-25
+
+### Changed
+
+- Internal updates.
+
+## [0.1.1] - 2024-03-18
+
+### Changed
+
+- Internal updates.
+
+## 0.1.0 - 2024-03-12
+
+### Added
+
+- General: add main classes to the package. [#35756]
+- Initial version. [#35754]
+
+### Fixed
+
+- Avoid any issues when the package is loaded in an mu-plugin. [#36287]
+- Fix namespace issue with WooCommerce class reference. [#35857]
+- General: bail early when WooCommerce is not active. [#36278]
+
+[0.16.3]: https://github.com/Automattic/woocommerce-analytics/compare/v0.16.2...v0.16.3
+[0.16.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.16.1...v0.16.2
+[0.16.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.16.0...v0.16.1
+[0.16.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.7...v0.16.0
+[0.15.7]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.6...v0.15.7
+[0.15.6]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.5...v0.15.6
+[0.15.5]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.4...v0.15.5
+[0.15.4]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.3...v0.15.4
+[0.15.3]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.2...v0.15.3
+[0.15.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.1...v0.15.2
+[0.15.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.15.0...v0.15.1
+[0.15.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.14.0...v0.15.0
+[0.14.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.13.4...v0.14.0
+[0.13.4]: https://github.com/Automattic/woocommerce-analytics/compare/v0.13.3...v0.13.4
+[0.13.3]: https://github.com/Automattic/woocommerce-analytics/compare/v0.13.2...v0.13.3
+[0.13.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.13.1...v0.13.2
+[0.13.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.13.0...v0.13.1
+[0.13.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.12.2...v0.13.0
+[0.12.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.12.1...v0.12.2
+[0.12.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.12.0...v0.12.1
+[0.12.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.11.0...v0.12.0
+[0.11.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.10.1...v0.11.0
+[0.10.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.10.0...v0.10.1
+[0.10.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.9.2...v0.10.0
+[0.9.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.9.1...v0.9.2
+[0.9.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.9.0...v0.9.1
+[0.9.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.8.0...v0.9.0
+[0.8.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.7.0...v0.8.0
+[0.7.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.6.2...v0.7.0
+[0.6.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.6.1...v0.6.2
+[0.6.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.6.0...v0.6.1
+[0.6.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.5.0...v0.6.0
+[0.5.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.9...v0.5.0
+[0.4.9]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.8...v0.4.9
+[0.4.8]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.7...v0.4.8
+[0.4.7]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.6...v0.4.7
+[0.4.6]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.5...v0.4.6
+[0.4.5]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.4...v0.4.5
+[0.4.4]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.3...v0.4.4
+[0.4.3]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.2...v0.4.3
+[0.4.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.1...v0.4.2
+[0.4.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.4.0...v0.4.1
+[0.4.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.3.1...v0.4.0
+[0.3.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.2.0...v0.3.0
+[0.2.0]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.13...v0.2.0
+[0.1.13]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.12...v0.1.13
+[0.1.12]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.11...v0.1.12
+[0.1.11]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.10...v0.1.11
+[0.1.10]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.9...v0.1.10
+[0.1.9]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.8...v0.1.9
+[0.1.8]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.7...v0.1.8
+[0.1.7]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.6...v0.1.7
+[0.1.6]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.5...v0.1.6
+[0.1.5]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.4...v0.1.5
+[0.1.4]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.3...v0.1.4
+[0.1.3]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.2...v0.1.3
+[0.1.2]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/Automattic/woocommerce-analytics/compare/v0.1.0...v0.1.1
diff --git a/packages/php/woocommerce-analytics/LICENSE.txt b/packages/php/woocommerce-analytics/LICENSE.txt
new file mode 100644
index 00000000000..490c84a7c2f
--- /dev/null
+++ b/packages/php/woocommerce-analytics/LICENSE.txt
@@ -0,0 +1,355 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, see <https://www.gnu.org/licenses/>.
+
+
+===================================
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Moe Ghoul>, 1 April 1989
+ Moe Ghoul, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/packages/php/woocommerce-analytics/README.md b/packages/php/woocommerce-analytics/README.md
new file mode 100644
index 00000000000..a94852a72c7
--- /dev/null
+++ b/packages/php/woocommerce-analytics/README.md
@@ -0,0 +1,264 @@
+# WooCommerce Analytics
+
+## Overview
+
+Enhanced analytics package for WooCommerce stores with comprehensive frontend tracking for Automattic based projects.
+
+### Key Features
+
+- **Comprehensive Event Tracking**: 25+ predefined events covering e-commerce, navigation, and user interactions
+- **Session Management**: Intelligent session tracking and user engagement metrics
+- **Proxy Tracking**: Optional proxy-based tracking for enhanced privacy and performance
+
+## Installation & Setup
+
+### WordPress Plugin Integration
+
+```php
+// Add to your plugin
+use Automattic\Woocommerce_Analytics;
+
+add_action(
+ 'after_setup_theme',
+ function() {
+ Woocommerce_Analytics::init();
+ }
+);
+
+```
+
+#### Initialization
+
+The package only starts tracking when:
+
+- WooCommerce 3.0 or higher is active and installed
+- Jetpack is connected (Phase 1 requirement — will be decoupled in Phase 2)
+- In site page context (not admin, ajax, xmlrpc, login, feed, cli, etc.)
+
+### Requirements
+
+- WordPress 5.0+
+- WooCommerce 3.0+
+- PHP 7.4+
+
+### Package Installation
+
+This package lives in the WooCommerce monorepo at `packages/php/woocommerce-analytics/`.
+It is included as a Composer dependency of the WooCommerce plugin — no separate installation is needed.
+
+For standalone use outside the monorepo, add to your `composer.json`:
+
+```bash
+composer require automattic/woocommerce-analytics
+```
+
+## Configuration
+
+### Feature Flags
+
+Enable advanced features using WordPress filters:
+
+#### ClickHouse Tracking
+
+```php
+// Enable ClickHouse event tracking
+add_filter( 'woocommerce_analytics_clickhouse_enabled', '__return_true' );
+```
+
+#### Proxy Tracking (Experimental)
+
+```php
+// Enable proxy tracking for enhanced privacy and performance
+add_filter( 'woocommerce_analytics_experimental_proxy_tracking_enabled', '__return_true' );
+```
+
+## Privacy & Consent Management
+
+### WP Consent API Integration
+
+The package integrates with [WP Consent API](https://wordpress.org/plugins/wp-consent-api/) to ensure GDPR and privacy regulation compliance. Tracking only occurs when users have granted consent for statistics collection.
+
+When WP Consent API is not available, the package defaults to allowing all tracking to maintain backward compatibility.
+
+## Tracked Events
+
+### Session Events
+
+| Event Name | Trigger | ClickHouse | Recording Method | Description |
+| -------------------- | ----------------------------- | ---------- | ---------------- | ------------------------------------------------------------- |
+| `session_started` | Page load | ✓ | JS | When user session begins |
+| `session_engagement` | Page load (returning session) | ✓ | JS | When user visits site in existing session (engagement marker) |
+
+### Navigation Events
+
+| Event Name | Trigger | ClickHouse | Recording Method | Description |
+| ----------- | ------------- | ---------- | ---------------- | ----------------------------- |
+| `page_view` | Page load | ✓ | JS | General page view tracking |
+| `search` | Search action | ✓ | PHP → JS Queue | When site search is performed |
+
+### Store Events
+
+| Event Name | Trigger | ClickHouse | Recording Method | Description |
+| ------------------------- | ------------------- | ---------- | ---------------- | -------------------------------------------------- |
+| `product_view` | Single product page | ✓ | PHP → JS Queue | When product page is viewed |
+| `cart_view` | Cart page | ✓ | PHP → JS Queue | When cart page is viewed |
+| `add_to_cart` | Add to cart action | ✓ | PHP (Immediate) | When products are added to cart |
+| `remove_from_cart` | Remove from cart | ✓ | PHP (Immediate) | When products are removed from cart |
+| `checkout_view` | Checkout page | ✓ | PHP → JS Queue | When checkout page is viewed |
+| `product_checkout` | Checkout page | ✓ | PHP → JS Queue | When checkout page is viewed and cart is not empty |
+| `product_purchase` | Order placed | ✓ | PHP (Immediate) | When purchase is completed |
+| `order_confirmation_view` | Thank you page | ✓ | PHP → JS Queue | When order confirmation page is viewed |
+| `post_account_creation` | Account creation | - | PHP → JS Queue | When new account is created during checkout |
+
+### Account Events
+
+| Event Name | Trigger | ClickHouse | Recording Method | Description |
+| ------------------------------- | --------------------- | ---------- | ---------------- | ---------------------------------------------- |
+| `my_account_tab_click` | Tab click | - | JS | When account navigation log out tab is clicked |
+| `my_account_page_view` | Tab view | - | PHP → JS Queue | When account tabs/pages are viewed |
+| `my_account_order_number_click` | Order number click | - | PHP → JS Queue | When order number link is clicked |
+| `my_account_order_action_click` | Order action click | - | PHP → JS Queue | When order action buttons are clicked |
+| `my_account_address_click` | Address link click | - | PHP → JS Queue | When address edit links are clicked |
+| `my_account_address_save` | Address update | - | PHP (Immediate) | When user saves address information |
+| `my_account_payment_add` | Payment method page | - | PHP → JS Queue | When add payment method page is viewed |
+| `my_account_payment_save` | Payment method add | - | PHP (Immediate) | When payment method is added |
+| `my_account_payment_delete` | Payment method delete | - | PHP (Immediate) | When payment method is deleted |
+| `my_account_details_save` | Profile update | - | PHP (Immediate) | When account details are saved |
+
+### Recording Methods Explained
+
+The **Recording Method** column shows how each event is processed:
+
+- **`JS`** - Pure client-side events recorded directly by JavaScript without server involvement
+- **`PHP → JS Queue`** - Server-side events that are queued during page generation and passed to frontend for transmission
+- **`PHP (Immediate)`** - Server-side events sent immediately when triggered via WordPress hooks/actions
+
+### Event Properties
+
+Each event includes contextual data such as:
+
+- **Product Information**: ID, name, price, categories, SKU
+- **Cart Details**: Item quantities, totals, currency
+- **User Data**: Customer ID (when available and permitted)
+- **Session Information**: Session ID, engagement metrics
+- **Page Context**: URL, referrer, breadcrumbs
+- **Store Data**: Order ID, payment method, shipping info
+
+## Architecture
+
+### PHP Backend
+
+- **`Woocommerce_Analytics`** - Main initialization class
+- **`Universal`** - Core tracking logic and WooCommerce hooks
+- **`My_Account`** - Account-specific event tracking
+- **`WC_Analytics_Tracking`** - Event queuing and processing
+- **`Features`** - Feature flag management
+
+### Frontend
+
+- **`Analytics`** - Main client-side analytics class
+- **`SessionManager`** - Session tracking and management
+- **`ApiClient`** - REST API communication for proxy tracking
+- **Event Listeners** - Page-specific event handlers
+
+### Data Flow
+
+**PHP (Immediate)** events:
+
+1. WooCommerce action/hook triggers PHP method
+2. `WC_Analytics_Tracking::record_event()` called directly
+3. Event sent immediately to Tracks and/or ClickHouse
+
+**PHP → JS Queue** events:
+
+1. WooCommerce action/hook triggers PHP method
+2. Event queued via `enqueue_event()` method
+3. Queue injected into page via `window.wcAnalytics.eventQueue`
+4. Frontend JavaScript processes queue and sends to `_wca` tracking pixel if proxy tracking is disabled, otherwise sent to Proxy API endpoint
+
+**JS** events:
+
+1. Frontend JavaScript directly records events via `recordEvent()`
+2. Events sent to `_wca` tracking pixel if proxy tracking is disabled, otherwise sent to Proxy API endpoint
+
+### User Identification
+
+The package uses a hierarchical approach to identify users for analytics:
+
+**Anonymous User Identification (in order of preference):**
+
+1. **`tk_ai` Cookie**: Primary method using Tracks anonymous identifier cookie
+2. **IP-based ID** (when proxy tracking enabled): Generates visitor ID from:
+ - Daily rotating salt (privacy-focused, changes daily)
+ - Domain name
+ - User IP address
+ - User agent string
+ - Creates SHA256 hash (16-char substring) for anonymous but consistent identification
+3. If no `tk_ai` cookie and proxy tracking disabled: `null` (no visitor tracking)
+
+**Session Management:**
+
+- Session cookies (`woocommerceanalytics_session`) expire after 30 minutes or at midnight UTC (whichever comes first)
+- Used for tracking user journey within a session (separate from user identification)
+- Contains session ID, landing page, and engagement status
+
+## Development
+
+This package is part of the [WooCommerce monorepo](https://github.com/woocommerce/woocommerce).
+
+```bash
+# From the monorepo root
+pnpm --filter=@automattic/woocommerce-analytics run build
+pnpm --filter=@automattic/woocommerce-analytics run typecheck
+
+# Or from within packages/php/woocommerce-analytics/
+pnpm run build
+pnpm run watch
+```
+
+See [package.json](./package.json) for all available commands.
+
+## Advanced Topics
+
+### Proxy Tracking
+
+When proxy tracking is enabled:
+
+- Events are sent to a local WordPress REST API endpoint to improve event delivery reliability
+- Server-side event validation and processing
+
+#### API Endpoint
+
+- **URL**: `/wp-json/woocommerce-analytics/v1/track`
+- **Method**: POST
+- **Permission**: No authentication required
+- **Content-Type**: `application/json`
+
+#### Performance Optimizations
+
+**Client-Side Batching Logic:**
+
+- Events queued until batch size (10 events) or debounce delay (1s) reached
+- Immediate flush on page unload (`beforeunload`, `pagehide` events)
+- Failed events automatically re-queued for retry
+
+**Server-Side Optimizations:**
+
+The package includes an optional MU plugin (`woocommerce-analytics-proxy-speed-module.php`) that significantly improves proxy performance by only loading WooCommerce, WooCommerce Analytics, and Jetpack for proxy requests
+
+### Debugging
+
+Enable debug mode for detailed logging:
+
+```javascript
+// In browser console or add to page
+localStorage.setItem( 'debug', 'wc-analytics:*' );
+```
+
+## Security
+
+Need to report a security vulnerability? Go to [https://automattic.com/security/](https://automattic.com/security/) or directly to our security bug bounty site [https://hackerone.com/automattic](https://hackerone.com/automattic).
+
+## License
+
+woocommerce-analytics is licensed under [GNU General Public License v2 (or later)](./LICENSE.txt)
diff --git a/packages/php/woocommerce-analytics/SECURITY.md b/packages/php/woocommerce-analytics/SECURITY.md
new file mode 100644
index 00000000000..ad067f8a885
--- /dev/null
+++ b/packages/php/woocommerce-analytics/SECURITY.md
@@ -0,0 +1,38 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com/security](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, *only the latest version of WooCommerce has continued support*. If a critical vulnerability is found in the current version of WooCommerce, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[WooCommerce](https://wordpress.org/plugins/woocommerce) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report based on instructions found on [automattic.com/security](https://automattic.com/security).**
+
+Our most critical targets are:
+
+* WooCommerce core (this repository)
+* WooCommerce [Blocks](https://wordpress.org/plugins/woo-gutenberg-products-block/) and [Admin](https://wordpress.org/plugins/woocommerce-admin/) packages and plugins
+* WooCommerce.com -- the primary marketplace and marketing site, and all of it subdomains, e.g. [developer.woocommerce.com](https://developer.woocommerce.com/)
+* WordPress.com -- hosted WooCommerce for Business and eCommerce offering on WordPress.com.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress).
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **Don't automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, please follow all of these guidelines.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/packages/php/woocommerce-analytics/changelog/renovate-wordpress-monorepo b/packages/php/woocommerce-analytics/changelog/renovate-wordpress-monorepo
new file mode 100644
index 00000000000..45028352a80
--- /dev/null
+++ b/packages/php/woocommerce-analytics/changelog/renovate-wordpress-monorepo
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Update package dependencies.
diff --git a/packages/php/woocommerce-analytics/composer.json b/packages/php/woocommerce-analytics/composer.json
new file mode 100644
index 00000000000..4046e7481da
--- /dev/null
+++ b/packages/php/woocommerce-analytics/composer.json
@@ -0,0 +1,60 @@
+{
+ "name": "automattic/woocommerce-analytics",
+ "description": "Enhanced analytics for WooCommerce users.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.2",
+ "automattic/jetpack-assets": "^4.3",
+ "automattic/jetpack-connection": "^8.1",
+ "automattic/jetpack-constants": "^3.0",
+ "automattic/jetpack-device-detection": "^3.4",
+ "automattic/block-delimiter": "^0.3"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^4.0.0",
+ "automattic/wordbless": "^0.5",
+ "woocommerce/woocommerce-sniffs": "1.0.0"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "phpunit": [
+ "phpunit --colors=always"
+ ],
+ "test-coverage": [
+ "php -dpcov.directory=. ./vendor/bin/phpunit --coverage-php \"$COVERAGE_DIR/php.cov\""
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "build-production": [
+ "pnpm run build-production"
+ ],
+ "build-development": [
+ "pnpm run build"
+ ],
+ "phpcs": [
+ "phpcs -s -p"
+ ],
+ "phpcbf": [
+ "phpcbf -p"
+ ]
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true,
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ }
+}
diff --git a/packages/php/woocommerce-analytics/composer.lock b/packages/php/woocommerce-analytics/composer.lock
new file mode 100644
index 00000000000..ad82ce5d449
--- /dev/null
+++ b/packages/php/woocommerce-analytics/composer.lock
@@ -0,0 +1,3398 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "7aae7b32274da54014f0729b2b7138eb",
+ "packages": [
+ {
+ "name": "automattic/block-delimiter",
+ "version": "v0.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/block-delimiter.git",
+ "reference": "ddb7546acb7707ccf5bf44d87ef017097880f5cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/block-delimiter/zipball/ddb7546acb7707ccf5bf44d87ef017097880f5cf",
+ "reference": "ddb7546acb7707ccf5bf44d87ef017097880f5cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.13",
+ "automattic/jetpack-test-environment": "@dev",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "textdomain": "jetpack-block-delimiter",
+ "mirror-repo": "Automattic/block-delimiter",
+ "branch-alias": {
+ "dev-trunk": "0.3.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/block-delimiter/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Efficiently work with block structure",
+ "support": {
+ "source": "https://github.com/Automattic/block-delimiter/tree/v0.3.5"
+ },
+ "time": "2026-02-10T09:15:41+00:00"
+ },
+ {
+ "name": "automattic/jetpack-a8c-mc-stats",
+ "version": "v3.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-a8c-mc-stats.git",
+ "reference": "60401a41c714d93f7a31e36493260ad6683ca4be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-a8c-mc-stats/zipball/60401a41c714d93f7a31e36493260ad6683ca4be",
+ "reference": "60401a41c714d93f7a31e36493260ad6683ca4be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.5",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-a8c-mc-stats",
+ "branch-alias": {
+ "dev-trunk": "3.0.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-a8c-mc-stats/tree/v3.0.5"
+ },
+ "time": "2025-04-28T15:12:40+00:00"
+ },
+ {
+ "name": "automattic/jetpack-admin-ui",
+ "version": "v0.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-admin-ui.git",
+ "reference": "1dd061a28d766df454ecb0724aa78673e0ce384d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-admin-ui/zipball/1dd061a28d766df454ecb0724aa78673e0ce384d",
+ "reference": "1dd061a28d766df454ecb0724aa78673e0ce384d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.14",
+ "automattic/jetpack-logo": "^3.0.5",
+ "automattic/jetpack-test-environment": "@dev",
+ "automattic/phpunit-select-config": "^1.0.4",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "textdomain": "jetpack-admin-ui",
+ "mirror-repo": "Automattic/jetpack-admin-ui",
+ "branch-alias": {
+ "dev-trunk": "0.6.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-admin-ui/compare/${old}...${new}"
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-admin-menu.php"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Generic Jetpack wp-admin UI elements",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-admin-ui/tree/v0.6.0"
+ },
+ "time": "2026-03-30T16:03:07+00:00"
+ },
+ {
+ "name": "automattic/jetpack-assets",
+ "version": "v4.3.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-assets.git",
+ "reference": "0630f166f6d17916582afbb15f9c04c956fac8fe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/0630f166f6d17916582afbb15f9c04c956fac8fe",
+ "reference": "0630f166f6d17916582afbb15f9c04c956fac8fe",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^3.0.8",
+ "automattic/jetpack-status": "^6.1.2",
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.14",
+ "automattic/phpunit-select-config": "^1.0.4",
+ "brain/monkey": "^2.6.2",
+ "wikimedia/testing-access-wrapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "textdomain": "jetpack-assets",
+ "mirror-repo": "Automattic/jetpack-assets",
+ "branch-alias": {
+ "dev-trunk": "4.3.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Asset management utilities for Jetpack ecosystem packages",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-assets/tree/v4.3.30"
+ },
+ "time": "2026-03-30T16:04:17+00:00"
+ },
+ {
+ "name": "automattic/jetpack-connection",
+ "version": "v8.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-connection.git",
+ "reference": "946aa56df5e5e03d8e4b55703511a566edaa5ae9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/946aa56df5e5e03d8e4b55703511a566edaa5ae9",
+ "reference": "946aa56df5e5e03d8e4b55703511a566edaa5ae9",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^3.0.5",
+ "automattic/jetpack-admin-ui": "^0.6.0",
+ "automattic/jetpack-assets": "^4.3.30",
+ "automattic/jetpack-constants": "^3.0.8",
+ "automattic/jetpack-redirect": "^3.0.9",
+ "automattic/jetpack-roles": "^3.0.8",
+ "automattic/jetpack-status": "^6.1.2",
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.14",
+ "automattic/jetpack-test-environment": "@dev",
+ "automattic/phpunit-select-config": "^1.0.4",
+ "brain/monkey": "^2.6.2",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "textdomain": "jetpack-connection",
+ "mirror-repo": "Automattic/jetpack-connection",
+ "branch-alias": {
+ "dev-trunk": "8.1.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
+ },
+ "dependencies": {
+ "test-only": [
+ "packages/licensing",
+ "packages/sync"
+ ]
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ }
+ },
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "legacy",
+ "src/",
+ "src/webhooks",
+ "src/identity-crisis"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to connect to the Jetpack infrastructure",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-connection/tree/v8.1.0"
+ },
+ "time": "2026-03-30T16:04:58+00:00"
+ },
+ {
+ "name": "automattic/jetpack-constants",
+ "version": "v3.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-constants.git",
+ "reference": "f9bf00ab48956b8326209e7c0baf247a0ed721c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/f9bf00ab48956b8326209e7c0baf247a0ed721c4",
+ "reference": "f9bf00ab48956b8326209e7c0baf247a0ed721c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.5",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "brain/monkey": "^2.6.2",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-constants",
+ "branch-alias": {
+ "dev-trunk": "3.0.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-constants/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A wrapper for defining constants in a more testable way.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-constants/tree/v3.0.8"
+ },
+ "time": "2025-04-28T15:12:45+00:00"
+ },
+ {
+ "name": "automattic/jetpack-device-detection",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-device-detection.git",
+ "reference": "056d65972a2fbeb169c6b5c549eed9b26d22ed08"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-device-detection/zipball/056d65972a2fbeb169c6b5c549eed9b26d22ed08",
+ "reference": "056d65972a2fbeb169c6b5c549eed9b26d22ed08",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.13",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-device-detection",
+ "branch-alias": {
+ "dev-trunk": "3.4.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-device-detection/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A way to detect device types based on User-Agent header.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-device-detection/tree/v3.4.0"
+ },
+ "time": "2026-02-02T12:50:49+00:00"
+ },
+ {
+ "name": "automattic/jetpack-redirect",
+ "version": "v3.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-redirect.git",
+ "reference": "afb74d7c2ae46863c2af46b5703cf1c8728e6a5d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-redirect/zipball/afb74d7c2ae46863c2af46b5703cf1c8728e6a5d",
+ "reference": "afb74d7c2ae46863c2af46b5703cf1c8728e6a5d",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-status": "^6.0.3",
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.6",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "brain/monkey": "^2.6.2",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-redirect",
+ "branch-alias": {
+ "dev-trunk": "3.0.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-redirect/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities to build URLs to the jetpack.com/redirect/ service",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-redirect/tree/v3.0.9"
+ },
+ "time": "2025-08-25T05:54:15+00:00"
+ },
+ {
+ "name": "automattic/jetpack-roles",
+ "version": "v3.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-roles.git",
+ "reference": "96e09fc813ccf5e691f46297875d6b85b859c669"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/96e09fc813ccf5e691f46297875d6b85b859c669",
+ "reference": "96e09fc813ccf5e691f46297875d6b85b859c669",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.5",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "brain/monkey": "^2.6.2",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-roles",
+ "branch-alias": {
+ "dev-trunk": "3.0.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-roles/compare/v${old}...v${new}"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities, related with user roles and capabilities.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-roles/tree/v3.0.8"
+ },
+ "time": "2025-04-28T15:12:44+00:00"
+ },
+ {
+ "name": "automattic/jetpack-status",
+ "version": "v6.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-status.git",
+ "reference": "1ccaefabcf9f609b2b55e07729ffcca1a749f485"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/1ccaefabcf9f609b2b55e07729ffcca1a749f485",
+ "reference": "1ccaefabcf9f609b2b55e07729ffcca1a749f485",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^3.0.8",
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^6.0.12",
+ "automattic/jetpack-connection": "@dev",
+ "automattic/jetpack-ip": "^0.4.10",
+ "automattic/jetpack-plans": "@dev",
+ "automattic/phpunit-select-config": "^1.0.3",
+ "brain/monkey": "^2.6.2",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-status",
+ "branch-alias": {
+ "dev-trunk": "6.1.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
+ },
+ "dependencies": {
+ "test-only": [
+ "packages/connection",
+ "packages/plans"
+ ]
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-status/tree/v6.1.2"
+ },
+ "time": "2025-12-15T11:22:14+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "automattic/phpunit-select-config",
+ "version": "v1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/phpunit-select-config.git",
+ "reference": "698bb97becda13dda0c5516bce42c3c9852349b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/phpunit-select-config/zipball/698bb97becda13dda0c5516bce42c3c9852349b2",
+ "reference": "698bb97becda13dda0c5516bce42c3c9852349b2",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2.2",
+ "php": ">=5.4",
+ "phpunit/phpunit": "*"
+ },
+ "require-dev": {
+ "antecedent/patchwork": "^2.2",
+ "automattic/jetpack-changelogger": "^6.0.14",
+ "yoast/phpunit-polyfills": "^4.0.0"
+ },
+ "bin": [
+ "bin/phpunit-select-config"
+ ],
+ "type": "library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/phpunit-select-config",
+ "branch-alias": {
+ "dev-trunk": "1.0.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/phpunit-select-config/compare/v${old}...v${new}"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Run PHPUnit, choosing a configuration file by version.",
+ "keywords": [
+ "config",
+ "dev",
+ "phpunit"
+ ],
+ "support": {
+ "source": "https://github.com/Automattic/phpunit-select-config/tree/v1.0.4"
+ },
+ "time": "2026-03-30T16:01:55+00:00"
+ },
+ {
+ "name": "automattic/wordbless",
+ "version": "0.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/wordbless.git",
+ "reference": "57e6be20c61f0163027ba44315b4092b833107b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/wordbless/zipball/57e6be20c61f0163027ba44315b4092b833107b5",
+ "reference": "57e6be20c61f0163027ba44315b4092b833107b5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.24",
+ "roots/wordpress": "^6.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^9.5",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "type": "wordpress-dropin",
+ "autoload": {
+ "psr-4": {
+ "WorDBless\\": "src/",
+ "WorDBless\\Composer\\": "src/Composer/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Automattic Inc."
+ }
+ ],
+ "description": "WorDBless allows you to use WordPress core functions in your PHPUnit tests without having to set up a database and the whole WordPress environment",
+ "support": {
+ "issues": "https://github.com/Automattic/wordbless/issues",
+ "source": "https://github.com/Automattic/wordbless/tree/0.5.3"
+ },
+ "time": "2025-04-15T19:16:52+00:00"
+ },
+ {
+ "name": "dealerdirect/phpcodesniffer-composer-installer",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/composer-installer.git",
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1",
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.2",
+ "php": ">=5.4",
+ "squizlabs/php_codesniffer": "^3.1.0 || ^4.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2.2",
+ "ext-json": "*",
+ "ext-zip": "*",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Franck Nijhof",
+ "email": "opensource@frenck.dev",
+ "homepage": "https://frenck.dev",
+ "role": "Open source developer"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
+ "keywords": [
+ "PHPCodeSniffer",
+ "PHP_CodeSniffer",
+ "code quality",
+ "codesniffer",
+ "composer",
+ "installer",
+ "phpcbf",
+ "phpcs",
+ "plugin",
+ "qa",
+ "quality",
+ "standard",
+ "standards",
+ "style guide",
+ "stylecheck",
+ "tests"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/composer-installer/issues",
+ "security": "https://github.com/PHPCSStandards/composer-installer/security/policy",
+ "source": "https://github.com/PHPCSStandards/composer-installer"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-11T04:32:07+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.16 || ^1",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.30 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:15:36+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.13.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
+ "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-01T08:46:24+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
+ },
+ "time": "2025-12-06T11:56:16+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpcompatibility/php-compatibility",
+ "version": "9.3.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
+ "reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
+ "reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3",
+ "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
+ },
+ "conflict": {
+ "squizlabs/php_codesniffer": "2.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "suggest": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "homepage": "https://github.com/wimg",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "homepage": "https://github.com/jrfnl",
+ "role": "lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
+ }
+ ],
+ "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
+ "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
+ "keywords": [
+ "compatibility",
+ "phpcs",
+ "standards"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibility"
+ },
+ "time": "2019-12-27T09:44:58+00:00"
+ },
+ {
+ "name": "phpcompatibility/phpcompatibility-paragonie",
+ "version": "1.3.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
+ "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/244d7b04fc4bc2117c15f5abe23eb933b5f02bbf",
+ "reference": "244d7b04fc4bc2117c15f5abe23eb933b5f02bbf",
+ "shasum": ""
+ },
+ "require": {
+ "phpcompatibility/php-compatibility": "^9.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
+ "paragonie/random_compat": "dev-master",
+ "paragonie/sodium_compat": "dev-master"
+ },
+ "suggest": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "lead"
+ }
+ ],
+ "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
+ "homepage": "http://phpcompatibility.com/",
+ "keywords": [
+ "compatibility",
+ "paragonie",
+ "phpcs",
+ "polyfill",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues",
+ "security": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/security/policy",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCompatibility",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcompatibility",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-09-19T17:43:28+00:00"
+ },
+ {
+ "name": "phpcompatibility/phpcompatibility-wp",
+ "version": "2.1.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
+ "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/7c8d18b4d90dac9e86b0869a608fa09158e168fa",
+ "reference": "7c8d18b4d90dac9e86b0869a608fa09158e168fa",
+ "shasum": ""
+ },
+ "require": {
+ "phpcompatibility/php-compatibility": "^9.0",
+ "phpcompatibility/phpcompatibility-paragonie": "^1.0",
+ "squizlabs/php_codesniffer": "^3.3"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0"
+ },
+ "suggest": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
+ "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "lead"
+ }
+ ],
+ "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
+ "homepage": "http://phpcompatibility.com/",
+ "keywords": [
+ "compatibility",
+ "phpcs",
+ "standards",
+ "static analysis",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues",
+ "security": "https://github.com/PHPCompatibility/PHPCompatibilityWP/security/policy",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCompatibility",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcompatibility",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-10-18T00:05:59+00:00"
+ },
+ {
+ "name": "phpcsstandards/phpcsextra",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHPCSExtra.git",
+ "reference": "b598aa890815b8df16363271b659d73280129101"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/b598aa890815b8df16363271b659d73280129101",
+ "reference": "b598aa890815b8df16363271b659d73280129101",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "phpcsstandards/phpcsutils": "^1.2.0",
+ "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcsstandards/phpcsdevcs": "^1.2.0",
+ "phpcsstandards/phpcsdevtools": "^1.2.1",
+ "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ },
+ "type": "phpcodesniffer-standard",
+ "extra": {
+ "branch-alias": {
+ "dev-stable": "1.x-dev",
+ "dev-develop": "1.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Juliette Reinders Folmer",
+ "homepage": "https://github.com/jrfnl",
+ "role": "lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors"
+ }
+ ],
+ "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.",
+ "keywords": [
+ "PHP_CodeSniffer",
+ "phpcbf",
+ "phpcodesniffer-standard",
+ "phpcs",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues",
+ "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHPCSExtra"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-12T23:06:57+00:00"
+ },
+ {
+ "name": "phpcsstandards/phpcsutils",
+ "version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHPCSUtils.git",
+ "reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/c216317e96c8b3f5932808f9b0f1f7a14e3bbf55",
+ "reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0",
+ "php": ">=5.4",
+ "squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1"
+ },
+ "require-dev": {
+ "ext-filter": "*",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcsstandards/phpcsdevcs": "^1.2.0",
+ "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0"
+ },
+ "type": "phpcodesniffer-standard",
+ "extra": {
+ "branch-alias": {
+ "dev-stable": "1.x-dev",
+ "dev-develop": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "PHPCSUtils/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Juliette Reinders Folmer",
+ "homepage": "https://github.com/jrfnl",
+ "role": "lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors"
+ }
+ ],
+ "description": "A suite of utility functions for use with PHP_CodeSniffer",
+ "homepage": "https://phpcsutils.com/",
+ "keywords": [
+ "PHP_CodeSniffer",
+ "phpcbf",
+ "phpcodesniffer-standard",
+ "phpcs",
+ "phpcs3",
+ "phpcs4",
+ "standards",
+ "static analysis",
+ "tokens",
+ "utility"
+ ],
+ "support": {
+ "docs": "https://phpcsutils.com/",
+ "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues",
+ "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHPCSUtils"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-12-08T14:27:58+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.32",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "9.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T04:23:01+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.34",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "b36f02317466907a230d3aa1d34467041271ef4a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b36f02317466907a230d3aa1d34467041271ef4a",
+ "reference": "b36f02317466907a230d3aa1d34467041271ef4a",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.5.0 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.13.4",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
+ "sebastian/comparator": "^4.0.10",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.8",
+ "sebastian/global-state": "^5.0.8",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.34"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-01-27T05:45:00+00:00"
+ },
+ {
+ "name": "roots/wordpress",
+ "version": "6.9.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/roots/wordpress.git",
+ "reference": "2fa44383ade9e8ccbb986e95ca70a365c8221eb1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/roots/wordpress/zipball/2fa44383ade9e8ccbb986e95ca70a365c8221eb1",
+ "reference": "2fa44383ade9e8ccbb986e95ca70a365c8221eb1",
+ "shasum": ""
+ },
+ "require": {
+ "roots/wordpress-core-installer": "^3.0",
+ "roots/wordpress-no-content": "self.version"
+ },
+ "type": "metapackage",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT",
+ "GPL-2.0-or-later"
+ ],
+ "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.",
+ "homepage": "https://wordpress.org/",
+ "keywords": [
+ "blog",
+ "cms",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/roots/wordpress/issues",
+ "source": "https://github.com/roots/wordpress/tree/6.9.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/roots",
+ "type": "github"
+ }
+ ],
+ "time": "2026-03-09T19:47:29+00:00"
+ },
+ {
+ "name": "roots/wordpress-core-installer",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/roots/wordpress-core-installer.git",
+ "reference": "714d2e2a9e523f6e7bde4810d5a04aedf0ec217f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/714d2e2a9e523f6e7bde4810d5a04aedf0ec217f",
+ "reference": "714d2e2a9e523f6e7bde4810d5a04aedf0ec217f",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0",
+ "php": ">=7.2.24"
+ },
+ "conflict": {
+ "composer/installers": "<1.0.6"
+ },
+ "replace": {
+ "johnpbloch/wordpress-core-installer": "*"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0 || ^2.0",
+ "phpunit/phpunit": "^8.5"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Roots\\Composer\\WordPressCorePlugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Roots\\Composer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "John P. Bloch",
+ "email": "me@johnpbloch.com"
+ },
+ {
+ "name": "Roots",
+ "email": "team@roots.io"
+ }
+ ],
+ "description": "A Composer custom installer to handle installing WordPress as a dependency",
+ "keywords": [
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/roots/wordpress-core-installer/issues",
+ "source": "https://github.com/roots/wordpress-core-installer/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/roots",
+ "type": "github"
+ }
+ ],
+ "time": "2025-05-23T18:47:25+00:00"
+ },
+ {
+ "name": "roots/wordpress-no-content",
+ "version": "6.9.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WordPress/WordPress.git",
+ "reference": "6.9.4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://downloads.w.org/release/wordpress-6.9.4-no-content.zip",
+ "reference": "6.9.4",
+ "shasum": "8ae812bb54223ef859cd3de37f1c6b1db20e0e6f"
+ },
+ "require": {
+ "php": ">= 7.2.24"
+ },
+ "provide": {
+ "wordpress/core-implementation": "6.9.4"
+ },
+ "suggest": {
+ "ext-curl": "Performs remote request operations.",
+ "ext-dom": "Used to validate Text Widget content and to automatically configuring IIS7+.",
+ "ext-exif": "Works with metadata stored in images.",
+ "ext-fileinfo": "Used to detect mimetype of file uploads.",
+ "ext-hash": "Used for hashing, including passwords and update packages.",
+ "ext-imagick": "Provides better image quality for media uploads.",
+ "ext-json": "Used for communications with other servers.",
+ "ext-libsodium": "Validates Signatures and provides securely random bytes.",
+ "ext-mbstring": "Used to properly handle UTF8 text.",
+ "ext-mysqli": "Connects to MySQL for database interactions.",
+ "ext-openssl": "Permits SSL-based connections to other hosts.",
+ "ext-pcre": "Increases performance of pattern matching in code searches.",
+ "ext-xml": "Used for XML parsing, such as from a third-party site.",
+ "ext-zip": "Used for decompressing Plugins, Themes, and WordPress update packages."
+ },
+ "type": "wordpress-core",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "WordPress Community",
+ "homepage": "https://wordpress.org/about/"
+ }
+ ],
+ "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.",
+ "homepage": "https://wordpress.org/",
+ "keywords": [
+ "blog",
+ "cms",
+ "wordpress"
+ ],
+ "support": {
+ "docs": "https://developer.wordpress.org/",
+ "forum": "https://wordpress.org/support/",
+ "irc": "irc://irc.freenode.net/wordpress",
+ "issues": "https://core.trac.wordpress.org/",
+ "rss": "https://wordpress.org/news/feed/",
+ "source": "https://core.trac.wordpress.org/browser",
+ "wiki": "https://codex.wordpress.org/"
+ },
+ "funding": [
+ {
+ "url": "https://wordpressfoundation.org/donate/",
+ "type": "other"
+ }
+ ],
+ "time": "2026-03-11T15:49:55+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e4df00b9b3571187db2831ae9aada2c6efbd715d",
+ "reference": "e4df00b9b3571187db2831ae9aada2c6efbd715d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.10"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-01-24T09:22:56+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c",
+ "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-09-24T06:03:27+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
+ "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-10T07:10:35+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0",
+ "reference": "539c6691e0623af6dc6f9c20384c120f963465a0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-08-10T06:57:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-14T16:00:52+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.13.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
+ "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
+ "reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ },
+ "bin": [
+ "bin/phpcbf",
+ "bin/phpcs"
+ ],
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "Former lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "Current lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
+ "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
+ "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
+ "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-04T16:30:35+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "b7489ce515e168639d17feec34b8847c326b0b3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c",
+ "reference": "b7489ce515e168639d17feec34b8847c326b0b3c",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.3.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2025-11-17T20:03:58+00:00"
+ },
+ {
+ "name": "woocommerce/woocommerce-sniffs",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/woocommerce/woocommerce-sniffs.git",
+ "reference": "3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/woocommerce/woocommerce-sniffs/zipball/3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8",
+ "reference": "3a65b917ff5ab5e65609e5dcb7bc62f9455bbef8",
+ "shasum": ""
+ },
+ "require": {
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0.0",
+ "php": ">=7.0",
+ "phpcompatibility/phpcompatibility-wp": "^2.1.0",
+ "wp-coding-standards/wpcs": "^3.0.0"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "WooCommerce sniffs",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "static analysis",
+ "woocommerce",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/woocommerce/woocommerce-sniffs/issues",
+ "source": "https://github.com/woocommerce/woocommerce-sniffs/tree/1.0.0"
+ },
+ "time": "2023-09-29T13:52:33+00:00"
+ },
+ {
+ "name": "wp-coding-standards/wpcs",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
+ "reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7795ec6fa05663d716a549d0b44e47ffc8b0d4a6",
+ "reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "ext-libxml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlreader": "*",
+ "php": ">=7.2",
+ "phpcsstandards/phpcsextra": "^1.5.0",
+ "phpcsstandards/phpcsutils": "^1.1.0",
+ "squizlabs/php_codesniffer": "^3.13.4"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcompatibility/php-compatibility": "^10.0.0@dev",
+ "phpcsstandards/phpcsdevtools": "^1.2.0",
+ "phpunit/phpunit": "^8.0 || ^9.0"
+ },
+ "suggest": {
+ "ext-iconv": "For improved results",
+ "ext-mbstring": "For improved results"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
+ }
+ ],
+ "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
+ "keywords": [
+ "phpcs",
+ "standards",
+ "static analysis",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
+ "source": "https://github.com/WordPress/WordPress-Coding-Standards",
+ "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "custom"
+ }
+ ],
+ "time": "2025-11-25T12:08:04+00:00"
+ },
+ {
+ "name": "yoast/phpunit-polyfills",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
+ "reference": "134921bfca9b02d8f374c48381451da1d98402f9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/134921bfca9b02d8f374c48381451da1d98402f9",
+ "reference": "134921bfca9b02d8f374c48381451da1d98402f9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "phpunit/phpunit": "^7.5 || ^8.0 || ^9.0 || ^11.0 || ^12.0"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "yoast/yoastcs": "^3.1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "phpunitpolyfills-autoload.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Team Yoast",
+ "email": "support@yoast.com",
+ "homepage": "https://yoast.com"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors"
+ }
+ ],
+ "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests",
+ "homepage": "https://github.com/Yoast/PHPUnit-Polyfills",
+ "keywords": [
+ "phpunit",
+ "polyfill",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
+ "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy",
+ "source": "https://github.com/Yoast/PHPUnit-Polyfills"
+ },
+ "time": "2025-02-09T18:58:54+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": {},
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=7.4"
+ },
+ "platform-dev": {},
+ "platform-overrides": {
+ "php": "7.4"
+ },
+ "plugin-api-version": "2.9.0"
+}
diff --git a/packages/php/woocommerce-analytics/package.json b/packages/php/woocommerce-analytics/package.json
new file mode 100644
index 00000000000..603ea965be1
--- /dev/null
+++ b/packages/php/woocommerce-analytics/package.json
@@ -0,0 +1,83 @@
+{
+ "name": "@automattic/woocommerce-analytics",
+ "version": "0.16.3",
+ "private": true,
+ "description": "WooCommerce Analytics package to track frontend events",
+ "homepage": "https://github.com/woocommerce/woocommerce/tree/trunk/packages/php/woocommerce-analytics",
+ "bugs": {
+ "url": "https://github.com/woocommerce/woocommerce/issues"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/woocommerce/woocommerce.git",
+ "directory": "packages/php/woocommerce-analytics"
+ },
+ "license": "GPL-2.0-or-later",
+ "author": "Automattic",
+ "scripts": {
+ "build": "pnpm run clean && webpack",
+ "build:composer-package": "bash tasks/build-package.sh",
+ "build-production": "NODE_ENV=production BABEL_ENV=production pnpm run build",
+ "clean": "rm -rf build/",
+ "test": "jest --passWithNoTests",
+ "test-coverage": "pnpm run test --coverage",
+ "test:php": "composer test-php",
+ "test:php:ci": "pnpm test:php",
+ "build:ci": "pnpm run typecheck && pnpm run build-production",
+ "typecheck": "tsc --noEmit",
+ "postinstall": "XDEBUG_MODE=off composer install --quiet",
+ "watch": "pnpm build --watch"
+ },
+ "dependencies": {
+ "debug": "4.4.3"
+ },
+ "devDependencies": {
+ "@babel/core": "7.25.7",
+ "@babel/preset-env": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@jest/globals": "29.5.x",
+ "@types/jest": "29.5.x",
+ "@types/jquery": "3.5.33",
+ "@wordpress/browserslist-config": "next",
+ "@wordpress/dependency-extraction-webpack-plugin": "next",
+ "babel-loader": "9.2.x",
+ "jest": "29.5.x",
+ "typescript": "5.7.x",
+ "webpack": "5.97.x",
+ "webpack-cli": "5.1.x"
+ },
+ "config": {
+ "ci": {
+ "tests": [
+ {
+ "name": "PHP: 8.1 WP: latest",
+ "testType": "unit:php",
+ "command": "test:php:ci",
+ "changes": [
+ "composer.json",
+ "composer.lock",
+ "**/*.php"
+ ],
+ "events": [
+ "pull_request",
+ "push"
+ ]
+ },
+ {
+ "name": "JS build and typecheck",
+ "command": "build:ci",
+ "changes": [
+ "package.json",
+ "src/client/**/*.ts",
+ "tsconfig.json",
+ "webpack.config.js"
+ ],
+ "events": [
+ "pull_request",
+ "push"
+ ]
+ }
+ ]
+ }
+ }
+}
diff --git a/packages/php/woocommerce-analytics/phpcs.xml b/packages/php/woocommerce-analytics/phpcs.xml
new file mode 100644
index 00000000000..fd9d2700f6c
--- /dev/null
+++ b/packages/php/woocommerce-analytics/phpcs.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<ruleset name="WooCommerce Analytics Coding Standards">
+ <rule ref="WordPress"/>
+
+ <!-- Define files and folders to scan -->
+ <file>src</file>
+
+ <!-- Exclude non-PHP source -->
+ <exclude-pattern>src/client/*</exclude-pattern>
+
+ <!-- Text domain -->
+ <rule ref="WordPress.WP.I18n">
+ <properties>
+ <property name="text_domain" type="array">
+ <element value="woocommerce-analytics" />
+ </property>
+ </properties>
+ </rule>
+ <rule ref="WordPress.Utils.I18nTextDomainFixer">
+ <properties>
+ <property name="old_text_domain" type="array" />
+ <property name="new_text_domain" value="woocommerce-analytics" />
+ </properties>
+ </rule>
+
+ <!-- Skip directories that should never be scanned -->
+ <exclude-pattern>vendor/*</exclude-pattern>
+ <exclude-pattern>node_modules/*</exclude-pattern>
+ <exclude-pattern>build/*</exclude-pattern>
+ <exclude-pattern>tests/*</exclude-pattern>
+</ruleset>
diff --git a/packages/php/woocommerce-analytics/phpunit.xml.dist b/packages/php/woocommerce-analytics/phpunit.xml.dist
new file mode 100644
index 00000000000..3965963c485
--- /dev/null
+++ b/packages/php/woocommerce-analytics/phpunit.xml.dist
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.6/phpunit.xsd"
+ bootstrap="tests/php/bootstrap.php"
+ cacheResultFile=".phpunit.cache/test-results"
+ colors="true"
+ executionOrder="depends"
+ beStrictAboutOutputDuringTests="true"
+ failOnRisky="true"
+ failOnWarning="true"
+>
+ <testsuites>
+ <testsuite name="main">
+ <directory suffix="Test.php">tests/php</directory>
+ </testsuite>
+ </testsuites>
+</phpunit>
diff --git a/packages/php/woocommerce-analytics/src/API/class-wc-analytics-tracking-proxy.php b/packages/php/woocommerce-analytics/src/API/class-wc-analytics-tracking-proxy.php
new file mode 100644
index 00000000000..66bf88214a9
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/API/class-wc-analytics-tracking-proxy.php
@@ -0,0 +1,150 @@
+<?php
+/**
+ * REST API: WC_Analytics_Tracking_Proxy class
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Class to handle tracking events via the REST API
+ *
+ * @since 0.7.0
+ */
+class WC_Analytics_Tracking_Proxy extends \WC_REST_Controller {
+
+ /**
+ * Endpoint namespace.
+ *
+ * @var string
+ */
+ protected $namespace = 'woocommerce-analytics/v1';
+
+ /**
+ * Route base.
+ *
+ * @var string
+ */
+ protected $rest_base = 'track';
+
+ /**
+ * Register the routes for tracking.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base,
+ array(
+ array(
+ 'methods' => \WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'track_events' ),
+ 'permission_callback' => '__return_true', // no need to check permissions
+ 'schema' => array( $this, 'get_public_item_schema' ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Track events.
+ *
+ * @param \WP_REST_Request $request Full data about the request.
+ * @return \WP_REST_Response|\WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function track_events( $request ) {
+ // Check consent before processing any events
+ if ( ! Consent_Manager::has_analytics_consent() ) {
+ return new \WP_REST_Response(
+ array(
+ 'success' => true,
+ 'message' => 'Events skipped due to lack of analytics consent',
+ 'results' => array(),
+ ),
+ 200
+ );
+ }
+
+ $events = $request->get_json_params();
+
+ if ( ! is_array( $events ) || ( isset( $events['event_name'] ) ) ) {
+ // If $events is a single event (associative array), wrap it in an array.
+ $events = array( $events );
+ }
+
+ $results = array();
+ $has_errors = false;
+
+ foreach ( $events as $index => $event ) {
+ // Validate event structure.
+ if ( empty( $event ) || ! is_array( $event ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => 'Invalid event format',
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ // Validate event name and properties.
+ $event_name = $event['event_name'] ?? null;
+ $properties = $event['properties'] ?? array();
+ if ( ! $event_name || ! is_array( $properties ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => 'Missing event_name or invalid properties',
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ $result = WC_Analytics_Tracking::record_event( $event_name, $properties );
+
+ if ( is_wp_error( $result ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => $result->get_error_message(),
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ $results[ $index ] = array( 'success' => true );
+ }
+
+ $response_data = array(
+ 'success' => ! $has_errors,
+ 'results' => $results,
+ );
+
+ return new \WP_REST_Response( $response_data, $has_errors ? 207 : 200 );
+ }
+
+ /**
+ * Get the schema for tracking events.
+ *
+ * @return array
+ */
+ public function get_item_schema() {
+ $schema = array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => 'tracking_events',
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'event_name' => array(
+ 'type' => 'string',
+ ),
+ 'properties' => array(
+ 'type' => 'object',
+ ),
+ ),
+ ),
+ );
+
+ return $this->add_additional_fields_schema( $schema );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-consent-manager.php b/packages/php/woocommerce-analytics/src/class-consent-manager.php
new file mode 100644
index 00000000000..2eff5f4d2cb
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-consent-manager.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Consent management for WP Consent API integration
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+/**
+ * Manages consent checking for WooCommerce Analytics
+ */
+class Consent_Manager {
+
+ /**
+ * WP Consent API's consent type we check for analytics tracking
+ */
+ const WP_CONSENT_API_STATISTICS_TYPE = 'statistics';
+
+ /**
+ * Check if user has consent for analytics tracking
+ *
+ * @return bool
+ */
+ public static function has_analytics_consent() {
+ if ( ! function_exists( 'wp_has_consent' ) ) {
+ // If WP Consent API is not available, default to true for backward compatibility
+ return true;
+ }
+
+ return \wp_has_consent( self::WP_CONSENT_API_STATISTICS_TYPE );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-features.php b/packages/php/woocommerce-analytics/src/class-features.php
new file mode 100644
index 00000000000..f3404a631b4
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-features.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Features class for WooCommerce Analytics.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+/**
+ * Features class for WooCommerce Analytics.
+ */
+class Features {
+
+ /**
+ * Check if proxy tracking is enabled.
+ *
+ * @return bool
+ */
+ public static function is_proxy_tracking_enabled() {
+ /**
+ * Filter to enable/disable experimental proxy tracking for WooCommerce Analytics
+ *
+ * @since 0.9.0
+ *
+ * @param bool $enabled Whether proxy tracking is enabled. Default false.
+ */
+ return apply_filters( 'woocommerce_analytics_experimental_proxy_tracking_enabled', false );
+ }
+
+ /**
+ * Check if ClickHouse is enabled.
+ *
+ * @return bool
+ */
+ public static function is_clickhouse_enabled() {
+ /**
+ * Filter to enable/disable ClickHouse event tracking.
+ *
+ * @module woocommerce-analytics
+ *
+ * @since 0.5.0
+ *
+ * @param bool $enabled Whether ClickHouse event tracking is enabled.
+ */
+ return apply_filters( 'woocommerce_analytics_clickhouse_enabled', false );
+ }
+
+ /**
+ * Check if auto-installation of the proxy speed module MU-plugin is enabled.
+ *
+ * @return bool
+ */
+ public static function is_proxy_speed_module_enabled() {
+ /**
+ * Filter to control auto-installation of the proxy speed module mu-plugin.
+ *
+ * When this filter returns false, the mu-plugin file can't be added automatically.
+ *
+ * @since 0.15.0
+ *
+ * @param bool $auto_install Whether to auto-install the mu-plugin. Default false.
+ */
+ return apply_filters( 'woocommerce_analytics_auto_install_proxy_speed_module', false );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-my-account.php b/packages/php/woocommerce-analytics/src/class-my-account.php
new file mode 100644
index 00000000000..667a20b7852
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-my-account.php
@@ -0,0 +1,252 @@
+<?php
+/**
+ * Events tracked on the My Account page.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+/**
+ * Filters and Actions added to My Account pages to perform analytics
+ */
+class My_Account {
+
+ use Woo_Analytics_Trait;
+
+ /**
+ * Constructor.
+ */
+ public function init_hooks() {
+ add_action( 'woocommerce_account_content', array( $this, 'track_tabs' ) );
+ add_action( 'woocommerce_customer_save_address', array( $this, 'track_save_address' ), 10, 2 );
+ add_action( 'wp', array( $this, 'track_add_payment_method' ) );
+ add_action( 'wp', array( $this, 'track_delete_payment_method' ) );
+ add_action( 'woocommerce_save_account_details', array( $this, 'track_save_account_details' ) );
+ add_filter( 'woocommerce_my_account_my_orders_actions', array( $this, 'add_initiator_prop_to_my_account_action_links' ) );
+ add_action( 'woocommerce_cancelled_order', array( $this, 'track_order_cancel_event' ), 10, 0 );
+ add_action( 'before_woocommerce_pay', array( $this, 'track_order_pay_event' ) );
+ add_action( 'woocommerce_before_account_orders', array( $this, 'add_initiator_prop_to_order_urls' ), 9 );
+ add_filter( 'query_vars', array( $this, 'add_initiator_param_to_query_vars' ) );
+ }
+
+ /**
+ * Track my account tabs, we only trigger an event if a tab is viewed.
+ *
+ * We also track other events here, like order number clicks, order action clicks,
+ * address clicks, payment method add and delete.
+ */
+ public function track_tabs() {
+ global $wp;
+
+ // WooCommerce keeps a map of my-account endpoints keys and their custom permalinks.
+ $core_endpoints = WC()->query->get_query_vars();
+
+ if ( ! empty( $wp->query_vars ) ) {
+
+ foreach ( $wp->query_vars as $key => $value ) {
+ // we skip pagename.
+ if ( 'pagename' === $key ) {
+ continue;
+ }
+
+ // When no permalink is set, the first page is page_id, so we skip it.
+ if ( 'page_id' === $key ) {
+ continue;
+ }
+
+ // We don't want to track our own analytics params.
+ if ( '_wca_initiator' === $key ) {
+ continue;
+ }
+
+ if ( isset( $core_endpoints['view-order'] ) && $core_endpoints['view-order'] === $key && is_numeric( $value ) ) {
+ $initiator = get_query_var( '_wca_initiator' );
+ if ( 'number' === $initiator ) {
+ $this->enqueue_event( 'my_account_order_number_click' );
+ continue;
+ }
+ if ( 'action' === $initiator ) {
+ $this->enqueue_event( 'my_account_order_action_click', array( 'action' => 'view' ) );
+ continue;
+ }
+ }
+
+ if ( isset( $core_endpoints['edit-address'] ) && $core_endpoints['edit-address'] === $key && in_array( $value, array( 'billing', 'shipping' ), true ) ) {
+ $refer = wp_get_referer();
+ if ( $refer === wc_get_endpoint_url( 'edit-address', $value ) ) {
+ // It means we're likely coming from the same page after a failed save and don't want to retrigger the address click event.
+ continue;
+ }
+
+ $this->enqueue_event( 'my_account_address_click', array( 'address' => $value ) );
+ continue;
+ }
+
+ if ( isset( $core_endpoints['add-payment-method'] ) && $core_endpoints['add-payment-method'] === $key ) {
+ $this->enqueue_event( 'my_account_payment_add' );
+ continue;
+ }
+
+ if ( isset( $core_endpoints['edit-address'] ) && $core_endpoints['edit-address'] ) {
+ $refer = wp_get_referer();
+ if ( $refer === wc_get_endpoint_url( 'edit-address', 'billing' ) || $refer === wc_get_endpoint_url( 'edit-address', 'shipping' ) ) {
+ // It means we're likely coming from the edit page save and don't want to retrigger the page view event.
+ continue;
+ }
+ }
+ /**
+ * The main dashboard view has page as key, so we rename it.
+ */
+ if ( 'page' === $key ) {
+ $key = 'dashboard';
+ }
+
+ /**
+ * If a custom permalink is used for one of the pages, query_vars will have 2 keys, the custom permalink and the core endpoint key.
+ * To avoid triggering the event twice, we skip the core one and only track the custom one.
+ * Tracking the custom endpoint is safer than hoping the duplicated, redundant core endpoint is always present.
+ */
+ if ( isset( $core_endpoints[ $key ] ) && $core_endpoints[ $key ] !== $key ) {
+ continue;
+ }
+ /**
+ * $core_endpoints is an array of core_permalink => custom_permalink,
+ * query_vars gives us the custom_permalink, but we want to track it as core_permalink.
+ */
+ if ( array_search( $key, $core_endpoints, true ) ) {
+ $key = array_search( $key, $core_endpoints, true );
+ }
+
+ $this->enqueue_event( 'my_account_page_view', array( 'tab' => $key ) );
+ }
+ }
+ }
+
+ /**
+ * Track address save events, this can only come from the my account page.
+ *
+ * @param int $customer_id The customer id.
+ * @param string $load_address The address type (billing, shipping).
+ */
+ public function track_save_address( $customer_id, $load_address ) {
+ WC_Analytics_Tracking::record_event( 'my_account_address_save', array( 'address' => $load_address ) );
+ }
+
+ /**
+ * Track payment method add events, this can only come from the my account page.
+ */
+ public function track_add_payment_method() {
+ if ( isset( $_POST['woocommerce_add_payment_method'] ) && isset( $_POST['payment_method'] ) ) {
+
+ $nonce_value = wc_get_var( $_REQUEST['woocommerce-add-payment-method-nonce'], wc_get_var( $_REQUEST['_wpnonce'], '' ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated,WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.ValidatedSanitizedInput.MissingUnslash
+
+ if ( ! wp_verify_nonce( $nonce_value, 'woocommerce-add-payment-method' ) ) {
+ return;
+ }
+
+ WC_Analytics_Tracking::record_event( 'my_account_payment_save' );
+ return;
+ }
+ }
+
+ /**
+ * Track payment method delete events.
+ */
+ public function track_delete_payment_method() {
+ global $wp;
+ if ( isset( $wp->query_vars['delete-payment-method'] ) ) {
+ WC_Analytics_Tracking::record_event( 'my_account_payment_delete' );
+ return;
+ }
+ }
+
+ /**
+ * Track order cancel events.
+ */
+ public function track_order_cancel_event() {
+ if ( isset( $_GET['_wca_initiator'] ) && ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), 'woocommerce-cancel_order' ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ WC_Analytics_Tracking::record_event( 'my_account_order_action_click', array( 'action' => 'cancel' ) );
+ }
+ }
+
+ /**
+ * Track order pay events.
+ */
+ public function track_order_pay_event() {
+ if ( isset( $_GET['_wca_initiator'] ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Recommended
+ WC_Analytics_Tracking::record_event( 'my_account_order_action_click', array( 'action' => 'pay' ) );
+ }
+ }
+
+ /**
+ * Track account details save events, this can only come from the my account page.
+ */
+ public function track_save_account_details() {
+ WC_Analytics_Tracking::record_event( 'my_account_details_save' );
+ }
+
+ /**
+ * Add referrer prop to my account action links
+ *
+ * @param array $actions My account action links.
+ * @return array
+ */
+ public function add_initiator_prop_to_my_account_action_links( $actions ) {
+ foreach ( $actions as $key => $action ) {
+ if ( ! isset( $action['url'] ) ) {
+ continue;
+ }
+
+ // Check if the action key is view, pay, or cancel.
+ if ( ! in_array( $key, array( 'view', 'pay', 'cancel' ), true ) ) {
+ continue;
+ }
+
+ $url = add_query_arg( array( '_wca_initiator' => 'action' ), $action['url'] );
+ $actions[ $key ]['url'] = $url;
+ }
+
+ return $actions;
+ }
+
+ /**
+ * Add an initiator prop to the order url.
+ *
+ * The get_view_order_url is used in a lot of places,
+ * so we want to limit it just to my account page.
+ */
+ public function add_initiator_prop_to_order_urls() {
+ add_filter(
+ 'woocommerce_get_view_order_url',
+ function ( $url ) {
+ return add_query_arg( array( '_wca_initiator' => 'number' ), $url );
+ },
+ 10,
+ 1
+ );
+
+ add_filter(
+ 'woocommerce_get_endpoint_url',
+ function ( $url, $endpoint ) {
+ if ( 'edit-address' === $endpoint ) {
+ return add_query_arg( array( '_wca_initiator' => 'action' ), $url );
+ }
+ return $url;
+ },
+ 10,
+ 2
+ );
+ }
+
+ /**
+ * Add initiator to query vars
+ *
+ * @param array $query_vars Query vars.
+ * @return array
+ */
+ public function add_initiator_param_to_query_vars( $query_vars ) {
+ $query_vars[] = '_wca_initiator';
+ return $query_vars;
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-pixel-builder.php b/packages/php/woocommerce-analytics/src/class-pixel-builder.php
new file mode 100644
index 00000000000..4dada0c38f0
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-pixel-builder.php
@@ -0,0 +1,339 @@
+<?php
+/**
+ * Pixel Builder for WooCommerce Analytics
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use WP_Error;
+
+/**
+ * Pixel Builder class - handles pixel URL construction.
+ */
+class Pixel_Builder {
+
+ /**
+ * Tracks pixel URL.
+ *
+ * @var string
+ */
+ const TRACKS_PIXEL_URL = 'https://pixel.wp.com/t.gif';
+
+ /**
+ * ClickHouse pixel URL.
+ *
+ * @var string
+ */
+ const CH_PIXEL_URL = 'https://pixel.wp.com/w.gif';
+
+ /**
+ * Browser type identifier for server-side tracking.
+ *
+ * @var string
+ */
+ const BROWSER_TYPE = 'php-agent';
+
+ /**
+ * Event name regex pattern.
+ * Format: prefix_eventname (e.g., woocommerceanalytics_checkout_started)
+ *
+ * @var string
+ */
+ const EVENT_NAME_REGEX = '/^(([a-z0-9]+)_){1}([a-z0-9_]+)$/';
+
+ /**
+ * Property name regex pattern.
+ * Format: lowercase letters/underscores, starting with letter or underscore.
+ *
+ * @var string
+ */
+ const PROP_NAME_REGEX = '/^[a-z_][a-z0-9_]*$/';
+
+ /**
+ * Build a timestamp representing milliseconds since 1970-01-01.
+ *
+ * @return string A string representing a timestamp.
+ */
+ public static function build_timestamp() {
+ $ts = round( microtime( true ) * 1000 );
+ return number_format( $ts, 0, '', '' );
+ }
+
+ /**
+ * Add request timestamp and nocache parameter to pixel URL.
+ * Should be called just before the HTTP request.
+ *
+ * @param string $pixel Pixel URL.
+ * @return string Pixel URL with request timestamp and URL terminator.
+ */
+ public static function add_request_timestamp_and_nocache( $pixel ) {
+ return $pixel . '&_rt=' . self::build_timestamp() . '&_=_';
+ }
+
+ /**
+ * Build a Tracks pixel URL from properties.
+ *
+ * @param array $properties Event properties.
+ * @return string|WP_Error Pixel URL on success, WP_Error on failure.
+ */
+ public static function build_tracks_url( $properties ) {
+ $validated = self::validate_and_sanitize( $properties );
+
+ if ( is_wp_error( $validated ) ) {
+ return $validated;
+ }
+
+ return self::TRACKS_PIXEL_URL . '?' . http_build_query( $validated );
+ }
+
+ /**
+ * Build a ClickHouse pixel URL from properties.
+ *
+ * @param array $properties Event properties.
+ * @return string|WP_Error Pixel URL on success, WP_Error on failure.
+ */
+ public static function build_ch_url( $properties ) {
+ $validated = self::validate_and_sanitize( $properties );
+
+ if ( is_wp_error( $validated ) ) {
+ return $validated;
+ }
+
+ return self::CH_PIXEL_URL . '?' . http_build_query( $validated );
+ }
+
+ /**
+ * Validate and sanitize event properties.
+ *
+ * @param array $properties Event properties.
+ * @return array|WP_Error Validated properties on success, WP_Error on failure.
+ */
+ public static function validate_and_sanitize( $properties ) {
+ // Required: event name.
+ if ( empty( $properties['_en'] ) ) {
+ return new WP_Error( 'invalid_event', 'A valid event must be specified via `_en`', 400 );
+ }
+
+ // Validate event name format.
+ if ( ! self::event_name_is_valid( $properties['_en'] ) ) {
+ return new WP_Error( 'invalid_event_name', 'A valid event name must be specified.' );
+ }
+
+ // Delete non-routable IP addresses (geoip would discard these anyway).
+ if ( isset( $properties['_via_ip'] ) && preg_match( '/^192\.168|^10\./', $properties['_via_ip'] ) ) {
+ unset( $properties['_via_ip'] );
+ }
+
+ // Add browser type for server-side tracking.
+ $properties['browser_type'] = self::BROWSER_TYPE;
+
+ // Ensure timestamp exists.
+ if ( ! isset( $properties['_ts'] ) ) {
+ $properties['_ts'] = self::build_timestamp();
+ }
+
+ // Validate property names.
+ foreach ( array_keys( $properties ) as $key ) {
+ if ( '_en' === $key ) {
+ continue;
+ }
+ if ( ! self::prop_name_is_valid( $key ) ) {
+ return new WP_Error( 'invalid_prop_name', 'A valid prop name must be specified: ' . $key );
+ }
+ }
+
+ // Sanitize array values to prevent bracket notation in URL serialization.
+ return self::sanitize_property_values( $properties );
+ }
+
+ /**
+ * Check if event name is valid.
+ *
+ * @param string $name Event name.
+ * @return bool True if valid, false otherwise.
+ */
+ public static function event_name_is_valid( $name ) {
+ return (bool) preg_match( self::EVENT_NAME_REGEX, $name );
+ }
+
+ /**
+ * Check if a property name is valid.
+ *
+ * @param string $name Property name.
+ * @return bool True if valid, false otherwise.
+ */
+ public static function prop_name_is_valid( $name ) {
+ return (bool) preg_match( self::PROP_NAME_REGEX, $name );
+ }
+
+ /**
+ * Sanitize property values for URL serialization.
+ *
+ * Converts array values to appropriate formats to prevent http_build_query()
+ * from creating bracket notation (e.g., prop[0], prop[1]) which violates
+ * the property name regex.
+ *
+ * @param array $properties Event properties.
+ * @return array Sanitized properties.
+ */
+ private static function sanitize_property_values( $properties ) {
+ foreach ( $properties as $key => $value ) {
+ if ( ! is_array( $value ) ) {
+ continue;
+ }
+
+ if ( empty( $value ) ) {
+ // Empty array becomes empty string.
+ $properties[ $key ] = '';
+ continue;
+ }
+
+ // Check if array is indexed (not associative) and contains only scalar values.
+ $is_indexed_array = array_keys( $value ) === range( 0, count( $value ) - 1 );
+ $has_scalar_only = ! array_filter(
+ $value,
+ function ( $item ) {
+ return is_array( $item ) || is_object( $item );
+ }
+ );
+
+ if ( $is_indexed_array && $has_scalar_only ) {
+ // Indexed arrays with scalar values: join as comma string.
+ $properties[ $key ] = implode( ',', array_map( 'strval', $value ) );
+ continue;
+ }
+
+ // Associative arrays or nested arrays become JSON strings.
+ $encoded = wp_json_encode( $value, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES );
+ $properties[ $key ] = ( false === $encoded ) ? '' : $encoded;
+ }
+
+ return $properties;
+ }
+
+ /**
+ * Check if a SOCKS proxy is configured.
+ *
+ * The Requests library doesn't support SOCKS proxies, so we need to fall back
+ * to wp_remote_get() which respects WordPress proxy settings.
+ *
+ * @return bool True if a SOCKS proxy is configured.
+ */
+ private static function is_socks_proxy_configured() {
+ if ( ! defined( 'WP_PROXY_HOST' ) || ! is_string( WP_PROXY_HOST ) || '' === WP_PROXY_HOST ) {
+ return false;
+ }
+
+ return self::is_socks_proxy_host( (string) WP_PROXY_HOST );
+ }
+
+ /**
+ * Check if a proxy host string indicates a SOCKS proxy.
+ *
+ * @param string $proxy_host The proxy host value.
+ * @return bool True if the host indicates a SOCKS proxy.
+ */
+ public static function is_socks_proxy_host( $proxy_host ) {
+ $proxy_host = strtolower( $proxy_host );
+
+ return 0 === strpos( $proxy_host, 'socks5://' )
+ || 0 === strpos( $proxy_host, 'socks4://' )
+ || 0 === strpos( $proxy_host, 'socks://' );
+ }
+
+ /**
+ * Send pixel requests using batched non-blocking HTTP calls.
+ *
+ * Uses Requests library's request_multiple() for parallel execution via curl_multi.
+ *
+ * @param array $pixels Array of pixel URLs to send.
+ * @return bool True on success.
+ */
+ public static function send_pixels_batched( $pixels ) {
+ if ( empty( $pixels ) ) {
+ return true;
+ }
+
+ // Check if batching is supported.
+ // Note: WpOrg\Requests\Requests doesn't support SOCKS proxies, so we fall back
+ // to individual wp_remote_get() requests which respect WP_PROXY_* settings.
+ $can_batch = ( class_exists( 'WpOrg\Requests\Requests' ) && method_exists( 'WpOrg\Requests\Requests', 'request_multiple' ) )
+ || ( class_exists( 'Requests' ) && method_exists( 'Requests', 'request_multiple' ) );
+ $can_batch = $can_batch && ! self::is_socks_proxy_configured();
+
+ if ( ! $can_batch ) {
+ // Fallback to individual requests.
+ foreach ( $pixels as $pixel ) {
+ self::send_pixel( $pixel );
+ }
+ return true;
+ }
+
+ // Add timestamp and nocache to all pixels.
+ $pixels_to_send = array();
+ foreach ( $pixels as $pixel ) {
+ $pixels_to_send[] = self::add_request_timestamp_and_nocache( $pixel );
+ }
+
+ // Build request array for batch sending.
+ $requests = array();
+ $options = array(
+ 'blocking' => false, // Non-blocking mode.
+ 'timeout' => 1,
+ );
+
+ foreach ( $pixels_to_send as $pixel ) {
+ $requests[] = array(
+ 'url' => $pixel,
+ 'headers' => array(),
+ 'data' => array(),
+ 'type' => 'GET',
+ );
+ }
+
+ try {
+ if ( class_exists( 'WpOrg\Requests\Requests' ) ) {
+ \WpOrg\Requests\Requests::request_multiple( $requests, $options );
+ } elseif ( class_exists( 'Requests' ) ) {
+ \Requests::request_multiple( $requests, $options ); // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.requestsDeprecated
+ }
+ } catch ( \Exception $e ) {
+ // Log error but don't break the site - tracking pixels should fail gracefully.
+ $error_message = 'WooCommerce Analytics: Batch pixel request failed - ' . $e->getMessage();
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( $error_message, array( 'source' => 'woocommerce-analytics' ) );
+ } else {
+ // Fallback for MU-plugin stage when WooCommerce logger is not available.
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ error_log( $error_message );
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Send a single pixel request.
+ *
+ * @param string $pixel Pixel URL.
+ * @return bool True on success.
+ */
+ public static function send_pixel( $pixel ) {
+ $pixel = self::add_request_timestamp_and_nocache( $pixel );
+
+ wp_remote_get(
+ $pixel,
+ array(
+ 'blocking' => false,
+ 'redirection' => 2,
+ 'httpversion' => '1.1',
+ 'timeout' => 1,
+ )
+ );
+
+ return true;
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-universal.php b/packages/php/woocommerce-analytics/src/class-universal.php
new file mode 100644
index 00000000000..d4ce3b072b5
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-universal.php
@@ -0,0 +1,710 @@
+<?php
+/**
+ * General store tracking actions.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use Automattic\Jetpack\Constants;
+use WC_Order;
+use WC_Product;
+
+/**
+ * Filters and Actions added to Store pages to perform analytics.
+ */
+class Universal {
+ /**
+ * Trait to handle common analytics functions.
+ */
+ use Woo_Analytics_Trait;
+
+ /**
+ * Constructor.
+ */
+ public function init_hooks() {
+ $this->find_cart_checkout_content_sources();
+ $this->additional_blocks_on_cart_page = $this->get_additional_blocks_on_page( 'cart' );
+ $this->additional_blocks_on_checkout_page = $this->get_additional_blocks_on_page( 'checkout' );
+
+ // Capture search
+ add_action( 'template_redirect', array( $this, 'capture_search_query' ), 11 );
+
+ // Capture cart events.
+ add_action( 'woocommerce_add_to_cart', array( $this, 'capture_add_to_cart' ), 10, 6 );
+ add_action( 'woocommerce_after_cart_item_quantity_update', array( $this, 'capture_cart_quantity_update' ), 10, 4 );
+ add_action( 'woocommerce_cart_item_removed', array( $this, 'capture_remove_from_cart' ), 10, 2 );
+ add_filter( 'woocommerce_cart_item_remove_link', array( $this, 'remove_from_cart_attributes' ), 10, 2 );
+
+ // Checkout.
+ // Send events after checkout template (shortcode).
+ add_action( 'woocommerce_after_checkout_form', array( $this, 'checkout_process' ) );
+ // Send events after checkout block.
+ add_action( 'woocommerce_blocks_enqueue_checkout_block_scripts_after', array( $this, 'checkout_process' ) );
+
+ // order processed.
+ add_action( 'woocommerce_checkout_order_processed', array( $this, 'order_process' ), 10, 1 );
+ add_action( 'woocommerce_store_api_checkout_order_processed', array( $this, 'order_process' ), 10, 1 );
+
+ add_filter( 'woocommerce_checkout_posted_data', array( $this, 'save_checkout_post_data' ), 10, 1 );
+
+ add_action( 'woocommerce_created_customer', array( $this, 'capture_created_customer' ), 10, 2 );
+
+ add_action( 'woocommerce_created_customer', array( $this, 'capture_post_checkout_created_customer' ), 10, 2 );
+
+ // single product page view.
+ add_action( 'woocommerce_after_single_product', array( $this, 'capture_product_view' ) );
+
+ // order confirmed page view
+ add_action( 'woocommerce_thankyou', array( $this, 'capture_order_confirmation_view' ), 10, 1 );
+
+ // checkout page view
+ add_action( 'wp_footer', array( $this, 'capture_checkout_view' ), 11 );
+
+ // cart page view
+ add_action( 'wp_footer', array( $this, 'capture_cart_view' ), 11 );
+
+ // Enqueue events to track.
+ add_action( 'wp_footer', array( $this, 'inject_analytics_data' ), 999 );
+ }
+
+ /**
+ * Inject analytics data into the window object
+ */
+ public function inject_analytics_data() {
+ $is_clickhouse_enabled = Features::is_clickhouse_enabled();
+ $is_proxy_tracking_enabled = Features::is_proxy_tracking_enabled();
+ // When proxy tracking is enabled, we don't need to send the common properties to the client.
+ $common_properties = $is_proxy_tracking_enabled ? array() : $this->get_common_properties();
+ ?>
+ <script type="text/javascript">
+ (function() {
+ window.wcAnalytics = window.wcAnalytics || {};
+ const wcAnalytics = window.wcAnalytics;
+
+ // Set the assets URL for webpack to find the split assets.
+ wcAnalytics.assets_url = '<?php echo esc_url( plugins_url( '../build/', __DIR__ . '/class-woocommerce-analytics.php' ) ); ?>';
+
+ // Set the REST API tracking endpoint URL.
+ <?php
+ $track_endpoint = rest_url( 'woocommerce-analytics/v1/track' );
+ // Include the WP REST nonce for logged-in users so WordPress can identify
+ // the current user via cookie auth. This is needed for the store_admin
+ // property detection, not for endpoint authorization.
+ if ( is_user_logged_in() ) {
+ $track_endpoint = add_query_arg( '_wpnonce', wp_create_nonce( 'wp_rest' ), $track_endpoint );
+ }
+ ?>
+ wcAnalytics.trackEndpoint = <?php echo wp_json_encode( esc_url_raw( $track_endpoint ), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>;
+
+ // Set common properties for all events.
+ wcAnalytics.commonProps = <?php echo wp_json_encode( $common_properties, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>;
+
+ // Set the event queue.
+ wcAnalytics.eventQueue = <?php echo wp_json_encode( WC_Analytics_Tracking::get_event_queue(), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>;
+
+ // Features.
+ wcAnalytics.features = {
+ ch: <?php echo $is_clickhouse_enabled ? 'true' : 'false'; ?>,
+ sessionTracking: <?php echo $is_clickhouse_enabled ? 'true' : 'false'; ?>,
+ proxy: <?php echo $is_proxy_tracking_enabled ? 'true' : 'false'; ?>,
+ };
+
+ wcAnalytics.breadcrumbs = <?php echo wp_json_encode( $this->get_breadcrumb_titles(), JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); ?>;
+
+ // Page context flags.
+ wcAnalytics.pages = {
+ isAccountPage: <?php echo is_account_page() ? 'true' : 'false'; ?>,
+ isCart: <?php echo is_cart() ? 'true' : 'false'; ?>,
+ };
+ })();
+ </script>
+ <?php
+ }
+
+ /**
+ * Capture remove from cart events in mini-cart and cart blocks
+ *
+ * @param string $cart_item_key The cart item removed.
+ * @param \WC_Cart $cart The cart.
+ *
+ * @return void
+ */
+ public function capture_remove_from_cart( $cart_item_key, $cart ) {
+ $item = $cart->removed_cart_contents[ $cart_item_key ] ?? null;
+
+ WC_Analytics_Tracking::record_event(
+ 'remove_from_cart',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'pi' => (int) $item['product_id'],
+ 'pq' => (int) $item['quantity'],
+ )
+ )
+ );
+ }
+
+ /**
+ * Capture remove/add from cart events using the Cart Controller
+ *
+ * @param string $cart_item_key The cart item updated.
+ * @param int $quantity Contains the new quantity of the item.
+ * @param int $old_quantity Contains the old quantity of the item.
+ * @param \WC_Cart $cart The cart.
+ *
+ * @return void
+ */
+ public function capture_cart_quantity_update( $cart_item_key, $quantity, $old_quantity, $cart ) {
+ $product_id = $cart->cart_contents[ $cart_item_key ]['product_id'];
+ if ( $quantity > $old_quantity ) {
+ WC_Analytics_Tracking::record_event(
+ 'add_to_cart',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'pi' => $product_id,
+ 'pq' => $quantity,
+ )
+ )
+ );
+ $this->lock_add_to_cart_events = true;
+ return;
+ }
+
+ if ( $quantity < $old_quantity ) {
+ WC_Analytics_Tracking::record_event(
+ 'remove_from_cart',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'pi' => $product_id,
+ 'pq' => $quantity,
+ )
+ )
+ );
+ return;
+ }
+ }
+
+ /**
+ * Adds the product ID to the remove product link (for use by remove_from_cart above) if not present
+ *
+ * @param string $url Full HTML a tag of the link to remove an item from the cart.
+ * @param string $key Unique Key ID for a cart item.
+ *
+ * @return string
+ */
+ public function remove_from_cart_attributes( $url, $key ) {
+ if ( str_contains( $url, 'data-product_id' ) ) {
+ return $url;
+ }
+
+ $item = WC()->cart->get_cart_item( $key );
+ $product = $item['data'];
+
+ $new_attributes = sprintf(
+ '" data-product_id="%s">',
+ esc_attr( $product->get_id() )
+ );
+
+ $url = str_replace( '">', $new_attributes, $url );
+ return $url;
+ }
+
+ /**
+ * Get the selected shipping option for a cart item. If the name cannot be found in the options table, the method's
+ * ID will be used.
+ *
+ * @param string $cart_item_key the cart item key.
+ *
+ * @return mixed|bool
+ */
+ public function get_shipping_option_for_item( $cart_item_key ) {
+ $packages = wc()->shipping()->get_packages();
+ $selected_options = wc()->session->get( 'chosen_shipping_methods' );
+
+ if ( ! is_array( $packages ) || ! is_array( $selected_options ) ) {
+ return false;
+ }
+
+ foreach ( $packages as $package_id => $package ) {
+
+ if ( ! isset( $package['contents'] ) || ! is_array( $package['contents'] ) ) {
+ return false;
+ }
+
+ foreach ( $package['contents'] as $package_item ) {
+ if ( ! isset( $package_item['key'] ) || $package_item['key'] !== $cart_item_key || ! isset( $selected_options[ $package_id ] ) ) {
+ continue;
+ }
+ $selected_rate_id = $selected_options[ $package_id ];
+ $method_key_id = sanitize_text_field( str_replace( ':', '_', $selected_rate_id ) );
+ $option_name = 'woocommerce_' . $method_key_id . '_settings';
+ $option_value = get_option( $option_name );
+ $title = '';
+ if ( is_array( $option_value ) && isset( $option_value['title'] ) ) {
+ $title = $option_value['title'];
+ }
+ if ( ! $title ) {
+ return $selected_rate_id;
+ }
+ return $title;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * On the Checkout page, trigger an event for each product in the cart
+ */
+ public function checkout_process() {
+ global $post;
+ $checkout_page_id = wc_get_page_id( 'checkout' );
+ $cart = WC()->cart->get_cart();
+ $is_in_checkout_page = isset( $post->ID ) && $checkout_page_id === $post->ID ? 'Yes' : 'No';
+ $session = WC()->session;
+ if ( is_object( $session ) ) {
+ $session->set( 'checkout_page_used', 'Yes' === $is_in_checkout_page );
+ $session->save_data();
+ }
+
+ foreach ( $cart as $cart_item_key => $cart_item ) {
+ /**
+ * This filter is already documented in woocommerce/templates/cart/cart.php
+ */
+ $product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
+
+ if ( ! $product || ! $product instanceof WC_Product ) {
+ continue;
+ }
+
+ $data = $this->get_cart_checkout_shared_data();
+
+ $data['from_checkout'] = $is_in_checkout_page;
+
+ if ( ! empty( $data['products'] ) ) {
+ unset( $data['products'] );
+ }
+
+ if ( ! empty( $data['shipping_options_count'] ) ) {
+ unset( $data['shipping_options_count'] );
+ }
+
+ $data['pq'] = $cart_item['quantity'];
+ $this->enqueue_event( 'product_checkout', $this->get_cart_checkout_event_properties( $data ), $product->get_id() );
+ }
+ }
+
+ /**
+ * After the order processed, fire an event for each item in the order
+ *
+ * @param int|string|WC_Order $order_id_or_order Order Id or Order object.
+ */
+ public function order_process( $order_id_or_order ) {
+ $order = wc_get_order( $order_id_or_order );
+
+ if ( ! $order ) {
+ return;
+ }
+
+ $payment_option = $order->get_payment_method();
+
+ if ( is_object( WC()->session ) ) {
+ $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No';
+ $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No';
+
+ } else {
+ $create_account = 'No';
+ $checkout_page_used = 'No';
+ }
+
+ $delayed_account_creation = ucfirst( get_option( 'woocommerce_enable_delayed_account_creation', 'Yes' ) );
+
+ $guest_checkout = $order->get_user() ? 'No' : 'Yes';
+
+ $express_checkout = 'null';
+ // When the payment option is woocommerce_payment
+ // See if Google Pay or Apple Pay was used.
+ if ( 'woocommerce_payments' === $payment_option ) {
+ $payment_option_title = $order->get_payment_method_title();
+ if ( 'Google Pay (WooCommerce Payments)' === $payment_option_title ) {
+ $express_checkout = array( 'google_pay' );
+ } elseif ( 'Apple Pay (WooCommerce Payments)' === $payment_option_title ) {
+ $express_checkout = array( 'apple_pay' );
+ }
+ }
+
+ $checkout_page_contains_checkout_block = '0';
+ $checkout_page_contains_checkout_shortcode = '0';
+
+ $order_source = $order->get_created_via();
+ if ( 'store-api' === $order_source ) {
+ $checkout_page_contains_checkout_block = '1';
+ } elseif ( 'checkout' === $order_source ) {
+ $checkout_page_contains_checkout_shortcode = '1';
+ }
+
+ // loop through products in the order and queue a purchase event.
+ foreach ( $order->get_items() as $order_item ) {
+ // @phan-suppress-next-line PhanUndeclaredMethod -- Checked before being called. See also https://github.com/phan/phan/issues/1204.
+ $product_id = is_callable( array( $order_item, 'get_product_id' ) ) ? $order_item->get_product_id() : -1;
+
+ $order_items = $order->get_items();
+ $order_items_count = 0;
+ if ( is_array( $order_items ) ) {
+ $order_items_count = count( $order_items );
+ }
+ $order_coupons = $order->get_coupons();
+ $order_coupons_count = 0;
+ if ( is_array( $order_coupons ) ) {
+ $order_coupons_count = count( $order_coupons );
+ }
+
+ WC_Analytics_Tracking::record_event(
+ 'product_purchase',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'oi' => $order->get_order_number(),
+ 'pi' => $product_id,
+ 'pq' => $order_item->get_quantity(),
+ 'payment_option' => $payment_option,
+ 'create_account' => $create_account,
+ 'guest_checkout' => $guest_checkout,
+ 'delayed_account_creation' => $delayed_account_creation,
+ 'express_checkout' => $express_checkout,
+ 'coupon_used' => $order_coupons_count,
+ 'products_count' => $order_items_count,
+ 'order_value' => $order->get_subtotal(),
+ 'order_total' => $order->get_total(),
+ 'total_discount' => $order->get_discount_total(),
+ 'total_taxes' => $order->get_total_tax(),
+ 'total_shipping' => $order->get_shipping_total(),
+ 'from_checkout' => $checkout_page_used,
+ 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
+ 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
+ )
+ )
+ );
+ }
+ }
+ /**
+ * Gets the inner blocks of a block.
+ *
+ * @param array $inner_blocks The inner blocks.
+ *
+ * @return array
+ */
+ private function get_inner_blocks( $inner_blocks ) {
+ $block_names = array();
+ if ( ! empty( $inner_blocks['blockName'] ) ) {
+ $block_names[] = $inner_blocks['blockName'];
+ }
+ if ( isset( $inner_blocks['innerBlocks'] ) && is_array( $inner_blocks['innerBlocks'] ) ) {
+ $block_names = array_merge( $block_names, $this->get_inner_blocks( $inner_blocks['innerBlocks'] ) );
+ }
+ return $block_names;
+ }
+
+ /**
+ * Track adding items to the cart.
+ *
+ * @param string $cart_item_key Cart item key.
+ * @param int $product_id Product added to cart.
+ * @param int $quantity Quantity added to cart.
+ * @param int $variation_id Product variation.
+ * @param array $variation Variation attributes..
+ * @param array $cart_item_data Other cart data.
+ */
+ public function capture_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( $this->lock_add_to_cart_events ) {
+ return;
+ }
+ WC_Analytics_Tracking::record_event(
+ 'add_to_cart',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'pi' => $product_id,
+ 'pq' => $quantity,
+ )
+ )
+ );
+ }
+
+ /**
+ * Get the event properties for the cart and checkout events.
+ *
+ * @param array $event_properties Event properties.
+ */
+ public function get_cart_checkout_event_properties( $event_properties = array() ) {
+ if ( isset( $event_properties['pq'] ) ) {
+ $event_properties['pq'] = 0 === $event_properties['pq'] ? 1 : $event_properties['pq'];
+ $event_properties['pq'] = (string) $event_properties['pq'];
+ }
+ $product = isset( $event_properties['pi'] ) ? wc_get_product( $event_properties['pi'] ) : null;
+ $product_details = $product instanceof WC_Product ? $this->get_product_details( $product ) : array();
+
+ $checkout_cart_details = array(
+ 'template_used' => $this->cart_checkout_templates_in_use ? '1' : '0',
+ 'additional_blocks_on_cart_page' => $this->additional_blocks_on_cart_page,
+ 'additional_blocks_on_checkout_page' => $this->additional_blocks_on_checkout_page,
+ 'order_value' => $this->get_cart_subtotal(),
+ 'order_total' => $this->get_cart_total(),
+ 'total_tax' => $this->get_cart_taxes(),
+ 'total_discount' => $this->get_total_discounts(),
+ 'total_shipping' => $this->get_cart_shipping_total(),
+ 'products_count' => $this->get_cart_items_count(),
+ );
+ $cart_checkout_info = $this->get_cart_checkout_info();
+
+ $event_properties = array_merge( $product_details, $checkout_cart_details, $cart_checkout_info, $event_properties ); // event properties should be last to allow for overrides
+
+ return $event_properties;
+ }
+
+ /**
+ * Save create account post data to be used in $this->order_process.
+ *
+ * @param array|null $data Post data from the checkout page.
+ *
+ * @return array|null
+ */
+ public function save_checkout_post_data( ?array $data ) {
+ if ( is_object( WC()->session ) && ! empty( $data['createaccount'] ) ) {
+ WC()->session->set( 'wc_checkout_createaccount_used', true );
+ WC()->session->save_data();
+ }
+ return $data;
+ }
+
+ /**
+ * Capture the create account event. Similar to save_checkout_post_data but works with Store API.
+ *
+ * @param int $customer_id Customer ID.
+ * @param array $new_customer_data New customer data.
+ */
+ public function capture_created_customer( $customer_id, $new_customer_data ) {
+ $session = WC()->session;
+ if (
+ is_object( $session )
+ && is_array( $new_customer_data )
+ && ! empty( $new_customer_data['source'] )
+ ) {
+ if ( str_contains( $new_customer_data['source'], 'store-api' ) ) {
+ $session->set( 'wc_checkout_createaccount_used', true );
+ $session->save_data();
+ }
+ }
+ }
+
+ /**
+ * Capture the post checkout create account event.
+ *
+ * @param int $customer_id Customer ID.
+ * @param array $new_customer_data New customer data.
+ */
+ public function capture_post_checkout_created_customer( $customer_id, $new_customer_data ) {
+ if (
+ is_array( $new_customer_data )
+ && ! empty( $new_customer_data['source'] )
+ && str_contains( $new_customer_data['source'], 'delayed-account-creation' )
+ ) {
+
+ $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No';
+ $checkout_page_contains_checkout_block = '1';
+ $checkout_page_contains_checkout_shortcode = '0';
+
+ $this->enqueue_event(
+ 'post_account_creation',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'from_checkout' => $checkout_page_used,
+ 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
+ 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
+ )
+ )
+ );
+ }
+ }
+
+ /**
+ * Capture a search event.
+ */
+ public function capture_search_query() {
+ if ( is_search() ) {
+ global $wp_query;
+ $this->enqueue_event(
+ 'search',
+ array(
+ 'search_query' => $wp_query->get( 's' ),
+ 'qty' => $wp_query->found_posts,
+ )
+ );
+ }
+ }
+
+ /**
+ * Track the cart page view
+ */
+ public function capture_cart_view() {
+ global $post;
+ $cart_page_id = wc_get_page_id( 'cart' );
+
+ $is_cart = $cart_page_id && is_page( $cart_page_id )
+ || wc_post_content_has_shortcode( 'woocommerce_cart' )
+ || has_block( 'woocommerce/cart', $post )
+ || apply_filters( 'woocommerce_is_cart', false )
+ || Constants::is_defined( 'WOOCOMMERCE_CART' )
+ || is_cart();
+
+ if ( ! $is_cart ) {
+ return;
+ }
+
+ $this->enqueue_event(
+ 'cart_view',
+ $this->get_cart_checkout_event_properties(
+ $this->get_cart_checkout_shared_data()
+ )
+ );
+ }
+
+ /**
+ * Track a product page view
+ */
+ public function capture_product_view() {
+ global $product;
+ if ( ! $product instanceof WC_Product ) {
+ return;
+ }
+
+ $this->enqueue_event(
+ 'product_view',
+ array(),
+ $product->get_id()
+ );
+ }
+
+ /**
+ * Track the order confirmation page view
+ */
+ public function capture_order_confirmation_view() {
+ $order_id = absint( get_query_var( 'order-received' ) );
+ if ( ! $order_id ) {
+ return;
+ }
+
+ if ( ! is_order_received_page() ) {
+ return;
+ }
+
+ $order = wc_get_order( $order_id );
+
+ $order_source = $order->get_created_via();
+ $checkout_page_contains_checkout_block = '0';
+ $checkout_page_contains_checkout_shortcode = '0';
+
+ if ( 'store-api' === $order_source ) {
+ $checkout_page_contains_checkout_block = '1';
+ } elseif ( 'checkout' === $order_source ) {
+ $checkout_page_contains_checkout_shortcode = '1';
+ }
+
+ $coupons = $order->get_coupons();
+ $coupon_used = 0;
+ if ( is_countable( $coupons ) ) {
+ $coupon_used = count( $coupons ) ? 1 : 0;
+ }
+
+ if ( is_object( WC()->session ) ) {
+ $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Yes' : 'No';
+ $checkout_page_used = true === WC()->session->get( 'checkout_page_used' ) ? 'Yes' : 'No';
+ } else {
+ $create_account = 'No';
+ $checkout_page_used = 'No';
+ }
+
+ $delayed_account_creation = ucfirst( get_option( 'woocommerce_enable_delayed_account_creation', 'Yes' ) );
+ $this->enqueue_event(
+ 'order_confirmation_view',
+ $this->get_cart_checkout_event_properties(
+ array(
+ 'coupon_used' => $coupon_used,
+ 'create_account' => $create_account,
+ 'express_checkout' => 'null', // TODO: not solved yet.
+ 'guest_checkout' => $order->get_customer_id() ? 'No' : 'Yes',
+ 'delayed_account_creation' => $delayed_account_creation,
+ 'oi' => $order->get_id(),
+ 'order_value' => $order->get_subtotal(),
+ 'order_total' => $order->get_total(),
+ 'products_count' => $order->get_item_count(),
+ 'total_discount' => $order->get_discount_total(),
+ 'total_shipping' => $order->get_shipping_total(),
+ 'total_tax' => $order->get_total_tax(),
+ 'payment_option' => $order->get_payment_method(),
+ 'products' => $this->format_items_to_json( $order->get_items() ),
+ 'order_note' => $order->get_customer_note(),
+ 'shipping_option' => $order->get_shipping_method(),
+ 'from_checkout' => $checkout_page_used,
+ 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
+ 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
+ )
+ )
+ );
+ }
+
+ /**
+ * Track the checkout page view
+ */
+ public function capture_checkout_view() {
+ global $post;
+ if ( ! $post instanceof \WP_Post ) {
+ return;
+ }
+
+ $checkout_page_id = wc_get_page_id( 'checkout' );
+
+ $is_checkout = $checkout_page_id && is_page( $checkout_page_id )
+ || wc_post_content_has_shortcode( 'woocommerce_checkout' )
+ || has_block( 'woocommerce/checkout', $post )
+ || apply_filters( 'woocommerce_is_checkout', false )
+ || Constants::is_defined( 'WOOCOMMERCE_CHECKOUT' );
+
+ if ( ! $is_checkout ) {
+ return;
+ }
+
+ $is_in_checkout_page = isset( $post->ID ) && $checkout_page_id === $post->ID ? 'Yes' : 'No';
+ $checkout_page_contains_checkout_block = '0';
+ $checkout_page_contains_checkout_shortcode = '1';
+
+ $session = WC()->session;
+ if ( is_object( $session ) ) {
+ $session->set( 'checkout_page_used', true );
+ $session->save_data();
+ $draft_order_id = $session->get( 'store_api_draft_order', 0 );
+ if ( $draft_order_id ) {
+ $checkout_page_contains_checkout_block = '1';
+ $checkout_page_contains_checkout_shortcode = '0';
+ }
+ }
+
+ // Order received page is also a checkout page, so we need to bail out if we are on that page.
+ if ( is_order_received_page() ) {
+ return;
+ }
+
+ $this->enqueue_event(
+ 'checkout_view',
+ $this->get_cart_checkout_event_properties(
+ array_merge(
+ $this->get_cart_checkout_shared_data(),
+ array(
+ 'from_checkout' => $is_in_checkout_page,
+ 'checkout_page_contains_checkout_block' => $checkout_page_contains_checkout_block,
+ 'checkout_page_contains_checkout_shortcode' => $checkout_page_contains_checkout_shortcode,
+ )
+ )
+ )
+ );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-wc-analytics-tracking.php b/packages/php/woocommerce-analytics/src/class-wc-analytics-tracking.php
new file mode 100644
index 00000000000..dca525154ad
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-wc-analytics-tracking.php
@@ -0,0 +1,622 @@
+<?php
+/**
+ * WooCommerce Analytics Tracking for tracking frontend events
+ *
+ * This class is designed to work without WooCommerce dependencies,
+ * enabling it to run at the MU-plugin stage without loading WooCommerce to optimize performance.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use Automattic\Jetpack\Device_Detection;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+use WP_Error;
+
+/**
+ * WooCommerce Analytics Tracking class
+ */
+class WC_Analytics_Tracking {
+ /**
+ * Event prefix.
+ *
+ * @var string
+ */
+ const PREFIX = 'woocommerceanalytics_';
+
+ /**
+ * Option name for storing daily salt data.
+ *
+ * @var string
+ */
+ const DAILY_SALT_OPTION = 'woocommerce_analytics_daily_salt';
+
+ /**
+ * Event queue.
+ *
+ * @var array
+ */
+ protected static $event_queue = array();
+
+ /**
+ * Batch pixel queue for batched requests.
+ *
+ * @var array
+ */
+ private static $pixel_batch_queue = array();
+
+ /**
+ * Whether the shutdown hook has been registered.
+ *
+ * @var bool
+ */
+ private static $shutdown_hook_registered = false;
+
+ /**
+ * Cached user IP address for the current request.
+ *
+ * @var string|null
+ */
+ private static $cached_ip = null;
+
+ /**
+ * Cached visitor ID for the current request.
+ *
+ * @var string|null
+ */
+ private static $cached_visitor_id = null;
+
+ /**
+ * Record an event in Tracks and ClickHouse (If enabled).
+ *
+ * @param string $event_name The name of the event.
+ * @param array $event_properties Custom properties to send with the event.
+ *
+ * @return bool|WP_Error True for success or WP_Error if the event pixel could not be fired.
+ */
+ public static function record_event( $event_name, $event_properties = array() ) {
+ // Check consent before recording any event
+ if ( ! Consent_Manager::has_analytics_consent() ) {
+ return true; // Skip recording.
+ }
+
+ // Skip recording if the request is coming from a bot.
+ if ( User_Agent_Info::is_bot() ) {
+ return true;
+ }
+
+ $prefixed_event_name = self::PREFIX . $event_name;
+ $properties = self::get_properties( $prefixed_event_name, $event_properties );
+
+ // Record Tracks event.
+ $tracks_error = null;
+ $tracks_result = self::record_tracks_event( $properties );
+ if ( is_wp_error( $tracks_result ) ) {
+ $tracks_error = $tracks_result;
+ }
+
+ // Record ClickHouse event, if applicable.
+ $ch_error = null;
+ if ( Features::is_clickhouse_enabled() || ( isset( $properties['ch'] ) && 1 === (int) $properties['ch'] ) ) {
+ $properties['ch'] = 1;
+ $ch_result = self::record_ch_event( $properties );
+ if ( is_wp_error( $ch_result ) ) {
+ $ch_error = $ch_result;
+ }
+ }
+
+ // If both failed, return the Tracks error (primary), else the CH error, else true.
+ if ( $tracks_error ) {
+ return $tracks_error;
+ }
+ if ( $ch_error ) {
+ return $ch_error;
+ }
+
+ return true;
+ }
+
+ /**
+ * Queue an event in the event queue which will be processed on the page load in client-side analytics.
+ *
+ * @param string $event_name The name of the event.
+ * @param array $properties The event properties.
+ */
+ public static function add_event_to_queue( $event_name, $properties = array() ) {
+ self::$event_queue[] = array(
+ 'eventName' => $event_name,
+ 'props' => $properties,
+ );
+ }
+
+ /**
+ * Get the event queue.
+ *
+ * @return array The event queue.
+ */
+ public static function get_event_queue() {
+ return self::$event_queue;
+ }
+
+ /**
+ * Record an event in Tracks.
+ *
+ * @param array $properties Properties to send with the event.
+ * @return bool|WP_Error True for success or WP_Error if the event pixel could not be fired.
+ */
+ private static function record_tracks_event( $properties = array() ) {
+ $pixel_url = Pixel_Builder::build_tracks_url( $properties );
+
+ if ( is_wp_error( $pixel_url ) ) {
+ return $pixel_url;
+ }
+
+ return self::record_pixel_url( $pixel_url );
+ }
+
+ /**
+ * Record a ClickHouse event.
+ *
+ * @param array $properties The event properties.
+ * @return bool|WP_Error True for success or WP_Error if the event pixel could not be fired.
+ */
+ private static function record_ch_event( $properties ) {
+ $pixel_url = Pixel_Builder::build_ch_url( $properties );
+
+ if ( is_wp_error( $pixel_url ) ) {
+ return $pixel_url;
+ }
+
+ return self::record_pixel_url( $pixel_url );
+ }
+
+ /**
+ * Record a pixel URL using batching.
+ *
+ * @param string $pixel_url The pixel URL to record.
+ * @return bool|WP_Error True for success or WP_Error if the event pixel could not be fired.
+ */
+ private static function record_pixel_url( $pixel_url ) {
+ if ( empty( $pixel_url ) ) {
+ return new WP_Error( 'invalid_pixel', 'cannot generate tracks pixel for given input', 400 );
+ }
+
+ // Check if batching is supported.
+ $can_batch = ( class_exists( 'WpOrg\Requests\Requests' ) && method_exists( 'WpOrg\Requests\Requests', 'request_multiple' ) )
+ || ( class_exists( 'Requests' ) && method_exists( 'Requests', 'request_multiple' ) );
+
+ if ( $can_batch ) {
+ // Queue the pixel and send on shutdown.
+ self::queue_pixel_for_batch( $pixel_url );
+ } else {
+ // Send immediately as batching is not supported.
+ Pixel_Builder::send_pixel( $pixel_url );
+ }
+
+ return true;
+ }
+
+ /**
+ * Queue a pixel URL for batch sending.
+ *
+ * @param string $pixel The pixel URL to queue.
+ */
+ private static function queue_pixel_for_batch( $pixel ) {
+ self::$pixel_batch_queue[] = $pixel;
+
+ // Register shutdown hook once.
+ if ( ! self::$shutdown_hook_registered ) {
+ add_action( 'shutdown', array( __CLASS__, 'send_batched_pixels' ), 20 );
+ self::$shutdown_hook_registered = true;
+ }
+ }
+
+ /**
+ * Send all queued pixels using batched non-blocking requests.
+ * This runs on the shutdown hook to batch all requests together.
+ *
+ * Uses Pixel_Builder for the actual sending via Requests library.
+ */
+ public static function send_batched_pixels() {
+ if ( empty( self::$pixel_batch_queue ) ) {
+ return;
+ }
+
+ // Delegate to Pixel_Builder for batched sending.
+ Pixel_Builder::send_pixels_batched( self::$pixel_batch_queue );
+
+ // Clear the queue.
+ self::$pixel_batch_queue = array();
+ }
+
+ /**
+ * Get the common properties for the event.
+ *
+ * @return array The common properties.
+ */
+ public static function get_common_properties() {
+ $blog_user_id = self::get_blog_user_id();
+ $server_details = self::get_server_details();
+ $blog_details = self::get_blog_details();
+ $session_details = self::get_session_details();
+
+ $common_properties = array_merge(
+ array(
+ 'session_id' => $session_details['session_id'] ?? null,
+ 'landing_page' => $session_details['landing_page'] ?? null,
+ 'is_engaged' => $session_details['is_engaged'] ?? null,
+ 'ui' => $blog_user_id,
+ 'blog_id' => $blog_details['blog_id'] ?? null,
+ 'store_id' => $blog_details['store_id'] ?? null,
+ 'url' => $blog_details['url'] ?? null,
+ 'woo_version' => $blog_details['wc_version'] ?? null,
+ 'wp_version' => get_bloginfo( 'version' ),
+ 'store_admin' => count( array_intersect( array( 'administrator', 'shop_manager' ), wp_get_current_user()->roles ) ) > 0 ? 1 : 0,
+ 'device' => self::get_device_type(),
+ 'store_currency' => $blog_details['store_currency'] ?? null,
+ 'timezone' => wp_timezone_string(),
+ 'is_guest' => ( $blog_user_id === null || $blog_user_id === 0 ) ? 1 : 0,
+ ),
+ $server_details
+ );
+
+ return is_array( $common_properties ) ? $common_properties : array();
+ }
+
+ /**
+ * Get all properties for the event including filtered and identity properties.
+ *
+ * @param string $event_name Event name.
+ * @param array $event_properties Event specific properties.
+ * @return array
+ */
+ public static function get_properties( $event_name, $event_properties ) {
+ $common_properties = self::get_common_properties();
+
+ /**
+ * Allow defining custom event properties in WooCommerce Analytics.
+ *
+ * @module woocommerce-analytics
+ *
+ * @since 12.5
+ *
+ * @param array $all_props Array of event props to be filtered.
+ */
+ $properties = apply_filters( 'jetpack_woocommerce_analytics_event_props', array_merge( $common_properties, $event_properties ), $event_name );
+
+ $required_properties = $event_name
+ ? array(
+ '_en' => $event_name,
+ '_ts' => Pixel_Builder::build_timestamp(),
+ '_ut' => 'anon',
+ '_ui' => self::get_visitor_id(),
+ )
+ : array();
+
+ $all_properties = array_merge( $properties, $required_properties );
+
+ // Convert array values to a comma-separated string and URL-encode them to ensure compatibility with JavaScript's encodeURIComponent() for pixel URL transmission.
+ foreach ( $all_properties as $key => $value ) {
+ if ( ! is_array( $value ) ) {
+ continue;
+ }
+
+ if ( empty( $value ) ) {
+ $all_properties[ $key ] = '';
+ continue;
+ }
+
+ $is_indexed_array = array_keys( $value ) === range( 0, count( $value ) - 1 );
+ if ( $is_indexed_array ) {
+ $value_string = implode( ',', $value );
+ $all_properties[ $key ] = rawurlencode( $value_string );
+ continue;
+ }
+
+ // Serialize non-indexed arrays to JSON strings.
+ $all_properties[ $key ] = wp_json_encode( $value, JSON_UNESCAPED_SLASHES );
+ }
+
+ return $all_properties;
+ }
+
+ /**
+ * Get the current user id.
+ *
+ * @return int The user ID, or 0 if not logged in.
+ */
+ private static function get_blog_user_id() {
+ // Ensure cookie constants are defined.
+ if ( ! defined( 'LOGGED_IN_COOKIE' ) ) {
+ if ( function_exists( 'wp_cookie_constants' ) ) {
+ wp_cookie_constants();
+ } else {
+ require_once ABSPATH . WPINC . '/default-constants.php';
+ wp_cookie_constants();
+ }
+ }
+
+ if ( function_exists( 'get_current_user_id' ) && get_current_user_id() ) {
+ return get_current_user_id();
+ }
+
+ // Manually validate the logged_in cookie
+ if ( ! function_exists( 'wp_validate_auth_cookie' ) ) {
+ require_once ABSPATH . WPINC . '/pluggable.php';
+ }
+
+ $user_id = wp_validate_auth_cookie( '', 'logged_in' );
+
+ return $user_id ? (int) $user_id : 0;
+ }
+
+ /**
+ * Gather details from the request to the server.
+ *
+ * This method is now standalone and doesn't rely on WC_Tracks parent class.
+ *
+ * @return array Server details.
+ */
+ public static function get_server_details() {
+ // Sanitization helper - use wc_clean if available, otherwise sanitize_text_field.
+ $clean = function_exists( 'wc_clean' ) ? 'wc_clean' : 'sanitize_text_field';
+
+ $data = array(
+ '_via_ua' => isset( $_SERVER['HTTP_USER_AGENT'] ) ? $clean( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '', // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ '_via_ip' => self::get_user_ip_address(),
+ '_lg' => isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ? substr( sanitize_text_field( wp_unslash( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ), 0, 5 ) : '',
+ '_dr' => isset( $_SERVER['HTTP_REFERER'] ) ? $clean( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : '', // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ );
+
+ // Build the document location URL.
+ $uri = isset( $_SERVER['REQUEST_URI'] ) ? $clean( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ $host = isset( $_SERVER['HTTP_HOST'] ) ? $clean( wp_unslash( $_SERVER['HTTP_HOST'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ $data['_dl'] = isset( $_SERVER['REQUEST_SCHEME'] ) ? $clean( wp_unslash( $_SERVER['REQUEST_SCHEME'] ) ) . '://' . $host . $uri : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+
+ // Add _via_ref (referrer) for backward compatibility.
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ $data['_via_ref'] = isset( $_SERVER['HTTP_REFERER'] ) ? $clean( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : '';
+
+ return $data;
+ }
+
+ /**
+ * Get the blog details.
+ *
+ * This method is now standalone and doesn't rely on WC_Tracks parent class.
+ * It still works with WooCommerce when available for additional details.
+ *
+ * @return array The blog details.
+ */
+ public static function get_blog_details() {
+ // Try to get cached blog details.
+ $blog_details = get_transient( 'wc_analytics_blog_details' );
+
+ if ( false !== $blog_details ) {
+ return $blog_details;
+ }
+
+ // Get Jetpack blog ID if available.
+ $jetpack_blog_id = null;
+ if ( class_exists( 'Jetpack_Options' ) ) {
+ $jetpack_blog_id = \Jetpack_Options::get_option( 'id' );
+ }
+
+ // Get WooCommerce version if available.
+ // Check WC_VERSION constant first (most reliable), then fall back to option.
+ if ( defined( 'WC_VERSION' ) ) {
+ $wc_version = WC_VERSION;
+ } else {
+ $wc_version = get_option( 'woocommerce_version', '' );
+ }
+
+ // Get store ID from known option name.
+ $store_id = get_option( 'woocommerce_store_id', null );
+
+ // Get store currency - use WC function if available, otherwise fall back to option.
+ $store_currency = function_exists( 'get_woocommerce_currency' )
+ ? get_woocommerce_currency()
+ : get_option( 'woocommerce_currency', 'USD' );
+
+ $blog_details = array(
+ 'url' => home_url(),
+ 'blog_lang' => get_locale(),
+ 'blog_id' => $jetpack_blog_id,
+ 'store_id' => $store_id,
+ 'wc_version' => $wc_version,
+ 'store_currency' => $store_currency,
+ );
+
+ // Cache for 1 day.
+ set_transient( 'wc_analytics_blog_details', $blog_details, DAY_IN_SECONDS );
+
+ return $blog_details;
+ }
+
+ /**
+ * Get the session details as an array
+ *
+ * @return array
+ */
+ private static function get_session_details() {
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- JSON is decoded and validated below. We don't need to sanitize the cookie value because we're not outputting it but decoding it as JSON. Sanitization might break the JSON.
+ $raw_cookie = isset( $_COOKIE['woocommerceanalytics_session'] ) ? wp_unslash( $_COOKIE['woocommerceanalytics_session'] ) : '';
+
+ if ( ! $raw_cookie ) {
+ return array();
+ }
+
+ $decoded = json_decode( rawurldecode( $raw_cookie ), true );
+ return is_array( $decoded ) ? $decoded : array();
+ }
+
+ /**
+ * Get the visitor id from the cookie or IP address (if proxy tracking is enabled).
+ *
+ * @return string|null
+ */
+ private static function get_visitor_id() {
+ // Return cached result if available.
+ if ( null !== self::$cached_visitor_id ) {
+ return self::$cached_visitor_id;
+ }
+
+ // Prefer tk_ai cookie if present.
+ if ( ! empty( $_COOKIE['tk_ai'] ) ) {
+ self::$cached_visitor_id = sanitize_text_field( wp_unslash( $_COOKIE['tk_ai'] ) );
+ return self::$cached_visitor_id;
+ }
+
+ // Fallback to IP-based visitor ID if proxy tracking is enabled.
+ if ( Features::is_proxy_tracking_enabled() ) {
+ self::$cached_visitor_id = self::get_ip_based_visitor_id();
+ return self::$cached_visitor_id;
+ }
+
+ // Generate a new anonId and try to save it in the browser's cookies.
+ // Note that base64-encoding an 18 character string generates a 24-character anon id.
+ $binary = '';
+ for ( $i = 0; $i < 18; ++$i ) {
+ $binary .= chr( wp_rand( 0, 255 ) );
+ }
+
+ self::$cached_visitor_id = base64_encode( $binary ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+
+
+ if ( ! headers_sent()
+ && ! ( defined( 'REST_REQUEST' ) && REST_REQUEST )
+ && ! ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
+ ) {
+ setcookie(
+ 'tk_ai',
+ self::$cached_visitor_id,
+ array(
+ 'expires' => time() + ( 365 * 24 * 60 * 60 ), // 1 year
+ 'path' => '/',
+ 'domain' => COOKIE_DOMAIN,
+ 'secure' => is_ssl(),
+ 'httponly' => true,
+ 'samesite' => 'Strict',
+ )
+ );
+ }
+ return self::$cached_visitor_id;
+ }
+
+ /**
+ * Get the user's IP address.
+ *
+ * @return string The user's IP address. An empty string if no valid IP address is found.
+ */
+ private static function get_user_ip_address() {
+ // Return cached IP if available
+ if ( null !== self::$cached_ip ) {
+ return self::$cached_ip;
+ }
+
+ $ip_headers = array(
+ 'HTTP_CF_CONNECTING_IP', // Cloudflare specific header.
+ 'HTTP_X_FORWARDED_FOR',
+ 'REMOTE_ADDR',
+ 'HTTP_CLIENT_IP',
+ );
+
+ foreach ( $ip_headers as $header ) {
+ if ( isset( $_SERVER[ $header ] ) ) {
+ $ip_list = explode( ',', wp_unslash( $_SERVER[ $header ] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ foreach ( $ip_list as $ip_candidate ) {
+ $ip_candidate = trim( $ip_candidate );
+ if ( filter_var(
+ $ip_candidate,
+ FILTER_VALIDATE_IP,
+ array( FILTER_FLAG_NO_RES_RANGE, FILTER_FLAG_IPV6 )
+ ) ) {
+ // Cache the resolved IP
+ self::$cached_ip = $ip_candidate;
+ return self::$cached_ip;
+ }
+ }
+ }
+ }
+
+ // Cache empty result
+ self::$cached_ip = '';
+ return self::$cached_ip;
+ }
+
+ /**
+ * Get IP-based visitor ID for proxy tracking mode.
+ *
+ * @return string|null
+ */
+ private static function get_ip_based_visitor_id() {
+ $ip = self::get_user_ip_address();
+ if ( empty( $ip ) ) {
+ return null;
+ }
+
+ $salt = self::get_daily_salt();
+ $url_parts = wp_parse_url( home_url() );
+ $domain = $url_parts['host'] ?? '';
+ $user_agent = sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ?? '' ) );
+
+ // Create hash from: daily_salt + domain + ip + user_agent
+ $hash_input = $salt . $domain . $ip . $user_agent;
+
+ return substr( hash( 'sha256', $hash_input ), 0, 16 );
+ }
+
+ /**
+ * Get or generate daily salt for visitor ID hashing.
+ * Creates a new salt value each day (UTC) for privacy protection.
+ *
+ * @return string The daily salt.
+ */
+ private static function get_daily_salt() {
+ $today = gmdate( 'Y-m-d' ); // UTC date
+
+ $salt_data = get_option( self::DAILY_SALT_OPTION );
+
+ // Check if salt exists and is still valid for today
+ if (
+ is_array( $salt_data )
+ && isset( $salt_data['date'] )
+ && isset( $salt_data['salt'] )
+ && $salt_data['date'] === $today
+ ) {
+ return $salt_data['salt'];
+ }
+
+ // Generate new salt for today
+ $new_salt = wp_generate_password( 32, false );
+
+ // Store salt with date (no expiration time needed)
+ $salt_data = array(
+ 'date' => $today,
+ 'salt' => $new_salt,
+ );
+
+ update_option( self::DAILY_SALT_OPTION, $salt_data );
+ return $new_salt;
+ }
+
+ /**
+ * Get the device type for the current request.
+ *
+ * Uses Jetpack Device Detection to distinguish between mobile phones, tablets, and desktop devices.
+ *
+ * @return string 'mobile' for phones, 'tablet' for tablets, 'desktop' otherwise.
+ */
+ private static function get_device_type() {
+ if ( Device_Detection::is_phone() ) {
+ return 'mobile';
+ }
+
+ if ( Device_Detection::is_tablet() ) {
+ return 'tablet';
+ }
+
+ return 'desktop';
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-woo-analytics-trait.php b/packages/php/woocommerce-analytics/src/class-woo-analytics-trait.php
new file mode 100644
index 00000000000..dec98fd80dc
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-woo-analytics-trait.php
@@ -0,0 +1,667 @@
+<?php
+/**
+ * Woo_Analytics_Trait
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use Automattic\Block_Scanner;
+use Automattic\Jetpack\Connection\Manager as Jetpack_Connection;
+use WC_Order_Item;
+use WC_Order_Item_Product;
+use WC_Payment_Gateway;
+use WC_Product;
+
+/**
+ * Common functionality for WooCommerce Analytics classes.
+ */
+trait Woo_Analytics_Trait {
+ /**
+ * Saves whether the cart/checkout templates are in use based on WC Blocks version.
+ *
+ * @var bool true if the templates are in use.
+ */
+ protected $cart_checkout_templates_in_use;
+
+ /**
+ * The content of the cart page or where the cart page is ultimately derived from if using a template.
+ *
+ * @var string
+ */
+ protected $cart_content_source = '';
+
+ /**
+ * The content of the checkout page or where the cart page is ultimately derived from if using a template.
+ *
+ * @var string
+ */
+ protected $checkout_content_source = '';
+
+ /**
+ * Tracks any additional blocks loaded on the Cart page.
+ *
+ * @var array
+ */
+ protected $additional_blocks_on_cart_page;
+
+ /**
+ * Tracks any additional blocks loaded on the Checkout page.
+ *
+ * @var array
+ */
+ protected $additional_blocks_on_checkout_page;
+
+ /**
+ * Locks Add to Cart Events Tracking in the current request avoiding duplications.
+ * i.e. If update_cart and add_to_cart actions happens in the same request.
+ *
+ * @var bool If true. Cart events are locked for the current request.
+ */
+ protected $lock_add_to_cart_events = false;
+
+ /**
+ * Format Cart Items or Order Items to an array
+ *
+ * @param array|WC_Order_Item[] $items Cart Items or Order Items.
+ */
+ protected function format_items_to_json( $items ) {
+ $products = array();
+
+ foreach ( $items as $item ) {
+ if ( $item instanceof WC_Order_Item_Product ) {
+ $product = wc_get_product( $item->get_product_id() );
+ } else {
+ $product = $item['data'];
+ }
+
+ if ( ! $product || ! $product instanceof WC_Product ) {
+ continue;
+ }
+
+ $data = $this->get_product_details( $product );
+
+ if ( $item instanceof WC_Order_Item_Product ) {
+ $data['pq'] = $item->get_quantity();
+ } else {
+ $data['pq'] = $item['quantity'];
+ }
+ $products[] = $data;
+ }
+
+ return wp_json_encode( $products, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG );
+ }
+
+ /**
+ * Get Cart/Checkout page view shared data
+ */
+ protected function get_cart_checkout_shared_data() {
+ $cart = WC()->cart;
+
+ $guest_checkout = ucfirst( get_option( 'woocommerce_enable_guest_checkout', 'No' ) );
+ $create_account = ucfirst( get_option( 'woocommerce_enable_signup_and_login_from_checkout', 'No' ) );
+ $delayed_account_creation = ucfirst( get_option( 'woocommerce_enable_delayed_account_creation', 'Yes' ) );
+
+ $coupons = $cart->get_coupons();
+ $coupon_used = 0;
+ if ( is_countable( $coupons ) ) {
+ $coupon_used = count( $coupons ) ? 1 : 0;
+ }
+
+ $enabled_payment_options = array_filter(
+ WC()->payment_gateways->get_available_payment_gateways(),
+ function ( $payment_gateway ) {
+ if ( ! $payment_gateway instanceof WC_Payment_Gateway ) {
+ return false;
+ }
+
+ return $payment_gateway->is_available();
+ }
+ );
+
+ $enabled_payment_options = array_keys( $enabled_payment_options );
+ $shared_data = array(
+ 'products' => $this->format_items_to_json( $cart->get_cart() ),
+ 'create_account' => $create_account,
+ 'guest_checkout' => $guest_checkout,
+ 'delayed_account_creation' => $delayed_account_creation,
+ 'express_checkout' => 'null', // TODO: not solved yet.
+ 'shipping_options_count' => 'null', // TODO: not solved yet.
+ 'coupon_used' => $coupon_used,
+ 'payment_options' => $enabled_payment_options,
+ );
+
+ return $shared_data;
+ }
+
+ /**
+ * Gets the content of the cart/checkout page or where the cart/checkout page is ultimately derived from if using a template.
+ * This method sets the class properties $checkout_content_source and $cart_content_source.
+ *
+ * @return void Does not return, but sets class properties.
+ */
+ public function find_cart_checkout_content_sources() {
+
+ /**
+ * The steps we take to find the content are:
+ * 1. Check the transient, if that contains content and is not expired, return that.
+ * 2. Check if the cart/checkout templates are in use. If *not in use*, get the content from the pages and
+ * return it, there is no need to dig further.
+ * 3. If the templates *are* in use, check if the `page-content-wrapper` block is in use. If so, get the content
+ * from the pages (same as step 2) and return it.
+ * 4. If the templates are in use but `page-content-wrapper` is not, then get the content directly from the
+ * template and return it.
+ * 5. At the end of each step, assign the found content to the relevant class properties and save them in a
+ * transient with a 1-day lifespan. This will prevent us from having to do this work on every page load.
+ */
+
+ $cart_checkout_content_cache_transient_name = 'jetpack_woocommerce_analytics_cart_checkout_content_sources';
+
+ $transient_value = get_transient( $cart_checkout_content_cache_transient_name );
+
+ if (
+ false !== $transient_value &&
+ ! empty( $transient_value['checkout_content_source'] ) &&
+ ! empty( $transient_value['cart_content_source'] )
+ ) {
+ $this->cart_content_source = $transient_value['cart_content_source'];
+ $this->checkout_content_source = $transient_value['checkout_content_source'];
+ return;
+ }
+
+ $this->cart_checkout_templates_in_use = wp_is_block_theme()
+ && class_exists( '\Automattic\WooCommerce\Blocks\Package' )
+ // @phan-suppress-current-line UnusedPluginSuppression @phan-suppress-next-line PhanUndeclaredClassMethod -- If the class exists (as of WooCommerce 8.5.0), the method exists. See also: https://github.com/phan/phan/issues/1204
+ && version_compare( \Automattic\WooCommerce\Blocks\Package::get_version(), '10.6.0', '>=' );
+
+ // Cart/Checkout *pages* are in use if the templates are not in use. Return their content and do nothing else.
+ if ( ! $this->cart_checkout_templates_in_use ) {
+ $cart_page = get_post( wc_get_page_id( 'cart' ) );
+ $checkout_page = get_post( wc_get_page_id( 'checkout' ) );
+
+ if ( $cart_page && isset( $cart_page->post_content ) ) {
+ $this->cart_content_source = $cart_page->post_content;
+ }
+
+ if ( $checkout_page && isset( $checkout_page->post_content ) ) {
+ $this->checkout_content_source = $checkout_page->post_content;
+ }
+
+ set_transient(
+ $cart_checkout_content_cache_transient_name,
+ array(
+ 'cart_content_source' => $this->cart_content_source,
+ 'checkout_content_source' => $this->checkout_content_source,
+ ),
+ DAY_IN_SECONDS
+ );
+ return;
+ }
+
+ // We are in a Block theme - so we need to find out if the templates are being used.
+ if ( function_exists( 'get_block_template' ) ) {
+ $checkout_template = get_block_template( 'woocommerce/woocommerce//page-checkout' );
+ $cart_template = get_block_template( 'woocommerce/woocommerce//page-cart' );
+
+ if ( ! $checkout_template ) {
+ $checkout_template = get_block_template( 'woocommerce/woocommerce//checkout' );
+ }
+
+ if ( ! $cart_template ) {
+ $cart_template = get_block_template( 'woocommerce/woocommerce//cart' );
+ }
+ }
+
+ if ( ! empty( $checkout_template->content ) ) {
+ // Checkout template is in use, but we need to see if the page-content-wrapper is in use, or if the template is being used directly.
+ $this->checkout_content_source = $checkout_template->content;
+ $is_using_page_content = str_contains( $checkout_template->content, '<!-- wp:woocommerce/page-content-wrapper {"page":"checkout"}' );
+
+ if ( $is_using_page_content ) {
+ // The page-content-wrapper is in use, so we need to get the page content.
+ $checkout_page = get_post( wc_get_page_id( 'checkout' ) );
+
+ if ( $checkout_page && isset( $checkout_page->post_content ) ) {
+ $this->checkout_content_source = $checkout_page->post_content;
+ }
+ }
+ }
+
+ if ( ! empty( $cart_template->content ) ) {
+ // Cart template is in use, but we need to see if the page-content-wrapper is in use, or if the template is being used directly.
+ $this->cart_content_source = $cart_template->content;
+ $is_using_page_content = str_contains( $cart_template->content, '<!-- wp:woocommerce/page-content-wrapper {"page":"cart"}' );
+
+ if ( $is_using_page_content ) {
+ // The page-content-wrapper is in use, so we need to get the page content.
+ $cart_page = get_post( wc_get_page_id( 'cart' ) );
+
+ if ( $cart_page && isset( $cart_page->post_content ) ) {
+ $this->cart_content_source = $cart_page->post_content;
+ }
+ }
+ }
+
+ set_transient(
+ $cart_checkout_content_cache_transient_name,
+ array(
+ 'cart_content_source' => $this->cart_content_source,
+ 'checkout_content_source' => $this->checkout_content_source,
+ ),
+ DAY_IN_SECONDS
+ );
+ }
+
+ /**
+ * Default event properties which should be included with all events.
+ *
+ * @return array Array of standard event props.
+ */
+ public function get_common_properties() {
+ $common_properties = WC_Analytics_Tracking::get_common_properties();
+ /**
+ * Allow defining custom event properties in WooCommerce Analytics.
+ *
+ * @module woocommerce-analytics
+ *
+ * @since 12.5
+ *
+ * @param array $properties Array of event props to be filtered.
+ */
+ $properties = apply_filters(
+ 'jetpack_woocommerce_analytics_event_props',
+ $common_properties
+ );
+
+ return $properties;
+ }
+
+ /**
+ * Enqueue an event with optional product and custom properties.
+ *
+ * @param string $event_name The name of the event to record.
+ * @param array $properties Optional array of (key => value) event properties.
+ * @param integer|null $product_id The id of the product relating to the event.
+ *
+ * @return void
+ */
+ public function enqueue_event( $event_name, $properties = array(), $product_id = null ) {
+ // Only set product details if we have a product id.
+ if ( $product_id ) {
+ $product = wc_get_product( $product_id );
+ if ( ! $product instanceof WC_Product ) {
+ return;
+ }
+ $product_details = $this->get_product_details( $product );
+ }
+
+ $event_properties = array_merge( $product_details ?? array(), $properties );
+
+ WC_Analytics_Tracking::add_event_to_queue( $event_name, $event_properties );
+ }
+
+ /**
+ * Gather relevant product information
+ *
+ * @param \WC_Product $product product.
+ * @return array
+ */
+ public function get_product_details( $product ) {
+ return array(
+ 'pi' => $product->get_id(),
+ 'pn' => $product->get_title(),
+ 'pc' => $this->get_product_categories_concatenated( $product ),
+ 'pp' => $product->get_price(),
+ 'pt' => $product->get_type(),
+ );
+ }
+
+ /**
+ * Gets product categories or varation attributes as a formatted concatenated string
+ *
+ * @param object $product WC_Product.
+ * @return string
+ */
+ public function get_product_categories_concatenated( $product ) {
+
+ if ( ! $product instanceof WC_Product ) {
+ return '';
+ }
+
+ $variation_data = $product->is_type( 'variation' ) ? wc_get_product_variation_attributes( $product->get_id() ) : '';
+ if ( is_array( $variation_data ) && ! empty( $variation_data ) ) {
+ $line = wc_get_formatted_variation( $variation_data, true );
+ } else {
+ $out = array();
+ $categories = get_the_terms( $product->get_id(), 'product_cat' );
+ if ( is_array( $categories ) ) {
+ foreach ( $categories as $category ) {
+ $out[] = $category->name;
+ }
+ }
+ $line = implode( '/', $out );
+ }
+ return $line;
+ }
+
+ /**
+ * Get the current user id
+ *
+ * @return string|null
+ */
+ public function get_user_id() {
+ if ( is_user_logged_in() ) {
+ $blogid = Jetpack_Connection::get_site_id();
+ $userid = get_current_user_id();
+ return $blogid . ':' . $userid;
+ }
+ return null;
+ }
+
+ /**
+ * Gets the IDs of additional blocks on the Cart/Checkout pages or templates.
+ *
+ * @param string $cart_or_checkout Whether to get blocks on the cart or checkout page.
+ * @return array All inner blocks on the page.
+ */
+ public function get_additional_blocks_on_page( $cart_or_checkout = 'cart' ) {
+ $additional_blocks_on_page_transient_name = 'jetpack_woocommerce_analytics_additional_blocks_on_' . $cart_or_checkout . '_page';
+ $additional_blocks_on_page = get_transient( $additional_blocks_on_page_transient_name );
+
+ if ( false !== $additional_blocks_on_page ) {
+ return $additional_blocks_on_page;
+ }
+
+ $content = $this->cart_content_source;
+
+ if ( 'checkout' === $cart_or_checkout ) {
+ $content = $this->checkout_content_source;
+ }
+
+ $blocks_to_ignore = array(
+ 'woocommerce/classic-shortcode',
+ 'core/shortcode',
+ 'checkout' === $cart_or_checkout ? 'woocommerce/checkout' : 'woocommerce/cart',
+ );
+
+ $scanner = Block_Scanner::create( $content );
+ if ( ! $scanner ) {
+ return array();
+ }
+
+ $found_blocks = array();
+ $ignored_block_depth = 0; // Count how many ignored blocks we're nested inside.
+
+ while ( $scanner->next_delimiter() ) {
+ $type = $scanner->get_delimiter_type();
+ $block_type = $scanner->get_block_type();
+ $is_ignored_block = in_array( $block_type, $blocks_to_ignore, true );
+
+ switch ( $type ) {
+ case Block_Scanner::OPENER:
+ // If this is an ignored block, increase our nesting depth.
+ if ( $is_ignored_block ) {
+ ++$ignored_block_depth;
+ }
+
+ // Only collect blocks that are not inside any ignored block.
+ if ( 0 === $ignored_block_depth ) {
+ $found_blocks[] = $block_type;
+ }
+ break;
+
+ case Block_Scanner::CLOSER:
+ // If this closes an ignored block, decrease our nesting depth.
+ if ( $is_ignored_block && $ignored_block_depth > 0 ) {
+ --$ignored_block_depth;
+ }
+ break;
+
+ case Block_Scanner::VOID:
+ // Void blocks: only collect if we're not inside an ignored block and this isn't an ignored block itself.
+ if ( 0 === $ignored_block_depth && ! $is_ignored_block ) {
+ $found_blocks[] = $block_type;
+ }
+ break;
+ }
+ }
+
+ set_transient( $additional_blocks_on_page_transient_name, $found_blocks, DAY_IN_SECONDS );
+ return $found_blocks;
+ }
+
+ /**
+ * Gets an array containing the block or shortcode use properties for the Cart page.
+ *
+ * @return array An array containing the block or shortcode use properties for the Cart page.
+ */
+ public function get_cart_page_block_usage() {
+ $new_info = array();
+
+ $content = $this->cart_content_source;
+ $block_presence = str_contains( $content, '<!-- wp:woocommerce/cart' );
+ $shortcode_presence = str_contains( $content, '[woocommerce_cart]' );
+ $classic_shortcode_presence = str_contains( $content, '<!-- wp:woocommerce/classic-shortcode {"shortcode":"cart"}' );
+
+ $new_info['cart_page_contains_cart_block'] = $block_presence ? '1' : '0';
+ $new_info['cart_page_contains_cart_shortcode'] = $shortcode_presence || $classic_shortcode_presence ? '1' : '0';
+ return $new_info;
+ }
+
+ /**
+ * Gets an array containing the block or shortcode use properties for the Checkout page.
+ *
+ * @return array An array containing the block or shortcode use properties for the Checkout page.
+ */
+ public function get_checkout_page_block_usage() {
+ $new_info = array();
+
+ $content = $this->checkout_content_source;
+ $block_presence = str_contains( $content, '<!-- wp:woocommerce/checkout' );
+ $shortcode_presence = str_contains( $content, '[woocommerce_checkout]' );
+ $classic_shortcode_presence = str_contains( $content, '<!-- wp:woocommerce/classic-shortcode {"shortcode":"checkout"}' );
+
+ $new_info['checkout_page_contains_checkout_block'] = $block_presence ? '1' : '0';
+ $new_info['checkout_page_contains_checkout_shortcode'] = $shortcode_presence || $classic_shortcode_presence ? '1' : '0';
+ return $new_info;
+ }
+
+ /**
+ * Get info about the cart & checkout pages, in particular
+ * whether the store is using shortcodes or Gutenberg blocks.
+ * This info is cached in a transient.
+ *
+ * Note: similar code is in a WooCommerce core PR:
+ * https://github.com/woocommerce/woocommerce/pull/25932
+ *
+ * @return array
+ */
+ public function get_cart_checkout_info() {
+ $info = array_merge(
+ $this->get_cart_page_block_usage(),
+ $this->get_checkout_page_block_usage()
+ );
+ return $info;
+ }
+
+ /**
+ * Search a specific post for text content.
+ *
+ * Note: similar code is in a WooCommerce core PR:
+ * https://github.com/woocommerce/woocommerce/pull/25932
+ *
+ * @param integer $post_id The id of the post to search.
+ * @param string $text The text to search for.
+ * @return integer 1 if post contains $text (otherwise 0).
+ */
+ public function post_contains_text( $post_id, $text ) {
+ global $wpdb;
+
+ // Search for the text anywhere in the post.
+ $wildcarded = "%{$text}%";
+
+ // No better way to search post content without having filters expanding blocks.
+ // This is already cached up in the parent function.
+ $result = $wpdb->get_var( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching
+ $wpdb->prepare(
+ "
+ SELECT COUNT( * ) FROM {$wpdb->prefix}posts
+ WHERE ID=%d
+ AND {$wpdb->prefix}posts.post_content LIKE %s
+ ",
+ array( $post_id, $wildcarded )
+ )
+ );
+
+ return ( '0' !== $result ) ? 1 : 0;
+ }
+
+ /**
+ * Get the cart total
+ *
+ * @return float
+ */
+ public function get_cart_total() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_total( 'tracking' );
+ }
+
+ /**
+ * Get the cart subtotal
+ *
+ * @return float
+ */
+ public function get_cart_subtotal() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_subtotal();
+ }
+
+ /**
+ * Get the cart shipping total
+ *
+ * @return float
+ */
+ public function get_cart_shipping_total() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_shipping_total();
+ }
+
+ /**
+ * Get the cart taxes
+ *
+ * @return float
+ */
+ public function get_cart_taxes() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_taxes_total();
+ }
+
+ /**
+ * Get the cart discount total
+ *
+ * @return float
+ */
+ public function get_total_discounts() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_discount_total();
+ }
+
+ /**
+ * Get number of items in the cart
+ *
+ * @return int
+ */
+ public function get_cart_items_count() {
+ $cart = WC()->cart;
+ if ( $cart === null ) {
+ return 0;
+ }
+ return $cart->get_cart_contents_count();
+ }
+
+ /**
+ * Retrieves the breadcrumb trail as an array of page titles.
+ *
+ * This function attempts to generate a hierarchical breadcrumb trail for the current page or post.
+ * - For the front page, it returns "Home".
+ * - For WooCommerce product, category, or tag pages, it uses the WooCommerce breadcrumb generator and prepends the shop page title if needed.
+ * - For regular pages, it builds the breadcrumb from the page's ancestors, ordered from top-level to current.
+ * - For all other cases, it returns the current page's title.
+ *
+ * @return array The breadcrumb trail as an array of titles.
+ */
+ private function get_breadcrumb_titles() {
+ if ( is_front_page() ) {
+ return array( __( 'Home', 'woocommerce-analytics' ) );
+ }
+
+ if ( class_exists( '\WC_Breadcrumb' ) ) {
+ $breadcrumb = new \WC_Breadcrumb();
+ $crumbs = $breadcrumb->generate();
+ $titles = wp_list_pluck( $crumbs, 0 );
+
+ if ( is_product() || is_product_category() || is_product_tag() ) {
+ $titles = $this->prepend_shop_page_title( $titles );
+ }
+
+ if ( ! empty( $titles ) ) {
+ return $titles;
+ }
+ }
+
+ // If it's a page, get the hierarchical title.
+ if ( is_page() ) {
+ $titles = array();
+ $page_id = get_queried_object_id();
+ $ancestors = get_post_ancestors( $page_id );
+ // Reverse the ancestors to get the top-level first.
+ $ancestors = array_reverse( $ancestors );
+
+ foreach ( $ancestors as $ancestor ) {
+ $titles[] = get_the_title( $ancestor );
+ }
+ $titles[] = get_the_title( $page_id );
+
+ return $titles;
+ }
+
+ return array( get_the_title() );
+ }
+
+ /**
+ * Prepend the shop page title if it's not already present.
+ *
+ * @param array $titles The titles to prepend the shop page title to.
+ * @return array The titles with the shop page title prepended.
+ */
+ private function prepend_shop_page_title( array $titles ) {
+ $shop_page_id = wc_get_page_id( 'shop' );
+ if ( ! $shop_page_id ) {
+ return $titles;
+ }
+
+ $shop_page_title = get_the_title( $shop_page_id );
+
+ if ( ! $shop_page_title || ( ! empty( $titles ) && $titles[0] === $shop_page_title ) ) {
+ return $titles;
+ }
+
+ return array_merge( array( $shop_page_title ), $titles );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/class-woocommerce-analytics.php b/packages/php/woocommerce-analytics/src/class-woocommerce-analytics.php
new file mode 100644
index 00000000000..b105daa8d87
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/class-woocommerce-analytics.php
@@ -0,0 +1,388 @@
+<?php
+/**
+ * Main class for the WooCommerce Analytics package.
+ * Originally ported from the Jetpack_Google_Analytics code.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Connection\Manager as Jetpack_Connection;
+use Automattic\Woocommerce_Analytics\My_Account;
+use Automattic\Woocommerce_Analytics\Universal;
+use Automattic\Woocommerce_Analytics\WC_Analytics_Tracking_Proxy;
+use Composer\InstalledVersions;
+
+/**
+ * Instantiate WooCommerce Analytics
+ */
+class Woocommerce_Analytics {
+ /**
+ * Package version.
+ */
+ const PACKAGE_VERSION = '0.16.3';
+
+ /**
+ * Proxy speed module version option.
+ *
+ * @var string
+ */
+ const PROXY_SPEED_MODULE_VERSION_OPTION = 'woocommerce_analytics_proxy_speed_module_version';
+
+ /**
+ * Proxy speed module version check transient.
+ *
+ * @var string
+ */
+ const PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT = 'woocommerce_analytics_proxy_speed_module_version_check';
+
+ /**
+ * Initializer.
+ * Used to configure the WooCommerce Analytics package.
+ *
+ * @return void
+ */
+ public static function init() {
+ if ( ! self::should_track_store() || did_action( 'woocommerce_analytics_init' ) ) {
+ return;
+ }
+
+ // loading _wca.
+ add_action( 'wp_head', array( __CLASS__, 'wp_head_top' ), 1 );
+
+ // loading s.js.
+ add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_tracking_script' ) );
+
+ // loading client-side analytics script.
+ add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_client_script' ) );
+
+ // Initialize general store tracking actions.
+ add_action( 'init', array( new Universal(), 'init_hooks' ) );
+ add_action( 'init', array( new My_Account(), 'init_hooks' ) );
+
+ // Initialize REST API endpoints.
+ add_action( 'rest_api_init', array( __CLASS__, 'register_rest_routes' ) );
+
+ /**
+ * Fires after the WooCommerce Analytics package is initialized
+ *
+ * @since 0.1.5
+ */
+ do_action( 'woocommerce_analytics_init' );
+ }
+
+ /**
+ * WooCommerce Analytics is only available to Jetpack connected WooCommerce stores
+ * with WooCommerce version 3.0 or higher
+ *
+ * @return bool
+ */
+ public static function should_track_store() {
+ // Ensure this is available, even with mu-plugins.
+ if ( ! function_exists( 'is_plugin_active' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
+ }
+
+ /**
+ * Make sure WooCommerce is installed and active
+ *
+ * This action is documented in https://docs.woocommerce.com/document/create-a-plugin
+ */
+ if ( ! is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
+ return false;
+ }
+ // Ensure the WooCommerce class exists and is a valid version.
+ $minimum_woocommerce_active = class_exists( 'WooCommerce' ) && version_compare( \WC_VERSION, '3.0', '>=' );
+ if ( ! $minimum_woocommerce_active ) {
+ return false;
+ }
+
+ // Ensure the WC Tracks classes exist.
+ if ( ! class_exists( 'WC_Tracks' ) ) {
+ if ( ! defined( 'WC_ABSPATH' ) || ! file_exists( WC_ABSPATH . 'includes/tracks/class-wc-tracks.php' ) ) {
+ return false;
+ }
+
+ include_once WC_ABSPATH . 'includes/tracks/class-wc-tracks.php';
+ include_once WC_ABSPATH . 'includes/tracks/class-wc-tracks-event.php';
+ include_once WC_ABSPATH . 'includes/tracks/class-wc-tracks-client.php';
+ }
+
+ add_action( 'admin_init', array( __CLASS__, 'maybe_update_proxy_speed_module' ) );
+
+ // Tracking only Site pages.
+ if ( is_admin() || wp_doing_ajax() || wp_is_xml_request() || is_login() || is_feed() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
+ return false;
+ }
+
+ // Make sure the site is connected to WordPress.com.
+ if ( ! ( new Jetpack_Connection() )->is_connected() ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Make _wca available to queue events
+ */
+ public static function wp_head_top() {
+ if ( is_cart() || is_checkout() || is_checkout_pay_page() || is_order_received_page() || is_add_payment_method_page() ) {
+ echo '<script>window._wca_prevent_referrer = true;</script>' . "\r\n";
+ }
+ echo '<script>window._wca = window._wca || [];</script>' . "\r\n";
+ }
+
+ /**
+ * Place script to call s.js, Store Analytics.
+ */
+ public static function enqueue_tracking_script() {
+ $url = sprintf(
+ 'https://stats.wp.com/s-%d.js',
+ gmdate( 'YW' )
+ );
+
+ wp_enqueue_script(
+ 'woocommerce-analytics',
+ $url,
+ array(),
+ null, // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion -- The version is set in the URL.
+ array(
+ 'in_footer' => false,
+ 'strategy' => 'defer',
+ )
+ );
+ }
+
+ /**
+ * Enqueue client-side analytics script.
+ */
+ public static function enqueue_client_script() {
+ Assets::register_script(
+ 'woocommerce-analytics-client',
+ '../build/woocommerce-analytics-client.js',
+ __FILE__,
+ array(
+ 'in_footer' => true,
+ 'strategy' => 'defer',
+ 'enqueue' => true,
+ )
+ );
+ }
+
+ /**
+ * Register REST API routes.
+ */
+ public static function register_rest_routes() {
+ $controller = new WC_Analytics_Tracking_Proxy();
+ $controller->register_routes();
+ }
+
+ /**
+ * Maybe update proxy speed module.
+ */
+ public static function maybe_update_proxy_speed_module() {
+ // Skip if we've already checked recently.
+ if ( get_transient( self::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT ) ) {
+ return;
+ }
+
+ $version = get_option( self::PROXY_SPEED_MODULE_VERSION_OPTION, false );
+
+ if ( \Automattic\Woocommerce_Analytics\Features::is_proxy_speed_module_enabled() ) {
+ if ( $version !== self::PACKAGE_VERSION ) {
+ self::maybe_add_proxy_speed_module();
+ }
+ } elseif ( $version !== false ) {
+ self::maybe_remove_proxy_speed_module();
+ }
+
+ // Set the transient after the update attempt to prevent checking on every admin_init.
+ // If the update failed, it will be retried after the transient expires (1 day).
+ set_transient( self::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT, 1, DAY_IN_SECONDS );
+ }
+
+ /**
+ * Maybe add proxy speed module.
+ */
+ public static function maybe_add_proxy_speed_module() {
+ if ( ! \Automattic\Woocommerce_Analytics\Features::is_proxy_speed_module_enabled() ) {
+ return;
+ }
+
+ if ( ! self::init_filesystem() ) {
+ return;
+ }
+
+ global $wp_filesystem;
+
+ // Create the mu-plugin directory if it doesn't exist.
+ if ( ! is_dir( WPMU_PLUGIN_DIR ) ) {
+ wp_mkdir_p( WPMU_PLUGIN_DIR );
+ }
+
+ // If the mu-plugin directory doesn't exist, we can't copy the files.
+ if ( ! is_dir( WPMU_PLUGIN_DIR ) ) {
+ return;
+ }
+
+ // Check if the mu-plugin directory is writable.
+ if ( ! $wp_filesystem->is_writable( WPMU_PLUGIN_DIR ) ) {
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->debug( 'WooCommerce Analytics proxy speed module not installed: mu-plugins directory is not writable.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ return;
+ }
+
+ if ( get_option( self::PROXY_SPEED_MODULE_VERSION_OPTION ) === self::PACKAGE_VERSION ) {
+ // No need to copy the files again.
+ return;
+ }
+
+ $mu_plugin_src_file = __DIR__ . '/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php';
+ $mu_plugin_dest_file = trailingslashit( WPMU_PLUGIN_DIR ) . 'woocommerce-analytics-proxy-speed-module.php';
+
+ // Verify source file exists before attempting to copy.
+ if ( ! file_exists( $mu_plugin_src_file ) ) {
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( 'WooCommerce Analytics proxy speed module source file not found.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ return;
+ }
+
+ $content = $wp_filesystem->get_contents( $mu_plugin_src_file );
+ if ( false === $content ) {
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( 'Failed to read the WooCommerce Analytics proxy speed module source file.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ return;
+ }
+
+ // Get the autoloader path from the current plugin location.
+ $autoloader_path = self::locate_autoloader_file();
+ if ( null === $autoloader_path ) {
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( 'WooCommerce Analytics proxy speed module not installed: could not locate autoloader.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ return;
+ }
+
+ // Replace placeholders with actual values.
+ $content = str_replace(
+ array( '{{AUTOLOADER_PATH}}', '{{VERSION}}' ),
+ array( $autoloader_path, self::PACKAGE_VERSION ),
+ $content
+ );
+
+ if ( ! $wp_filesystem->put_contents( $mu_plugin_dest_file, $content ) ) {
+ if ( function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( 'Failed to write the WooCommerce Analytics proxy speed module file.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ return;
+ }
+
+ update_option( self::PROXY_SPEED_MODULE_VERSION_OPTION, self::PACKAGE_VERSION );
+ }
+
+ /**
+ * Maybe removes the proxy speed module. This should be invoked when the plugin is deactivated.
+ */
+ public static function maybe_remove_proxy_speed_module() {
+ if ( ! self::init_filesystem() ) {
+ return;
+ }
+
+ global $wp_filesystem;
+
+ /**
+ * Clean up MU plugin.
+ */
+ $file_path = trailingslashit( WPMU_PLUGIN_DIR ) . 'woocommerce-analytics-proxy-speed-module.php';
+
+ if ( $wp_filesystem->exists( $file_path ) && $wp_filesystem->is_writable( $file_path ) ) {
+ $deleted = $wp_filesystem->delete( $file_path );
+ if ( ! $deleted && function_exists( 'wc_get_logger' ) ) {
+ wc_get_logger()->error( 'Failed to delete WooCommerce Analytics proxy speed module file. The MU-plugin may continue running.', array( 'source' => 'woocommerce-analytics' ) );
+ }
+ }
+
+ delete_option( self::PROXY_SPEED_MODULE_VERSION_OPTION );
+ delete_transient( self::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT );
+ }
+
+ /**
+ * Finds the path to the autoloader file.
+ *
+ * Uses multiple strategies to locate the autoloader, since this package
+ * can be included in different plugins (Jetpack, WooCommerce Analytics, etc.):
+ * 1. Jetpack autoloader global (if available)
+ * 2. Composer's InstalledVersions API
+ * 3. Directory-based guessing as a fallback
+ *
+ * @return string|null The path to the autoloader file, or null if not found.
+ */
+ private static function locate_autoloader_file() {
+ global $jetpack_autoloader_loader;
+
+ $autoload_file = null;
+
+ // Try the Jetpack autoloader.
+ if ( isset( $jetpack_autoloader_loader ) ) {
+ $class_file = $jetpack_autoloader_loader->find_class_file( self::class );
+ if ( $class_file ) {
+ // Walk up 5 levels: src/ → woocommerce-analytics/ → automattic/ → jetpack_vendor/ → plugin root.
+ $autoload_file = dirname( $class_file, 5 ) . '/vendor/autoload.php';
+ }
+ }
+
+ // Try Composer's InstalledVersions API.
+ if ( null === $autoload_file
+ && is_callable( array( InstalledVersions::class, 'getInstallPath' ) )
+ && InstalledVersions::isInstalled( 'automattic/woocommerce-analytics' )
+ ) {
+ $package_file = InstalledVersions::getInstallPath( 'automattic/woocommerce-analytics' );
+ $expected_suffix = '/automattic/woocommerce-analytics';
+ if ( substr( $package_file, -strlen( $expected_suffix ) ) === $expected_suffix ) {
+ // Walk up 3 levels: woocommerce-analytics/ → automattic/ → jetpack_vendor/ → plugin root.
+ $autoload_file = dirname( $package_file, 3 ) . '/vendor/autoload.php';
+ }
+ }
+
+ // Guess based on directory structure.
+ // First try standard vendor layout (vendor/automattic/woocommerce-analytics/src/),
+ // then try standalone package with its own vendor dir.
+ if ( null === $autoload_file ) {
+ // Walk up 4 levels from src/: woocommerce-analytics/ → automattic/ → vendor/ → project root.
+ $autoload_file = dirname( __DIR__, 4 ) . '/vendor/autoload.php';
+ if ( ! file_exists( $autoload_file ) ) {
+ $autoload_file = dirname( __DIR__ ) . '/vendor/autoload.php';
+ }
+ }
+
+ if ( ! file_exists( $autoload_file ) ) {
+ return null;
+ }
+
+ return $autoload_file;
+ }
+
+ /**
+ * Initialize the WP filesystem.
+ *
+ * @return bool True if filesystem is initialized, false otherwise.
+ */
+ private static function init_filesystem() {
+ if ( ! function_exists( 'WP_Filesystem' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ // Initialize the WP filesystem.
+ ob_start();
+ $initialized = WP_Filesystem();
+ ob_end_clean();
+
+ return $initialized;
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/client/analytics.ts b/packages/php/woocommerce-analytics/src/client/analytics.ts
new file mode 100644
index 00000000000..1a3b3090913
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/analytics.ts
@@ -0,0 +1,270 @@
+/**
+ * External dependencies
+ */
+import debugFactory from 'debug';
+/**
+ * Internal dependencies
+ */
+import { ApiClient } from './api-client';
+import { consentManager } from './consent';
+import { EVENT_NAME_REGEX, EVENT_PREFIX } from './constants';
+import SessionManager from './session-manager';
+import { getCookie, generateRandomToken } from './utils';
+import type { AnalyticsConfig } from './types/shared';
+
+const debug = debugFactory( 'wc-analytics:analytics' );
+
+/**
+ * Analytics class for WooCommerce Analytics.
+ */
+export class Analytics {
+ private isInitialized: boolean;
+ private sessionManager: SessionManager;
+ private apiClient: ApiClient;
+ private eventQueue: AnalyticsConfig[ 'eventQueue' ];
+ private commonProps: AnalyticsConfig[ 'commonProps' ];
+ private features: AnalyticsConfig[ 'features' ];
+ private pages: AnalyticsConfig[ 'pages' ];
+
+ constructor(
+ sessionManager: SessionManager,
+ { eventQueue = [], commonProps = {}, features = {}, pages = {} }: AnalyticsConfig
+ ) {
+ this.isInitialized = false;
+
+ this.sessionManager = sessionManager;
+ this.apiClient = new ApiClient();
+ this.eventQueue = eventQueue;
+ this.commonProps = commonProps;
+ this.features = features;
+ this.pages = pages;
+ }
+
+ /**
+ * Initialize the analytics.
+ */
+ init = () => {
+ if ( this.isInitialized ) {
+ return;
+ }
+
+ // Initialize API client if proxy tracking is enabled
+ if ( this.features.proxy ) {
+ this.apiClient.init();
+ }
+
+ /*
+ * Initialize the session manager and record the page_view event
+ * only if the ClickHouse (ch) feature is enabled as these events are relevant exclusively when ClickHouse is active.
+ */
+ if ( this.features.sessionTracking ) {
+ // Set up consent change listener
+ consentManager.addConsentChangeListener( this.handleConsentChange );
+
+ this.sessionManager.init();
+ const { sessionId, landingPage, isNewSession } = this.sessionManager;
+
+ // Not needed if proxy tracking is enabled.
+ if ( ! this.features.proxy ) {
+ // Add session ID and landing page to common properties.
+ this.commonProps = {
+ ...this.commonProps,
+ session_id: sessionId,
+ landing_page: landingPage,
+ };
+ }
+
+ if ( isNewSession ) {
+ this.maybeRecordSessionStartedEvent();
+ } else {
+ this.maybeRecordEngagementEvent();
+ }
+
+ this.recordEvent( 'page_view' );
+ }
+
+ this.maybeSetAnonId();
+ this.processEventQueue();
+ this.initListeners();
+
+ this.isInitialized = true;
+ };
+
+ /**
+ * Initialize Listeners for pages.
+ */
+ initListeners = (): void => {
+ if ( this.pages.isAccountPage ) {
+ import( './listeners/account' ).then( ( { initListeners } ) => {
+ initListeners( this.recordEvent );
+ } );
+ }
+ };
+
+ /**
+ * Process the event queue.
+ */
+ processEventQueue = (): void => {
+ for ( const event of this.eventQueue ) {
+ this.recordEvent( event.eventName, event.props );
+ }
+ };
+
+ /**
+ * Record an event.
+ * @param event - The name of the event.
+ * @param properties - The properties of the event.
+ */
+ recordEvent = ( event: string, properties: Record< string, unknown > = {} ): void => {
+ // Check consent before recording any event
+ if ( ! consentManager.hasAnalyticsConsent() ) {
+ debug( 'Skipping event recording due to lack of statistics consent: %s', event );
+ return;
+ }
+
+ // Validate event name
+ if ( typeof event !== 'string' || ! EVENT_NAME_REGEX.test( event ) ) {
+ debug( 'Skipping event recording because event name is not valid' );
+ return;
+ }
+
+ const eventProperties = {
+ ...this.commonProps,
+ ...properties,
+ };
+
+ if ( this.features.ch ) {
+ eventProperties.ch = 1;
+ } else {
+ delete eventProperties.ch;
+ }
+
+ // Use API client if enabled, otherwise fall back to _wca.push
+ if ( this.features.proxy ) {
+ // Add client specific properties to the event properties. We don't need to do this for direct pixel tracking since it's already done there.
+ this.addClientProperties( eventProperties );
+ this.apiClient.addEvent( event, eventProperties );
+ } else {
+ this.fireDirectPixel( event, eventProperties );
+ }
+
+ // Post initialization, maybe record engagement event.
+ if ( this.isInitialized ) {
+ this.maybeRecordEngagementEvent();
+ }
+ };
+
+ /**
+ * Fire a pixel event.
+ * @param event - The name of the event.
+ * @param eventProperties - The properties of the event.
+ */
+ fireDirectPixel = ( event: string, eventProperties: Record< string, unknown > ): void => {
+ // Legacy _wca tracking
+ if ( ! window._wca ) {
+ debug( 'Skipping event recording because _wca is not defined' );
+ return;
+ }
+
+ debug( 'Recording event via _wca: "%s" with props %o', event, eventProperties );
+
+ eventProperties._en = `${ EVENT_PREFIX }${ event }`;
+ window._wca.push( eventProperties );
+ };
+
+ /**
+ * Add client properties to the event properties.
+ * @param eventProperties - The properties of the event.
+ */
+ addClientProperties = ( eventProperties: Record< string, unknown > ): void => {
+ const date = new Date();
+ eventProperties._ts = date.getTime();
+ eventProperties._tz = date.getTimezoneOffset() / 60;
+
+ const nav = window.navigator;
+ const screen = window.screen;
+ eventProperties._lg = nav.language;
+ eventProperties._pf = navigator?.platform;
+ eventProperties._ht = screen.height;
+ eventProperties._wd = screen.width;
+
+ const sx =
+ window.pageXOffset !== undefined
+ ? window.pageXOffset
+ : ( document.documentElement || document.body ).scrollLeft;
+ const sy =
+ window.pageYOffset !== undefined
+ ? window.pageYOffset
+ : ( document.documentElement || document.body ).scrollTop;
+
+ eventProperties._sx = sx !== undefined ? sx : 0;
+ eventProperties._sy = sy !== undefined ? sy : 0;
+
+ if ( document.location !== undefined ) {
+ eventProperties._dl = document.location.toString();
+ }
+ if ( document.referrer !== undefined ) {
+ eventProperties._dr = document.referrer;
+ }
+ };
+
+ /**
+ * Record the session started event if it's a new session and session ID is set.
+ */
+ maybeRecordSessionStartedEvent = (): void => {
+ if ( ! this.features.sessionTracking ) {
+ return;
+ }
+
+ if ( ! this.sessionManager.isNewSession || ! this.sessionManager.sessionId ) {
+ return;
+ }
+
+ this.recordEvent( 'session_started' );
+ };
+
+ /**
+ * Record the session engagement event if session is not engaged and session ID is set.
+ */
+ maybeRecordEngagementEvent = (): void => {
+ if ( ! this.features.sessionTracking ) {
+ return;
+ }
+
+ if ( this.sessionManager.isEngaged || ! this.sessionManager.sessionId ) {
+ return;
+ }
+
+ this.sessionManager.setEngaged();
+ this.recordEvent( 'session_engagement' );
+ };
+
+ /**
+ * Handle consent changes
+ *
+ * @param hasConsent - Whether the user has granted consent
+ */
+ handleConsentChange = ( hasConsent: boolean ): void => {
+ if ( ! hasConsent ) {
+ // Consent withdrawn - clear session data if session tracking is enabled
+ this.sessionManager.clearSession();
+ } else if ( ! this.sessionManager.sessionId ) {
+ // Consent granted - reinitialize session if needed
+ this.sessionManager.init();
+ }
+ };
+
+ /**
+ * Set anonymous ID if not already set
+ */
+ private maybeSetAnonId() {
+ const anonId = getCookie( 'tk_ai' );
+
+ if ( ! anonId ) {
+ // Set a first-party cookie (same domain only, 1 year)
+ const randomToken = generateRandomToken( 18 ); // 18 * 4/3 = 24 (base64 encoded chars)
+ const expires = new Date( Date.now() + 1 * 365 * 24 * 60 * 60 * 1000 ).toUTCString();
+ document.cookie = `tk_ai=${ randomToken }; path=/; secure; samesite=strict; expires=${ expires }`;
+ }
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/client/api-client.ts b/packages/php/woocommerce-analytics/src/client/api-client.ts
new file mode 100644
index 00000000000..1625e5594db
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/api-client.ts
@@ -0,0 +1,172 @@
+/**
+ * External dependencies
+ */
+import debugFactory from 'debug';
+/**
+ * Internal dependencies
+ */
+import { BATCH_SIZE, DEBOUNCE_DELAY } from './constants';
+import type { ApiEvent, ApiFetchResponse } from './types/shared';
+
+const debug = debugFactory( 'wc-analytics:api-client' );
+
+/**
+ * API Client for sending analytics events to the WordPress REST API
+ */
+export class ApiClient {
+ private eventQueue: ApiEvent[] = [];
+ private debounceTimer: number | null = null;
+ private isInitialized: boolean = false;
+ /**
+ * Initialize the API client
+ */
+ init = (): void => {
+ if ( this.isInitialized ) {
+ return;
+ }
+
+ debug( 'API client initialized' );
+ // Send any pending events when the page is about to unload
+ window.addEventListener( 'beforeunload', this.flush );
+ window.addEventListener( 'pagehide', this.flush );
+
+ this.isInitialized = true;
+ };
+
+ /**
+ * Add an event to the queue for batch sending
+ *
+ * @param eventName - The name of the event.
+ * @param properties - The properties of the event.
+ */
+ addEvent = ( eventName: string, properties: Record< string, unknown > = {} ): void => {
+ if ( ! this.isInitialized ) {
+ debug( 'API client not initialized, skipping event: %s', eventName );
+ return;
+ }
+
+ debug( 'Recording event via API: "%s" with props %o', eventName, properties );
+ const apiEvent: ApiEvent = {
+ event_name: eventName,
+ properties,
+ };
+
+ this.eventQueue.push( apiEvent );
+ debug( 'Event added to queue: %s (queue size: %d)', eventName, this.eventQueue.length );
+
+ // Schedule debounced send
+ this.debouncedSend();
+
+ // If queue is full, send immediately
+ if ( this.eventQueue.length >= BATCH_SIZE ) {
+ this.flush();
+ }
+ };
+
+ /**
+ * Debounced send function
+ */
+ private debouncedSend = (): void => {
+ if ( this.debounceTimer ) {
+ clearTimeout( this.debounceTimer );
+ }
+
+ this.debounceTimer = window.setTimeout( () => {
+ this.flush();
+ }, DEBOUNCE_DELAY );
+ };
+
+ /**
+ * Send events using the Beacon API for guaranteed delivery
+ *
+ * @param events - The events to send.
+ * @return True if beacon was successfully queued, false otherwise.
+ */
+ private sendEventsViaBeacon = ( events: ApiEvent[] ): boolean => {
+ // Check if beacon API is available
+ if ( typeof navigator === 'undefined' || ! navigator.sendBeacon ) {
+ debug( 'Beacon API not available' );
+ return false;
+ }
+
+ try {
+ // Convert events to JSON and create a Blob with correct content type
+ const data = JSON.stringify( events );
+ const blob = new Blob( [ data ], { type: 'application/json' } );
+
+ // Send via beacon - returns true if successfully queued
+ return navigator.sendBeacon( window.wcAnalytics.trackEndpoint, blob );
+ } catch ( error ) {
+ debug( 'Beacon API failed: %o', error );
+ return false;
+ }
+ };
+
+ /**
+ * Flush all pending events immediately
+ */
+ flush = (): void => {
+ if ( this.debounceTimer ) {
+ clearTimeout( this.debounceTimer );
+ this.debounceTimer = null;
+ }
+
+ if ( this.eventQueue.length === 0 ) {
+ return;
+ }
+
+ const eventsToSend = [ ...this.eventQueue ];
+ this.eventQueue = [];
+
+ if ( ! window.wcAnalytics?.trackEndpoint ) {
+ debug( 'Track endpoint not available' );
+ return;
+ }
+
+ // Try sending via Beacon API first for guaranteed delivery
+ const beaconSuccess = this.sendEventsViaBeacon( eventsToSend );
+
+ if ( beaconSuccess ) {
+ debug( 'Sent %d events via Beacon API', eventsToSend.length );
+ } else {
+ debug( 'Failed to send events via Beacon API, falling back to fetch with keepalive' );
+ this.sendEvents( eventsToSend );
+ }
+ };
+
+ /**
+ * Send events to the API
+ *
+ * @param events - The events to send.
+ */
+ private sendEvents = async ( events: ApiEvent[] ): Promise< void > => {
+ if ( events.length === 0 ) {
+ return;
+ }
+
+ try {
+ debug( 'Sending %d events to API', events.length );
+
+ const response = await fetch( window.wcAnalytics.trackEndpoint, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify( events ),
+ keepalive: true,
+ credentials: 'same-origin',
+ } );
+
+ if ( ! response.ok ) {
+ throw new Error( `HTTP error! status: ${ response.status }` );
+ }
+
+ const data: ApiFetchResponse = await response.json();
+ debug( 'API response received: %o', data );
+ } catch ( error ) {
+ debug( 'Failed to send events to API: %o', error );
+ // Re-add events to queue for potential retry on next event
+ this.eventQueue.unshift( ...events );
+ }
+ };
+}
diff --git a/packages/php/woocommerce-analytics/src/client/consent.ts b/packages/php/woocommerce-analytics/src/client/consent.ts
new file mode 100644
index 00000000000..56fe8e8b080
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/consent.ts
@@ -0,0 +1,92 @@
+/**
+ * External dependencies
+ */
+import debugFactory from 'debug';
+
+const debug = debugFactory( 'wc-analytics:consent' );
+
+const WP_CONSENT_API_STATISTICS_TYPE = 'statistics' as const;
+
+/**
+ * Consent utility functions for WP Consent API integration
+ */
+export class ConsentManager {
+ private consentListeners: Array< ( hasConsent: boolean ) => void > = [];
+ private isListenerInitialized = false;
+
+ /**
+ * Check if WP Consent API is available
+ *
+ * @return The consent status
+ */
+ isWpConsentApiAvailable(): boolean {
+ return typeof window.wp_has_consent === 'function';
+ }
+
+ /**
+ * Check if user has consent for analytics/statistics tracking
+ *
+ * @return The consent status
+ */
+ hasAnalyticsConsent(): boolean {
+ if ( ! this.isWpConsentApiAvailable() ) {
+ debug( 'WP Consent API not available, defaulting to true for backward compatibility' );
+ return true;
+ }
+
+ const hasConsent = window.wp_has_consent!( WP_CONSENT_API_STATISTICS_TYPE );
+ debug( 'Analytics consent status:', hasConsent );
+ return hasConsent;
+ }
+
+ /**
+ * Add a listener for consent changes
+ *
+ * @param callback - The callback to call when consent changes
+ */
+ addConsentChangeListener( callback: ( hasConsent: boolean ) => void ): void {
+ this.consentListeners.push( callback );
+ this.initializeConsentListener();
+ }
+
+ /**
+ * Initialize the consent change listener if not already done
+ */
+ private initializeConsentListener(): void {
+ if ( this.isListenerInitialized || ! this.isWpConsentApiAvailable() ) {
+ return;
+ }
+
+ debug( 'Initializing consent change listener' );
+
+ document.addEventListener( 'wp_listen_for_consent_change', event => {
+ const changedConsentCategory = ( event as CustomEvent ).detail;
+ for ( const key in changedConsentCategory ) {
+ if ( Object.prototype.hasOwnProperty.call( changedConsentCategory, key ) ) {
+ if ( key === WP_CONSENT_API_STATISTICS_TYPE ) {
+ this.notifyListeners( changedConsentCategory[ key ] === 'allow' );
+ }
+ }
+ }
+ } );
+
+ this.isListenerInitialized = true;
+ }
+
+ /**
+ * Notify all registered listeners about consent changes
+ *
+ * @param hasConsent - The consent status
+ */
+ private notifyListeners( hasConsent: boolean ): void {
+ this.consentListeners.forEach( listener => {
+ try {
+ listener( hasConsent );
+ } catch ( error ) {
+ debug( 'Error in consent change listener:', error );
+ }
+ } );
+ }
+}
+
+export const consentManager = new ConsentManager();
diff --git a/packages/php/woocommerce-analytics/src/client/constants.ts b/packages/php/woocommerce-analytics/src/client/constants.ts
new file mode 100644
index 00000000000..e72b4e407b4
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/constants.ts
@@ -0,0 +1,7 @@
+export const COOKIE_NAME = 'woocommerceanalytics_session';
+export const EVENT_PREFIX = 'woocommerceanalytics_';
+export const EVENT_NAME_REGEX = /^[a-z_][a-z0-9_]*$/;
+
+// API Configuration
+export const BATCH_SIZE = 10;
+export const DEBOUNCE_DELAY = 1000; // 1 second
diff --git a/packages/php/woocommerce-analytics/src/client/index.ts b/packages/php/woocommerce-analytics/src/client/index.ts
new file mode 100644
index 00000000000..f58cdb89103
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/index.ts
@@ -0,0 +1,26 @@
+/* global jQuery */
+
+/**
+ * Internal dependencies
+ */
+import './public-path';
+import { consentManager } from './consent';
+
+jQuery( () => {
+ if ( ! window.wcAnalytics ) {
+ return;
+ }
+
+ // Check for consent before initializing analytics
+ if ( consentManager.hasAnalyticsConsent() ) {
+ import( './init' );
+ return;
+ }
+
+ // Set up consent change listener to initialize when consent is granted
+ consentManager.addConsentChangeListener( ( hasConsent: boolean ) => {
+ if ( hasConsent ) {
+ import( './init' );
+ }
+ } );
+} );
diff --git a/packages/php/woocommerce-analytics/src/client/init.ts b/packages/php/woocommerce-analytics/src/client/init.ts
new file mode 100644
index 00000000000..98d1e760ab5
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/init.ts
@@ -0,0 +1,21 @@
+/**
+ * Internal dependencies
+ */
+import { Analytics } from './analytics';
+import SessionManager from './session-manager';
+
+/**
+ * Initialize analytics
+ */
+function initAnalytics() {
+ const sessionManager = new SessionManager();
+ const analytics = new Analytics( sessionManager, {
+ eventQueue: window.wcAnalytics.eventQueue,
+ commonProps: window.wcAnalytics.commonProps,
+ features: window.wcAnalytics.features,
+ pages: window.wcAnalytics.pages,
+ } );
+ analytics.init();
+}
+
+initAnalytics();
diff --git a/packages/php/woocommerce-analytics/src/client/listeners/account.ts b/packages/php/woocommerce-analytics/src/client/listeners/account.ts
new file mode 100644
index 00000000000..cc6e6948649
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/listeners/account.ts
@@ -0,0 +1,16 @@
+/* global jQuery */
+
+import type { RecordEventFunction } from '../types/shared';
+
+/**
+ * Attach event listeners for my account page
+ *
+ * @param recordEvent - Record event function
+ */
+export function initListeners( recordEvent: RecordEventFunction ): void {
+ jQuery( '.woocommerce-MyAccount-navigation-link--customer-logout' ).on( 'click', function () {
+ recordEvent( 'my_account_tab_click', {
+ tab: 'logout',
+ } );
+ } );
+}
diff --git a/packages/php/woocommerce-analytics/src/client/public-path.ts b/packages/php/woocommerce-analytics/src/client/public-path.ts
new file mode 100644
index 00000000000..8af63d875d9
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/public-path.ts
@@ -0,0 +1,13 @@
+/* exported __webpack_public_path__ */
+/* global __webpack_public_path__ */
+
+/**
+ * Dynamically set WebPack's publicPath so that split assets can be found.
+ * Unfortunately we can't set `publicPath: 'auto'` because WordPress.com Simple's JS concatenation breaks it (and other plugins that do JS concatenation probably would too).
+ * @see https://webpack.js.org/guides/public-path/#on-the-fly
+ */
+if ( typeof window === 'object' && window.wcAnalytics?.assets_url ) {
+ // @ts-expect-error: __webpack_public_path__ is set globally by webpack, ignore TS2304
+ // eslint-disable-next-line no-global-assign
+ __webpack_public_path__ = window.wcAnalytics.assets_url;
+}
diff --git a/packages/php/woocommerce-analytics/src/client/session-manager.ts b/packages/php/woocommerce-analytics/src/client/session-manager.ts
new file mode 100644
index 00000000000..03db21c30e7
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/session-manager.ts
@@ -0,0 +1,196 @@
+/**
+ * Internal dependencies
+ */
+import { COOKIE_NAME } from './constants';
+import { getCookie } from './utils';
+import type { SessionCookieData } from './types/shared';
+
+/**
+ * Session Manager for WooCommerce Analytics
+ *
+ */
+export default class SessionManager {
+ public sessionId: string | null = null;
+ public landingPage: string | null = null;
+ public isEngaged: boolean = false;
+ public isNewSession: boolean = false;
+
+ private isInitialized: boolean = false;
+
+ /**
+ * Initialize the session manager
+ */
+ init = () => {
+ if ( this.isInitialized ) {
+ return;
+ }
+
+ this.loadOrCreateSession();
+ this.isInitialized = true;
+ };
+
+ /**
+ * Load existing session or create new one
+ */
+ loadOrCreateSession() {
+ const cookie = this.getSessionCookie();
+
+ if ( cookie && cookie.session_id ) {
+ // Load existing session
+ this.sessionId = cookie.session_id;
+ this.landingPage = cookie.landing_page || null;
+ this.isEngaged = cookie.is_engaged || false;
+ this.isNewSession = false;
+ } else {
+ this.createNewSession();
+ }
+ }
+
+ /**
+ * Create a new session
+ */
+ createNewSession() {
+ this.isNewSession = true;
+
+ const sessionData = {
+ session_id: this.generateRandomUuid(),
+ landing_page: JSON.stringify( window.wcAnalytics?.breadcrumbs || [] ),
+ expires: this.getSessionExpirationTime(),
+ };
+
+ if ( this.setSessionCookie( sessionData ) ) {
+ // Only set session data if cookie was set successfully
+ this.sessionId = sessionData.session_id;
+ this.landingPage = sessionData.landing_page;
+ this.isEngaged = false;
+ }
+ }
+
+ /**
+ * Get session cookie data
+ *
+ * @return SessionCookieData | null
+ */
+ getSessionCookie(): SessionCookieData | null {
+ const rawCookie = getCookie( COOKIE_NAME );
+ if ( ! rawCookie ) {
+ return null;
+ }
+ try {
+ return JSON.parse( decodeURIComponent( rawCookie ) ) as SessionCookieData;
+ } catch ( _error ) {
+ // eslint-disable-next-line no-console
+ console.error( 'Error parsing session cookie', _error );
+ return null;
+ }
+ }
+
+ /**
+ * Set session cookie
+ *
+ * @param sessionData - Session data
+ * @return boolean
+ */
+ setSessionCookie( sessionData: SessionCookieData ): boolean {
+ const encoded = encodeURIComponent( JSON.stringify( sessionData ) );
+ const expires = sessionData.expires || this.getSessionExpirationTime();
+
+ document.cookie = `${ COOKIE_NAME }=${ encoded }; expires=${ expires }; path=/; secure; samesite=strict`;
+
+ const isCookieSet = getCookie( COOKIE_NAME ) === encoded;
+ return isCookieSet;
+ }
+
+ /**
+ * Generate session expiration time
+ * 30 minutes from now or at midnight UTC, whichever comes first
+ *
+ * @return string
+ */
+ getSessionExpirationTime(): string {
+ const thirtyMinutesFromNow = Date.now() + 30 * 60 * 1000;
+ const midnightUTC = new Date();
+ midnightUTC.setUTCDate( midnightUTC.getUTCDate() + 1 );
+ midnightUTC.setUTCHours( 0, 0, 0, 0 );
+
+ const expirationTime = Math.min( thirtyMinutesFromNow, midnightUTC.getTime() );
+ return new Date( expirationTime ).toUTCString();
+ }
+
+ /**
+ * Generate a random UUID v4 token
+ *
+ * @return string
+ */
+ generateRandomUuid(): string {
+ // Use modern crypto.randomUUID() if available (most efficient)
+ if ( typeof crypto !== 'undefined' && crypto.randomUUID ) {
+ return crypto.randomUUID();
+ }
+
+ // Use crypto.getRandomValues for better security
+ if ( typeof crypto !== 'undefined' && crypto.getRandomValues ) {
+ const bytes = new Uint8Array( 16 );
+ crypto.getRandomValues( bytes );
+
+ // Set version (4) and variant bits according to RFC 4122
+ // Set version (4) and variant bits according to RFC 4122 without using bitwise operators
+ // eslint-disable-next-line no-bitwise
+ bytes[ 6 ] = ( bytes[ 6 ] & 0x0f ) | 0x40; // Version 4
+ // eslint-disable-next-line no-bitwise
+ bytes[ 8 ] = ( bytes[ 8 ] & 0x3f ) | 0x80; // Variant 10
+
+ // Convert to hex string with proper formatting
+ const hex = Array.from( bytes, b => b.toString( 16 ).padStart( 2, '0' ) ).join( '' );
+
+ return [
+ hex.slice( 0, 8 ),
+ hex.slice( 8, 12 ),
+ hex.slice( 12, 16 ),
+ hex.slice( 16, 20 ),
+ hex.slice( 20, 32 ),
+ ].join( '-' );
+ }
+
+ // Fallback for older browsers (Math.random - less secure)
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( /[xy]/g, c => {
+ const r = Math.floor( Math.random() * 16 );
+ const v = c === 'x' ? r : ( r % 4 ) + 8;
+ return v.toString( 16 );
+ } );
+ }
+
+ /**
+ * Set engaged and update session cookie
+ *
+ */
+ setEngaged() {
+ if ( this.isEngaged ) {
+ // Engagement already recorded
+ return;
+ }
+
+ const sessionData = this.getSessionCookie();
+ if ( sessionData && sessionData.session_id ) {
+ sessionData.is_engaged = true;
+ this.setSessionCookie( sessionData );
+ }
+
+ this.isEngaged = true;
+ }
+
+ /**
+ * Clear session data (for consent withdrawal)
+ */
+ clearSession() {
+ // Clear cookie
+ document.cookie = `${ COOKIE_NAME }=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; secure; samesite=strict`;
+
+ // Reset session variables
+ this.sessionId = null;
+ this.landingPage = null;
+ this.isEngaged = false;
+ this.isNewSession = false;
+ this.isInitialized = false;
+ }
+}
diff --git a/packages/php/woocommerce-analytics/src/client/types/global.d.ts b/packages/php/woocommerce-analytics/src/client/types/global.d.ts
new file mode 100644
index 00000000000..453ee3b84f0
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/types/global.d.ts
@@ -0,0 +1,24 @@
+/**
+ * Global type declarations for WooCommerce Analytics
+ */
+
+declare global {
+ interface Window {
+ wcAnalytics?: {
+ trackEndpoint: string;
+ eventQueue: Array< { eventName: string; props?: Record< string, unknown > } >;
+ commonProps: Record< string, unknown >;
+ features: Record< string, boolean >;
+ pages: Record< string, boolean >;
+ breadcrumbs?: string[];
+ assets_url: string;
+ };
+ _wca?: {
+ push: ( props: Record< string, unknown > ) => void;
+ };
+ wp_has_consent?: ( type: string ) => boolean;
+ }
+}
+
+// This export statement is required to make this file a module
+export {};
diff --git a/packages/php/woocommerce-analytics/src/client/types/shared.ts b/packages/php/woocommerce-analytics/src/client/types/shared.ts
new file mode 100644
index 00000000000..c8352cf2f80
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/types/shared.ts
@@ -0,0 +1,34 @@
+/**
+ * Shared type definitions for WooCommerce Analytics
+ */
+
+export interface SessionCookieData {
+ session_id: string;
+ landing_page: string;
+ expires: string;
+ is_engaged?: boolean;
+}
+
+export interface AnalyticsConfig {
+ eventQueue: Array< { eventName: string; props?: Record< string, unknown > } >;
+ commonProps: Record< string, unknown >;
+ features: Record< string, boolean >;
+ pages: Record< string, boolean >;
+}
+
+export type RecordEventFunction = ( event: string, properties?: Record< string, unknown > ) => void;
+
+export interface QueuedEvent {
+ eventName: string;
+ props?: Record< string, unknown >;
+}
+
+export interface ApiEvent {
+ event_name: string;
+ properties: Record< string, unknown >;
+}
+
+export interface ApiFetchResponse {
+ success: boolean;
+ results: Array< { success: boolean; error?: string } >;
+}
diff --git a/packages/php/woocommerce-analytics/src/client/utils.ts b/packages/php/woocommerce-analytics/src/client/utils.ts
new file mode 100644
index 00000000000..54a316c3a2a
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/client/utils.ts
@@ -0,0 +1,35 @@
+/**
+ * Get cookie value by name
+ *
+ * @param name - Cookie name
+ * @return string | null
+ */
+export function getCookie( name: string ): string | null {
+ const value = `; ${ document.cookie }`;
+ const parts = value.split( `; ${ name }=` );
+ if ( parts.length === 2 ) {
+ return parts.pop()?.split( ';' ).shift() || null;
+ }
+ return null;
+}
+
+/**
+ * Generate a random token
+ *
+ * @param randomBytesLength - Length of the random bytes
+ * @return string
+ */
+export function generateRandomToken( randomBytesLength: number ): string {
+ let randomBytes: Uint8Array< ArrayBuffer >;
+
+ if ( window.crypto && window.crypto.getRandomValues ) {
+ randomBytes = new Uint8Array( randomBytesLength );
+ window.crypto.getRandomValues( randomBytes );
+ } else {
+ for ( let i = 0; i < randomBytesLength; ++i ) {
+ randomBytes[ i ] = Math.floor( Math.random() * 256 );
+ }
+ }
+
+ return btoa( String.fromCharCode( ...randomBytes ) );
+}
diff --git a/packages/php/woocommerce-analytics/src/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php b/packages/php/woocommerce-analytics/src/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php
new file mode 100644
index 00000000000..684460e5155
--- /dev/null
+++ b/packages/php/woocommerce-analytics/src/mu-plugin/woocommerce-analytics-proxy-speed-module-template.php
@@ -0,0 +1,295 @@
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Plugin Name: WooCommerce Analytics - Proxy Speed Module
+ * Description: Speeds up WooCommerce Analytics' proxy by handling requests at MU-plugin stage and exiting early.
+ * Plugin URI: https://woocommerce.com
+ * Author: WooCommerce
+ * Version: {{VERSION}}
+ * Author URI: https://woocommerce.com
+ *
+ * Text Domain: woocommerce-analytics
+ *
+ * This module intercepts proxy tracking requests at the MU-plugin stage (before regular plugins load)
+ * and handles them completely, then exits. This dramatically reduces response time by avoiding
+ * the full WordPress plugin initialization.
+ */
+
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * WooCommerce Analytics Proxy Speed Module
+ */
+class WooCommerceAnalyticsProxySpeed {
+
+ /**
+ * Path of the proxy request.
+ *
+ * @var string
+ */
+ const PROXY_REQUEST_PATH = 'woocommerce-analytics/v1/track';
+
+ /**
+ * Autoloader path - this placeholder is replaced during installation.
+ * DO NOT MODIFY - this value is injected by the parent plugin.
+ *
+ * @var string
+ */
+ const AUTOLOADER_PATH = '{{AUTOLOADER_PATH}}';
+
+ /**
+ * Initialize the proxy speed module.
+ *
+ * @return void
+ */
+ public function init() {
+ // Only intercept POST requests to the proxy endpoint.
+ if ( ! $this->is_proxy_request() ) {
+ return;
+ }
+
+ // If autoloader failed, let WordPress continue loading
+ // and fallback to the regular REST API.
+ if ( ! $this->load_autoloader() ) {
+ return;
+ }
+
+ // Handle the request completely and exit.
+ $this->handle_proxy_request();
+ exit;
+ }
+
+ /**
+ * Check if current request is a proxy request.
+ *
+ * @return bool
+ */
+ private function is_proxy_request() {
+ if ( 'POST' !== $this->get_request_method() ) {
+ return false;
+ }
+
+ $path = $this->get_request_path();
+
+ if ( '' === $path ) {
+ return false;
+ }
+
+ $normalized_path = rtrim( $path, '/' );
+ $proxy_suffix = '/' . ltrim( self::PROXY_REQUEST_PATH, '/' );
+
+ if ( strlen( $normalized_path ) < strlen( $proxy_suffix ) ) {
+ return false;
+ }
+
+ return substr( $normalized_path, -strlen( $proxy_suffix ) ) === $proxy_suffix;
+ }
+
+ /**
+ * Load the autoloader.
+ *
+ * At MU-plugin stage, plugins haven't loaded yet, so we bootstrap
+ * the autoloader directly using the path injected during installation.
+ *
+ * @return bool True if autoloader loaded and classes are available.
+ */
+ private function load_autoloader() {
+ $autoload_path = self::AUTOLOADER_PATH;
+
+ // Validate the path was properly injected (not still a placeholder).
+ if ( strpos( $autoload_path, '{{' ) !== false ) {
+ error_log( 'WooCommerce Analytics Proxy Speed Module: Autoloader path placeholder was not replaced during installation.' ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ return false;
+ }
+
+ if ( ! file_exists( $autoload_path ) ) {
+ error_log( 'WooCommerce Analytics Proxy Speed Module: Autoloader file not found at: ' . $autoload_path ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ return false;
+ }
+
+ try {
+ require_once $autoload_path;
+ } catch ( \Throwable $e ) {
+ error_log( 'WooCommerce Analytics Proxy Speed Module: Failed to load autoloader: ' . $e->getMessage() ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ return false;
+ }
+
+ if ( ! class_exists( '\Automattic\Woocommerce_Analytics\WC_Analytics_Tracking' ) ) {
+ error_log( 'WooCommerce Analytics Proxy Speed Module: WC_Analytics_Tracking class not found after loading autoloader.' ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Handle the proxy request completely.
+ *
+ * Processes the events and sends the response without loading
+ * regular WordPress plugins.
+ *
+ * @return void
+ */
+ private function handle_proxy_request() {
+ if ( ! headers_sent() ) {
+ header( 'Content-Type: application/json; charset=utf-8' );
+ header( 'Cache-Control: no-cache, must-revalidate' );
+ }
+
+ try {
+ $this->process_proxy_request();
+ } catch ( \Throwable $e ) {
+ error_log( 'WooCommerce Analytics Proxy Speed Module: Uncaught error in handle_proxy_request: ' . $e->getMessage() ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ $this->send_json_response(
+ array(
+ 'success' => false,
+ 'error' => 'Internal server error while processing analytics events.',
+ ),
+ 500
+ );
+ }
+ }
+
+ /**
+ * Process the proxy request body: parse events, record them, and send the response.
+ *
+ * @return void
+ */
+ private function process_proxy_request() {
+ // Apply magic quotes to superglobals ($_GET, $_POST, $_COOKIE, $_REQUEST) for compatibility with the regular API flow.
+ if ( function_exists( 'wp_magic_quotes' ) ) {
+ wp_magic_quotes();
+ }
+
+ $body = file_get_contents( 'php://input' );
+ if ( empty( $body ) ) {
+ $this->send_json_response(
+ array(
+ 'success' => false,
+ 'error' => 'Empty request body',
+ ),
+ 400
+ );
+ return;
+ }
+
+ $events = json_decode( $body, true );
+ if ( json_last_error() !== JSON_ERROR_NONE ) {
+ $this->send_json_response(
+ array(
+ 'success' => false,
+ 'error' => 'Invalid JSON',
+ ),
+ 400
+ );
+ return;
+ }
+
+ // Normalize: wrap a single event object or unexpected scalar in an array.
+ if ( ! is_array( $events ) || isset( $events['event_name'] ) ) {
+ $events = array( $events );
+ }
+
+ $results = array();
+ $has_errors = false;
+
+ foreach ( $events as $index => $event ) {
+ if ( empty( $event ) || ! is_array( $event ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => 'Invalid event format',
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ $event_name = $event['event_name'] ?? null;
+ $properties = $event['properties'] ?? array();
+
+ if ( ! $event_name || ! is_array( $properties ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => 'Missing event_name or invalid properties',
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ $result = \Automattic\Woocommerce_Analytics\WC_Analytics_Tracking::record_event( $event_name, $properties );
+
+ if ( is_wp_error( $result ) ) {
+ $results[ $index ] = array(
+ 'success' => false,
+ 'error' => $result->get_error_message(),
+ );
+ $has_errors = true;
+ continue;
+ }
+
+ $results[ $index ] = array( 'success' => true );
+ }
+
+ \Automattic\Woocommerce_Analytics\WC_Analytics_Tracking::send_batched_pixels();
+
+ $this->send_json_response(
+ array(
+ 'success' => ! $has_errors,
+ 'results' => $results,
+ 'is_proxy_speed_module' => true,
+ ),
+ $has_errors ? 207 : 200
+ );
+ }
+
+ /**
+ * Send a JSON response.
+ *
+ * @param array $data Response data.
+ * @param int $status_code HTTP status code.
+ * @return void
+ */
+ private function send_json_response( $data, $status_code = 200 ) {
+ http_response_code( $status_code );
+ echo wp_json_encode( $data, JSON_UNESCAPED_SLASHES );
+ }
+
+ /**
+ * Helper method to retrieve the request path.
+ *
+ * Extracts and validates the path component from $_SERVER['REQUEST_URI']
+ * for safe internal matching.
+ *
+ * @return string The validated path, or empty string on failure.
+ */
+ private function get_request_path() {
+ $raw_uri = isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+
+ if ( ! is_string( $raw_uri ) ) {
+ return '';
+ }
+
+ // Extract just the path component to avoid matching against query strings, etc.
+ $path = wp_parse_url( $raw_uri, PHP_URL_PATH );
+
+ if ( ! is_string( $path ) ) {
+ return '';
+ }
+
+ // Ensure the path contains only expected URL path characters.
+ if ( preg_match( '/[^A-Za-z0-9\-._~\/]/', $path ) ) {
+ return '';
+ }
+
+ return $path;
+ }
+
+ /**
+ * Helper method to get request method.
+ *
+ * @return string
+ */
+ private function get_request_method() {
+ return isset( $_SERVER['REQUEST_METHOD'] ) ? strtoupper( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ }
+}
+
+( new WooCommerceAnalyticsProxySpeed() )->init();
diff --git a/packages/php/woocommerce-analytics/tasks/build-package.sh b/packages/php/woocommerce-analytics/tasks/build-package.sh
new file mode 100755
index 00000000000..fff600855ec
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tasks/build-package.sh
@@ -0,0 +1,69 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+# Script to prepare woocommerce-analytics package for publishing to Packagist.org
+# This script creates a build directory with the required structure and files
+
+# Define paths
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+PACKAGE_DIR="$(dirname "$SCRIPT_DIR")"
+BUILD_DIR="$PACKAGE_DIR/build"
+DIST_DIR="$BUILD_DIR/Automattic/woocommerce-analytics"
+
+echo "Preparing woocommerce-analytics package for Packagist.org publishing..."
+
+# Clean up existing build directory
+if [ -d "$BUILD_DIR" ]; then
+ echo "Cleaning up existing build directory..."
+ rm -rf "$BUILD_DIR"
+fi
+
+# Build JS assets first
+echo "Building JS assets..."
+pnpm run build-production
+
+# Create build directory structure
+echo "Creating build directory structure..."
+mkdir -p "$DIST_DIR"
+
+# Create mirrors.txt file
+echo "Creating mirrors.txt file..."
+echo "Automattic/woocommerce-analytics" > "$BUILD_DIR/mirrors.txt"
+
+# Copy PHP source
+echo "Copying PHP source files..."
+rsync -avhW --quiet \
+ "$PACKAGE_DIR/src/" \
+ "$DIST_DIR/src/" \
+ --exclude="client/"
+
+# Copy built JS assets (main bundle, asset manifest, and all chunks)
+echo "Copying built JS assets..."
+mkdir -p "$DIST_DIR/build"
+rsync -avhW --quiet \
+ --include="*.js" \
+ --include="*.asset.php" \
+ --exclude="*" \
+ "$PACKAGE_DIR/build/" \
+ "$DIST_DIR/build/"
+
+# Copy package metadata
+echo "Copying package metadata..."
+cp "$PACKAGE_DIR/composer.json" "$DIST_DIR/"
+cp "$PACKAGE_DIR/package.json" "$DIST_DIR/"
+cp "$PACKAGE_DIR/CHANGELOG.md" "$DIST_DIR/"
+cp "$PACKAGE_DIR/LICENSE.txt" "$DIST_DIR/LICENSE.txt"
+cp "$PACKAGE_DIR/SECURITY.md" "$DIST_DIR/"
+
+cp "$PACKAGE_DIR/.gitattributes" "$DIST_DIR/"
+
+# Copy .github workflows for the mirror repo (autotagger, readonly)
+echo "Copying mirror GitHub workflows..."
+cp -r "$PACKAGE_DIR/tasks/mirror-github/." "$DIST_DIR/.github/"
+
+# Copy README.md
+echo "Copying README.md..."
+cp "$PACKAGE_DIR/README.md" "$DIST_DIR/README.md"
+
+echo "Build completed successfully!"
diff --git a/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/autotagger.yml b/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/autotagger.yml
new file mode 100644
index 00000000000..208b92ba7fc
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/autotagger.yml
@@ -0,0 +1,113 @@
+name: Auto-tagger
+
+on:
+ push:
+ branches:
+ - trunk
+ - prerelease
+ - '*/branch-*'
+ workflow_dispatch:
+
+# We use secrets.API_TOKEN_GITHUB for everything here, so no need for permissions.
+permissions: {}
+
+jobs:
+ tag:
+ name: Tag
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check that the secret is set
+ env:
+ TOKEN: ${{ secrets.API_TOKEN_GITHUB }}
+ run: |
+ if [[ -z "$TOKEN" ]]; then
+ echo '::error::The secret API_TOKEN_GITHUB must be set.'
+ exit 1
+ fi
+
+ - uses: actions/checkout@v6
+ with:
+ # We want to potentially trigger "tag" events, but the default GITHUB_TOKEN
+ # explicitly does not trigger events.
+ token: ${{ secrets.API_TOKEN_GITHUB }}
+
+ - name: Check branch
+ id: check-branch
+ run: |
+ PREFIXES=
+ if [[ -e composer.json ]]; then
+ PREFIXES=$(jq -r '.extra["release-branch-prefix"] // "" | if type == "array" then .[] else . end' composer.json)
+ fi
+ if [[ -z "$PREFIXES" && "$GITHUB_REF" != "refs/heads/trunk" && "$GITHUB_REF" != "refs/heads/prerelease" ]]; then
+ echo "::error::Expected to be called for \"refs/heads/trunk\" or \"refs/heads/prerelease\", not \"$GITHUB_REF\""
+ exit 1
+ elif [[ -n "$PREFIXES" && ( "$GITHUB_REF" == "refs/heads/trunk" || "$GITHUB_REF" == "refs/heads/prerelease" ) ]]; then
+ echo "::notice::Ignoring push to $GITHUB_REF, as this project has a release branch prefix set (\"${PREFIXES//$'\n'/'" "'}\")"
+ echo "run=false" >> "$GITHUB_OUTPUT"
+ else
+ if [[ -n "$PREFIXES" ]]; then
+ OK=false
+ while IFS= read -r P; do
+ [[ "$GITHUB_REF" == "refs/heads/$P/branch-"* ]] && OK=true
+ done <<<"$PREFIXES"
+ if ! $OK; then
+ echo "::error::Expected to be called for \"refs/heads/\$PREFIX/branch-*\" for a prefix in \"${PREFIXES//$'\n'/'" "'}\", not \"$GITHUB_REF\""
+ exit 1
+ fi
+ fi
+
+ echo "Push to \"$GITHUB_REF\" ok"
+ echo "run=true" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: Check version
+ id: version
+ if: steps.check-branch.outputs.run == 'true'
+ run: |
+ VER=$(sed -nEe 's/^## \[?([^]]*)\]? - .*/\1/;T;p;q' CHANGELOG.md || true)
+ echo "Version from changelog is ${VER:-<unknown>}"
+ echo "version=$VER" >> "$GITHUB_OUTPUT"
+ if [[ "$VER" =~ ^[0-9]+(\.[0-9]+)+(-[a-z0-9._-]+)?$ && ! "$VER" =~ -(alpha|a\.[0-9]*[02468])$ ]]; then
+ echo "Version $VER ok to tag"
+ echo "run=true" >> "$GITHUB_OUTPUT"
+ else
+ echo "::notice::Not tagging version $VER"
+ echo "run=false" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: Check deps
+ id: check-deps
+ if: steps.check-branch.outputs.run == 'true' && steps.version.outputs.run == 'true'
+ run: |
+ RUN=true
+ if [[ -e composer.json ]]; then
+ TMP=$(jq -r '.require // {} | to_entries[] | select( .value | test( "-(alpha|a\\.[0-9]*[02468])$" ) ) | "\(.key) (\(.value))"' composer.json)
+ if [[ -n "$TMP" ]]; then
+ echo "::notice::Not tagging due to -alpha deps on ${TMP//$'\n'/ }"
+ RUN=false
+ fi
+ fi
+ echo "run=$RUN" >> "$GITHUB_OUTPUT"
+
+ - name: Tag
+ if: steps.check-branch.outputs.run == 'true' && steps.version.outputs.run == 'true' && steps.check-deps.outputs.run == 'true'
+ env:
+ VER: ${{ steps.version.outputs.version }}
+ run: |
+ export GIT_AUTHOR_NAME=matticbot
+ export GIT_AUTHOR_EMAIL=matticbot@users.noreply.github.com
+ export GIT_COMMITTER_NAME=matticbot
+ export GIT_COMMITTER_EMAIL=matticbot@users.noreply.github.com
+ if [[ -e composer.json ]] && ! jq -e 'if try ( .extra.autotagger | has("v") ) catch false then .extra.autotagger.v else true end' composer.json >/dev/null; then
+ TAG="$VER"
+ else
+ TAG="v$VER"
+ fi
+ echo "::notice::Tagging $TAG"
+ git tag "$TAG"
+ git push origin "$TAG"
+ if [[ -e composer.json ]] && jq -e '.extra.autotagger.major?' composer.json >/dev/null; then
+ echo "::notice::Tagging ${TAG%%.*}"
+ git tag --force "${TAG%%.*}"
+ git push --force origin "${TAG%%.*}"
+ fi
diff --git a/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/readonly.yml b/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/readonly.yml
new file mode 100644
index 00000000000..d2d942c9115
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tasks/mirror-github/workflows/readonly.yml
@@ -0,0 +1,30 @@
+name: Enforce read-only repo status
+
+on:
+ issues:
+ types: opened
+ pull_request_target:
+ types: opened
+
+permissions:
+ # dessant/repo-lockdown
+ issues: write
+ pull-requests: write
+
+jobs:
+ lockdown:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: dessant/repo-lockdown@v5
+ with:
+ github-token: ${{ github.token }}
+ issue-comment: |
+ Thank you for your interest!
+
+ Issues should be filed at https://github.com/woocommerce/woocommerce/issues. Be sure to mention the `woocommerce-analytics` package.
+ skip-closed-issue-comment: true
+ pr-comment: |
+ Thank you for your interest!
+
+ Pull requests should be made against the monorepo at https://github.com/woocommerce/woocommerce.
+ skip-closed-pr-comment: true
diff --git a/packages/php/woocommerce-analytics/tests/.phpcs.dir.xml b/packages/php/woocommerce-analytics/tests/.phpcs.dir.xml
new file mode 100644
index 00000000000..46951fe77b3
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/.phpcs.dir.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<ruleset>
+ <rule ref="Jetpack-Tests" />
+</ruleset>
diff --git a/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Socks_Proxy_Test.php b/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Socks_Proxy_Test.php
new file mode 100644
index 00000000000..f09053f0cb4
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Socks_Proxy_Test.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Tests for Pixel_Builder SOCKS proxy detection.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use PHPUnit\Framework\Attributes\DataProvider;
+use WorDBless\BaseTestCase;
+
+/**
+ * Tests for Pixel_Builder SOCKS proxy detection.
+ */
+class Pixel_Builder_Socks_Proxy_Test extends BaseTestCase {
+
+ /**
+ * Test is_socks_proxy_host returns true for SOCKS proxy hosts.
+ *
+ * @dataProvider socks_proxy_hosts_provider
+ * @param string $host The proxy host value.
+ */
+ #[DataProvider( 'socks_proxy_hosts_provider' )]
+ public function test_is_socks_proxy_host_returns_true( string $host ): void {
+ $this->assertTrue( Pixel_Builder::is_socks_proxy_host( $host ) );
+ }
+
+ /**
+ * Data provider for SOCKS proxy hosts.
+ *
+ * @return array
+ */
+ public static function socks_proxy_hosts_provider(): array {
+ return array(
+ 'socks5' => array( 'socks5://127.0.0.1' ),
+ 'socks4' => array( 'socks4://127.0.0.1' ),
+ 'socks generic' => array( 'socks://127.0.0.1' ),
+ 'socks5 uppercase' => array( 'SOCKS5://127.0.0.1' ),
+ 'socks5 with port' => array( 'socks5://127.0.0.1:1080' ),
+ );
+ }
+
+ /**
+ * Test is_socks_proxy_host returns false for non-SOCKS proxy hosts.
+ *
+ * @dataProvider non_socks_proxy_hosts_provider
+ * @param string $host The proxy host value.
+ */
+ #[DataProvider( 'non_socks_proxy_hosts_provider' )]
+ public function test_is_socks_proxy_host_returns_false( string $host ): void {
+ $this->assertFalse( Pixel_Builder::is_socks_proxy_host( $host ) );
+ }
+
+ /**
+ * Data provider for non-SOCKS proxy hosts.
+ *
+ * @return array
+ */
+ public static function non_socks_proxy_hosts_provider(): array {
+ return array(
+ 'plain hostname' => array( 'proxy.example.com' ),
+ 'http proxy' => array( 'http://proxy.example.com' ),
+ 'ip address' => array( '192.168.1.1' ),
+ );
+ }
+
+ /**
+ * Test is_socks_proxy_configured returns false when WP_PROXY_HOST is not defined.
+ */
+ public function test_is_socks_proxy_configured_returns_false_when_not_defined(): void {
+ if ( defined( 'WP_PROXY_HOST' ) ) {
+ $this->markTestSkipped( 'WP_PROXY_HOST is already defined in the environment.' );
+ }
+
+ $reflection = new \ReflectionClass( Pixel_Builder::class );
+ $method = $reflection->getMethod( 'is_socks_proxy_configured' );
+ if ( PHP_VERSION_ID < 80100 ) {
+ $method->setAccessible( true );
+ }
+
+ $this->assertFalse( $method->invoke( null ) );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Test.php b/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Test.php
new file mode 100644
index 00000000000..ecb7c20457c
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/Pixel_Builder_Test.php
@@ -0,0 +1,414 @@
+<?php
+/**
+ * Tests for the Pixel_Builder class.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use PHPUnit\Framework\Attributes\DataProvider;
+use PHPUnit\Framework\Attributes\IgnoreDeprecations;
+use WorDBless\BaseTestCase;
+use WP_Error;
+
+/**
+ * Tests for the Pixel_Builder class.
+ */
+class Pixel_Builder_Test extends BaseTestCase {
+
+ /**
+ * Test that TRACKS_PIXEL_URL constant is correct.
+ */
+ public function test_tracks_pixel_url_constant(): void {
+ $this->assertSame( 'https://pixel.wp.com/t.gif', Pixel_Builder::TRACKS_PIXEL_URL );
+ }
+
+ /**
+ * Test that CH_PIXEL_URL constant is correct.
+ */
+ public function test_ch_pixel_url_constant(): void {
+ $this->assertSame( 'https://pixel.wp.com/w.gif', Pixel_Builder::CH_PIXEL_URL );
+ }
+
+ /**
+ * Test that BROWSER_TYPE constant is correct.
+ */
+ public function test_browser_type_constant(): void {
+ $this->assertSame( 'php-agent', Pixel_Builder::BROWSER_TYPE );
+ }
+
+ /**
+ * Test build_timestamp returns a numeric string.
+ */
+ public function test_build_timestamp_returns_numeric_string(): void {
+ $timestamp = Pixel_Builder::build_timestamp();
+
+ $this->assertIsString( $timestamp );
+ $this->assertMatchesRegularExpression( '/^\d+$/', $timestamp );
+
+ // Timestamp should be approximately current time in milliseconds.
+ $expected = round( microtime( true ) * 1000 );
+ $actual = (float) $timestamp;
+
+ // Allow 1 second tolerance.
+ $this->assertEqualsWithDelta( $expected, $actual, 1000 );
+ }
+
+ /**
+ * Test add_request_timestamp_and_nocache appends correct parameters.
+ */
+ public function test_add_request_timestamp_and_nocache(): void {
+ $pixel = 'https://pixel.wp.com/t.gif?_en=test_event';
+ $result = Pixel_Builder::add_request_timestamp_and_nocache( $pixel );
+
+ $this->assertStringStartsWith( $pixel . '&_rt=', $result );
+ $this->assertStringEndsWith( '&_=_', $result );
+
+ // Extract the timestamp.
+ $matches = array();
+ $this->assertSame( 1, preg_match( '/&_rt=(\d+)&/', $result, $matches ) );
+ $this->assertArrayHasKey( 1, $matches );
+ $this->assertNotEmpty( $matches[1] );
+ }
+
+ /**
+ * Test event_name_is_valid with valid event names.
+ *
+ * @dataProvider valid_event_names_provider
+ * @param string $event_name The event name to test.
+ */
+ #[DataProvider( 'valid_event_names_provider' )]
+ public function test_event_name_is_valid_with_valid_names( string $event_name ): void {
+ $this->assertTrue( Pixel_Builder::event_name_is_valid( $event_name ) );
+ }
+
+ /**
+ * Data provider for valid event names.
+ *
+ * @return array
+ */
+ public static function valid_event_names_provider(): array {
+ return array(
+ 'simple event' => array( 'woocommerceanalytics_checkout_started' ),
+ 'short prefix' => array( 'woo_event' ),
+ 'numeric prefix' => array( 'test123_event' ),
+ 'underscores in event' => array( 'wcadmin_product_view_click' ),
+ 'multiple underscores' => array( 'woo_my_custom_event_name' ),
+ 'numbers in event' => array( 'woo_event123' ),
+ );
+ }
+
+ /**
+ * Test event_name_is_valid with invalid event names.
+ *
+ * @dataProvider invalid_event_names_provider
+ * @param string $event_name The event name to test.
+ */
+ #[DataProvider( 'invalid_event_names_provider' )]
+ public function test_event_name_is_valid_with_invalid_names( string $event_name ): void {
+ $this->assertFalse( Pixel_Builder::event_name_is_valid( $event_name ) );
+ }
+
+ /**
+ * Data provider for invalid event names.
+ *
+ * @return array
+ */
+ public static function invalid_event_names_provider(): array {
+ return array(
+ 'no underscore at all' => array( 'checkoutstarted' ),
+ 'uppercase letters' => array( 'Woo_Event' ),
+ 'spaces' => array( 'woo_my event' ),
+ 'special characters' => array( 'woo_event@test' ),
+ 'empty string' => array( '' ),
+ 'only prefix' => array( 'woo_' ),
+ 'hyphen instead' => array( 'woo-event' ),
+ );
+ }
+
+ /**
+ * Test prop_name_is_valid with valid property names.
+ *
+ * @dataProvider valid_prop_names_provider
+ * @param string $prop_name The property name to test.
+ */
+ #[DataProvider( 'valid_prop_names_provider' )]
+ public function test_prop_name_is_valid_with_valid_names( string $prop_name ): void {
+ $this->assertTrue( Pixel_Builder::prop_name_is_valid( $prop_name ) );
+ }
+
+ /**
+ * Data provider for valid property names.
+ *
+ * @return array
+ */
+ public static function valid_prop_names_provider(): array {
+ return array(
+ 'simple name' => array( 'event_name' ),
+ 'underscore prefix' => array( '_en' ),
+ 'all lowercase' => array( 'productid' ),
+ 'numbers' => array( 'prop123' ),
+ 'underscore and nums' => array( '_ts' ),
+ 'long name' => array( 'this_is_a_very_long_property_name' ),
+ );
+ }
+
+ /**
+ * Test prop_name_is_valid with invalid property names.
+ *
+ * @dataProvider invalid_prop_names_provider
+ * @param string $prop_name The property name to test.
+ */
+ #[DataProvider( 'invalid_prop_names_provider' )]
+ public function test_prop_name_is_valid_with_invalid_names( string $prop_name ): void {
+ $this->assertFalse( Pixel_Builder::prop_name_is_valid( $prop_name ) );
+ }
+
+ /**
+ * Data provider for invalid property names.
+ *
+ * @return array
+ */
+ public static function invalid_prop_names_provider(): array {
+ return array(
+ 'uppercase letters' => array( 'EventName' ),
+ 'starts with number' => array( '123prop' ),
+ 'hyphen' => array( 'event-name' ),
+ 'spaces' => array( 'event name' ),
+ 'special characters' => array( 'event@name' ),
+ 'empty string' => array( '' ),
+ );
+ }
+
+ /**
+ * Test build_tracks_url with valid properties.
+ */
+ public function test_build_tracks_url_with_valid_properties(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_checkout_started',
+ '_ts' => '1234567890123',
+ '_ut' => 'anon',
+ '_ui' => 'test_visitor_id',
+ );
+
+ $result = Pixel_Builder::build_tracks_url( $properties );
+
+ $this->assertIsString( $result );
+ $this->assertStringStartsWith( Pixel_Builder::TRACKS_PIXEL_URL . '?', $result );
+ $this->assertStringContainsString( '_en=woocommerceanalytics_checkout_started', $result );
+ $this->assertStringContainsString( 'browser_type=php-agent', $result );
+ }
+
+ /**
+ * Test build_tracks_url returns WP_Error when event name is missing.
+ */
+ public function test_build_tracks_url_returns_error_without_event_name(): void {
+ $properties = array(
+ '_ts' => '1234567890123',
+ );
+
+ $result = Pixel_Builder::build_tracks_url( $properties );
+
+ $this->assertInstanceOf( WP_Error::class, $result );
+ $this->assertSame( 'invalid_event', $result->get_error_code() );
+ }
+
+ /**
+ * Test build_tracks_url returns WP_Error with invalid event name.
+ */
+ public function test_build_tracks_url_returns_error_with_invalid_event_name(): void {
+ $properties = array(
+ '_en' => 'InvalidEventName',
+ );
+
+ $result = Pixel_Builder::build_tracks_url( $properties );
+
+ $this->assertInstanceOf( WP_Error::class, $result );
+ $this->assertSame( 'invalid_event_name', $result->get_error_code() );
+ }
+
+ /**
+ * Test build_ch_url builds ClickHouse pixel URL.
+ */
+ public function test_build_ch_url_with_valid_properties(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_checkout_started',
+ '_ts' => '1234567890123',
+ );
+
+ $result = Pixel_Builder::build_ch_url( $properties );
+
+ $this->assertIsString( $result );
+ $this->assertStringStartsWith( Pixel_Builder::CH_PIXEL_URL . '?', $result );
+ $this->assertStringContainsString( '_en=woocommerceanalytics_checkout_started', $result );
+ }
+
+ /**
+ * Test validate_and_sanitize adds timestamp if missing.
+ */
+ public function test_validate_and_sanitize_adds_timestamp(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertArrayHasKey( '_ts', $result );
+ $this->assertMatchesRegularExpression( '/^\d+$/', $result['_ts'] );
+ }
+
+ /**
+ * Test validate_and_sanitize adds browser_type.
+ */
+ public function test_validate_and_sanitize_adds_browser_type(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertArrayHasKey( 'browser_type', $result );
+ $this->assertSame( 'php-agent', $result['browser_type'] );
+ }
+
+ /**
+ * Test validate_and_sanitize removes private IP addresses.
+ */
+ public function test_validate_and_sanitize_removes_private_ips(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ '_via_ip' => '192.168.1.1',
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertArrayNotHasKey( '_via_ip', $result );
+ }
+
+ /**
+ * Test validate_and_sanitize keeps public IP addresses.
+ */
+ public function test_validate_and_sanitize_keeps_public_ips(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ '_via_ip' => '203.0.113.195',
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertArrayHasKey( '_via_ip', $result );
+ $this->assertSame( '203.0.113.195', $result['_via_ip'] );
+ }
+
+ /**
+ * Test validate_and_sanitize handles indexed arrays.
+ */
+ public function test_validate_and_sanitize_handles_indexed_arrays(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ 'items' => array( 'item1', 'item2', 'item3' ),
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertSame( 'item1,item2,item3', $result['items'] );
+ }
+
+ /**
+ * Test validate_and_sanitize handles associative arrays as JSON.
+ */
+ public function test_validate_and_sanitize_handles_associative_arrays(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ 'options' => array(
+ 'key1' => 'value1',
+ 'key2' => 'value2',
+ ),
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $decoded = json_decode( $result['options'], true );
+ $this->assertSame(
+ array(
+ 'key1' => 'value1',
+ 'key2' => 'value2',
+ ),
+ $decoded
+ );
+ }
+
+ /**
+ * Test validate_and_sanitize handles empty arrays.
+ */
+ public function test_validate_and_sanitize_handles_empty_arrays(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ 'items' => array(),
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertIsArray( $result );
+ $this->assertSame( '', $result['items'] );
+ }
+
+ /**
+ * Test validate_and_sanitize returns error for invalid property name.
+ */
+ public function test_validate_and_sanitize_returns_error_for_invalid_prop_name(): void {
+ $properties = array(
+ '_en' => 'woocommerceanalytics_test_event',
+ 'InvalidProp' => 'value',
+ );
+
+ $result = Pixel_Builder::validate_and_sanitize( $properties );
+
+ $this->assertInstanceOf( WP_Error::class, $result );
+ $this->assertSame( 'invalid_prop_name', $result->get_error_code() );
+ }
+
+ /**
+ * Test send_pixel returns true (integration test - doesn't actually send).
+ */
+ public function test_send_pixel_returns_true(): void {
+ $pixel = Pixel_Builder::TRACKS_PIXEL_URL . '?_en=woocommerceanalytics_test';
+
+ // This test just ensures the method doesn't throw and returns true.
+ // The actual HTTP request is non-blocking and we can't easily verify it.
+ $result = Pixel_Builder::send_pixel( $pixel );
+
+ $this->assertTrue( $result );
+ }
+
+ /**
+ * Test send_pixels_batched with empty array returns true.
+ */
+ public function test_send_pixels_batched_with_empty_array(): void {
+ $result = Pixel_Builder::send_pixels_batched( array() );
+
+ $this->assertTrue( $result );
+ }
+
+ /**
+ * Test send_pixels_batched with valid pixels returns true.
+ */
+ #[IgnoreDeprecations]
+ public function test_send_pixels_batched_with_valid_pixels(): void {
+ $pixels = array(
+ Pixel_Builder::TRACKS_PIXEL_URL . '?_en=woocommerceanalytics_test1',
+ Pixel_Builder::TRACKS_PIXEL_URL . '?_en=woocommerceanalytics_test2',
+ );
+
+ $result = Pixel_Builder::send_pixels_batched( $pixels );
+
+ $this->assertTrue( $result );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/Universal_Test.php b/packages/php/woocommerce-analytics/tests/php/Universal_Test.php
new file mode 100644
index 00000000000..915d5dbf31c
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/Universal_Test.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * Tests for the Universal class.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use WC_Order;
+use WorDBless\BaseTestCase;
+
+/**
+ * Tests for the Universal class.
+ */
+class Universal_Test extends BaseTestCase {
+
+ /**
+ * Reset global mocks before each test.
+ */
+ public function set_up(): void {
+ parent::set_up();
+ global $wc_get_order_calls, $wc_get_order_mock_return;
+ $wc_get_order_calls = array();
+ $wc_get_order_mock_return = false;
+ }
+
+ /**
+ * Test that order_process calls wc_get_order with an integer order ID.
+ */
+ public function test_order_process_handles_integer_order_id(): void {
+ global $wc_get_order_calls, $wc_get_order_mock_return;
+
+ // Set up mock to return false (order not found).
+ $wc_get_order_mock_return = false;
+
+ $universal = new Universal();
+ $universal->order_process( 12345 );
+
+ $this->assertCount( 1, $wc_get_order_calls, 'wc_get_order should be called once.' );
+ $this->assertSame( 12345, $wc_get_order_calls[0], 'wc_get_order should receive the integer order ID.' );
+ }
+
+ /**
+ * Test that order_process calls wc_get_order with a string order ID.
+ */
+ public function test_order_process_handles_string_order_id(): void {
+ global $wc_get_order_calls, $wc_get_order_mock_return;
+
+ // Set up mock to return false (order not found).
+ $wc_get_order_mock_return = false;
+
+ $universal = new Universal();
+ $universal->order_process( '12345' );
+
+ $this->assertCount( 1, $wc_get_order_calls, 'wc_get_order should be called once.' );
+ $this->assertSame( '12345', $wc_get_order_calls[0], 'wc_get_order should receive the string order ID.' );
+ }
+
+ /**
+ * Test that order_process calls wc_get_order with a WC_Order object.
+ */
+ public function test_order_process_handles_wc_order_object(): void {
+ global $wc_get_order_calls, $wc_get_order_mock_return;
+
+ // Set up mock to return false (order not found).
+ $wc_get_order_mock_return = false;
+
+ $order = new WC_Order();
+
+ $universal = new Universal();
+ $universal->order_process( $order );
+
+ $this->assertCount( 1, $wc_get_order_calls, 'wc_get_order should be called once.' );
+ $this->assertSame( $order, $wc_get_order_calls[0], 'wc_get_order should receive the WC_Order object.' );
+ }
+
+ /**
+ * Test that order_process returns early when wc_get_order returns false.
+ */
+ public function test_order_process_returns_early_when_order_not_found(): void {
+ global $wc_get_order_mock_return;
+
+ // Set up mock to return false.
+ $wc_get_order_mock_return = false;
+
+ $universal = new Universal();
+ $universal->order_process( 12345 );
+
+ // If we get here without errors, the method completed without processing a non-existent order.
+ $this->assertTrue( true, 'order_process should handle a missing order without throwing an exception.' );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/Woocommerce_Analytics_Test.php b/packages/php/woocommerce-analytics/tests/php/Woocommerce_Analytics_Test.php
new file mode 100644
index 00000000000..973d2b27dd6
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/Woocommerce_Analytics_Test.php
@@ -0,0 +1,262 @@
+<?php
+/**
+ * Tests for the Woocommerce_Analytics class.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+namespace Automattic\Woocommerce_Analytics;
+
+use Automattic\Woocommerce_Analytics;
+use WorDBless\BaseTestCase;
+
+/**
+ * Tests for the Woocommerce_Analytics class.
+ *
+ * Focuses on testing the MU-plugin auto-update mechanism.
+ */
+class Woocommerce_Analytics_Test extends BaseTestCase {
+
+ /**
+ * Temporary directory for MU-plugins during tests.
+ *
+ * @var string
+ */
+ private $temp_mu_plugin_dir;
+
+ /**
+ * Set up test environment.
+ */
+ public function set_up(): void {
+ parent::set_up();
+
+ // Create a temporary directory for MU-plugins.
+ $this->temp_mu_plugin_dir = sys_get_temp_dir() . '/wc-analytics-test-mu-plugins-' . uniqid();
+ mkdir( $this->temp_mu_plugin_dir, 0755, true );
+
+ // Clean up any existing options/transients.
+ delete_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION );
+ delete_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT );
+
+ // Remove any filters that might interfere.
+ remove_all_filters( 'woocommerce_analytics_auto_install_proxy_speed_module' );
+ }
+
+ /**
+ * Tear down test environment.
+ */
+ public function tear_down(): void {
+ // Clean up temporary directory.
+ if ( is_dir( $this->temp_mu_plugin_dir ) ) {
+ $this->recursive_rmdir( $this->temp_mu_plugin_dir );
+ }
+
+ // Clean up options and transients.
+ delete_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION );
+ delete_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT );
+
+ parent::tear_down();
+ }
+
+ /**
+ * Recursively remove a directory.
+ *
+ * @param string $dir Directory path.
+ */
+ private function recursive_rmdir( $dir ): void {
+ if ( is_dir( $dir ) ) {
+ $objects = scandir( $dir );
+ foreach ( $objects as $object ) {
+ if ( $object !== '.' && $object !== '..' ) {
+ $path = $dir . '/' . $object;
+ if ( is_dir( $path ) ) {
+ $this->recursive_rmdir( $path );
+ } else {
+ unlink( $path );
+ }
+ }
+ }
+ rmdir( $dir );
+ }
+ }
+
+ /**
+ * Test that transient throttling prevents frequent checks.
+ */
+ public function test_maybe_update_proxy_speed_module_skips_when_transient_exists(): void {
+ // Set the transient to simulate recent check.
+ set_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT, 1, DAY_IN_SECONDS );
+
+ // Set a different version to ensure update would normally trigger.
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, '0.0.1' );
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_update_proxy_speed_module();
+
+ // Version should remain unchanged (update was skipped due to transient).
+ $this->assertSame( '0.0.1', get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+ }
+
+ /**
+ * Test that transient is set after version check.
+ */
+ public function test_maybe_update_proxy_speed_module_sets_transient(): void {
+ // Ensure no transient exists.
+ delete_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT );
+
+ // Set version to match current (no update needed).
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, Woocommerce_Analytics::PACKAGE_VERSION );
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_update_proxy_speed_module();
+
+ // Transient should now be set.
+ $this->assertSame( 1, get_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT ) );
+ }
+
+ /**
+ * Test that update is skipped when version option is false (first install).
+ */
+ public function test_maybe_update_proxy_speed_module_skips_when_version_is_false(): void {
+ // Ensure version option doesn't exist (simulates first install).
+ delete_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION );
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_update_proxy_speed_module();
+
+ // Version should still not exist (maybe_add_proxy_speed_module was not called).
+ $this->assertFalse( get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+
+ // Transient should be set (check was performed).
+ $this->assertSame( 1, get_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT ) );
+ }
+
+ /**
+ * Test that update is skipped when version matches current package version.
+ */
+ public function test_maybe_update_proxy_speed_module_skips_when_version_matches(): void {
+ // Enable the feature flag so the update path is checked.
+ add_filter( 'woocommerce_analytics_auto_install_proxy_speed_module', '__return_true' );
+
+ // Set version to match current.
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, Woocommerce_Analytics::PACKAGE_VERSION );
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_update_proxy_speed_module();
+
+ // Version should remain the same (no update needed).
+ $this->assertSame( Woocommerce_Analytics::PACKAGE_VERSION, get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+
+ remove_filter( 'woocommerce_analytics_auto_install_proxy_speed_module', '__return_true' );
+ }
+
+ /**
+ * Test that MU-plugin is removed when feature flag is disabled and version exists.
+ */
+ public function test_maybe_update_proxy_speed_module_removes_when_flag_disabled(): void {
+ // Set a version to simulate existing installation.
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, Woocommerce_Analytics::PACKAGE_VERSION );
+
+ // Feature flag is off by default — no filter needed.
+ Woocommerce_Analytics::maybe_update_proxy_speed_module();
+
+ // Version option should be deleted (MU-plugin removal cleans it up).
+ $this->assertFalse( get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+ }
+
+ /**
+ * Test that auto-installation is disabled by default.
+ */
+ public function test_maybe_add_proxy_speed_module_disabled_by_default(): void {
+ // Call the method without any filter (default is false).
+ Woocommerce_Analytics::maybe_add_proxy_speed_module();
+
+ // Version option should not be set since auto-install is disabled by default.
+ $this->assertFalse( get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+ }
+
+ /**
+ * Test that filter can enable auto-installation.
+ */
+ public function test_maybe_add_proxy_speed_module_respects_filter(): void {
+ $filter_called = false;
+ $filter_cb = function () use ( &$filter_called ) {
+ $filter_called = true;
+ return true;
+ };
+
+ add_filter( 'woocommerce_analytics_auto_install_proxy_speed_module', $filter_cb );
+
+ // Call the method - it will proceed past the filter check but may stop at other checks
+ // (e.g., filesystem init, WPMU_PLUGIN_DIR). The point is the filter is respected.
+ Woocommerce_Analytics::maybe_add_proxy_speed_module();
+
+ $this->assertTrue( $filter_called, 'The auto_install_proxy_speed_module filter should be checked.' );
+
+ remove_filter( 'woocommerce_analytics_auto_install_proxy_speed_module', $filter_cb );
+ }
+
+ /**
+ * Test that maybe_add_proxy_speed_module skips when version already matches.
+ */
+ public function test_maybe_add_proxy_speed_module_skips_when_version_matches(): void {
+ // Set version to match current.
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, Woocommerce_Analytics::PACKAGE_VERSION );
+
+ // Define WPMU_PLUGIN_DIR if not defined.
+ if ( ! defined( 'WPMU_PLUGIN_DIR' ) ) {
+ define( 'WPMU_PLUGIN_DIR', $this->temp_mu_plugin_dir );
+ }
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_add_proxy_speed_module();
+
+ // No file should be created since version matches.
+ $mu_plugin_file = $this->temp_mu_plugin_dir . '/woocommerce-analytics-proxy-speed-module.php';
+ $this->assertFileDoesNotExist( $mu_plugin_file );
+ }
+
+ /**
+ * Test that maybe_remove_proxy_speed_module cleans up options and transients.
+ */
+ public function test_maybe_remove_proxy_speed_module_cleans_up(): void {
+ // Set up initial state.
+ update_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION, '1.0.0' );
+ set_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT, 1, DAY_IN_SECONDS );
+
+ // Call the method.
+ Woocommerce_Analytics::maybe_remove_proxy_speed_module();
+
+ // Options and transients should be deleted.
+ $this->assertFalse( get_option( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION ) );
+ $this->assertFalse( get_transient( Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT ) );
+ }
+
+ /**
+ * Test PACKAGE_VERSION constant exists and is valid semver format.
+ */
+ public function test_package_version_constant_is_valid(): void {
+ $this->assertNotEmpty( Woocommerce_Analytics::PACKAGE_VERSION );
+ $this->assertMatchesRegularExpression( '/^\d+\.\d+\.\d+/', Woocommerce_Analytics::PACKAGE_VERSION );
+ }
+
+ /**
+ * Test version option constant is defined.
+ */
+ public function test_version_option_constant_is_defined(): void {
+ $this->assertSame(
+ 'woocommerce_analytics_proxy_speed_module_version',
+ Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_OPTION
+ );
+ }
+
+ /**
+ * Test version check transient constant is defined.
+ */
+ public function test_version_check_transient_constant_is_defined(): void {
+ $this->assertSame(
+ 'woocommerce_analytics_proxy_speed_module_version_check',
+ Woocommerce_Analytics::PROXY_SPEED_MODULE_VERSION_CHECK_TRANSIENT
+ );
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/bootstrap.php b/packages/php/woocommerce-analytics/tests/php/bootstrap.php
new file mode 100644
index 00000000000..77703409413
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/bootstrap.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Bootstrap.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+/**
+ * Include the composer autoloader.
+ */
+require_once __DIR__ . '/../../vendor/autoload.php';
+
+// Include WooCommerce mocks before initializing test environment.
+require_once __DIR__ . '/mocks/woocommerce-functions.php';
+require_once __DIR__ . '/mocks/class-wc-order.php';
+require_once __DIR__ . '/mocks/class-wc-tracks.php';
+
+// Initialize WordPress test environment using WorDBless (database-less).
+\WorDBless\Load::load();
diff --git a/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-order.php b/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-order.php
new file mode 100644
index 00000000000..46c3a7d5575
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-order.php
@@ -0,0 +1,160 @@
+<?php
+/**
+ * Mock WC_Order class for testing.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+if ( ! class_exists( 'WC_Order' ) ) {
+ /**
+ * Mock WC_Order class for testing.
+ */
+ class WC_Order {
+ /**
+ * Order ID.
+ *
+ * @var int
+ */
+ private $id = 123;
+
+ /**
+ * Order items.
+ *
+ * @var array
+ */
+ private $items = array();
+
+ /**
+ * Order coupons.
+ *
+ * @var array
+ */
+ private $coupons = array();
+
+ /**
+ * Get order ID.
+ *
+ * @return int
+ */
+ public function get_id() {
+ return $this->id;
+ }
+
+ /**
+ * Get payment method.
+ *
+ * @return string
+ */
+ public function get_payment_method() {
+ return 'stripe';
+ }
+
+ /**
+ * Get payment method title.
+ *
+ * @return string
+ */
+ public function get_payment_method_title() {
+ return 'Credit Card';
+ }
+
+ /**
+ * Get user.
+ *
+ * @return object|false
+ */
+ public function get_user() {
+ return false;
+ }
+
+ /**
+ * Get created via.
+ *
+ * @return string
+ */
+ public function get_created_via() {
+ return 'checkout';
+ }
+
+ /**
+ * Get items.
+ *
+ * @return array
+ */
+ public function get_items() {
+ return $this->items;
+ }
+
+ /**
+ * Set items for testing.
+ *
+ * @param array $items Items to set.
+ */
+ public function set_items( $items ) {
+ $this->items = $items;
+ }
+
+ /**
+ * Get coupons.
+ *
+ * @return array
+ */
+ public function get_coupons() {
+ return $this->coupons;
+ }
+
+ /**
+ * Get order number.
+ *
+ * @return string
+ */
+ public function get_order_number() {
+ return '123';
+ }
+
+ /**
+ * Get subtotal.
+ *
+ * @return float
+ */
+ public function get_subtotal() {
+ return 100.00;
+ }
+
+ /**
+ * Get total.
+ *
+ * @return float
+ */
+ public function get_total() {
+ return 110.00;
+ }
+
+ /**
+ * Get discount total.
+ *
+ * @return float
+ */
+ public function get_discount_total() {
+ return 0.00;
+ }
+
+ /**
+ * Get total tax.
+ *
+ * @return float
+ */
+ public function get_total_tax() {
+ return 10.00;
+ }
+
+ /**
+ * Get shipping total.
+ *
+ * @return float
+ */
+ public function get_shipping_total() {
+ return 5.00;
+ }
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-tracks.php b/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-tracks.php
new file mode 100644
index 00000000000..395ef3c4626
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/mocks/class-wc-tracks.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Mock WC_Tracks class for testing.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+if ( ! class_exists( 'WC_Tracks' ) ) {
+ /**
+ * Mock WC_Tracks class for testing.
+ */
+ class WC_Tracks {
+ // Empty base class for WC_Analytics_Tracking to extend.
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tests/php/mocks/woocommerce-functions.php b/packages/php/woocommerce-analytics/tests/php/mocks/woocommerce-functions.php
new file mode 100644
index 00000000000..332879ea15e
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tests/php/mocks/woocommerce-functions.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * WooCommerce function mocks for testing.
+ *
+ * @package automattic/woocommerce-analytics
+ */
+
+// phpcs:disable WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
+
+/**
+ * Global variable to store mock order for testing.
+ *
+ * @var mixed
+ */
+global $wc_get_order_mock_return;
+$wc_get_order_mock_return = false;
+
+/**
+ * Global variable to track wc_get_order calls.
+ *
+ * @var array
+ */
+global $wc_get_order_calls;
+$wc_get_order_calls = array();
+
+if ( ! function_exists( 'wc_get_order' ) ) {
+ /**
+ * Mock wc_get_order function.
+ *
+ * @param mixed $the_order Post object or post ID of the order.
+ * @return mixed The mocked return value.
+ */
+ function wc_get_order( $the_order = false ) {
+ global $wc_get_order_mock_return, $wc_get_order_calls;
+ $wc_get_order_calls[] = $the_order;
+ return $wc_get_order_mock_return;
+ }
+}
+
+if ( ! function_exists( 'WC' ) ) {
+ /**
+ * Mock WC function.
+ *
+ * @return object Mock WooCommerce object.
+ */
+ function WC() {
+ return new class() {
+ /**
+ * Session property.
+ *
+ * @var object|null
+ */
+ public $session = null;
+ };
+ }
+}
diff --git a/packages/php/woocommerce-analytics/tsconfig.json b/packages/php/woocommerce-analytics/tsconfig.json
new file mode 100644
index 00000000000..c099654c900
--- /dev/null
+++ b/packages/php/woocommerce-analytics/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "include": [ "./src/client" ],
+ "compilerOptions": {
+ "target": "ES2020",
+ "module": "ESNext",
+ "moduleResolution": "node",
+ "lib": [ "ES2020", "DOM", "DOM.Iterable" ],
+ "jsx": "react-jsx",
+ "strict": false,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "typeRoots": [ "./node_modules/@types/", "./src/client/types" ],
+ "sourceMap": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true
+ }
+}
diff --git a/packages/php/woocommerce-analytics/webpack.config.js b/packages/php/woocommerce-analytics/webpack.config.js
new file mode 100644
index 00000000000..8621b870cb0
--- /dev/null
+++ b/packages/php/woocommerce-analytics/webpack.config.js
@@ -0,0 +1,71 @@
+const path = require( 'path' );
+const DependencyExtractionWebpackPlugin = require( '@wordpress/dependency-extraction-webpack-plugin' );
+
+const isDevelopment = process.env.NODE_ENV !== 'production';
+
+module.exports = [
+ {
+ entry: {
+ 'woocommerce-analytics-client': './src/client/index.ts',
+ },
+ mode: isDevelopment ? 'development' : 'production',
+ devtool: isDevelopment ? 'source-map' : false,
+ output: {
+ path: path.resolve( './build' ),
+ filename: '[name].js',
+ },
+ resolve: {
+ extensions: [ '.ts', '.tsx', '.js', '.jsx', '.json' ],
+ },
+ node: false,
+ plugins: [
+ new DependencyExtractionWebpackPlugin( {
+ requestToExternal( request ) {
+ if ( request === 'jetpackConfig' ) {
+ return null;
+ }
+ },
+ } ),
+ ],
+ module: {
+ strictExportPresence: true,
+ rules: [
+ {
+ test: /\.[jt]sx?$/,
+ exclude: /node_modules/,
+ use: {
+ loader: require.resolve( 'babel-loader' ),
+ options: {
+ presets: [
+ [
+ require.resolve( '@babel/preset-env' ),
+ {
+ targets: {
+ browsers: [
+ 'extends @wordpress/browserslist-config',
+ ],
+ },
+ },
+ ],
+ require.resolve( '@babel/preset-typescript' ),
+ ],
+ },
+ },
+ },
+ {
+ test: /\.css$/,
+ use: [ 'style-loader', 'css-loader' ],
+ },
+ {
+ test: /\.(png|jpe?g|gif|svg|woff2?|eot|ttf|otf)$/,
+ type: 'asset/resource',
+ },
+ ],
+ },
+ externals: {
+ jetpackConfig: JSON.stringify( {
+ consumer_slug: 'woocommerce-analytics',
+ } ),
+ },
+ },
+];
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b41a4ac818e..464375ea54e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -95,7 +95,7 @@ importers:
version: 1.15.0
postcss-loader:
specifier: 4.3.x
- version: 4.3.0(postcss@8.4.49)(webpack@5.97.1)
+ version: 4.3.0(postcss@8.4.49)(webpack@5.97.1(@swc/core@1.3.100))
prettier:
specifier: npm:wp-prettier@^2.8.5
version: wp-prettier@2.8.5
@@ -122,7 +122,7 @@ importers:
version: 5.7.2
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.3.100)
packages/js/admin-layout:
dependencies:
@@ -153,7 +153,7 @@ importers:
version: 6.40.1-next.v.202602271551.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -177,10 +177,10 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
- version: 29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
+ version: 29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
typescript:
specifier: 5.7.x
version: 5.7.2
@@ -204,13 +204,13 @@ importers:
version: 1.0.0
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks':
specifier: wp-6.6
version: 13.0.3(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -226,7 +226,7 @@ importers:
version: 7.25.7
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -241,7 +241,7 @@ importers:
version: 5.14.9
'@types/wordpress__block-editor':
specifier: 7.0.0
- version: 7.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/wordpress__blocks':
specifier: 11.0.7
version: 11.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -262,10 +262,10 @@ importers:
version: 6.40.1-next.v.202602271551.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -295,7 +295,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -373,7 +373,7 @@ importers:
version: 5.0.1
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/block-library':
specifier: wp-6.6
version: 9.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
@@ -388,7 +388,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -524,7 +524,7 @@ importers:
version: 8.11.3
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@8.11.3)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -575,7 +575,7 @@ importers:
version: 6.40.1-next.v.202602271551.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -608,7 +608,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -623,7 +623,7 @@ importers:
version: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
- version: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.97.1)
wireit:
specifier: 0.14.12
version: 0.14.12
@@ -836,7 +836,7 @@ importers:
version: 6.40.1-next.v.202602271551.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -860,7 +860,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -896,7 +896,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -1173,10 +1173,10 @@ importers:
version: 5.0.1
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/block-library':
specifier: wp-6.6
- version: 9.0.8(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 9.0.8(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/blocks':
specifier: wp-6.6
version: 13.0.3(react@18.3.1)
@@ -1191,7 +1191,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -1203,13 +1203,13 @@ importers:
version: 4.0.1
'@wordpress/editor':
specifier: wp-6.6
- version: 14.0.8(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 14.0.8(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/element':
specifier: wp-6.6
version: 6.0.1
'@wordpress/format-library':
specifier: wp-6.6
- version: 5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/global-styles-engine':
specifier: ^1.3.0
version: 1.3.0(react@18.3.1)
@@ -1279,7 +1279,7 @@ importers:
version: 10.4.0
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1366,10 +1366,10 @@ importers:
version: 14.16.1
ts-jest:
specifier: 29.1.x
- version: 29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
+ version: 29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
ts-loader:
specifier: 9.5.x
- version: 9.5.1(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 9.5.1(typescript@5.7.2)(webpack@5.105.2(@swc/core@1.3.100))
typescript:
specifier: 5.7.x
version: 5.7.2
@@ -1518,7 +1518,7 @@ importers:
version: 6.0.1
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -1542,7 +1542,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -1554,7 +1554,7 @@ importers:
version: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
- version: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ version: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.97.1)
wireit:
specifier: 0.14.12
version: 0.14.12
@@ -1725,7 +1725,7 @@ importers:
version: 7.25.7
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
'@testing-library/react-hooks':
specifier: 8.0.1
version: 8.0.1(@types/react@18.3.16)(react-dom@17.0.2(react@18.3.1))(react-test-renderer@17.0.2(react@18.3.1))(react@18.3.1)
@@ -1752,10 +1752,10 @@ importers:
version: 6.40.1-next.v.202602271551.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -1788,7 +1788,7 @@ importers:
dependencies:
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@30.0.0)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1882,13 +1882,13 @@ importers:
version: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
postcss-loader:
specifier: 4.3.x
- version: 4.3.0(postcss@8.4.49)(webpack@5.97.1)
+ version: 4.3.0(postcss@8.4.49)(webpack@5.97.1(@swc/core@1.3.100))
sass-loader:
specifier: 10.5.x
version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
webpack-remove-empty-scripts:
specifier: 1.0.x
- version: 1.0.4(webpack@5.97.1)
+ version: 1.0.4(webpack@5.97.1(@swc/core@1.3.100))
devDependencies:
'@babel/core':
specifier: 7.25.7
@@ -1916,7 +1916,7 @@ importers:
version: 5.7.2
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.3.100)
wireit:
specifier: 0.14.12
version: 0.14.12
@@ -2217,7 +2217,7 @@ importers:
version: 6.40.1-next.v.202602271551.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -2241,7 +2241,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -2313,7 +2313,7 @@ importers:
version: 7.0.1
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks':
specifier: wp-6.6
version: 13.0.3(react@18.3.1)
@@ -2325,7 +2325,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -2401,7 +2401,7 @@ importers:
devDependencies:
'@automattic/webpack-rtl-plugin':
specifier: 6.0.x
- version: 6.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.0.0(webpack@5.97.1)
'@babel/core':
specifier: 7.25.7
version: 7.25.7
@@ -2413,7 +2413,7 @@ importers:
version: 10.4.0
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -2473,10 +2473,10 @@ importers:
version: 6.40.1-next.v.202602271551.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -2491,7 +2491,7 @@ importers:
version: 29.5.0
mini-css-extract-plugin:
specifier: 2.9.x
- version: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ version: 2.9.2(webpack@5.97.1)
postcss:
specifier: 8.4.x
version: 8.4.49
@@ -2512,7 +2512,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -2667,7 +2667,7 @@ importers:
dependencies:
'@automattic/site-admin':
specifier: ^0.0.1
- version: 0.0.1(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(@wordpress/data@10.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ version: 0.0.1(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(@wordpress/data@10.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@types/lodash':
specifier: ^4.14.202
version: 4.14.202
@@ -2709,7 +2709,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -2724,10 +2724,10 @@ importers:
version: 4.0.1
'@wordpress/edit-post':
specifier: wp-6.6
- version: 8.0.9(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ version: 8.0.9(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/editor':
specifier: wp-6.6
- version: 14.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ version: 14.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/element':
specifier: wp-6.6
version: 6.0.1
@@ -2782,7 +2782,7 @@ importers:
devDependencies:
'@automattic/webpack-rtl-plugin':
specifier: 6.0.x
- version: 6.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.0.0(webpack@5.97.1)
'@babel/core':
specifier: 7.25.7
version: 7.25.7
@@ -2794,7 +2794,7 @@ importers:
version: 10.4.0
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -2818,7 +2818,7 @@ importers:
version: 2.6.1
'@types/wordpress__edit-post':
specifier: 8.4.2
- version: 8.4.2(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ version: 8.4.2(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@types/wordpress__editor':
specifier: 13.0.0
version: 13.0.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -2836,16 +2836,16 @@ importers:
version: link:../internal-ts-config
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/browserslist-config':
specifier: next
version: 6.40.1-next.v.202602271551.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -2860,7 +2860,7 @@ importers:
version: 29.5.0
mini-css-extract-plugin:
specifier: 2.9.x
- version: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ version: 2.9.2(webpack@5.97.1)
postcss:
specifier: 8.4.x
version: 8.4.49
@@ -2878,7 +2878,7 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
ts-jest:
specifier: 29.1.x
version: 29.1.1(@babel/core@7.25.7)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
@@ -2902,7 +2902,7 @@ importers:
dependencies:
debug:
specifier: ^4.3.4
- version: 4.3.4(supports-color@9.4.0)
+ version: 4.3.4
devDependencies:
'@babel/core':
specifier: 7.25.7
@@ -2977,6 +2977,52 @@ importers:
specifier: ^3.0.15
version: 3.0.15
+ packages/php/woocommerce-analytics:
+ dependencies:
+ debug:
+ specifier: 4.4.3
+ version: 4.4.3(supports-color@9.4.0)
+ devDependencies:
+ '@babel/core':
+ specifier: 7.25.7
+ version: 7.25.7
+ '@babel/preset-env':
+ specifier: 7.25.7
+ version: 7.25.7(@babel/core@7.25.7)
+ '@babel/preset-typescript':
+ specifier: 7.25.7
+ version: 7.25.7(@babel/core@7.25.7)
+ '@jest/globals':
+ specifier: 29.5.x
+ version: 29.5.0
+ '@types/jest':
+ specifier: 29.5.x
+ version: 29.5.14
+ '@types/jquery':
+ specifier: 3.5.33
+ version: 3.5.33
+ '@wordpress/browserslist-config':
+ specifier: next
+ version: 6.41.1-next.v.202603161435.0
+ '@wordpress/dependency-extraction-webpack-plugin':
+ specifier: next
+ version: 6.41.1-next.v.202603161435.0(webpack@5.97.1)
+ babel-loader:
+ specifier: 9.2.x
+ version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ jest:
+ specifier: 29.5.x
+ version: 29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
+ typescript:
+ specifier: 5.7.x
+ version: 5.7.2
+ webpack:
+ specifier: 5.97.x
+ version: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack-cli:
+ specifier: 5.1.x
+ version: 5.1.4(webpack@5.97.1)
+
plugins/woocommerce:
dependencies:
'@woocommerce/admin-library':
@@ -3126,7 +3172,7 @@ importers:
version: 7.0.1
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components':
specifier: wp-6.6
version: 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -3135,7 +3181,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -3190,7 +3236,7 @@ importers:
version: 2.17.0(wp-prettier@2.8.5)
'@wordpress/scripts':
specifier: ^19.2.4
- version: 19.2.4(@babel/core@7.26.0)(@swc/core@1.3.100)(file-loader@6.2.0(webpack@5.97.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))(typescript@5.7.2)(uglify-js@3.17.4)
+ version: 19.2.4(@babel/core@7.29.0)(@swc/core@1.3.100)(file-loader@6.2.0(webpack@5.105.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))(typescript@5.7.2)(uglify-js@3.17.4)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -3199,7 +3245,7 @@ importers:
version: wp-prettier@2.8.5
ts-loader:
specifier: 9.5.x
- version: 9.5.1(typescript@5.7.2)(webpack@5.97.1)
+ version: 9.5.1(typescript@5.7.2)(webpack@5.105.2)
typescript:
specifier: 5.7.x
version: 5.7.2
@@ -3268,7 +3314,7 @@ importers:
version: 7.0.1(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data':
specifier: wp-6.6
version: 10.0.2(react@18.3.1)
@@ -3289,7 +3335,7 @@ importers:
version: 4.0.1
'@wordpress/edit-site':
specifier: 5.15.0
- version: 5.15.0(patch_hash=63381743e38412fb89154386a5d169639ca10f8315407527829db669201fce9b)(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.15.0(patch_hash=63381743e38412fb89154386a5d169639ca10f8315407527829db669201fce9b)(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/editor':
specifier: wp-6.6
version: 14.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
@@ -3310,7 +3356,7 @@ importers:
version: 10.0.2(react@18.3.1)
'@wordpress/interface':
specifier: ^5.24.0
- version: 5.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/keycodes':
specifier: wp-6.6
version: 4.0.1
@@ -3352,7 +3398,7 @@ importers:
version: 3.34.0
debug:
specifier: ^4.3.4
- version: 4.3.4(supports-color@9.4.0)
+ version: 4.3.4
downshift:
specifier: ^9.0.8
version: 9.0.8(react@18.3.1)
@@ -3410,7 +3456,7 @@ importers:
version: 4.1.0
'@automattic/webpack-rtl-plugin':
specifier: 6.0.x
- version: 6.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.0.0(webpack@5.97.1)
'@babel/cli':
specifier: 7.25.7
version: 7.25.7(@babel/core@7.25.7)
@@ -3437,7 +3483,7 @@ importers:
version: 8.11.3
'@testing-library/jest-dom':
specifier: ^6.x.x
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
'@testing-library/react':
specifier: ^16.x.x
version: 16.1.0(@testing-library/dom@8.11.3)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -3575,7 +3621,7 @@ importers:
version: 8.40.1-next.v.202602271551.0
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/browserslist-config':
specifier: next
version: 6.40.1-next.v.202602271551.0
@@ -3611,7 +3657,7 @@ importers:
version: 29.5.0(@babel/core@7.25.7)
babel-loader:
specifier: 9.2.x
- version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
babel-plugin-transform-react-remove-prop-types:
specifier: 0.4.24
version: 0.4.24
@@ -3626,10 +3672,10 @@ importers:
version: 3.3.7
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -3647,7 +3693,7 @@ importers:
version: 7.33.2(eslint@8.55.0)
fork-ts-checker-webpack-plugin:
specifier: 9.0.x
- version: 9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 9.0.2(typescript@5.7.2)(webpack@5.97.1)
fs-extra:
specifier: 11.1.1
version: 11.1.1
@@ -3668,7 +3714,7 @@ importers:
version: 2.0.0
mini-css-extract-plugin:
specifier: 2.9.x
- version: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ version: 2.9.2(webpack@5.97.1)
moment:
specifier: ^2.29.4
version: 2.29.4
@@ -3725,7 +3771,7 @@ importers:
version: 1.69.5
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
stylelint:
specifier: ^14.16.1
version: 14.16.1
@@ -3914,7 +3960,7 @@ importers:
version: '@wordpress/components@14.2.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react-with-direction@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(reakit-utils@0.15.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))'
wordpress-components-slotfill:
specifier: npm:@wordpress/components@wp-6.5
- version: '@wordpress/components@26.0.6(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)'
+ version: '@wordpress/components@26.0.6(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)'
devDependencies:
'@automattic/color-studio':
specifier: 4.0.0
@@ -3981,7 +4027,7 @@ importers:
version: 9.3.3
'@testing-library/jest-dom':
specifier: 6.4.5
- version: 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
+ version: 6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
'@testing-library/react':
specifier: 15.0.7
version: 15.0.7(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -4062,7 +4108,7 @@ importers:
version: 4.35.0
'@wordpress/block-editor':
specifier: wp-6.6
- version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/block-library':
specifier: wp-6.6
version: 9.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
@@ -4077,7 +4123,7 @@ importers:
version: 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data':
specifier: wp-6.6
- version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data-controls':
specifier: 2.2.7
version: 2.2.7(react@18.3.1)
@@ -4107,7 +4153,7 @@ importers:
version: 11.0.1-next.v.20260206T143.0(@types/node@22.9.1)
'@wordpress/format-library':
specifier: wp-6.6
- version: 5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/hooks':
specifier: wp-6.6
version: 4.0.1
@@ -4179,13 +4225,13 @@ importers:
version: 5.2.2(webpack@5.97.1)
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
core-js:
specifier: 3.25.0
version: 3.25.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 6.11.0(webpack@5.97.1)
cssnano:
specifier: 5.1.12
version: 5.1.12(postcss@8.4.49)
@@ -4263,7 +4309,7 @@ importers:
version: 13.0.1
mini-css-extract-plugin:
specifier: 2.9.x
- version: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ version: 2.9.2(webpack@5.97.1)
msw:
specifier: 2.10.4
version: 2.10.4(@types/node@22.9.1)(typescript@5.7.2)
@@ -4308,7 +4354,7 @@ importers:
version: 4.1.1
sass-loader:
specifier: 10.5.x
- version: 10.5.0(sass@1.69.5)(webpack@5.97.1(@swc/core@1.3.100))
+ version: 10.5.0(sass@1.69.5)(webpack@5.97.1)
storybook:
specifier: ^7.6.4
version: 7.6.4(encoding@0.1.13)
@@ -4367,7 +4413,7 @@ importers:
version: 20.17.8
'@wordpress/scripts':
specifier: ^30.23.0
- version: 30.23.0(@playwright/test@1.57.0)(@swc/core@1.3.100)(@types/eslint@8.44.8)(@types/node@20.17.8)(@types/webpack@4.41.38)(@wordpress/env@10.32.0(@types/node@20.17.8))(file-loader@6.2.0(webpack@5.97.1))(node-notifier@8.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.11.1(stylelint@14.16.1))(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(webpack-hot-middleware@2.25.4)
+ version: 30.23.0(@playwright/test@1.57.0)(@swc/core@1.3.100)(@types/eslint@8.44.8)(@types/node@20.17.8)(@types/webpack@4.41.38)(@wordpress/env@10.32.0(@types/node@20.17.8))(file-loader@6.2.0(webpack@5.97.1))(node-notifier@8.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.11.1(stylelint@14.16.1))(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.25.4)
'@wordpress/stylelint-config':
specifier: ^21.36.0
version: 21.36.0(postcss@8.4.49)(stylelint@14.16.1)
@@ -4482,7 +4528,7 @@ importers:
version: 29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
ts-jest:
specifier: 29.1.x
- version: 29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
+ version: 29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
ts-node:
specifier: ^10.9.2
version: 10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)
@@ -4521,7 +4567,7 @@ importers:
version: 3.21.0
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)
+ version: 10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)
tslib:
specifier: ^2.6.2
version: 2.6.3
@@ -4658,7 +4704,7 @@ importers:
version: link:../../packages/js/eslint-plugin
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.0(webpack@5.97.1(@swc/core@1.3.100))
+ version: 13.0.0(webpack@5.97.1)
eslint:
specifier: ^8.55.0
version: 8.55.0
@@ -4670,7 +4716,7 @@ importers:
version: 1.2.2
ts-jest:
specifier: 29.1.x
- version: 29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
+ version: 29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
ts-loader:
specifier: 9.5.x
version: 9.5.1(typescript@5.7.2)(webpack@5.97.1)
@@ -4810,13 +4856,13 @@ importers:
devDependencies:
'@babel/preset-env':
specifier: 7.25.7
- version: 7.25.7(@babel/core@7.26.0)
+ version: 7.25.7(@babel/core@7.29.0)
'@babel/preset-react':
specifier: 7.25.7
- version: 7.25.7(@babel/core@7.26.0)
+ version: 7.25.7(@babel/core@7.29.0)
'@babel/preset-typescript':
specifier: 7.25.7
- version: 7.25.7(@babel/core@7.26.0)
+ version: 7.25.7(@babel/core@7.29.0)
'@babel/runtime':
specifier: 7.25.7
version: 7.25.7
@@ -4864,7 +4910,7 @@ importers:
version: 7.6.19(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)
'@storybook/react-webpack5':
specifier: 7.6.19
- version: 7.6.19(@babel/core@7.26.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)
+ version: 7.6.19(@babel/core@7.29.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)
'@storybook/theming':
specifier: 7.6.19
version: 7.6.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -5091,10 +5137,18 @@ packages:
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.26.2':
resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.29.0':
+ resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.12.9':
resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==}
engines: {node: '>=6.9.0'}
@@ -5103,8 +5157,8 @@ packages:
resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.26.0':
- resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
+ '@babel/core@7.29.0':
+ resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
engines: {node: '>=6.9.0'}
'@babel/eslint-parser@7.23.3':
@@ -5129,6 +5183,10 @@ packages:
resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.29.1':
+ resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-annotate-as-pure@7.25.9':
resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
engines: {node: '>=6.9.0'}
@@ -5137,11 +5195,9 @@ packages:
resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.23.6':
- resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==}
+ '@babel/helper-compilation-targets@7.28.6':
+ resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==}
engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
'@babel/helper-create-class-features-plugin@7.25.9':
resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==}
@@ -5165,16 +5221,8 @@ packages:
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- '@babel/helper-environment-visitor@7.24.7':
- resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-function-name@7.24.7':
- resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-member-expression-to-functions@7.23.0':
- resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
engines: {node: '>=6.9.0'}
'@babel/helper-member-expression-to-functions@7.25.9':
@@ -5185,15 +5233,21 @@ packages:
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.28.6':
+ resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.26.0':
resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-optimise-call-expression@7.22.5':
- resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
+ '@babel/helper-module-transforms@7.28.6':
+ resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
'@babel/helper-optimise-call-expression@7.25.9':
resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
@@ -5206,14 +5260,12 @@ packages:
resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-remap-async-to-generator@7.25.9':
- resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==}
+ '@babel/helper-plugin-utils@7.28.6':
+ resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==}
engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- '@babel/helper-replace-supers@7.22.20':
- resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ '@babel/helper-remap-async-to-generator@7.25.9':
+ resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -5224,10 +5276,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-simple-access@7.22.5':
- resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-simple-access@7.25.9':
resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==}
engines: {node: '>=6.9.0'}
@@ -5244,14 +5292,26 @@ packages:
resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.25.9':
resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.28.5':
+ resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.25.9':
resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-wrap-function@7.25.9':
resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==}
engines: {node: '>=6.9.0'}
@@ -5260,6 +5320,10 @@ packages:
resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@7.29.2':
+ resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
@@ -5278,6 +5342,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.29.2':
+ resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9':
resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==}
engines: {node: '>=6.9.0'}
@@ -5462,8 +5531,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-jsx@7.25.9':
- resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
+ '@babel/plugin-syntax-jsx@7.28.6':
+ resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -5516,6 +5585,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
+ '@babel/plugin-syntax-typescript@7.28.6':
+ resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
'@babel/plugin-syntax-unicode-sets-regex@7.18.6':
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
@@ -5965,6 +6040,10 @@ packages:
resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.28.6':
+ resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/traverse@7.25.3':
resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==}
engines: {node: '>=6.9.0'}
@@ -5973,10 +6052,18 @@ packages:
resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.29.0':
+ resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.26.0':
resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.29.0':
+ resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
+ engines: {node: '>=6.9.0'}
+
'@bartekbp/typescript-checkstyle@5.0.0':
resolution: {integrity: sha512-c4HUbr7V/6M5W7dGpEkLtjfAM6scvGr2/9OLw1Hv7ohfsnrtd7X43bjcHjX1AmRH27PmTpv1YjihbwU72MTPcw==}
hasBin: true
@@ -6558,6 +6645,14 @@ packages:
node-notifier:
optional: true
+ '@jest/diff-sequences@30.0.1':
+ resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/diff-sequences@30.3.0':
+ resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/environment@26.6.2':
resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==}
engines: {node: '>= 10.14.2'}
@@ -6566,14 +6661,30 @@ packages:
resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/environment@30.2.0':
+ resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/expect-utils@29.7.0':
resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/expect-utils@30.2.0':
+ resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/expect-utils@30.3.0':
+ resolution: {integrity: sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/expect@29.7.0':
resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/expect@30.2.0':
+ resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/fake-timers@26.6.2':
resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==}
engines: {node: '>= 10.14.2'}
@@ -6582,14 +6693,34 @@ packages:
resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/fake-timers@30.2.0':
+ resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/get-type@30.1.0':
+ resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/globals@26.6.2':
resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==}
engines: {node: '>= 10.14.2'}
+ '@jest/globals@29.5.0':
+ resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
'@jest/globals@29.7.0':
resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/globals@30.2.0':
+ resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/pattern@30.0.1':
+ resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/reporters@26.6.2':
resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==}
engines: {node: '>= 10.14.2'}
@@ -6607,6 +6738,14 @@ packages:
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/schemas@30.0.5':
+ resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/snapshot-utils@30.2.0':
+ resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/source-map@26.6.2':
resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==}
engines: {node: '>= 10.14.2'}
@@ -6643,6 +6782,10 @@ packages:
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/transform@30.2.0':
+ resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/types@26.6.2':
resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
engines: {node: '>= 10.14.2'}
@@ -6655,10 +6798,24 @@ packages:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ '@jest/types@30.2.0':
+ resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/types@30.3.0':
+ resolution: {integrity: sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
'@jridgewell/gen-mapping@0.3.5':
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -6673,9 +6830,15 @@ packages:
'@jridgewell/sourcemap-codec@1.4.15':
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
@@ -7313,6 +7476,10 @@ packages:
resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
'@playwright/test@1.57.0':
resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==}
engines: {node: '>=18'}
@@ -7953,6 +8120,9 @@ packages:
'@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+ '@sinclair/typebox@0.34.49':
+ resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==}
+
'@sindresorhus/is@4.6.0':
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
@@ -7963,9 +8133,15 @@ packages:
'@sinonjs/commons@3.0.0':
resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
+ '@sinonjs/commons@3.0.1':
+ resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
+
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+ '@sinonjs/fake-timers@13.0.5':
+ resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==}
+
'@sinonjs/fake-timers@6.0.1':
resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==}
@@ -9275,11 +9451,8 @@ packages:
'@types/estree@0.0.51':
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
- '@types/estree@1.0.5':
- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
-
- '@types/estree@1.0.6':
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/expect@1.20.4':
resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==}
@@ -9350,11 +9523,14 @@ packages:
'@types/jest@29.5.14':
resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
+ '@types/jest@30.0.0':
+ resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==}
+
'@types/jquery@3.5.14':
resolution: {integrity: sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==}
- '@types/jquery@3.5.29':
- resolution: {integrity: sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==}
+ '@types/jquery@3.5.33':
+ resolution: {integrity: sha512-SeyVJXlCZpEki5F0ghuYe+L+PprQta6nRZqhONt9F13dWBtR/ftoaIbdRQ7cis7womE+X2LKhsDdDtkkDhJS6g==}
'@types/js-cookie@3.0.6':
resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==}
@@ -9678,8 +9854,8 @@ packages:
'@types/yargs@16.0.9':
resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==}
- '@types/yargs@17.0.32':
- resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==}
+ '@types/yargs@17.0.35':
+ resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
@@ -9967,6 +10143,9 @@ packages:
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ '@ungap/structured-clone@1.3.0':
+ resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+
'@use-gesture/core@10.3.0':
resolution: {integrity: sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==}
@@ -9983,36 +10162,24 @@ packages:
peerDependencies:
react: '>= 16.8.0'
- '@webassemblyjs/ast@1.11.6':
- resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
-
'@webassemblyjs/ast@1.14.1':
resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
'@webassemblyjs/ast@1.9.0':
resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==}
- '@webassemblyjs/floating-point-hex-parser@1.11.6':
- resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
-
'@webassemblyjs/floating-point-hex-parser@1.13.2':
resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
'@webassemblyjs/floating-point-hex-parser@1.9.0':
resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==}
- '@webassemblyjs/helper-api-error@1.11.6':
- resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
-
'@webassemblyjs/helper-api-error@1.13.2':
resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
'@webassemblyjs/helper-api-error@1.9.0':
resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==}
- '@webassemblyjs/helper-buffer@1.11.6':
- resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
-
'@webassemblyjs/helper-buffer@1.14.1':
resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
@@ -10028,87 +10195,57 @@ packages:
'@webassemblyjs/helper-module-context@1.9.0':
resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==}
- '@webassemblyjs/helper-numbers@1.11.6':
- resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
-
'@webassemblyjs/helper-numbers@1.13.2':
resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
- '@webassemblyjs/helper-wasm-bytecode@1.11.6':
- resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
-
'@webassemblyjs/helper-wasm-bytecode@1.13.2':
resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
'@webassemblyjs/helper-wasm-bytecode@1.9.0':
resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==}
- '@webassemblyjs/helper-wasm-section@1.11.6':
- resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
-
'@webassemblyjs/helper-wasm-section@1.14.1':
resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
'@webassemblyjs/helper-wasm-section@1.9.0':
resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==}
- '@webassemblyjs/ieee754@1.11.6':
- resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
-
'@webassemblyjs/ieee754@1.13.2':
resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
'@webassemblyjs/ieee754@1.9.0':
resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==}
- '@webassemblyjs/leb128@1.11.6':
- resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
-
'@webassemblyjs/leb128@1.13.2':
resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
'@webassemblyjs/leb128@1.9.0':
resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==}
- '@webassemblyjs/utf8@1.11.6':
- resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
-
'@webassemblyjs/utf8@1.13.2':
resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
'@webassemblyjs/utf8@1.9.0':
resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==}
- '@webassemblyjs/wasm-edit@1.11.6':
- resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
-
'@webassemblyjs/wasm-edit@1.14.1':
resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
'@webassemblyjs/wasm-edit@1.9.0':
resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==}
- '@webassemblyjs/wasm-gen@1.11.6':
- resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
-
'@webassemblyjs/wasm-gen@1.14.1':
resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
'@webassemblyjs/wasm-gen@1.9.0':
resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==}
- '@webassemblyjs/wasm-opt@1.11.6':
- resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
-
'@webassemblyjs/wasm-opt@1.14.1':
resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
'@webassemblyjs/wasm-opt@1.9.0':
resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==}
- '@webassemblyjs/wasm-parser@1.11.6':
- resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
-
'@webassemblyjs/wasm-parser@1.14.1':
resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
@@ -10118,9 +10255,6 @@ packages:
'@webassemblyjs/wast-parser@1.9.0':
resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==}
- '@webassemblyjs/wast-printer@1.11.6':
- resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
-
'@webassemblyjs/wast-printer@1.14.1':
resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
@@ -10312,6 +10446,10 @@ packages:
resolution: {integrity: sha512-cTLwUf6DXkuflgTA+SHRJvI+r8G4SR6nIzsPC77xPQDLeTwWZTE3ZCZlHhczQmOU1dJVjRAAdRI4XVZYWtunZg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/blob@4.20.0':
+ resolution: {integrity: sha512-mwzQjdx8vTGBn61s9b87lwp2idyENblN3OlE04XSBXjKpf8G6fVMH9/7TKsfhqZ40oD1zLvAE8zdbd1KZw+ViQ==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/blob@4.36.0':
resolution: {integrity: sha512-lctZHSmDgysObyBUPeruG6HhkPcLlAms8kTkwLa76ZS2K2qwG9BbaXeFopZnt10Ti91hOVfwitu+d796lfnNkw==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -10337,6 +10475,13 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
+ '@wordpress/block-editor@14.5.0':
+ resolution: {integrity: sha512-9JlGjfu+dfZztYdiKSWAjCqE2CQVaTDg6DSgA1q/lhylBYUMiDNyHd/TEe0cXgSjNxUb1hZ5WPvVSWca9EfPgQ==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+
'@wordpress/block-library@8.24.1':
resolution: {integrity: sha512-sb/UXMHIS6zJviALkGRgYZja4gEvaddQ9KT485MEGbLupgPuw//ywYwefRW0XKnRBIM/eKoq2gBj55+cXnUnXQ==}
engines: {node: '>=12'}
@@ -10411,14 +10556,18 @@ packages:
resolution: {integrity: sha512-ixiRZJnKStFZNE3W2NlBYxKRfNm4tfMzUeRNo5BdsG82qv530kl8DKBFwPAXYfiEU0Yr3xldiQTCR6Qdj/QcrQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
- '@wordpress/browserslist-config@6.30.0':
- resolution: {integrity: sha512-CjirkPIkMf72VQcKmhmQZUJGHHFEt80ITZVgnxEtyswWA6QPRXIwFhQOAElmfhWg2wS6pCncyg6k7DfgYX3bOg==}
- engines: {node: '>=18.12.0', npm: '>=8.19.2'}
-
'@wordpress/browserslist-config@6.40.1-next.v.202602271551.0':
resolution: {integrity: sha512-CFLVKlTqxlD9kkhabgmOhpf6FY9xTPd8XAf2oQUgcYpqjnL6OTavOsdHsR6GUTs3eIZp3KAxa1mmI9aRRkIGvQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/browserslist-config@6.41.1-next.v.202603161435.0':
+ resolution: {integrity: sha512-jUifXtnu/jQp5wKX5lvegdQr60y/YMtkbsYG7bmPcOTFAHHHD4Ms10jQtgHgtoPNBqWHDHcwEl6ryz9Wj24Wpg==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
+ '@wordpress/browserslist-config@6.42.0':
+ resolution: {integrity: sha512-nof8KS4I8lqopdIaAa+Cqz6UtM3x09MpeAH2JWsP2GcczPudClCju67unQGVgsHKXJqAjYtFpx4GfVYn+Rtr/w==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/commands@0.29.0':
resolution: {integrity: sha512-HqTrYfQw/5cdT2hPgmuKW6gugnt1Pqtg9zjRHUa+D4ME7mjR4dYQoHRgnFM+hm8OOuEZRVBsa1kYO3t3041Jew==}
engines: {node: '>=12'}
@@ -10494,6 +10643,13 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
+ '@wordpress/components@29.2.0':
+ resolution: {integrity: sha512-a7vUL4oUGu4Jicqf0cFSdQvGtZVw9h4Gvxr53o8yJYmXY8YRVrbeEsZjA/twaqRa8WxGzzWnWNQ/XwtMEXNG0w==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+
'@wordpress/components@29.6.0':
resolution: {integrity: sha512-kk9GxGnoGBqHz0S4gT2UJHQBwudE1AgTPOc3v3k72kZkDaT88ZayBd/4/gHsa659zImgrwXZ6SjQ6Nczt80Bgg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -10672,6 +10828,10 @@ packages:
resolution: {integrity: sha512-Sb2eJ7S7bn7ODfe0WVgNEqLpilgwpKIoJjVxMxT8wtJpx4rEs25+BAyQ6Bpj6lxX9P99ZmPsdrq5YavxP9NKHg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/date@5.20.0':
+ resolution: {integrity: sha512-V34zSLveuXTe8wvnIpUXroP7dP9FK1HzMmGNB5JtoPhrqJeNvP4fzju8RJwBGpU1sFaqO3w+EZoNdTV9k0hqxA==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/date@5.21.0':
resolution: {integrity: sha512-8Ve5sSaaOOPpkIU7qppXBZZ8ZR1sVUIy1s+MXYkSPRyKYKj5dpIT00n+Znj97FV4B1riaWnLp+hKV3p0vZ28ew==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -10700,6 +10860,12 @@ packages:
peerDependencies:
webpack: ^5.0.0
+ '@wordpress/dependency-extraction-webpack-plugin@6.41.1-next.v.202603161435.0':
+ resolution: {integrity: sha512-pRspAndysUY1g9Zd6SFeKUjb44CFrLgTir3G5TL1exA8mKyDy8BCkRQcS4e3pKJND0x0uzYg4n/i3sol2LM2Pw==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ webpack: ^5.0.0
+
'@wordpress/deprecated@2.12.3':
resolution: {integrity: sha512-qr+yDfTQfI3M4h6oY6IeHWwoHr4jxbILjSlV+Ht6Jjto9Owap6OuzSqR13Ev4xqIoG4C7b5B3gZXVfwVDae1zg==}
@@ -10998,6 +11164,12 @@ packages:
typescript:
optional: true
+ '@wordpress/fields@0.0.11':
+ resolution: {integrity: sha512-ayb097rCW3FDINsjlnyynrW+1ieWxUivSjR5eue6nV//wJ2wPE0tZRbAhaviWhdqzeHjI4vok1ha4RHlTfC1cA==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+
'@wordpress/fields@0.0.17':
resolution: {integrity: sha512-T029zG8C8gI91ddBdPRy30sTzoor1sMvtxrbYnKrqZy/VPWpeDjmX67KPTSwTEif/TiGHVaIVpmk/xQfAxE3dA==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11058,6 +11230,10 @@ packages:
resolution: {integrity: sha512-wnCtif4GsQ3gZgINN2GK6+yLH+vIsW3ASvUfdUlxYMcvMagNhJsqaE6dqsnKkezD8q/WNL7zv82BDyGSLKeHNQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/html-entities@4.20.0':
+ resolution: {integrity: sha512-ZOQ9zsfs5p32K+uAEy2vbY7rnAG5KjMdXwOn4v2FPeXF6A6jWQudK/smV7nRB3ZMaSZnzQ54tiUXbuSpCmmGYA==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/html-entities@4.21.0':
resolution: {integrity: sha512-KVIrleodzty2ye0wCLqYaUBM2PZ7I1mt/+CLj/nfBRyxADpCJKd5hwhqKsnnmpyT7zvvg/4DSLd90a2vFMO5vA==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11298,6 +11474,12 @@ packages:
peerDependencies:
react: ^18.0.0
+ '@wordpress/keyboard-shortcuts@5.10.0':
+ resolution: {integrity: sha512-TEzKDfbRWNemcPeujFg88oYgqk8M0Edc+mzVG52O3ydAfPdd7Q5QKlDtjXJyOM4egaSmDs/j1kzbjwkTFw+zLA==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+
'@wordpress/keyboard-shortcuts@5.20.0':
resolution: {integrity: sha512-1f71Zwx23W0iyox2o4cu0w3h21uEV/mra4s0Ol+ezhHJ2qg/ZG2FFS25lo9AYOCJZpP0cNvlI7js1wC4/taOQQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11489,6 +11671,13 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
+ '@wordpress/preferences@4.10.0':
+ resolution: {integrity: sha512-QrqsJXJsu7BcHWgH/QCnjOSfDRg50NFcHQpBrsnULumPgUGlkZZraqkuCMKss57N1dqPjQWnc3819JmxzqZBaQ==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+ react-dom: ^18.0.0
+
'@wordpress/preferences@4.20.0':
resolution: {integrity: sha512-oW7N8RPkXeJFZe/6aRHyWgzj0y9CjT3ATF+JPtQOUcKnNcSuMdaOU22X7jGBaCgU0Yk7frC39a30156nkv9Gpw==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11617,12 +11806,24 @@ packages:
resolution: {integrity: sha512-epLzW+hxekcZwO0C4u8wVL0j9Ko+5Go20zQ2IN9WBSXXb9xOTI8Nje+pww70ukrkUk2UqBvXP17NvSdYV5LTwA==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/private-apis@1.16.0':
+ resolution: {integrity: sha512-k/AQ11+vlbpSWhyOU5t8huoGdN+PursA8bUxVfhEnqcKRWTK+LKSmSEpdyL1sv6XJqznWYjgaNSdIxTkadsPpg==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/private-apis@1.19.1':
resolution: {integrity: sha512-VfmFB307cU7B8GLb2gNfkA0q5Ujv+FTChsE3Z+8487dznlwuPH7fR0/qqpXYFe6ZqUqdotek8DqTYi8U5C5YdQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
- '@wordpress/private-apis@1.40.0':
- resolution: {integrity: sha512-68cwZKVq8Xy8GBzKoDRuV4b3pQ4nJFItY689HXp+poc0XXrnAeC4ZhjeSgS1qGRpFo6RVvLjjcaZsN2OrSSMvQ==}
+ '@wordpress/private-apis@1.21.0':
+ resolution: {integrity: sha512-QHbaw13eCJZYinL1r917KMFajMs88IA4oKODlrLv3HWDqH08BH7//BLqWq4/pMBTRgFE37GlSVoF7d43qmTRhg==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
+ '@wordpress/private-apis@1.36.0':
+ resolution: {integrity: sha512-fbkwLei2A7Var0nqiIccKbxzrwASs/dBIYoTzq713I6w3Q9dCARStTs9HHDU2Y+gTdJlGh9cDcacc5IfVJO5kQ==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
+ '@wordpress/private-apis@1.8.1':
+ resolution: {integrity: sha512-/5PV8+QfkaLJs9TsFTIVMc3Ns+KdysFzS5ZGSmRGgsjzzgqHZb670mxf/6YaFldNjELbg5QsvcHNm3mkfkYiQg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
'@wordpress/react-i18n@3.55.0':
@@ -11678,6 +11879,18 @@ packages:
peerDependencies:
react: ^18.0.0
+ '@wordpress/rich-text@7.20.0':
+ resolution: {integrity: sha512-irx6cvmoxSSajzGGt5iVxek3vNfG5LslORQ1g7HXcNawfFBxhptU3vzPF2+ywvs6o3BCbTZVfa98rOfX3C2J/Q==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+
+ '@wordpress/rich-text@7.21.0':
+ resolution: {integrity: sha512-gTPh7++BisvKbSjDonI4h9I+acQnrVDga5B+tmkWACwizevdY8dlikktTPUiIHqraGP2ZH1ATi2mES9NYw7xJw==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ peerDependencies:
+ react: ^18.0.0
+
'@wordpress/rich-text@7.36.0':
resolution: {integrity: sha512-ibvCuO7H1qLB4BuAsljqJYZKB3zWnX3EqPZEMtKG3J1vDfMLOHC66Cwh/77wfWDoubwA8J709eYcmvRX5A8QBA==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11782,6 +11995,10 @@ packages:
resolution: {integrity: sha512-aM5bbJn6m8SHRotCoh/fSGuIB0MQJoVFBjpzIDoUDQ1KlO7CbY+fj9daDV1FZPMNv0h0ZEFWZ+y7Gv/CERypMA==}
engines: {node: '>=12'}
+ '@wordpress/style-engine@2.10.0':
+ resolution: {integrity: sha512-LNKaAmSURtZSdmv7MhGk936pzMO6gtVTZnqL3NYFLJriFxJnMLI8kLV5KKWmJA/p1TPUmnxkABTI6qZjsM36Mg==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/style-engine@2.20.0':
resolution: {integrity: sha512-6hG3agp8+jpSFm9PG/c2uap7ub3uagdbFIkJjQflF2u1JkN7/8A7AUCmBiUVKBM3ovqZOcfRvCd2VBqfure/8g==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11838,6 +12055,10 @@ packages:
resolution: {integrity: sha512-xzNGzAZ87GERq7rZvZjMv742nj37tSLFBb8+c7oaLdpUpfn8YTaXQacvphdN2jmtfHvEZHivW7hErwqF9eQW/A==}
engines: {node: '>=12'}
+ '@wordpress/token-list@3.10.0':
+ resolution: {integrity: sha512-BSdvKCQLRQFV/cjsibfiuKdbBVYy7k3X3NHB8ojzZUScEOpnjV5PWnnZ0TJK0hZUPnLEiBsMEaUIqUw+VKXX0g==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/token-list@3.20.0':
resolution: {integrity: sha512-34BQdrFVs2c/mh/ycNVXqKauFQBlg8D1Wxp89UgaCnaoUZSob/o3YYQTODNBcXaepDsLO5tc3VzyybXYDoMBtg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -11976,6 +12197,10 @@ packages:
resolution: {integrity: sha512-9aK8WTN2n/j0GlPuHoICqbakivLmk7oWhRhGcm8Lasyv28g3qVqTaBQtvuGufwu48OuTf0YOc3XhCnAaSfSYyg==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/wordcount@4.10.0':
+ resolution: {integrity: sha512-RtdSPRnSwS7U6JRa4YtnqCO2iWNU6kpyvRWpsjr6U/Xrg632vIv4Q8qcHMxbZRVgAMtzdiUDlDEOy4JPXZI1eQ==}
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/wordcount@4.20.0':
resolution: {integrity: sha512-3RP94Xt3TTnLrfuVOiQE80tUluq6jLoPeQD1V7IiZMTZUw2gpgxE6ZX81yoM1oYOUWCp1n9hqsiF4zaRQ/75cQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -12093,11 +12318,11 @@ packages:
acorn-globals@7.0.1:
resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
- acorn-import-assertions@1.9.0:
- resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==}
- deprecated: package has been renamed to acorn-import-attributes
+ acorn-import-phases@1.0.4:
+ resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==}
+ engines: {node: '>=10.13.0'}
peerDependencies:
- acorn: ^8
+ acorn: ^8.14.0
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -12132,6 +12357,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
address@1.2.2:
resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
engines: {node: '>= 10.0.0'}
@@ -12718,6 +12948,10 @@ packages:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
+ babel-plugin-istanbul@7.0.1:
+ resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
+ engines: {node: '>=12'}
+
babel-plugin-jest-hoist@26.6.2:
resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==}
engines: {node: '>= 10.14.2'}
@@ -12765,6 +12999,11 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ babel-preset-current-node-syntax@1.2.0:
+ resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0 || ^8.0.0-0
+
babel-preset-jest@26.6.2:
resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==}
engines: {node: '>= 10.14.2'}
@@ -12824,6 +13063,11 @@ packages:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: '>=0.10.0'}
+ baseline-browser-mapping@2.10.13:
+ resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
basic-ftp@5.0.5:
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
engines: {node: '>=10.0.0'}
@@ -13005,6 +13249,11 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
bs-logger@0.2.6:
resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
engines: {node: '>= 6'}
@@ -13182,15 +13431,12 @@ packages:
caniuse-lite@1.0.30001568:
resolution: {integrity: sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==}
- caniuse-lite@1.0.30001651:
- resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==}
-
- caniuse-lite@1.0.30001683:
- resolution: {integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==}
-
caniuse-lite@1.0.30001703:
resolution: {integrity: sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==}
+ caniuse-lite@1.0.30001784:
+ resolution: {integrity: sha512-WU346nBTklUV9YfUl60fqRbU5ZqyXlqvo1SgigE1OAXK5bFL8LL9q1K7aap3N739l4BvNqnkm3YrGHiY9sfUQw==}
+
canvas-confetti@1.9.2:
resolution: {integrity: sha512-6Xi7aHHzKwxZsem4mCKoqP6YwUG3HamaHHAlz1hTNQPCqXhARFpSXnkC9TWlahHY5CG6hSL5XexNjxK8irVErg==}
@@ -13344,6 +13590,10 @@ packages:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
+ ci-info@4.4.0:
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
+ engines: {node: '>=8'}
+
cipher-base@1.0.4:
resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==}
@@ -14222,8 +14472,8 @@ packages:
supports-color:
optional: true
- debug@4.3.6:
- resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -14231,8 +14481,8 @@ packages:
supports-color:
optional: true
- debug@4.4.0:
- resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -14702,11 +14952,8 @@ packages:
electron-to-chromium@1.5.114:
resolution: {integrity: sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==}
- electron-to-chromium@1.5.64:
- resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==}
-
- electron-to-chromium@1.5.9:
- resolution: {integrity: sha512-HfkT8ndXR0SEkU8gBQQM3rz035bpE/hxkZ1YIt4KJPEFES68HfIU6LzKukH0H794Lm83WJtkSAMfEToxCs15VA==}
+ electron-to-chromium@1.5.331:
+ resolution: {integrity: sha512-IbxXrsTlD3hRodkLnbxAPP4OuJYdWCeM3IOdT+CpcMoIwIoDfCmRpEtSPfwBXxVkg9xmBeY7Lz2Eo2TDn/HC3Q==}
elliptic@6.5.4:
resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==}
@@ -14773,8 +15020,8 @@ packages:
resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==}
engines: {node: '>=10.13.0'}
- enhanced-resolve@5.17.1:
- resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
+ enhanced-resolve@5.20.1:
+ resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==}
engines: {node: '>=10.13.0'}
enquirer@2.4.1:
@@ -14802,11 +15049,6 @@ packages:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
- envinfo@7.13.0:
- resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==}
- engines: {node: '>=4'}
- hasBin: true
-
envinfo@7.14.0:
resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==}
engines: {node: '>=4'}
@@ -14874,12 +15116,12 @@ packages:
es-iterator-helpers@1.0.15:
resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
- es-module-lexer@1.4.1:
- resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
-
es-module-lexer@1.7.0:
resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+ es-module-lexer@2.0.0:
+ resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==}
+
es-object-atoms@1.0.0:
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
engines: {node: '>= 0.4'}
@@ -15406,6 +15648,14 @@ packages:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ expect@30.2.0:
+ resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ expect@30.3.0:
+ resolution: {integrity: sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
@@ -16875,6 +17125,11 @@ packages:
engines: {node: '>=8'}
hasBin: true
+ import-local@3.2.0:
+ resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
+ engines: {node: '>=8'}
+ hasBin: true
+
import-locals@2.0.0:
resolution: {integrity: sha512-1/bPE89IZhyf7dr5Pkz7b4UyVXy5pEt7PTEfye15UEn3AK8+2zwcDCfKk9Pwun4ltfhOSszOrReSsFcDKw/yoA==}
@@ -17444,6 +17699,10 @@ packages:
resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==}
engines: {node: '>=10'}
+ istanbul-lib-instrument@6.0.3:
+ resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
+ engines: {node: '>=10'}
+
istanbul-lib-report@3.0.1:
resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines: {node: '>=10'}
@@ -17563,6 +17822,14 @@ packages:
resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-diff@30.2.0:
+ resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-diff@30.3.0:
+ resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-docblock@26.0.0:
resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==}
engines: {node: '>= 10.14.2'}
@@ -17643,6 +17910,10 @@ packages:
resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-haste-map@30.2.0:
+ resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-jasmine2@26.6.3:
resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==}
engines: {node: '>= 10.14.2'}
@@ -17667,6 +17938,14 @@ packages:
resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-matcher-utils@30.2.0:
+ resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-matcher-utils@30.3.0:
+ resolution: {integrity: sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-message-util@26.6.2:
resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==}
engines: {node: '>= 10.14.2'}
@@ -17675,6 +17954,14 @@ packages:
resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-message-util@30.2.0:
+ resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-message-util@30.3.0:
+ resolution: {integrity: sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-mock@26.6.2:
resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==}
engines: {node: '>= 10.14.2'}
@@ -17683,6 +17970,14 @@ packages:
resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-mock@30.2.0:
+ resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-mock@30.3.0:
+ resolution: {integrity: sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-pnp-resolver@1.2.3:
resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines: {node: '>=6'}
@@ -17704,6 +17999,10 @@ packages:
resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-regex-util@30.0.1:
+ resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-resolve-dependencies@26.6.3:
resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==}
engines: {node: '>= 10.14.2'}
@@ -17753,6 +18052,10 @@ packages:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-snapshot@30.2.0:
+ resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-util@26.6.2:
resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==}
engines: {node: '>= 10.14.2'}
@@ -17765,6 +18068,14 @@ packages:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-util@30.2.0:
+ resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-util@30.3.0:
+ resolution: {integrity: sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-validate@26.6.2:
resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==}
engines: {node: '>= 10.14.2'}
@@ -17793,6 +18104,10 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-worker@30.2.0:
+ resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest@26.6.3:
resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==}
engines: {node: '>= 10.14.2'}
@@ -18245,8 +18560,8 @@ packages:
resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==}
engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
- loader-runner@4.3.0:
- resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ loader-runner@4.3.1:
+ resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
engines: {node: '>=6.11.5'}
loader-utils@1.4.2:
@@ -19165,12 +19480,12 @@ packages:
node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- node-releases@2.0.18:
- resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
-
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ node-releases@2.0.37:
+ resolution: {integrity: sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==}
+
node-stream-zip@1.15.0:
resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==}
engines: {node: '>=0.12.0'}
@@ -19858,6 +20173,10 @@ packages:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
pidtree@0.5.0:
resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==}
engines: {node: '>=0.10'}
@@ -19892,6 +20211,10 @@ packages:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
pkg-dir@3.0.0:
resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==}
engines: {node: '>=6'}
@@ -20542,6 +20865,14 @@ packages:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ pretty-format@30.2.0:
+ resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ pretty-format@30.3.0:
+ resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
pretty-hrtime@1.0.3:
resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
engines: {node: '>= 0.8'}
@@ -20743,6 +21074,7 @@ packages:
engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
deprecated: |-
You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
+
(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
qqjs@0.3.11:
@@ -21840,6 +22172,10 @@ packages:
resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==}
engines: {node: '>= 10.13.0'}
+ schema-utils@4.3.3:
+ resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
+ engines: {node: '>= 10.13.0'}
+
scoped-regex@2.1.0:
resolution: {integrity: sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==}
engines: {node: '>=8'}
@@ -21887,6 +22223,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.4:
+ resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.18.0:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
@@ -22718,6 +23059,10 @@ packages:
synchronous-promise@2.0.17:
resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==}
+ synckit@0.11.12:
+ resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
synckit@0.9.2:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -22753,6 +23098,10 @@ packages:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
+ tapable@2.3.2:
+ resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==}
+ engines: {node: '>=6'}
+
tar-fs@2.0.0:
resolution: {integrity: sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==}
@@ -22847,16 +23196,27 @@ packages:
uglify-js:
optional: true
+ terser-webpack-plugin@5.4.0:
+ resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
terser@4.8.1:
resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==}
engines: {node: '>=6.0.0'}
hasBin: true
- terser@5.26.0:
- resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==}
- engines: {node: '>=10'}
- hasBin: true
-
terser@5.36.0:
resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==}
engines: {node: '>=10'}
@@ -23261,6 +23621,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
uc.micro@1.0.6:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
@@ -23444,14 +23809,14 @@ packages:
resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
engines: {node: '>=4'}
- update-browserslist-db@1.1.0:
- resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
+ update-browserslist-db@1.1.1:
+ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
- update-browserslist-db@1.1.1:
- resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -23766,12 +24131,8 @@ packages:
watchpack@1.7.5:
resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==}
- watchpack@2.4.0:
- resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
- engines: {node: '>=10.13.0'}
-
- watchpack@2.4.1:
- resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==}
+ watchpack@2.5.1:
+ resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==}
engines: {node: '>=10.13.0'}
wbuf@1.7.3:
@@ -23925,8 +24286,8 @@ packages:
webpack-sources@1.4.3:
resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
- webpack-sources@3.2.3:
- resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ webpack-sources@3.3.4:
+ resolution: {integrity: sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==}
engines: {node: '>=10.13.0'}
webpack-virtual-modules@0.2.2:
@@ -23951,8 +24312,8 @@ packages:
webpack-command:
optional: true
- webpack@5.89.0:
- resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==}
+ webpack@5.105.2:
+ resolution: {integrity: sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -24551,7 +24912,7 @@ snapshots:
dependencies:
'@automattic/load-script': 1.0.0
cookie: 0.4.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
hash.js: 1.1.7
tslib: 2.8.1
uuid: 9.0.1
@@ -24649,12 +25010,12 @@ snapshots:
'@automattic/material-design-icons@1.0.0': {}
- '@automattic/site-admin@0.0.1(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(@wordpress/data@10.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
+ '@automattic/site-admin@0.0.1(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(@wordpress/data@10.0.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
dependencies:
'@wordpress/base-styles': 5.20.0
- '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 29.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.20.0(react@18.3.1)
- '@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/dom': 4.20.0
'@wordpress/element': 6.20.0
@@ -24692,7 +25053,7 @@ snapshots:
'@wordpress/primitives': 3.55.0
'@wordpress/react-i18n': 3.55.0
classnames: 2.3.2
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -24713,6 +25074,11 @@ snapshots:
'@automattic/viewport@1.1.0': {}
'@automattic/webpack-rtl-plugin@6.0.0(webpack@5.97.1(@swc/core@1.3.100))':
+ dependencies:
+ rtlcss: 3.5.0
+ webpack: 5.97.1(@swc/core@1.3.100)
+
+ '@automattic/webpack-rtl-plugin@6.0.0(webpack@5.97.1)':
dependencies:
rtlcss: 3.5.0
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
@@ -24755,20 +25121,28 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@7.29.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
'@babel/compat-data@7.26.2': {}
+ '@babel/compat-data@7.29.0': {}
+
'@babel/core@7.12.9':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.29.1
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.12.9)
'@babel/helpers': 7.26.0
- '@babel/parser': 7.26.2
+ '@babel/parser': 7.29.2
'@babel/template': 7.25.9
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
convert-source-map: 1.9.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
lodash: 4.17.21
@@ -24798,20 +25172,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/core@7.26.0':
+ '@babel/core@7.29.0':
dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
- '@babel/helper-compilation-targets': 7.25.9
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
- '@babel/helpers': 7.26.0
- '@babel/parser': 7.26.2
- '@babel/template': 7.25.9
- '@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helpers': 7.29.2
+ '@babel/parser': 7.29.2
+ '@babel/template': 7.28.6
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
+ '@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -24826,9 +25200,9 @@ snapshots:
eslint-visitor-keys: 2.1.0
semver: 6.3.1
- '@babel/eslint-parser@7.23.3(@babel/core@7.26.0)(eslint@7.32.0)':
+ '@babel/eslint-parser@7.23.3(@babel/core@7.29.0)(eslint@7.32.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 7.32.0
eslint-visitor-keys: 2.1.0
@@ -24844,9 +25218,9 @@ snapshots:
'@babel/generator@7.25.0':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 2.5.2
'@babel/generator@7.26.2':
@@ -24857,32 +25231,33 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.0.2
+ '@babel/generator@7.29.1':
+ dependencies:
+ '@babel/parser': 7.29.2
+ '@babel/types': 7.29.0
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.0.2
+
'@babel/helper-annotate-as-pure@7.25.9':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@babel/helper-compilation-targets@7.25.9':
dependencies:
'@babel/compat-data': 7.26.2
'@babel/helper-validator-option': 7.25.9
- browserslist: 4.24.4
+ browserslist: 4.28.2
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.25.7)':
+ '@babel/helper-compilation-targets@7.28.6':
dependencies:
- '@babel/core': 7.25.7
- '@babel/helper-annotate-as-pure': 7.25.9
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-function-name': 7.24.7
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
- '@babel/helper-replace-supers': 7.22.20(@babel/core@7.25.7)
- '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
- '@babel/helper-split-export-declaration': 7.24.7
+ '@babel/compat-data': 7.29.0
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.28.2
+ lru-cache: 5.1.1
semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
'@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.25.7)':
dependencies:
@@ -24897,13 +25272,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)':
+ '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-member-expression-to-functions': 7.25.9
'@babel/helper-optimise-call-expression': 7.25.9
- '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.29.0)
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
'@babel/traverse': 7.25.9
semver: 6.3.1
@@ -24917,9 +25292,9 @@ snapshots:
regexpu-core: 6.2.0
semver: 6.3.1
- '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)':
+ '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
regexpu-core: 6.2.0
semver: 6.3.1
@@ -24931,7 +25306,7 @@ snapshots:
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
'@babel/traverse': 7.25.9
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
lodash.debounce: 4.0.8
resolve: 1.22.8
semver: 6.3.1
@@ -24943,47 +25318,43 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)':
+ '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-environment-visitor@7.24.7':
- dependencies:
- '@babel/types': 7.26.0
-
- '@babel/helper-function-name@7.24.7':
- dependencies:
- '@babel/template': 7.25.9
- '@babel/types': 7.26.0
-
- '@babel/helper-member-expression-to-functions@7.23.0':
- dependencies:
- '@babel/types': 7.26.0
+ '@babel/helper-globals@7.28.0': {}
'@babel/helper-member-expression-to-functions@7.25.9':
dependencies:
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.25.9':
dependencies:
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.28.6':
+ dependencies:
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -25005,27 +25376,34 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-module-imports': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/traverse': 7.25.9
transitivePeerDependencies:
- supports-color
- '@babel/helper-optimise-call-expression@7.22.5':
+ '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
'@babel/helper-optimise-call-expression@7.25.9':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@babel/helper-plugin-utils@7.10.4': {}
'@babel/helper-plugin-utils@7.25.9': {}
+ '@babel/helper-plugin-utils@7.28.6': {}
+
'@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
@@ -25035,22 +25413,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)':
+ '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-wrap-function': 7.25.9
'@babel/traverse': 7.25.9
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.22.20(@babel/core@7.25.7)':
- dependencies:
- '@babel/core': 7.25.7
- '@babel/helper-environment-visitor': 7.24.7
- '@babel/helper-member-expression-to-functions': 7.23.0
- '@babel/helper-optimise-call-expression': 7.22.5
-
'@babel/helper-replace-supers@7.25.9(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
@@ -25060,48 +25431,50 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)':
+ '@babel/helper-replace-supers@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-member-expression-to-functions': 7.25.9
'@babel/helper-optimise-call-expression': 7.25.9
'@babel/traverse': 7.25.9
transitivePeerDependencies:
- supports-color
- '@babel/helper-simple-access@7.22.5':
- dependencies:
- '@babel/types': 7.26.0
-
'@babel/helper-simple-access@7.25.9':
dependencies:
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.25.9':
dependencies:
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-split-export-declaration@7.24.7':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@babel/helper-string-parser@7.25.9': {}
+ '@babel/helper-string-parser@7.27.1': {}
+
'@babel/helper-validator-identifier@7.25.9': {}
+ '@babel/helper-validator-identifier@7.28.5': {}
+
'@babel/helper-validator-option@7.25.9': {}
+ '@babel/helper-validator-option@7.27.1': {}
+
'@babel/helper-wrap-function@7.25.9':
dependencies:
'@babel/template': 7.25.9
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -25110,6 +25483,11 @@ snapshots:
'@babel/template': 7.25.9
'@babel/types': 7.26.0
+ '@babel/helpers@7.29.2':
+ dependencies:
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+
'@babel/highlight@7.23.4':
dependencies:
'@babel/helper-validator-identifier': 7.25.9
@@ -25131,6 +25509,10 @@ snapshots:
dependencies:
'@babel/types': 7.26.0
+ '@babel/parser@7.29.2':
+ dependencies:
+ '@babel/types': 7.29.0
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
@@ -25139,9 +25521,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/traverse': 7.25.9
transitivePeerDependencies:
@@ -25152,9 +25534,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.25.7)':
@@ -25162,9 +25544,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.25.7)':
@@ -25176,12 +25558,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
- '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0)
+ '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -25193,9 +25575,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/traverse': 7.25.9
transitivePeerDependencies:
@@ -25204,7 +25586,7 @@ snapshots:
'@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
- '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.25.7)
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25235,7 +25617,7 @@ snapshots:
'@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9)':
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9)
'@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.12.9)
@@ -25269,9 +25651,9 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.25.7)':
dependencies:
@@ -25288,9 +25670,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.7)':
@@ -25298,9 +25680,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)':
@@ -25308,9 +25690,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)':
@@ -25318,9 +25700,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.25.7)':
@@ -25333,9 +25715,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.25.7)':
@@ -25348,9 +25730,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-flow@7.23.3(@babel/core@7.25.7)':
@@ -25363,9 +25745,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.25.7)':
@@ -25373,9 +25755,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.25.7)':
@@ -25383,9 +25765,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.7)':
@@ -25393,9 +25775,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)':
@@ -25403,44 +25785,44 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9)':
dependencies:
'@babel/core': 7.12.9
- '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.25.7)':
+ '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
- '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-plugin-utils': 7.25.9
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)':
@@ -25448,9 +25830,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)':
@@ -25458,9 +25840,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9)':
@@ -25473,9 +25855,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)':
@@ -25483,9 +25865,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)':
@@ -25493,9 +25875,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)':
@@ -25503,9 +25885,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)':
@@ -25513,9 +25895,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.25.7)':
@@ -25523,21 +25905,32 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
+ '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.25.7)':
+ dependencies:
+ '@babel/core': 7.25.7
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ optional: true
+
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)':
dependencies:
'@babel/core': 7.25.7
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.25.7)':
@@ -25545,9 +25938,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.25.7)':
@@ -25559,11 +25952,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.29.0)
'@babel/traverse': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25577,12 +25970,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -25591,9 +25984,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.25.7)':
@@ -25601,9 +25994,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.25.7)':
@@ -25614,10 +26007,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25630,10 +26023,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)':
+ '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25650,13 +26043,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-classes@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.29.0)
'@babel/traverse': 7.25.9
globals: 11.12.0
transitivePeerDependencies:
@@ -25668,9 +26061,9 @@ snapshots:
'@babel/helper-plugin-utils': 7.25.9
'@babel/template': 7.25.9
- '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/template': 7.25.9
@@ -25679,9 +26072,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.25.7)':
@@ -25690,10 +26083,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.25.7)':
@@ -25701,9 +26094,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.25.7)':
@@ -25712,10 +26105,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.25.7)':
@@ -25723,9 +26116,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.25.7)':
@@ -25733,9 +26126,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)':
+ '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.25.7)':
@@ -25743,9 +26136,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.25.7)':
@@ -25760,11 +26153,11 @@ snapshots:
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.7)
- '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.26.0)':
+ '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.0)
+ '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.29.0)
'@babel/plugin-transform-for-of@7.25.9(@babel/core@7.25.7)':
dependencies:
@@ -25774,9 +26167,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
transitivePeerDependencies:
@@ -25791,9 +26184,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
'@babel/traverse': 7.25.9
@@ -25805,9 +26198,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-literals@7.25.9(@babel/core@7.25.7)':
@@ -25815,9 +26208,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-literals@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.25.7)':
@@ -25825,9 +26218,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.25.7)':
@@ -25835,9 +26228,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.25.7)':
@@ -25848,10 +26241,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25861,7 +26254,7 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-simple-access': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25874,10 +26267,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-simple-access': 7.25.9
transitivePeerDependencies:
@@ -25893,10 +26286,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
'@babel/traverse': 7.25.9
@@ -25911,10 +26304,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -25925,10 +26318,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-new-target@7.25.9(@babel/core@7.25.7)':
@@ -25936,9 +26329,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.25.7)':
@@ -25946,9 +26339,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.25.7)':
@@ -25956,9 +26349,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.25.7)':
@@ -25968,12 +26361,12 @@ snapshots:
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.25.7)
- '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0)
+ '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.29.0)
'@babel/plugin-transform-object-super@7.25.9(@babel/core@7.25.7)':
dependencies:
@@ -25983,11 +26376,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
- '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -25996,9 +26389,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.25.7)':
@@ -26009,9 +26402,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
transitivePeerDependencies:
@@ -26027,9 +26420,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.25.7)':
@@ -26040,10 +26433,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -26057,11 +26450,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
transitivePeerDependencies:
- supports-color
@@ -26071,9 +26464,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.25.7)':
@@ -26086,9 +26479,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.25.7)':
@@ -26098,10 +26491,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -26116,13 +26509,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.26.0)':
+ '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.26.0)
+ '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.29.0)
'@babel/types': 7.26.0
transitivePeerDependencies:
- supports-color
@@ -26133,19 +26526,19 @@ snapshots:
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.25.7)
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
- '@babel/types': 7.26.0
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
+ '@babel/types': 7.29.0
transitivePeerDependencies:
- supports-color
@@ -26155,9 +26548,9 @@ snapshots:
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
@@ -26167,9 +26560,9 @@ snapshots:
'@babel/helper-plugin-utils': 7.25.9
regenerator-transform: 0.15.2
- '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
regenerator-transform: 0.15.2
@@ -26178,9 +26571,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.7)':
@@ -26200,9 +26593,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-spread@7.25.9(@babel/core@7.25.7)':
@@ -26213,9 +26606,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-spread@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
transitivePeerDependencies:
@@ -26226,9 +26619,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.25.7)':
@@ -26236,9 +26629,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.25.7)':
@@ -26246,9 +26639,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-typescript@7.25.9(@babel/core@7.25.7)':
@@ -26262,14 +26655,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-typescript@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.25.9
- '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-skip-transparent-expression-wrappers': 7.25.9
- '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
+ '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -26278,9 +26671,9 @@ snapshots:
'@babel/core': 7.25.7
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.25.7)':
@@ -26289,10 +26682,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.25.7)':
@@ -26301,10 +26694,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.25.7)':
@@ -26313,10 +26706,10 @@ snapshots:
'@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.7)
'@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)':
+ '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.29.0)
'@babel/helper-plugin-utils': 7.25.9
'@babel/preset-env@7.25.7(@babel/core@7.25.7)':
@@ -26408,90 +26801,90 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/preset-env@7.25.7(@babel/core@7.26.0)':
+ '@babel/preset-env@7.25.7(@babel/core@7.29.0)':
dependencies:
'@babel/compat-data': 7.26.2
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-compilation-targets': 7.25.9
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-validator-option': 7.25.9
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0)
- '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0)
- '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0)
- '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0)
- '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0)
- '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0)
- babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0)
- babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0)
- babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0)
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0)
+ '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.29.0)
+ '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.29.0)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0)
+ babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.29.0)
+ babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.29.0)
+ babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.29.0)
core-js-compat: 3.39.0
semver: 6.3.1
transitivePeerDependencies:
@@ -26511,12 +26904,12 @@ snapshots:
'@babel/helper-validator-option': 7.25.9
'@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.7)
- '@babel/preset-flow@7.24.7(@babel/core@7.26.0)':
+ '@babel/preset-flow@7.24.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-validator-option': 7.25.9
- '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.26.0)
+ '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.29.0)
'@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.7)':
dependencies:
@@ -26525,9 +26918,9 @@ snapshots:
'@babel/types': 7.26.0
esutils: 2.0.3
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/types': 7.26.0
esutils: 2.0.3
@@ -26544,15 +26937,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/preset-react@7.25.7(@babel/core@7.26.0)':
+ '@babel/preset-react@7.25.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-validator-option': 7.25.9
- '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.26.0)
- '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0)
+ '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.29.0)
+ '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -26567,14 +26960,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/preset-typescript@7.25.7(@babel/core@7.26.0)':
+ '@babel/preset-typescript@7.25.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.25.9
'@babel/helper-validator-option': 7.25.9
- '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.26.0)
- '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0)
- '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0)
+ '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.29.0)
+ '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -26640,14 +27033,20 @@ snapshots:
'@babel/parser': 7.26.2
'@babel/types': 7.26.0
+ '@babel/template@7.28.6':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/parser': 7.29.2
+ '@babel/types': 7.29.0
+
'@babel/traverse@7.25.3':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.29.1
'@babel/parser': 7.26.2
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
- debug: 4.4.0
+ '@babel/types': 7.29.0
+ debug: 4.4.3(supports-color@9.4.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -26659,16 +27058,33 @@ snapshots:
'@babel/parser': 7.26.2
'@babel/template': 7.25.9
'@babel/types': 7.26.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@7.29.0':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.29.2
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+ debug: 4.4.3(supports-color@9.4.0)
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.26.0':
dependencies:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
+ '@babel/types@7.29.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+
'@bartekbp/typescript-checkstyle@5.0.0':
dependencies:
'@aivenio/tsc-output-parser': 2.1.1
@@ -26920,21 +27336,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@emotion/styled@11.11.0(@emotion/react@11.11.1(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.25.7
- '@emotion/babel-plugin': 11.11.0
- '@emotion/is-prop-valid': 1.2.1
- '@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
- '@emotion/serialize': 1.1.2
- '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1)
- '@emotion/utils': 1.2.1
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.16
- transitivePeerDependencies:
- - supports-color
-
'@emotion/unitless@0.8.1': {}
'@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)':
@@ -27046,7 +27447,7 @@ snapshots:
'@eslint/eslintrc@0.4.3':
dependencies:
ajv: 6.12.6
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
espree: 7.3.1
globals: 13.24.0
ignore: 4.0.6
@@ -27060,7 +27461,7 @@ snapshots:
'@eslint/eslintrc@2.1.4':
dependencies:
ajv: 6.12.6
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
espree: 9.6.1
globals: 13.24.0
ignore: 5.3.0
@@ -27133,7 +27534,7 @@ snapshots:
'@humanwhocodes/config-array@0.11.13':
dependencies:
'@humanwhocodes/object-schema': 2.0.1
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -27141,7 +27542,7 @@ snapshots:
'@humanwhocodes/config-array@0.5.0':
dependencies:
'@humanwhocodes/object-schema': 1.2.1
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -27510,6 +27911,49 @@ snapshots:
- supports-color
- ts-node
+ '@jest/core@29.7.0(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))':
+ dependencies:
+ '@jest/console': 29.7.0
+ '@jest/reporters': 29.7.0(node-notifier@8.0.2)
+ '@jest/test-result': 29.7.0
+ '@jest/transform': 29.7.0
+ '@jest/types': 29.6.3
+ '@types/node': 20.17.8
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ jest-changed-files: 29.7.0
+ jest-config: 29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
+ jest-haste-map: 29.7.0
+ jest-message-util: 29.7.0
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-resolve-dependencies: 29.7.0
+ jest-runner: 29.7.0
+ jest-runtime: 29.7.0
+ jest-snapshot: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ jest-watcher: 29.7.0
+ micromatch: 4.0.8
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-ansi: 6.0.1
+ optionalDependencies:
+ node-notifier: 8.0.2
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+ - ts-node
+
+ '@jest/diff-sequences@30.0.1':
+ optional: true
+
+ '@jest/diff-sequences@30.3.0':
+ optional: true
+
'@jest/environment@26.6.2':
dependencies:
'@jest/fake-timers': 26.6.2
@@ -27524,10 +27968,28 @@ snapshots:
'@types/node': 20.17.8
jest-mock: 29.7.0
+ '@jest/environment@30.2.0':
+ dependencies:
+ '@jest/fake-timers': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 20.17.8
+ jest-mock: 30.2.0
+ optional: true
+
'@jest/expect-utils@29.7.0':
dependencies:
jest-get-type: 29.6.3
+ '@jest/expect-utils@30.2.0':
+ dependencies:
+ '@jest/get-type': 30.1.0
+ optional: true
+
+ '@jest/expect-utils@30.3.0':
+ dependencies:
+ '@jest/get-type': 30.1.0
+ optional: true
+
'@jest/expect@29.7.0':
dependencies:
expect: 29.7.0
@@ -27535,6 +27997,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@jest/expect@30.2.0':
+ dependencies:
+ expect: 30.2.0
+ jest-snapshot: 30.2.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
'@jest/fake-timers@26.6.2':
dependencies:
'@jest/types': 26.6.2
@@ -27553,12 +28023,34 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
+ '@jest/fake-timers@30.2.0':
+ dependencies:
+ '@jest/types': 30.2.0
+ '@sinonjs/fake-timers': 13.0.5
+ '@types/node': 20.17.8
+ jest-message-util: 30.2.0
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
+ optional: true
+
+ '@jest/get-type@30.1.0':
+ optional: true
+
'@jest/globals@26.6.2':
dependencies:
'@jest/environment': 26.6.2
'@jest/types': 26.6.2
expect: 26.6.2
+ '@jest/globals@29.5.0':
+ dependencies:
+ '@jest/environment': 29.7.0
+ '@jest/expect': 29.7.0
+ '@jest/types': 29.6.3
+ jest-mock: 29.7.0
+ transitivePeerDependencies:
+ - supports-color
+
'@jest/globals@29.7.0':
dependencies:
'@jest/environment': 29.7.0
@@ -27568,6 +28060,22 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@jest/globals@30.2.0':
+ dependencies:
+ '@jest/environment': 30.2.0
+ '@jest/expect': 30.2.0
+ '@jest/types': 30.2.0
+ jest-mock: 30.2.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
+ '@jest/pattern@30.0.1':
+ dependencies:
+ '@types/node': 20.17.8
+ jest-regex-util: 30.0.1
+ optional: true
+
'@jest/reporters@26.6.2':
dependencies:
'@bcoe/v8-coverage': 0.2.3
@@ -27606,7 +28114,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
'@types/node': 20.17.8
chalk: 4.1.2
collect-v8-coverage: 1.0.2
@@ -27634,6 +28142,19 @@ snapshots:
dependencies:
'@sinclair/typebox': 0.27.8
+ '@jest/schemas@30.0.5':
+ dependencies:
+ '@sinclair/typebox': 0.34.49
+ optional: true
+
+ '@jest/snapshot-utils@30.2.0':
+ dependencies:
+ '@jest/types': 30.2.0
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ natural-compare: 1.4.0
+ optional: true
+
'@jest/source-map@26.6.2':
dependencies:
callsites: 3.1.0
@@ -27642,7 +28163,7 @@ snapshots:
'@jest/source-map@29.6.3':
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
callsites: 3.1.0
graceful-fs: 4.2.11
@@ -27660,7 +28181,7 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.2
- '@jest/test-sequencer@26.6.3':
+ '@jest/test-sequencer@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))':
dependencies:
'@jest/test-result': 26.6.2
graceful-fs: 4.2.11
@@ -27668,7 +28189,11 @@ snapshots:
jest-runner: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
jest-runtime: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
transitivePeerDependencies:
+ - bufferutil
+ - canvas
- supports-color
+ - ts-node
+ - utf-8-validate
'@jest/test-sequencer@29.7.0':
dependencies:
@@ -27721,7 +28246,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
'@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
convert-source-map: 2.0.0
@@ -27737,6 +28262,27 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@jest/transform@30.2.0':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@jest/types': 30.2.0
+ '@jridgewell/trace-mapping': 0.3.31
+ babel-plugin-istanbul: 7.0.1
+ chalk: 4.1.2
+ convert-source-map: 2.0.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 30.2.0
+ jest-regex-util: 30.0.1
+ jest-util: 30.2.0
+ micromatch: 4.0.8
+ pirates: 4.0.7
+ slash: 3.0.0
+ write-file-atomic: 5.0.1
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
'@jest/types@26.6.2':
dependencies:
'@types/istanbul-lib-coverage': 2.0.6
@@ -27759,14 +28305,46 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
'@types/node': 20.17.8
- '@types/yargs': 17.0.32
+ '@types/yargs': 17.0.35
+ chalk: 4.1.2
+
+ '@jest/types@30.2.0':
+ dependencies:
+ '@jest/pattern': 30.0.1
+ '@jest/schemas': 30.0.5
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 20.17.8
+ '@types/yargs': 17.0.35
chalk: 4.1.2
+ optional: true
+
+ '@jest/types@30.3.0':
+ dependencies:
+ '@jest/pattern': 30.0.1
+ '@jest/schemas': 30.0.5
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 20.17.8
+ '@types/yargs': 17.0.35
+ chalk: 4.1.2
+ optional: true
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.4.15
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/resolve-uri@3.1.2': {}
@@ -27774,16 +28352,23 @@ snapshots:
'@jridgewell/source-map@0.3.6':
dependencies:
- '@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/sourcemap-codec@1.4.15': {}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
'@jridgewell/trace-mapping@0.3.9':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
@@ -27793,7 +28378,7 @@ snapshots:
'@kwsites/file-exists@1.1.1':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -27913,7 +28498,7 @@ snapshots:
read-package-json-fast: 2.0.3
readdir-scoped-modules: 1.1.0
rimraf: 3.0.2
- semver: 7.6.3
+ semver: 7.7.4
ssri: 8.0.1
treeverse: 1.0.4
walk-up-path: 1.0.0
@@ -27924,16 +28509,16 @@ snapshots:
'@npmcli/fs@1.1.1':
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.6.3
+ semver: 7.7.4
'@npmcli/fs@2.1.2':
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.6.3
+ semver: 7.7.4
'@npmcli/fs@3.1.0':
dependencies:
- semver: 7.6.3
+ semver: 7.7.4
'@npmcli/git@2.1.0':
dependencies:
@@ -27943,7 +28528,7 @@ snapshots:
npm-pick-manifest: 6.1.1
promise-inflight: 1.0.1(bluebird@3.7.2)
promise-retry: 2.0.1
- semver: 7.6.3
+ semver: 7.7.4
which: 2.0.2
transitivePeerDependencies:
- bluebird
@@ -27956,7 +28541,7 @@ snapshots:
proc-log: 3.0.0
promise-inflight: 1.0.1(bluebird@3.7.2)
promise-retry: 2.0.1
- semver: 7.6.3
+ semver: 7.7.4
which: 3.0.1
transitivePeerDependencies:
- bluebird
@@ -27983,7 +28568,7 @@ snapshots:
cacache: 15.3.0
json-parse-even-better-errors: 2.3.1
pacote: 12.0.3
- semver: 7.6.3
+ semver: 7.7.4
transitivePeerDependencies:
- bluebird
- supports-color
@@ -28055,7 +28640,7 @@ snapshots:
chalk: 4.1.2
clean-stack: 3.0.1
cli-progress: 3.12.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
ejs: 3.1.9
fs-extra: 9.1.0
get-package-type: 0.1.0
@@ -28085,7 +28670,7 @@ snapshots:
chalk: 4.1.2
clean-stack: 3.0.1
cli-progress: 3.12.0
- debug: 4.3.4(supports-color@8.1.1)
+ debug: 4.4.3(supports-color@8.1.1)
ejs: 3.1.9
get-package-type: 0.1.0
globby: 11.1.0
@@ -28139,7 +28724,7 @@ snapshots:
'@oclif/color': 1.0.13
'@oclif/core': 2.15.0(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)
chalk: 4.1.2
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
fs-extra: 9.1.0
http-call: 5.3.0
load-json-file: 5.3.0
@@ -28158,7 +28743,7 @@ snapshots:
dependencies:
'@oclif/core': 2.15.0(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)
chalk: 4.1.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
http-call: 5.3.0
lodash.template: 4.5.0
semver: 7.6.3
@@ -28947,6 +29532,9 @@ snapshots:
'@pkgr/core@0.1.1': {}
+ '@pkgr/core@0.2.9':
+ optional: true
+
'@playwright/test@1.57.0':
dependencies:
playwright: 1.57.0
@@ -29020,11 +29608,11 @@ snapshots:
react-refresh: 0.14.2
schema-utils: 3.3.0
source-map: 0.7.4
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
optionalDependencies:
'@types/webpack': 4.41.38
type-fest: 4.41.0
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.1(webpack@5.97.1)
webpack-hot-middleware: 2.25.4
'@polka/url@1.0.0-next.24': {}
@@ -29040,7 +29628,7 @@ snapshots:
'@puppeteer/browsers@1.4.6(typescript@5.7.2)':
dependencies:
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.3.4
extract-zip: 2.0.1
progress: 2.0.3
proxy-agent: 6.3.0
@@ -29054,11 +29642,11 @@ snapshots:
'@puppeteer/browsers@2.6.1':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
extract-zip: 2.0.1
progress: 2.0.3
proxy-agent: 6.5.0
- semver: 7.6.3
+ semver: 7.7.4
tar-fs: 3.0.6
unbzip2-stream: 1.4.3
yargs: 17.7.2
@@ -29681,12 +30269,12 @@ snapshots:
'@babel/core': 7.25.7
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
- '@shopify/web-worker@6.4.0(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@shopify/web-worker@6.4.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@remote-ui/rpc': 1.4.5
optionalDependencies:
- '@babel/core': 7.26.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ '@babel/core': 7.29.0
+ webpack: 5.105.2(@swc/core@1.3.100)
'@sideway/address@4.1.5':
dependencies:
@@ -29719,6 +30307,9 @@ snapshots:
'@sinclair/typebox@0.27.8': {}
+ '@sinclair/typebox@0.34.49':
+ optional: true
+
'@sindresorhus/is@4.6.0': {}
'@sinonjs/commons@1.8.6':
@@ -29729,10 +30320,20 @@ snapshots:
dependencies:
type-detect: 4.0.8
+ '@sinonjs/commons@3.0.1':
+ dependencies:
+ type-detect: 4.0.8
+ optional: true
+
'@sinonjs/fake-timers@10.3.0':
dependencies:
'@sinonjs/commons': 3.0.0
+ '@sinonjs/fake-timers@13.0.5':
+ dependencies:
+ '@sinonjs/commons': 3.0.1
+ optional: true
+
'@sinonjs/fake-timers@6.0.1':
dependencies:
'@sinonjs/commons': 1.8.6
@@ -30464,7 +31065,7 @@ snapshots:
cjs-module-lexer: 1.2.3
constants-browserify: 1.0.0
css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
- es-module-lexer: 1.4.1
+ es-module-lexer: 1.7.0
express: 4.18.2
fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
fs-extra: 11.1.1
@@ -30472,10 +31073,10 @@ snapshots:
magic-string: 0.30.5
path-browserify: 1.0.1
process: 0.11.10
- semver: 7.6.3
+ semver: 7.7.4
style-loader: 3.3.3(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
swc-loader: 0.2.3(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
ts-dedent: 2.2.0
url: 0.11.3
util: 0.12.5
@@ -30509,12 +31110,12 @@ snapshots:
'@swc/core': 1.3.100
'@types/node': 18.19.3
'@types/semver': 7.5.6
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100))
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
browser-assert: 1.2.1
case-sensitive-paths-webpack-plugin: 2.4.0
constants-browserify: 1.0.0
- css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
- es-module-lexer: 1.4.1
+ css-loader: 6.11.0(webpack@5.97.1)
+ es-module-lexer: 1.7.0
express: 4.18.2
fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.2)(webpack@5.97.1)
fs-extra: 11.1.1
@@ -30525,7 +31126,7 @@ snapshots:
semver: 7.6.3
style-loader: 3.3.3(webpack@5.97.1)
swc-loader: 0.2.3(@swc/core@1.3.100)(webpack@5.97.1)
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1)
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1)
ts-dedent: 2.2.0
url: 0.11.3
util: 0.12.5
@@ -30600,7 +31201,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@ndelangen/get-tarball': 3.0.9
'@storybook/codemod': 7.6.19
'@storybook/core-common': 7.6.19(encoding@0.1.13)
@@ -30617,7 +31218,7 @@ snapshots:
commander: 6.2.1
cross-spawn: 7.0.6
detect-indent: 6.1.0
- envinfo: 7.13.0
+ envinfo: 7.14.0
execa: 5.1.1
express: 4.18.2
find-up: 5.0.0
@@ -30626,14 +31227,14 @@ snapshots:
get-port: 5.1.1
giget: 1.1.3
globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.25.7(@babel/core@7.26.0))
+ jscodeshift: 0.15.1(@babel/preset-env@7.25.7(@babel/core@7.29.0))
leven: 3.1.0
ora: 5.4.1
prettier: 2.8.8
prompts: 2.4.2
puppeteer-core: 2.1.1
read-pkg-up: 7.0.1
- semver: 7.6.3
+ semver: 7.7.4
strip-json-comments: 3.1.1
tempy: 1.0.1
ts-dedent: 2.2.0
@@ -30665,7 +31266,7 @@ snapshots:
commander: 6.2.1
cross-spawn: 7.0.6
detect-indent: 6.1.0
- envinfo: 7.13.0
+ envinfo: 7.14.0
execa: 5.1.1
express: 4.18.2
find-up: 5.0.0
@@ -30744,7 +31345,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@storybook/csf': 0.1.2
'@storybook/csf-tools': 7.6.19
'@storybook/node-logger': 7.6.19
@@ -30752,7 +31353,7 @@ snapshots:
'@types/cross-spawn': 6.0.6
cross-spawn: 7.0.6
globby: 11.1.0
- jscodeshift: 0.15.1(@babel/preset-env@7.25.7(@babel/core@7.26.0))
+ jscodeshift: 0.15.1(@babel/preset-env@7.25.7(@babel/core@7.29.0))
lodash: 4.17.21
prettier: 2.8.8
recast: 0.23.4
@@ -30763,7 +31364,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@storybook/csf': 0.1.2
'@storybook/csf-tools': 7.6.4
'@storybook/node-logger': 7.6.4
@@ -31127,7 +31728,7 @@ snapshots:
telejson: 6.0.8
ts-dedent: 2.2.0
util-deprecate: 1.0.2
- watchpack: 2.4.1
+ watchpack: 2.5.1
webpack: 4.47.0(webpack-cli@5.1.4)
ws: 8.18.0
x-default-browser: 0.4.0
@@ -31180,13 +31781,13 @@ snapshots:
pretty-hrtime: 1.0.3
prompts: 2.4.2
read-pkg-up: 7.0.1
- semver: 7.6.3
+ semver: 7.7.4
telejson: 7.2.0
tiny-invariant: 1.3.1
ts-dedent: 2.2.0
util: 0.12.5
util-deprecate: 1.0.2
- watchpack: 2.4.1
+ watchpack: 2.5.1
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
@@ -31229,13 +31830,13 @@ snapshots:
pretty-hrtime: 1.0.3
prompts: 2.4.2
read-pkg-up: 7.0.1
- semver: 7.6.3
+ semver: 7.7.4
telejson: 7.2.0
tiny-invariant: 1.3.1
ts-dedent: 2.2.0
util: 0.12.5
util-deprecate: 1.0.2
- watchpack: 2.4.1
+ watchpack: 2.5.1
ws: 8.18.0
transitivePeerDependencies:
- bufferutil
@@ -31310,12 +31911,12 @@ snapshots:
'@storybook/csf-tools@6.5.17-alpha.0':
dependencies:
'@babel/core': 7.25.7
- '@babel/generator': 7.26.2
- '@babel/parser': 7.26.2
+ '@babel/generator': 7.29.1
+ '@babel/parser': 7.29.2
'@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.25.7)
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@storybook/csf': 0.0.2--canary.4566f4d.1
'@storybook/mdx1-csf': 0.0.1(@babel/core@7.25.7)
core-js: 3.40.0
@@ -31328,10 +31929,10 @@ snapshots:
'@storybook/csf-tools@7.5.2':
dependencies:
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.29.1
'@babel/parser': 7.26.2
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@storybook/csf': 0.1.2
'@storybook/types': 7.5.2
fs-extra: 11.1.1
@@ -31342,10 +31943,10 @@ snapshots:
'@storybook/csf-tools@7.6.19':
dependencies:
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.29.1
'@babel/parser': 7.26.2
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@storybook/csf': 0.1.2
'@storybook/types': 7.6.19
fs-extra: 11.1.1
@@ -31489,7 +32090,7 @@ snapshots:
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
- semver: 7.6.3
+ semver: 7.7.4
store2: 2.14.2
telejson: 7.2.0
ts-dedent: 2.2.0
@@ -31553,10 +32154,10 @@ snapshots:
'@storybook/mdx1-csf@0.0.1(@babel/core@7.25.7)':
dependencies:
- '@babel/generator': 7.26.2
- '@babel/parser': 7.26.2
+ '@babel/generator': 7.29.1
+ '@babel/parser': 7.29.2
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@mdx-js/mdx': 1.6.22
'@types/lodash': 4.14.202
js-string-escape: 1.0.1
@@ -31590,10 +32191,10 @@ snapshots:
'@storybook/postinstall@7.6.4': {}
- '@storybook/preset-react-webpack@7.6.19(@babel/core@7.26.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)':
+ '@storybook/preset-react-webpack@7.6.19(@babel/core@7.29.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)':
dependencies:
- '@babel/preset-flow': 7.24.7(@babel/core@7.26.0)
- '@babel/preset-react': 7.25.7(@babel/core@7.26.0)
+ '@babel/preset-flow': 7.24.7(@babel/core@7.29.0)
+ '@babel/preset-react': 7.25.7(@babel/core@7.29.0)
'@pmmmwh/react-refresh-webpack-plugin': 0.5.11(@types/webpack@4.41.38)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
'@storybook/core-webpack': 7.6.19(encoding@0.1.13)
'@storybook/docs-tools': 7.6.19(encoding@0.1.13)
@@ -31609,10 +32210,10 @@ snapshots:
react-docgen: 7.0.1
react-dom: 18.3.1(react@18.3.1)
react-refresh: 0.14.2
- semver: 7.6.3
+ semver: 7.7.4
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
optionalDependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
typescript: 5.7.2
transitivePeerDependencies:
- '@swc/core'
@@ -31744,7 +32345,7 @@ snapshots:
'@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
endent: 2.1.0
find-cache-dir: 3.3.2
flat-cache: 3.2.0
@@ -31758,7 +32359,7 @@ snapshots:
'@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1)':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
endent: 2.1.0
find-cache-dir: 3.3.2
flat-cache: 3.2.0
@@ -31772,7 +32373,7 @@ snapshots:
'@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.630821.0(typescript@5.7.2)(webpack@5.97.1)':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
endent: 2.1.0
find-cache-dir: 3.3.2
flat-cache: 3.2.0
@@ -31799,16 +32400,16 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- '@storybook/react-webpack5@7.6.19(@babel/core@7.26.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)':
+ '@storybook/react-webpack5@7.6.19(@babel/core@7.29.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)':
dependencies:
'@storybook/builder-webpack5': 7.6.19(encoding@0.1.13)(esbuild@0.18.20)(typescript@5.7.2)
- '@storybook/preset-react-webpack': 7.6.19(@babel/core@7.26.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)
+ '@storybook/preset-react-webpack': 7.6.19(@babel/core@7.29.0)(@swc/core@1.3.100)(@types/webpack@4.41.38)(encoding@0.1.13)(esbuild@0.18.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)))(webpack-hot-middleware@2.25.4)
'@storybook/react': 7.6.19(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.2)
'@types/node': 18.19.3
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
optionalDependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
typescript: 5.7.2
transitivePeerDependencies:
- '@rspack/core'
@@ -32224,14 +32825,14 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss@8.4.49)
+ postcss-syntax: 0.36.2(postcss@8.4.32)
transitivePeerDependencies:
- supports-color
'@stylelint/postcss-markdown@0.36.2(postcss-syntax@0.36.2)(postcss@7.0.39)':
dependencies:
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss@8.4.49)
+ postcss-syntax: 0.36.2(postcss@8.4.32)
remark: 13.0.0
unist-util-find-all-after: 3.0.2
transitivePeerDependencies:
@@ -32248,6 +32849,17 @@ snapshots:
style-search: 0.1.0
stylelint: 16.11.0(typescript@5.7.2)
+ '@stylistic/stylelint-plugin@3.1.2(stylelint@16.11.0(typescript@5.9.3))':
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ is-plain-object: 5.0.0
+ postcss-selector-parser: 6.1.2
+ postcss-value-parser: 4.2.0
+ style-search: 0.1.0
+ stylelint: 16.11.0(typescript@5.9.3)
+
'@svgr/babel-plugin-add-jsx-attribute@5.4.0': {}
'@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.7)':
@@ -32338,13 +32950,24 @@ snapshots:
- supports-color
- typescript
+ '@svgr/core@8.1.0(typescript@5.9.3)':
+ dependencies:
+ '@babel/core': 7.25.7
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.25.7)
+ camelcase: 6.3.0
+ cosmiconfig: 8.3.6(typescript@5.9.3)
+ snake-case: 3.0.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@svgr/hast-util-to-babel-ast@5.5.0':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@svgr/hast-util-to-babel-ast@8.0.0':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
entities: 4.5.0
'@svgr/plugin-jsx@5.5.0':
@@ -32366,6 +32989,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))':
+ dependencies:
+ '@babel/core': 7.25.7
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.25.7)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ '@svgr/hast-util-to-babel-ast': 8.0.0
+ svg-parser: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+
'@svgr/plugin-svgo@5.5.0':
dependencies:
cosmiconfig: 7.1.0
@@ -32381,6 +33014,15 @@ snapshots:
transitivePeerDependencies:
- typescript
+ '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)':
+ dependencies:
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ cosmiconfig: 8.3.6(typescript@5.9.3)
+ deepmerge: 4.3.1
+ svgo: 3.1.0
+ transitivePeerDependencies:
+ - typescript
+
'@svgr/webpack@5.5.0':
dependencies:
'@babel/core': 7.25.7
@@ -32408,6 +33050,20 @@ snapshots:
- supports-color
- typescript
+ '@svgr/webpack@8.1.0(typescript@5.9.3)':
+ dependencies:
+ '@babel/core': 7.25.7
+ '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.25.7)
+ '@babel/preset-env': 7.25.7(@babel/core@7.25.7)
+ '@babel/preset-react': 7.25.7(@babel/core@7.25.7)
+ '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))
+ '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@swc/core-darwin-arm64@1.3.100':
optional: true
@@ -32508,7 +33164,7 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))':
+ '@testing-library/jest-dom@6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))':
dependencies:
'@adobe/css-tools': 4.3.2
'@babel/runtime': 7.25.7
@@ -32519,11 +33175,11 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
optionalDependencies:
- '@jest/globals': 29.7.0
+ '@jest/globals': 30.2.0
'@types/jest': 29.5.14
jest: 29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
- '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))':
+ '@testing-library/jest-dom@6.4.5(@jest/globals@30.2.0)(@types/jest@29.5.14)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))':
dependencies:
'@adobe/css-tools': 4.3.2
'@babel/runtime': 7.25.7
@@ -32534,10 +33190,25 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
optionalDependencies:
- '@jest/globals': 29.7.0
+ '@jest/globals': 30.2.0
'@types/jest': 29.5.14
jest: 29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
+ '@testing-library/jest-dom@6.4.5(@jest/globals@30.2.0)(@types/jest@30.0.0)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))':
+ dependencies:
+ '@adobe/css-tools': 4.3.2
+ '@babel/runtime': 7.25.7
+ aria-query: 5.3.0
+ chalk: 3.0.0
+ css.escape: 1.5.1
+ dom-accessibility-api: 0.6.3
+ lodash: 4.17.21
+ redent: 3.0.0
+ optionalDependencies:
+ '@jest/globals': 30.2.0
+ '@types/jest': 30.0.0
+ jest: 29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
+
'@testing-library/react-hooks@7.0.2(react-dom@18.3.1(react@18.3.1))(react-test-renderer@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.0
@@ -32658,16 +33329,16 @@ snapshots:
'@types/babel__generator@7.6.7':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__template@7.4.4':
dependencies:
'@babel/parser': 7.26.2
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__traverse@7.20.4':
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/body-parser@1.19.5':
dependencies:
@@ -32741,18 +33412,16 @@ snapshots:
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 8.44.8
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@types/eslint@8.44.8':
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@types/json-schema': 7.0.15
'@types/estree@0.0.51': {}
- '@types/estree@1.0.5': {}
-
- '@types/estree@1.0.6': {}
+ '@types/estree@1.0.8': {}
'@types/expect@1.20.4': {}
@@ -32831,11 +33500,17 @@ snapshots:
expect: 29.7.0
pretty-format: 29.7.0
+ '@types/jest@30.0.0':
+ dependencies:
+ expect: 30.3.0
+ pretty-format: 30.3.0
+ optional: true
+
'@types/jquery@3.5.14':
dependencies:
'@types/sizzle': 2.3.8
- '@types/jquery@3.5.29':
+ '@types/jquery@3.5.33':
dependencies:
'@types/sizzle': 2.3.8
@@ -33033,7 +33708,7 @@ snapshots:
'@types/tinymce@4.6.9':
dependencies:
- '@types/jquery': 3.5.29
+ '@types/jquery': 3.5.33
'@types/tough-cookie@4.0.5': {}
@@ -33116,21 +33791,6 @@ snapshots:
- react-dom
- supports-color
- '@types/wordpress__block-editor@7.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@types/react': 18.3.16
- '@types/wordpress__blocks': 12.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/wordpress__components': 23.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/wordpress__data': 6.0.2
- '@types/wordpress__keycodes': 2.3.1
- '@wordpress/element': 4.20.0
- react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- transitivePeerDependencies:
- - '@emotion/is-prop-valid'
- - react
- - react-dom
- - supports-color
-
'@types/wordpress__block-library@2.6.1': {}
'@types/wordpress__block-library@2.6.3': {}
@@ -33166,19 +33826,6 @@ snapshots:
- react-dom
- supports-color
- '@types/wordpress__blocks@12.5.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@types/react': 18.3.16
- '@types/wordpress__shortcode': 2.3.6
- '@wordpress/components': 27.6.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 5.22.0
- transitivePeerDependencies:
- - '@emotion/is-prop-valid'
- - react
- - react-dom
- - supports-color
-
'@types/wordpress__components@23.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@types/react': 18.3.16
@@ -33230,12 +33877,12 @@ snapshots:
- react-dom
- supports-color
- '@types/wordpress__edit-post@8.4.2(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
+ '@types/wordpress__edit-post@8.4.2(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
dependencies:
'@types/react': 18.3.16
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/editor': 14.14.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/editor': 14.14.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/element': 6.16.0
transitivePeerDependencies:
- '@babel/core'
@@ -33371,7 +34018,7 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@types/yargs@17.0.32':
+ '@types/yargs@17.0.35':
dependencies:
'@types/yargs-parser': 21.0.3
@@ -33385,12 +34032,12 @@ snapshots:
'@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@5.7.2)
'@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@5.7.2)
'@typescript-eslint/scope-manager': 4.33.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
functional-red-black-tree: 1.0.1
ignore: 5.3.0
regexpp: 3.2.0
- semver: 7.6.3
+ semver: 7.7.4
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
@@ -33404,7 +34051,7 @@ snapshots:
'@typescript-eslint/scope-manager': 5.56.0
'@typescript-eslint/type-utils': 5.56.0(eslint@8.55.0)(typescript@5.7.2)
'@typescript-eslint/utils': 5.56.0(eslint@8.55.0)(typescript@5.7.2)
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
grapheme-splitter: 1.0.4
ignore: 5.3.0
@@ -33423,7 +34070,7 @@ snapshots:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/type-utils': 5.62.0(eslint@8.55.0)(typescript@5.7.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.7.2)
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
graphemer: 1.4.0
ignore: 5.3.0
@@ -33443,18 +34090,38 @@ snapshots:
'@typescript-eslint/type-utils': 6.21.0(eslint@8.55.0)(typescript@5.7.2)
'@typescript-eslint/utils': 6.21.0(eslint@8.55.0)(typescript@5.7.2)
'@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
graphemer: 1.4.0
ignore: 5.3.0
natural-compare: 1.4.0
- semver: 7.6.3
+ semver: 7.7.4
ts-api-utils: 1.4.3(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/type-utils': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.4.3(supports-color@9.4.0)
+ eslint: 8.55.0
+ graphemer: 1.4.0
+ ignore: 5.3.0
+ natural-compare: 1.4.0
+ semver: 7.7.4
+ ts-api-utils: 1.4.3(typescript@5.9.3)
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/experimental-utils@2.34.0(eslint@8.55.0)(typescript@5.7.2)':
dependencies:
'@types/json-schema': 7.0.15
@@ -33492,7 +34159,7 @@ snapshots:
'@typescript-eslint/scope-manager': 4.33.0
'@typescript-eslint/types': 4.33.0
'@typescript-eslint/typescript-estree': 4.33.0(typescript@5.7.2)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 7.32.0
optionalDependencies:
typescript: 5.7.2
@@ -33504,7 +34171,7 @@ snapshots:
'@typescript-eslint/scope-manager': 5.56.0
'@typescript-eslint/types': 5.56.0
'@typescript-eslint/typescript-estree': 5.56.0(typescript@5.7.2)
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
optionalDependencies:
typescript: 5.7.2
@@ -33516,7 +34183,7 @@ snapshots:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2)
- debug: 4.3.6
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
optionalDependencies:
typescript: 5.7.2
@@ -33529,18 +34196,31 @@ snapshots:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2)
'@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.4.3(supports-color@9.4.0)
+ eslint: 8.55.0
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/project-service@8.41.0(typescript@5.7.2)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.7.2)
'@typescript-eslint/types': 8.41.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
@@ -33578,7 +34258,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 5.56.0(typescript@5.7.2)
'@typescript-eslint/utils': 5.56.0(eslint@8.55.0)(typescript@5.7.2)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
@@ -33590,7 +34270,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2)
'@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.7.2)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
@@ -33602,7 +34282,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2)
'@typescript-eslint/utils': 6.21.0(eslint@8.55.0)(typescript@5.7.2)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 8.55.0
ts-api-utils: 1.4.3(typescript@5.7.2)
optionalDependencies:
@@ -33610,6 +34290,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/type-utils@6.21.0(eslint@8.55.0)(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ debug: 4.4.3(supports-color@9.4.0)
+ eslint: 8.55.0
+ ts-api-utils: 1.4.3(typescript@5.9.3)
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/types@4.33.0': {}
'@typescript-eslint/types@5.56.0': {}
@@ -33622,12 +34314,12 @@ snapshots:
'@typescript-eslint/typescript-estree@2.34.0(typescript@5.7.2)':
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint-visitor-keys: 1.3.0
glob: 7.2.3
is-glob: 4.0.3
lodash: 4.17.21
- semver: 7.6.3
+ semver: 7.7.4
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
@@ -33638,10 +34330,10 @@ snapshots:
dependencies:
'@typescript-eslint/types': 4.33.0
'@typescript-eslint/visitor-keys': 4.33.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.6.3
+ semver: 7.7.4
tsutils: 3.21.0(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
@@ -33652,7 +34344,7 @@ snapshots:
dependencies:
'@typescript-eslint/types': 5.56.0
'@typescript-eslint/visitor-keys': 5.56.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.3
@@ -33666,7 +34358,7 @@ snapshots:
dependencies:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
is-glob: 4.0.3
semver: 7.6.3
@@ -33676,32 +34368,61 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.4.3(supports-color@9.4.0)
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.6.3
+ tsutils: 3.21.0(typescript@5.9.3)
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/typescript-estree@6.21.0(typescript@5.7.2)':
dependencies:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/visitor-keys': 6.21.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
- semver: 7.6.3
+ semver: 7.7.4
ts-api-utils: 1.4.3(typescript@5.7.2)
optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/visitor-keys': 6.21.0
+ debug: 4.4.3(supports-color@9.4.0)
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.3
+ semver: 7.7.4
+ ts-api-utils: 1.4.3(typescript@5.9.3)
+ optionalDependencies:
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/typescript-estree@8.41.0(typescript@5.7.2)':
dependencies:
'@typescript-eslint/project-service': 8.41.0(typescript@5.7.2)
'@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.7.2)
'@typescript-eslint/types': 8.41.0
'@typescript-eslint/visitor-keys': 8.41.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.6.3
+ semver: 7.7.4
ts-api-utils: 2.1.0(typescript@5.7.2)
typescript: 5.7.2
transitivePeerDependencies:
@@ -33737,6 +34458,21 @@ snapshots:
- supports-color
- typescript
+ '@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.6
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3)
+ eslint: 8.55.0
+ eslint-scope: 5.1.1
+ semver: 7.6.3
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
'@typescript-eslint/utils@6.21.0(eslint@8.55.0)(typescript@5.7.2)':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@8.55.0)
@@ -33746,7 +34482,21 @@ snapshots:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2)
eslint: 8.55.0
- semver: 7.6.3
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/utils@6.21.0(eslint@8.55.0)(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@8.55.0)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.6
+ '@typescript-eslint/scope-manager': 6.21.0
+ '@typescript-eslint/types': 6.21.0
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
+ eslint: 8.55.0
+ semver: 7.7.4
transitivePeerDependencies:
- supports-color
- typescript
@@ -33789,6 +34539,9 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
+ '@ungap/structured-clone@1.3.0':
+ optional: true
+
'@use-gesture/core@10.3.0': {}
'@use-gesture/core@10.3.1': {}
@@ -33803,11 +34556,6 @@ snapshots:
'@use-gesture/core': 10.3.1
react: 18.3.1
- '@webassemblyjs/ast@1.11.6':
- dependencies:
- '@webassemblyjs/helper-numbers': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
-
'@webassemblyjs/ast@1.14.1':
dependencies:
'@webassemblyjs/helper-numbers': 1.13.2
@@ -33819,20 +34567,14 @@ snapshots:
'@webassemblyjs/helper-wasm-bytecode': 1.9.0
'@webassemblyjs/wast-parser': 1.9.0
- '@webassemblyjs/floating-point-hex-parser@1.11.6': {}
-
'@webassemblyjs/floating-point-hex-parser@1.13.2': {}
'@webassemblyjs/floating-point-hex-parser@1.9.0': {}
- '@webassemblyjs/helper-api-error@1.11.6': {}
-
'@webassemblyjs/helper-api-error@1.13.2': {}
'@webassemblyjs/helper-api-error@1.9.0': {}
- '@webassemblyjs/helper-buffer@1.11.6': {}
-
'@webassemblyjs/helper-buffer@1.14.1': {}
'@webassemblyjs/helper-buffer@1.9.0': {}
@@ -33847,31 +34589,16 @@ snapshots:
dependencies:
'@webassemblyjs/ast': 1.9.0
- '@webassemblyjs/helper-numbers@1.11.6':
- dependencies:
- '@webassemblyjs/floating-point-hex-parser': 1.11.6
- '@webassemblyjs/helper-api-error': 1.11.6
- '@xtuc/long': 4.2.2
-
'@webassemblyjs/helper-numbers@1.13.2':
dependencies:
'@webassemblyjs/floating-point-hex-parser': 1.13.2
'@webassemblyjs/helper-api-error': 1.13.2
'@xtuc/long': 4.2.2
- '@webassemblyjs/helper-wasm-bytecode@1.11.6': {}
-
'@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
'@webassemblyjs/helper-wasm-bytecode@1.9.0': {}
- '@webassemblyjs/helper-wasm-section@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
-
'@webassemblyjs/helper-wasm-section@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -33886,10 +34613,6 @@ snapshots:
'@webassemblyjs/helper-wasm-bytecode': 1.9.0
'@webassemblyjs/wasm-gen': 1.9.0
- '@webassemblyjs/ieee754@1.11.6':
- dependencies:
- '@xtuc/ieee754': 1.2.0
-
'@webassemblyjs/ieee754@1.13.2':
dependencies:
'@xtuc/ieee754': 1.2.0
@@ -33898,10 +34621,6 @@ snapshots:
dependencies:
'@xtuc/ieee754': 1.2.0
- '@webassemblyjs/leb128@1.11.6':
- dependencies:
- '@xtuc/long': 4.2.2
-
'@webassemblyjs/leb128@1.13.2':
dependencies:
'@xtuc/long': 4.2.2
@@ -33910,23 +34629,10 @@ snapshots:
dependencies:
'@xtuc/long': 4.2.2
- '@webassemblyjs/utf8@1.11.6': {}
-
'@webassemblyjs/utf8@1.13.2': {}
'@webassemblyjs/utf8@1.9.0': {}
- '@webassemblyjs/wasm-edit@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/helper-wasm-section': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
- '@webassemblyjs/wasm-opt': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
- '@webassemblyjs/wast-printer': 1.11.6
-
'@webassemblyjs/wasm-edit@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -33949,14 +34655,6 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.9.0
'@webassemblyjs/wast-printer': 1.9.0
- '@webassemblyjs/wasm-gen@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/ieee754': 1.11.6
- '@webassemblyjs/leb128': 1.11.6
- '@webassemblyjs/utf8': 1.11.6
-
'@webassemblyjs/wasm-gen@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -33973,13 +34671,6 @@ snapshots:
'@webassemblyjs/leb128': 1.9.0
'@webassemblyjs/utf8': 1.9.0
- '@webassemblyjs/wasm-opt@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-buffer': 1.11.6
- '@webassemblyjs/wasm-gen': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
-
'@webassemblyjs/wasm-opt@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -33994,15 +34685,6 @@ snapshots:
'@webassemblyjs/wasm-gen': 1.9.0
'@webassemblyjs/wasm-parser': 1.9.0
- '@webassemblyjs/wasm-parser@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/helper-api-error': 1.11.6
- '@webassemblyjs/helper-wasm-bytecode': 1.11.6
- '@webassemblyjs/ieee754': 1.11.6
- '@webassemblyjs/leb128': 1.11.6
- '@webassemblyjs/utf8': 1.11.6
-
'@webassemblyjs/wasm-parser@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -34030,11 +34712,6 @@ snapshots:
'@webassemblyjs/helper-fsm': 1.9.0
'@xtuc/long': 4.2.2
- '@webassemblyjs/wast-printer@1.11.6':
- dependencies:
- '@webassemblyjs/ast': 1.11.6
- '@xtuc/long': 4.2.2
-
'@webassemblyjs/wast-printer@1.14.1':
dependencies:
'@webassemblyjs/ast': 1.14.1
@@ -34046,29 +34723,29 @@ snapshots:
'@webassemblyjs/wast-parser': 1.9.0
'@xtuc/long': 4.2.2
- '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.97.1)':
+ '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.105.2)':
dependencies:
- webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
- webpack-cli: 4.10.0(webpack@5.97.1)
+ webpack: 5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack-cli: 4.10.0(webpack@5.105.2)
'@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.97.1)':
dependencies:
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ webpack-cli: 5.1.4(webpack@5.97.1)
'@webpack-cli/info@1.5.0(webpack-cli@4.10.0)':
dependencies:
envinfo: 7.14.0
- webpack-cli: 4.10.0(webpack@5.97.1)
+ webpack-cli: 4.10.0(webpack@5.105.2)
'@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.97.1)':
dependencies:
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ webpack-cli: 5.1.4(webpack@5.97.1)
'@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)':
dependencies:
- webpack-cli: 4.10.0(webpack@5.97.1)
+ webpack-cli: 4.10.0(webpack@5.105.2)
'@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.97.1)':
dependencies:
@@ -34157,7 +34834,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/i18n': 5.23.0
- '@wordpress/url': 4.20.0
+ '@wordpress/url': 4.19.1
'@wordpress/api-fetch@7.20.0':
dependencies:
@@ -34215,7 +34892,7 @@ snapshots:
'@wordpress/babel-plugin-import-jsx-pragma': 4.41.0(@babel/core@7.25.7)
'@wordpress/browserslist-config': 5.41.0
'@wordpress/warning': 2.58.0
- browserslist: 4.24.4
+ browserslist: 4.28.2
core-js: 3.40.0
react: 18.3.1
transitivePeerDependencies:
@@ -34229,9 +34906,9 @@ snapshots:
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
'@babel/preset-typescript': 7.25.7(@babel/core@7.25.7)
'@babel/runtime': 7.25.7
- '@wordpress/browserslist-config': 6.30.0
+ '@wordpress/browserslist-config': 6.42.0
'@wordpress/warning': 3.36.0
- browserslist: 4.24.4
+ browserslist: 4.28.2
core-js: 3.40.0
react: 18.3.1
transitivePeerDependencies:
@@ -34245,7 +34922,7 @@ snapshots:
'@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.25.7)
'@babel/preset-env': 7.25.7(@babel/core@7.25.7)
'@babel/preset-typescript': 7.25.7(@babel/core@7.25.7)
- '@wordpress/browserslist-config': 6.40.1-next.v.202602271551.0
+ '@wordpress/browserslist-config': 6.42.0
'@wordpress/warning': 3.41.0
browserslist: 4.24.2
core-js: 3.40.0
@@ -34281,13 +34958,17 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
+ '@wordpress/blob@4.20.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
'@wordpress/blob@4.36.0': {}
'@wordpress/block-editor@12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.1(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
'@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/a11y': 3.58.0
'@wordpress/api-fetch': 6.55.0
@@ -34338,9 +35019,9 @@ snapshots:
- '@types/react'
- supports-color
- '@wordpress/block-editor@13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/block-editor@13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.25.7
+ '@babel/runtime': 7.23.5
'@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
'@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
'@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -34348,7 +35029,7 @@ snapshots:
'@wordpress/api-fetch': 7.0.1
'@wordpress/blob': 4.0.1
'@wordpress/blocks': 13.0.3(react@18.3.1)
- '@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/commands': 1.10.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -34356,7 +35037,7 @@ snapshots:
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
'@wordpress/element': 6.0.1
- '@wordpress/escape-html': 3.36.0
+ '@wordpress/escape-html': 3.16.0
'@wordpress/hooks': 4.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
@@ -34366,13 +35047,13 @@ snapshots:
'@wordpress/keycodes': 4.0.1
'@wordpress/notices': 5.0.2(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.16.0
'@wordpress/rich-text': 7.0.2(react@18.3.1)
- '@wordpress/style-engine': 2.36.0
- '@wordpress/token-list': 3.20.0
+ '@wordpress/style-engine': 2.10.0
+ '@wordpress/token-list': 3.10.0
'@wordpress/url': 4.0.1
'@wordpress/warning': 3.0.1
- '@wordpress/wordcount': 4.0.1
+ '@wordpress/wordcount': 4.10.0
change-case: 4.1.2
clsx: 2.1.1
colord: 2.9.3
@@ -34380,9 +35061,9 @@ snapshots:
diff: 4.0.2
fast-deep-equal: 3.1.3
memize: 2.1.0
- postcss: 8.4.49
- postcss-prefixwrap: 1.53.0(postcss@8.4.49)
- postcss-urlrebase: 1.4.0(postcss@8.4.49)
+ postcss: 8.4.32
+ postcss-prefixwrap: 1.53.0(postcss@8.4.32)
+ postcss-urlrebase: 1.4.0(postcss@8.4.32)
react: 18.3.1
react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-dom: 18.3.1(react@18.3.1)
@@ -34391,19 +35072,20 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- supports-color
'@wordpress/block-editor@13.0.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.25.7
+ '@babel/runtime': 7.23.5
'@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
- '@emotion/styled': 11.11.0(@emotion/react@11.11.1(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
'@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
'@wordpress/blob': 4.0.1
'@wordpress/blocks': 13.0.3(react@18.3.1)
- '@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/commands': 1.10.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -34411,7 +35093,7 @@ snapshots:
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
'@wordpress/element': 6.0.1
- '@wordpress/escape-html': 3.36.0
+ '@wordpress/escape-html': 3.16.0
'@wordpress/hooks': 4.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
@@ -34421,13 +35103,13 @@ snapshots:
'@wordpress/keycodes': 4.0.1
'@wordpress/notices': 5.0.2(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.16.0
'@wordpress/rich-text': 7.0.2(react@18.3.1)
- '@wordpress/style-engine': 2.36.0
- '@wordpress/token-list': 3.20.0
+ '@wordpress/style-engine': 2.10.0
+ '@wordpress/token-list': 3.10.0
'@wordpress/url': 4.0.1
'@wordpress/warning': 3.0.1
- '@wordpress/wordcount': 4.0.1
+ '@wordpress/wordcount': 4.10.0
change-case: 4.1.2
clsx: 2.1.1
colord: 2.9.3
@@ -34435,9 +35117,9 @@ snapshots:
diff: 4.0.2
fast-deep-equal: 3.1.3
memize: 2.1.0
- postcss: 8.4.49
- postcss-prefixwrap: 1.53.0(postcss@8.4.49)
- postcss-urlrebase: 1.4.0(postcss@8.4.49)
+ postcss: 8.4.32
+ postcss-prefixwrap: 1.53.0(postcss@8.4.32)
+ postcss-urlrebase: 1.4.0(postcss@8.4.32)
react: 18.3.1
react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-dom: 18.3.1(react@18.3.1)
@@ -34446,6 +35128,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- supports-color
'@wordpress/block-editor@14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
@@ -34460,16 +35143,16 @@ snapshots:
'@wordpress/block-serialization-default-parser': 5.36.0
'@wordpress/blocks': 14.9.0(react@18.3.1)
'@wordpress/commands': 1.20.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/components': 29.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.36.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.21.0
- '@wordpress/deprecated': 4.21.0
- '@wordpress/dom': 4.21.0
- '@wordpress/element': 6.21.0
- '@wordpress/escape-html': 3.20.0
+ '@wordpress/deprecated': 4.36.0
+ '@wordpress/dom': 4.36.0
+ '@wordpress/element': 6.36.0
+ '@wordpress/escape-html': 3.36.0
'@wordpress/hooks': 4.39.0
- '@wordpress/html-entities': 4.21.0
+ '@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.21.0(react@18.3.1)
'@wordpress/is-shallow-equal': 5.36.0
@@ -34478,13 +35161,13 @@ snapshots:
'@wordpress/notices': 5.20.0(react@18.3.1)
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/priority-queue': 3.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
- '@wordpress/style-engine': 2.20.0
+ '@wordpress/style-engine': 2.36.0
'@wordpress/token-list': 3.20.0
'@wordpress/upload-media': 0.5.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/url': 4.20.0
- '@wordpress/warning': 3.36.0
+ '@wordpress/warning': 3.41.0
'@wordpress/wordcount': 4.20.0
change-case: 4.1.2
clsx: 2.1.1
@@ -34523,16 +35206,16 @@ snapshots:
'@wordpress/block-serialization-default-parser': 5.36.0
'@wordpress/blocks': 14.9.0(react@18.3.1)
'@wordpress/commands': 1.20.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/components': 29.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.36.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.21.0
- '@wordpress/deprecated': 4.21.0
- '@wordpress/dom': 4.21.0
- '@wordpress/element': 6.21.0
- '@wordpress/escape-html': 3.20.0
+ '@wordpress/deprecated': 4.36.0
+ '@wordpress/dom': 4.36.0
+ '@wordpress/element': 6.36.0
+ '@wordpress/escape-html': 3.36.0
'@wordpress/hooks': 4.39.0
- '@wordpress/html-entities': 4.21.0
+ '@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.21.0(react@18.3.1)
'@wordpress/is-shallow-equal': 5.36.0
@@ -34541,13 +35224,13 @@ snapshots:
'@wordpress/notices': 5.20.0(react@18.3.1)
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/priority-queue': 3.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
- '@wordpress/style-engine': 2.20.0
+ '@wordpress/style-engine': 2.36.0
'@wordpress/token-list': 3.20.0
'@wordpress/upload-media': 0.5.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/url': 4.20.0
- '@wordpress/warning': 3.36.0
+ '@wordpress/warning': 3.41.0
'@wordpress/wordcount': 4.20.0
change-case: 4.1.2
clsx: 2.1.1
@@ -34574,7 +35257,7 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/block-editor@14.15.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/block-editor@14.15.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
'@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
@@ -34586,16 +35269,16 @@ snapshots:
'@wordpress/block-serialization-default-parser': 5.36.0
'@wordpress/blocks': 14.9.0(react@18.3.1)
'@wordpress/commands': 1.20.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/components': 29.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.36.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.21.0
- '@wordpress/deprecated': 4.21.0
- '@wordpress/dom': 4.21.0
- '@wordpress/element': 6.21.0
- '@wordpress/escape-html': 3.20.0
+ '@wordpress/deprecated': 4.36.0
+ '@wordpress/dom': 4.36.0
+ '@wordpress/element': 6.36.0
+ '@wordpress/escape-html': 3.36.0
'@wordpress/hooks': 4.39.0
- '@wordpress/html-entities': 4.21.0
+ '@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.21.0(react@18.3.1)
'@wordpress/is-shallow-equal': 5.36.0
@@ -34604,13 +35287,13 @@ snapshots:
'@wordpress/notices': 5.20.0(react@18.3.1)
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/priority-queue': 3.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
- '@wordpress/style-engine': 2.20.0
+ '@wordpress/style-engine': 2.36.0
'@wordpress/token-list': 3.20.0
- '@wordpress/upload-media': 0.5.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/upload-media': 0.5.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/url': 4.20.0
- '@wordpress/warning': 3.36.0
+ '@wordpress/warning': 3.41.0
'@wordpress/wordcount': 4.20.0
change-case: 4.1.2
clsx: 2.1.1
@@ -34637,7 +35320,65 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/block-library@8.24.1(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/block-editor@14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@react-spring/web': 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/api-fetch': 7.19.1
+ '@wordpress/blob': 4.10.0
+ '@wordpress/block-serialization-default-parser': 5.10.0
+ '@wordpress/blocks': 13.10.0(react@18.3.1)
+ '@wordpress/commands': 1.20.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/date': 5.16.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/dom': 4.16.0
+ '@wordpress/element': 6.20.0
+ '@wordpress/escape-html': 3.16.0
+ '@wordpress/hooks': 4.16.0
+ '@wordpress/html-entities': 4.16.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/icons': 10.11.0
+ '@wordpress/is-shallow-equal': 5.16.0
+ '@wordpress/keyboard-shortcuts': 5.10.0(react@18.3.1)
+ '@wordpress/keycodes': 4.19.1
+ '@wordpress/notices': 5.15.1(react@18.3.1)
+ '@wordpress/preferences': 4.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/private-apis': 1.19.1
+ '@wordpress/rich-text': 7.16.0(react@18.3.1)
+ '@wordpress/style-engine': 2.20.0
+ '@wordpress/token-list': 3.10.0
+ '@wordpress/url': 4.19.1
+ '@wordpress/warning': 3.36.0
+ '@wordpress/wordcount': 4.20.0
+ change-case: 4.1.2
+ clsx: 2.1.1
+ colord: 2.9.3
+ deepmerge: 4.3.1
+ diff: 4.0.2
+ fast-deep-equal: 3.1.3
+ memize: 2.1.0
+ parsel-js: 1.1.2
+ postcss: 8.4.49
+ postcss-prefix-selector: 1.16.1(postcss@8.4.49)
+ postcss-urlrebase: 1.4.0(postcss@8.4.49)
+ react: 18.3.1
+ react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ react-easy-crop: 5.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ remove-accents: 0.5.0
+ transitivePeerDependencies:
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - supports-color
+
+ '@wordpress/block-library@8.24.1(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 3.58.0
@@ -34646,7 +35387,7 @@ snapshots:
'@wordpress/blob': 3.58.0
'@wordpress/block-editor': 12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 12.35.0(react@18.3.1)
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -34702,11 +35443,11 @@ snapshots:
'@wordpress/api-fetch': 7.0.1
'@wordpress/autop': 4.10.0
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
@@ -34760,11 +35501,11 @@ snapshots:
'@wordpress/api-fetch': 7.0.1
'@wordpress/autop': 4.10.0
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
@@ -34811,18 +35552,18 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/block-library@9.0.8(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/block-library@9.0.8(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.26.0
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
'@wordpress/autop': 4.10.0
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
@@ -34838,10 +35579,10 @@ snapshots:
'@wordpress/keyboard-shortcuts': 5.0.2(react@18.3.1)
'@wordpress/keycodes': 4.0.1
'@wordpress/notices': 5.0.2(react@18.3.1)
- '@wordpress/patterns': 2.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/patterns': 2.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/primitives': 4.0.1
'@wordpress/private-apis': 1.19.1
- '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/server-side-render': 5.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.0.1
@@ -34953,7 +35694,7 @@ snapshots:
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
'@wordpress/is-shallow-equal': 5.0.1
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.8.1
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/shortcode': 4.10.0
change-case: 4.1.2
@@ -34976,15 +35717,15 @@ snapshots:
'@wordpress/blob': 4.10.0
'@wordpress/block-serialization-default-parser': 5.10.0
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom': 4.16.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/hooks': 4.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/is-shallow-equal': 5.16.0
'@wordpress/private-apis': 1.19.1
- '@wordpress/rich-text': 7.36.0(react@18.3.1)
+ '@wordpress/rich-text': 7.16.0(react@18.3.1)
'@wordpress/shortcode': 4.10.0
'@wordpress/warning': 3.36.0
change-case: 4.1.2
@@ -35008,16 +35749,16 @@ snapshots:
'@wordpress/block-serialization-default-parser': 5.36.0
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/deprecated': 4.36.0
- '@wordpress/dom': 4.21.0
- '@wordpress/element': 6.21.0
+ '@wordpress/dom': 4.36.0
+ '@wordpress/element': 6.36.0
'@wordpress/hooks': 4.39.0
- '@wordpress/html-entities': 4.21.0
+ '@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/is-shallow-equal': 5.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
'@wordpress/shortcode': 4.36.0
- '@wordpress/warning': 3.36.0
+ '@wordpress/warning': 3.41.0
change-case: 4.1.2
colord: 2.9.3
fast-deep-equal: 3.1.3
@@ -35044,7 +35785,7 @@ snapshots:
'@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 6.12.0
'@wordpress/is-shallow-equal': 5.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
'@wordpress/shortcode': 4.36.0
'@wordpress/warning': 3.36.0
@@ -35067,10 +35808,12 @@ snapshots:
'@wordpress/browserslist-config@6.0.1': {}
- '@wordpress/browserslist-config@6.30.0': {}
-
'@wordpress/browserslist-config@6.40.1-next.v.202602271551.0': {}
+ '@wordpress/browserslist-config@6.41.1-next.v.202603161435.0': {}
+
+ '@wordpress/browserslist-config@6.42.0': {}
+
'@wordpress/commands@0.29.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
@@ -35090,10 +35833,10 @@ snapshots:
- '@types/react'
- supports-color
- '@wordpress/commands@0.9.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/commands@0.9.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 5.22.0
'@wordpress/i18n': 4.45.0
@@ -35122,7 +35865,7 @@ snapshots:
'@wordpress/i18n': 5.0.1
'@wordpress/icons': 10.0.2(react@18.3.1)
'@wordpress/keyboard-shortcuts': 5.0.2(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
clsx: 2.1.1
cmdk: 0.2.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
@@ -35132,34 +35875,35 @@ snapshots:
- '@types/react'
- supports-color
- '@wordpress/commands@1.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/commands@1.10.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.0.1
- '@wordpress/i18n': 5.0.1
- '@wordpress/icons': 10.0.2(react@18.3.1)
- '@wordpress/keyboard-shortcuts': 5.0.2(react@18.3.1)
+ '@wordpress/element': 6.16.0
+ '@wordpress/i18n': 5.16.0
+ '@wordpress/icons': 10.11.0
+ '@wordpress/keyboard-shortcuts': 5.10.0(react@18.3.1)
'@wordpress/private-apis': 1.19.1
clsx: 2.1.1
- cmdk: 0.2.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ cmdk: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- supports-color
- '@wordpress/commands@1.10.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/commands@1.10.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
- '@wordpress/i18n': 5.23.0
+ '@wordpress/element': 6.16.0
+ '@wordpress/i18n': 5.16.0
'@wordpress/icons': 10.11.0
- '@wordpress/keyboard-shortcuts': 5.20.0(react@18.3.1)
+ '@wordpress/keyboard-shortcuts': 5.10.0(react@18.3.1)
'@wordpress/private-apis': 1.19.1
clsx: 2.1.1
cmdk: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -35176,11 +35920,11 @@ snapshots:
'@babel/runtime': 7.25.7
'@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.21.0(react@18.3.1)
'@wordpress/keyboard-shortcuts': 5.20.0(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
clsx: 2.1.1
cmdk: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
@@ -35238,7 +35982,7 @@ snapshots:
- react-with-direction
- supports-color
- '@wordpress/components@25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/components@25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ariakit/react': 0.3.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.25.7
@@ -35291,7 +36035,7 @@ snapshots:
remove-accents: 0.5.0
use-lilius: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
uuid: 9.0.1
- valtio: 1.7.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1)
+ valtio: 1.7.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(babel-plugin-macros@3.1.0)(react@18.3.1)
transitivePeerDependencies:
- '@babel/helper-module-imports'
- '@babel/types'
@@ -35301,7 +36045,7 @@ snapshots:
- supports-color
- vite
- '@wordpress/components@26.0.6(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/components@26.0.6(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ariakit/react': 0.3.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.23.6
@@ -35353,7 +36097,7 @@ snapshots:
remove-accents: 0.5.0
use-lilius: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
uuid: 9.0.1
- valtio: 1.7.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1)
+ valtio: 1.7.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(babel-plugin-macros@3.1.0)(react@18.3.1)
transitivePeerDependencies:
- '@babel/helper-module-imports'
- '@babel/types'
@@ -35364,62 +36108,6 @@ snapshots:
- vite
'@wordpress/components@27.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@ariakit/react': 0.3.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@babel/runtime': 7.25.7
- '@emotion/cache': 11.11.0
- '@emotion/css': 11.11.2
- '@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
- '@emotion/serialize': 1.1.2
- '@emotion/styled': 11.11.0(@emotion/react@11.11.1(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
- '@emotion/utils': 1.2.1
- '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/gradient-parser': 0.1.3
- '@types/highlight-words-core': 1.2.1
- '@use-gesture/react': 10.3.1(react@18.3.1)
- '@wordpress/a11y': 3.58.0
- '@wordpress/compose': 6.35.0(react@18.3.1)
- '@wordpress/date': 4.58.0
- '@wordpress/deprecated': 3.58.0
- '@wordpress/dom': 3.58.0
- '@wordpress/element': 5.35.0
- '@wordpress/escape-html': 2.58.0
- '@wordpress/hooks': 3.58.0
- '@wordpress/html-entities': 3.58.0
- '@wordpress/i18n': 4.58.0
- '@wordpress/icons': 9.49.0
- '@wordpress/is-shallow-equal': 4.58.0
- '@wordpress/keycodes': 3.58.0
- '@wordpress/primitives': 3.56.0
- '@wordpress/private-apis': 0.40.0
- '@wordpress/rich-text': 6.35.0(react@18.3.1)
- '@wordpress/warning': 2.58.0
- change-case: 4.1.2
- clsx: 2.1.1
- colord: 2.9.3
- date-fns: 3.6.0
- deepmerge: 4.3.1
- downshift: 6.1.12(react@18.3.1)
- fast-deep-equal: 3.1.3
- framer-motion: 11.3.30(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- gradient-parser: 0.1.5
- highlight-words-core: 1.2.2
- is-plain-object: 5.0.0
- memize: 2.1.0
- path-to-regexp: 6.3.0
- re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react: 18.3.1
- react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- react-dom: 18.3.1(react@18.3.1)
- remove-accents: 0.5.0
- use-lilius: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- uuid: 9.0.1
- transitivePeerDependencies:
- - '@emotion/is-prop-valid'
- - '@types/react'
- - supports-color
-
- '@wordpress/components@27.6.0(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@ariakit/react': 0.3.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.25.7
@@ -35462,7 +36150,7 @@ snapshots:
highlight-words-core: 1.2.2
is-plain-object: 5.0.0
memize: 2.1.0
- path-to-regexp: 6.3.0
+ path-to-regexp: 6.2.1
re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -35495,7 +36183,7 @@ snapshots:
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
'@wordpress/element': 6.0.1
- '@wordpress/escape-html': 3.36.0
+ '@wordpress/escape-html': 3.16.0
'@wordpress/hooks': 4.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
@@ -35503,7 +36191,7 @@ snapshots:
'@wordpress/is-shallow-equal': 5.0.1
'@wordpress/keycodes': 4.0.1
'@wordpress/primitives': 4.0.1
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.16.0
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/warning': 3.0.1
change-case: 4.1.2
@@ -35518,7 +36206,7 @@ snapshots:
highlight-words-core: 1.2.2
is-plain-object: 5.0.0
memize: 2.1.0
- path-to-regexp: 6.3.0
+ path-to-regexp: 6.2.1
re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -35539,7 +36227,7 @@ snapshots:
'@emotion/css': 11.11.2
'@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
'@emotion/serialize': 1.1.2
- '@emotion/styled': 11.11.0(@emotion/react@11.11.1(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
'@emotion/utils': 1.2.1
'@floating-ui/react-dom': 2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@types/gradient-parser': 0.1.3
@@ -35551,7 +36239,7 @@ snapshots:
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
'@wordpress/element': 6.0.1
- '@wordpress/escape-html': 3.36.0
+ '@wordpress/escape-html': 3.16.0
'@wordpress/hooks': 4.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
@@ -35559,7 +36247,7 @@ snapshots:
'@wordpress/is-shallow-equal': 5.0.1
'@wordpress/keycodes': 4.0.1
'@wordpress/primitives': 4.0.1
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.16.0
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/warning': 3.0.1
change-case: 4.1.2
@@ -35574,7 +36262,7 @@ snapshots:
highlight-words-core: 1.2.2
is-plain-object: 5.0.0
memize: 2.1.0
- path-to-regexp: 6.3.0
+ path-to-regexp: 6.2.1
re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -35604,9 +36292,9 @@ snapshots:
'@wordpress/a11y': 4.39.0
'@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/date': 5.16.0
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom': 4.16.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/escape-html': 3.16.0
'@wordpress/hooks': 4.16.0
'@wordpress/html-entities': 4.16.0
@@ -35616,7 +36304,115 @@ snapshots:
'@wordpress/keycodes': 4.19.1
'@wordpress/primitives': 4.11.0(react@18.3.1)
'@wordpress/private-apis': 1.19.1
- '@wordpress/rich-text': 7.36.0(react@18.3.1)
+ '@wordpress/rich-text': 7.16.0(react@18.3.1)
+ '@wordpress/warning': 3.36.0
+ change-case: 4.1.2
+ clsx: 2.1.1
+ colord: 2.9.3
+ date-fns: 3.6.0
+ deepmerge: 4.3.1
+ fast-deep-equal: 3.1.3
+ framer-motion: 11.3.30(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ gradient-parser: 0.1.5
+ highlight-words-core: 1.2.2
+ is-plain-object: 5.0.0
+ memize: 2.1.0
+ path-to-regexp: 6.2.1
+ re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ remove-accents: 0.5.0
+ uuid: 9.0.1
+ transitivePeerDependencies:
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - supports-color
+
+ '@wordpress/components@28.10.0(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@babel/runtime': 7.25.7
+ '@emotion/cache': 11.11.0
+ '@emotion/css': 11.11.2
+ '@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/serialize': 1.1.2
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/utils': 1.2.1
+ '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@types/gradient-parser': 0.1.3
+ '@types/highlight-words-core': 1.2.1
+ '@use-gesture/react': 10.3.1(react@18.3.1)
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/date': 5.16.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/dom': 4.16.0
+ '@wordpress/element': 6.20.0
+ '@wordpress/escape-html': 3.16.0
+ '@wordpress/hooks': 4.16.0
+ '@wordpress/html-entities': 4.16.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/icons': 10.11.0
+ '@wordpress/is-shallow-equal': 5.16.0
+ '@wordpress/keycodes': 4.19.1
+ '@wordpress/primitives': 4.11.0(react@18.3.1)
+ '@wordpress/private-apis': 1.19.1
+ '@wordpress/rich-text': 7.16.0(react@18.3.1)
+ '@wordpress/warning': 3.36.0
+ change-case: 4.1.2
+ clsx: 2.1.1
+ colord: 2.9.3
+ date-fns: 3.6.0
+ deepmerge: 4.3.1
+ fast-deep-equal: 3.1.3
+ framer-motion: 11.3.30(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ gradient-parser: 0.1.5
+ highlight-words-core: 1.2.2
+ is-plain-object: 5.0.0
+ memize: 2.1.0
+ path-to-regexp: 6.2.1
+ re-resizable: 6.9.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ remove-accents: 0.5.0
+ uuid: 9.0.1
+ transitivePeerDependencies:
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - supports-color
+
+ '@wordpress/components@29.2.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@babel/runtime': 7.25.7
+ '@emotion/cache': 11.11.0
+ '@emotion/css': 11.11.2
+ '@emotion/react': 11.11.1(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/serialize': 1.1.2
+ '@emotion/styled': 11.11.0(@emotion/react@11.11.1(@types/react@18.3.16)(react@18.3.1))(@types/react@18.3.16)(react@18.3.1)
+ '@emotion/utils': 1.2.1
+ '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@types/gradient-parser': 0.1.3
+ '@types/highlight-words-core': 1.2.1
+ '@use-gesture/react': 10.3.1(react@18.3.1)
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/date': 5.16.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/dom': 4.16.0
+ '@wordpress/element': 6.20.0
+ '@wordpress/escape-html': 3.16.0
+ '@wordpress/hooks': 4.39.0
+ '@wordpress/html-entities': 4.16.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/icons': 10.20.0(react@18.3.1)
+ '@wordpress/is-shallow-equal': 5.16.0
+ '@wordpress/keycodes': 4.19.1
+ '@wordpress/primitives': 4.20.0(react@18.3.1)
+ '@wordpress/private-apis': 1.19.1
+ '@wordpress/rich-text': 7.16.0(react@18.3.1)
'@wordpress/warning': 3.36.0
change-case: 4.1.2
clsx: 2.1.1
@@ -35657,20 +36453,20 @@ snapshots:
'@use-gesture/react': 10.3.1(react@18.3.1)
'@wordpress/a11y': 4.39.0
'@wordpress/compose': 7.20.0(react@18.3.1)
- '@wordpress/date': 5.21.0
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/date': 5.20.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom': 4.20.0
'@wordpress/element': 6.20.0
'@wordpress/escape-html': 3.20.0
'@wordpress/hooks': 4.39.0
- '@wordpress/html-entities': 4.36.0
+ '@wordpress/html-entities': 4.20.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.20.0(react@18.3.1)
'@wordpress/is-shallow-equal': 5.20.0
'@wordpress/keycodes': 4.20.0
'@wordpress/primitives': 4.20.0(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
- '@wordpress/rich-text': 7.36.0(react@18.3.1)
+ '@wordpress/private-apis': 1.36.0
+ '@wordpress/rich-text': 7.20.0(react@18.3.1)
'@wordpress/warning': 3.36.0
change-case: 4.1.2
clsx: 2.1.1
@@ -35712,9 +36508,9 @@ snapshots:
'@wordpress/a11y': 4.39.0
'@wordpress/compose': 7.21.0(react@18.3.1)
'@wordpress/date': 5.21.0
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
'@wordpress/dom': 4.21.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
'@wordpress/escape-html': 3.21.0
'@wordpress/hooks': 4.21.0
'@wordpress/html-entities': 4.21.0
@@ -35723,8 +36519,8 @@ snapshots:
'@wordpress/is-shallow-equal': 5.21.0
'@wordpress/keycodes': 4.21.0
'@wordpress/primitives': 4.21.0(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
- '@wordpress/rich-text': 7.36.0(react@18.3.1)
+ '@wordpress/private-apis': 1.36.0
+ '@wordpress/rich-text': 7.21.0(react@18.3.1)
'@wordpress/warning': 3.36.0
change-case: 4.1.2
clsx: 2.1.1
@@ -35858,9 +36654,9 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@types/mousetrap': 1.6.15
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom': 4.16.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/is-shallow-equal': 5.16.0
'@wordpress/keycodes': 4.19.1
'@wordpress/priority-queue': 3.21.0
@@ -35875,9 +36671,9 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@types/mousetrap': 1.6.15
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom': 4.20.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/is-shallow-equal': 5.20.0
'@wordpress/keycodes': 4.20.0
'@wordpress/priority-queue': 3.21.0
@@ -35892,9 +36688,9 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@types/mousetrap': 1.6.15
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
'@wordpress/dom': 4.21.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
'@wordpress/is-shallow-equal': 5.21.0
'@wordpress/keycodes': 4.21.0
'@wordpress/priority-queue': 3.21.0
@@ -35921,10 +36717,10 @@ snapshots:
react: 18.3.1
use-memo-one: 1.1.3(react@18.3.1)
- '@wordpress/core-commands@0.7.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/core-commands@0.7.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/commands': 0.9.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/commands': 0.9.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 5.22.0
@@ -35947,20 +36743,20 @@ snapshots:
- utf-8-validate
- vite
- '@wordpress/core-commands@1.11.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/core-commands@1.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 6.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
'@wordpress/icons': 10.0.2(react@18.3.1)
'@wordpress/notices': 5.0.2(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
'@wordpress/router': 1.11.0(react@18.3.1)
'@wordpress/url': 4.0.1
react: 18.3.1
@@ -35968,6 +36764,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- bufferutil
- supports-color
- utf-8-validate
@@ -36025,24 +36822,24 @@ snapshots:
- supports-color
- utf-8-validate
- '@wordpress/core-data@7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/core-data@7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.26.0
- '@wordpress/api-fetch': 7.19.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/blocks': 13.10.0(react@18.3.1)
- '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/api-fetch': 7.0.1
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/blocks': 13.0.3(react@18.3.1)
+ '@wordpress/compose': 7.0.1(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.20.0
- '@wordpress/element': 6.20.0
- '@wordpress/html-entities': 4.16.0
- '@wordpress/i18n': 5.23.0
- '@wordpress/is-shallow-equal': 5.16.0
- '@wordpress/private-apis': 1.19.1
- '@wordpress/rich-text': 7.16.0(react@18.3.1)
+ '@wordpress/deprecated': 4.0.1
+ '@wordpress/element': 6.0.1
+ '@wordpress/html-entities': 4.0.1
+ '@wordpress/i18n': 5.0.1
+ '@wordpress/is-shallow-equal': 5.0.1
+ '@wordpress/private-apis': 1.16.0
+ '@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/sync': 1.10.0
'@wordpress/undo-manager': 1.10.0
- '@wordpress/url': 4.19.1
+ '@wordpress/url': 4.0.1
change-case: 4.1.2
equivalent-key-map: 0.2.2
fast-deep-equal: 3.1.3
@@ -36053,6 +36850,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- bufferutil
- supports-color
- utf-8-validate
@@ -36060,21 +36858,21 @@ snapshots:
'@wordpress/core-data@7.0.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.26.0
- '@wordpress/api-fetch': 7.19.1
+ '@wordpress/api-fetch': 7.0.1
'@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/blocks': 13.10.0(react@18.3.1)
- '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/blocks': 13.0.3(react@18.3.1)
+ '@wordpress/compose': 7.0.1(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.20.0
- '@wordpress/element': 6.20.0
- '@wordpress/html-entities': 4.16.0
- '@wordpress/i18n': 5.23.0
- '@wordpress/is-shallow-equal': 5.16.0
- '@wordpress/private-apis': 1.19.1
- '@wordpress/rich-text': 7.16.0(react@18.3.1)
+ '@wordpress/deprecated': 4.0.1
+ '@wordpress/element': 6.0.1
+ '@wordpress/html-entities': 4.0.1
+ '@wordpress/i18n': 5.0.1
+ '@wordpress/is-shallow-equal': 5.0.1
+ '@wordpress/private-apis': 1.16.0
+ '@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/sync': 1.10.0
'@wordpress/undo-manager': 1.10.0
- '@wordpress/url': 4.19.1
+ '@wordpress/url': 4.0.1
change-case: 4.1.2
equivalent-key-map: 0.2.2
fast-deep-equal: 3.1.3
@@ -36085,6 +36883,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- bufferutil
- supports-color
- utf-8-validate
@@ -36095,14 +36894,14 @@ snapshots:
'@wordpress/api-fetch': 7.20.0
'@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/blocks': 14.9.0(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/is-shallow-equal': 5.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
'@wordpress/sync': 1.20.0
'@wordpress/undo-manager': 1.36.0
@@ -36132,14 +36931,14 @@ snapshots:
'@wordpress/api-fetch': 7.20.0
'@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/blocks': 14.9.0(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/is-shallow-equal': 5.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
'@wordpress/sync': 1.20.0
'@wordpress/undo-manager': 1.36.0
@@ -36163,20 +36962,20 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/core-data@7.20.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/core-data@7.20.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/api-fetch': 7.20.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/block-editor': 14.15.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/blocks': 14.9.0(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/html-entities': 4.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/is-shallow-equal': 5.36.0
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/rich-text': 7.36.0(react@18.3.1)
'@wordpress/sync': 1.20.0
'@wordpress/undo-manager': 1.36.0
@@ -36241,7 +37040,7 @@ snapshots:
'@wordpress/element': 6.0.1
'@wordpress/is-shallow-equal': 5.0.1
'@wordpress/priority-queue': 3.0.1
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.16.0
'@wordpress/redux-routine': 5.12.0(redux@4.2.1)
deepmerge: 4.3.1
equivalent-key-map: 0.2.2
@@ -36275,7 +37074,7 @@ snapshots:
dependencies:
'@ariakit/react': 0.4.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@babel/runtime': 7.25.7
- '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 29.2.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.16.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 6.16.0
@@ -36304,7 +37103,7 @@ snapshots:
'@wordpress/i18n': 5.21.0
'@wordpress/icons': 10.21.0(react@18.3.1)
'@wordpress/primitives': 4.21.0(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.21.0
'@wordpress/warning': 3.21.0
clsx: 2.1.1
react: 18.3.1
@@ -36368,45 +37167,57 @@ snapshots:
'@wordpress/date@5.10.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
moment: 2.29.4
moment-timezone: 0.5.43
'@wordpress/date@5.16.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
+ moment: 2.29.4
+ moment-timezone: 0.5.43
+
+ '@wordpress/date@5.20.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/deprecated': 4.21.0
moment: 2.29.4
moment-timezone: 0.5.43
'@wordpress/date@5.21.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
moment: 2.29.4
moment-timezone: 0.5.43
- '@wordpress/dependency-extraction-webpack-plugin@3.7.0(webpack@5.89.0)':
+ '@wordpress/dependency-extraction-webpack-plugin@3.7.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.4
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
- webpack-sources: 3.2.3
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack-sources: 3.3.4
'@wordpress/dependency-extraction-webpack-plugin@5.9.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.7
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
'@wordpress/dependency-extraction-webpack-plugin@6.30.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.7
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
'@wordpress/dependency-extraction-webpack-plugin@6.40.1-next.v.202602271551.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.7
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ '@wordpress/dependency-extraction-webpack-plugin@6.41.1-next.v.202603161435.0(webpack@5.97.1)':
+ dependencies:
+ json2php: 0.0.7
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+
'@wordpress/deprecated@2.12.3':
dependencies:
'@babel/runtime': 7.25.7
@@ -36483,22 +37294,22 @@ snapshots:
'@wordpress/dom@4.10.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom@4.16.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
'@wordpress/dom@4.20.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.20.0
'@wordpress/dom@4.21.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/deprecated': 4.36.0
+ '@wordpress/deprecated': 4.21.0
'@wordpress/dom@4.36.0':
dependencies:
@@ -36565,19 +37376,66 @@ snapshots:
- supports-color
- utf-8-validate
+ '@wordpress/edit-post@8.0.9(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/a11y': 4.0.1
+ '@wordpress/api-fetch': 7.0.1
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-library': 9.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/blocks': 13.0.3(react@18.3.1)
+ '@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.0.1(react@18.3.1)
+ '@wordpress/core-commands': 1.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/deprecated': 4.0.1
+ '@wordpress/dom': 4.0.1
+ '@wordpress/editor': 14.8.19(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/element': 6.0.1
+ '@wordpress/hooks': 4.0.1
+ '@wordpress/html-entities': 4.0.1
+ '@wordpress/i18n': 5.0.1
+ '@wordpress/icons': 10.0.2(react@18.3.1)
+ '@wordpress/keyboard-shortcuts': 5.0.2(react@18.3.1)
+ '@wordpress/keycodes': 4.0.1
+ '@wordpress/notices': 5.0.2(react@18.3.1)
+ '@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/private-apis': 1.0.2
+ '@wordpress/url': 4.0.1
+ '@wordpress/viewport': 6.0.2(react@18.3.1)
+ '@wordpress/warning': 3.0.1
+ '@wordpress/widgets': 4.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ clsx: 2.1.1
+ memize: 2.1.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ - webpack
+ - webpack-virtual-modules
+
'@wordpress/edit-post@8.0.9(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/block-library': 9.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-commands': 1.11.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-commands': 1.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
@@ -36592,11 +37450,11 @@ snapshots:
'@wordpress/notices': 5.0.2(react@18.3.1)
'@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
'@wordpress/url': 4.0.1
'@wordpress/viewport': 6.0.2(react@18.3.1)
'@wordpress/warning': 3.0.1
- '@wordpress/widgets': 4.11.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/widgets': 4.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
clsx: 2.1.1
memize: 2.1.0
react: 18.3.1
@@ -36612,45 +37470,45 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/edit-site@5.15.0(patch_hash=63381743e38412fb89154386a5d169639ca10f8315407527829db669201fce9b)(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/edit-site@5.15.0(patch_hash=63381743e38412fb89154386a5d169639ca10f8315407527829db669201fce9b)(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 3.58.0
'@wordpress/api-fetch': 6.55.0
'@wordpress/block-editor': 12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/block-library': 8.24.1(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-library': 8.24.1(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@preact/signals-core@1.8.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 12.35.0(react@18.3.1)
- '@wordpress/commands': 0.9.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/commands': 0.9.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
- '@wordpress/core-commands': 0.7.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-commands': 0.7.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 4.44.0
'@wordpress/deprecated': 3.58.0
'@wordpress/dom': 3.58.0
- '@wordpress/editor': 13.19.14(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/editor': 13.19.14(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/element': 5.22.0
'@wordpress/escape-html': 2.57.0
'@wordpress/hooks': 3.58.0
'@wordpress/html-entities': 3.58.0
'@wordpress/i18n': 4.45.0
'@wordpress/icons': 9.36.0
- '@wordpress/interface': 5.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/interface': 5.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/keyboard-shortcuts': 4.35.0(react@18.3.1)
'@wordpress/keycodes': 3.58.0
'@wordpress/media-utils': 4.49.0
'@wordpress/notices': 4.26.0(react@18.3.1)
- '@wordpress/plugins': 6.15.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/plugins': 6.15.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 3.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/primitives': 3.56.0
'@wordpress/private-apis': 0.20.0
- '@wordpress/reusable-blocks': 4.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/reusable-blocks': 4.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/router': 0.7.0(react@18.3.1)
'@wordpress/style-engine': 1.30.0
'@wordpress/url': 3.59.0
'@wordpress/viewport': 5.24.0(react@18.3.1)
- '@wordpress/widgets': 3.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/widgets': 3.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/wordcount': 3.58.0
change-case: 4.1.2
classnames: 2.3.2
@@ -36679,7 +37537,7 @@ snapshots:
- utf-8-validate
- vite
- '@wordpress/editor@13.19.14(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/editor@13.19.14(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 3.58.0
@@ -36687,7 +37545,7 @@ snapshots:
'@wordpress/blob': 3.58.0
'@wordpress/block-editor': 12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 12.35.0(react@18.3.1)
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -36731,18 +37589,77 @@ snapshots:
- utf-8-validate
- vite
+ '@wordpress/editor@14.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/a11y': 4.0.1
+ '@wordpress/api-fetch': 7.0.1
+ '@wordpress/blob': 4.0.1
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/blocks': 13.0.3(react@18.3.1)
+ '@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.0.1(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/date': 5.0.1
+ '@wordpress/deprecated': 4.0.1
+ '@wordpress/dom': 4.0.1
+ '@wordpress/element': 6.0.1
+ '@wordpress/hooks': 4.0.1
+ '@wordpress/html-entities': 4.0.1
+ '@wordpress/i18n': 5.0.1
+ '@wordpress/icons': 10.0.2(react@18.3.1)
+ '@wordpress/interface': 6.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/keyboard-shortcuts': 5.0.2(react@18.3.1)
+ '@wordpress/keycodes': 4.0.1
+ '@wordpress/media-utils': 5.0.1
+ '@wordpress/notices': 5.0.2(react@18.3.1)
+ '@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/private-apis': 1.0.2
+ '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/rich-text': 7.0.2(react@18.3.1)
+ '@wordpress/server-side-render': 5.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/url': 4.0.1
+ '@wordpress/warning': 3.0.1
+ '@wordpress/wordcount': 4.0.1
+ change-case: 4.1.2
+ client-zip: 2.4.5
+ clsx: 2.1.1
+ date-fns: 3.6.0
+ deepmerge: 4.3.1
+ fast-deep-equal: 3.1.3
+ is-plain-object: 5.0.0
+ memize: 2.1.0
+ react: 18.3.1
+ react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ remove-accents: 0.5.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ - webpack
+ - webpack-virtual-modules
+
'@wordpress/editor@14.0.8(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
@@ -36760,7 +37677,7 @@ snapshots:
'@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
'@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/server-side-render': 5.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36790,18 +37707,18 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/editor@14.0.8(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/editor@14.0.8(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
@@ -36816,11 +37733,11 @@ snapshots:
'@wordpress/keycodes': 4.0.1
'@wordpress/media-utils': 5.0.1
'@wordpress/notices': 5.0.2(react@18.3.1)
- '@wordpress/patterns': 2.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/patterns': 2.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
- '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/private-apis': 1.0.2
+ '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/server-side-render': 5.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.0.1
@@ -36849,25 +37766,25 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/editor@14.14.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
+ '@wordpress/editor@14.14.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.0.1
'@wordpress/api-fetch': 7.0.1
'@wordpress/blob': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/commands': 1.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/dataviews': 4.17.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/dataviews': 4.12.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/date': 5.0.1
'@wordpress/deprecated': 4.0.1
'@wordpress/dom': 4.0.1
'@wordpress/element': 6.0.1
- '@wordpress/fields': 0.0.17(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/fields': 0.0.11(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/hooks': 4.0.1
'@wordpress/html-entities': 4.0.1
'@wordpress/i18n': 5.0.1
@@ -36877,11 +37794,11 @@ snapshots:
'@wordpress/keycodes': 4.0.1
'@wordpress/media-utils': 5.0.1
'@wordpress/notices': 5.0.2(react@18.3.1)
- '@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
- '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/private-apis': 1.0.2
+ '@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/rich-text': 7.0.2(react@18.3.1)
'@wordpress/server-side-render': 5.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.0.1
@@ -36917,7 +37834,7 @@ snapshots:
'@wordpress/a11y': 4.39.0
'@wordpress/api-fetch': 7.10.0
'@wordpress/blob': 4.10.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/commands': 1.10.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36935,13 +37852,13 @@ snapshots:
'@wordpress/i18n': 5.16.0
'@wordpress/icons': 10.11.0
'@wordpress/interface': 6.9.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/keyboard-shortcuts': 5.20.0(react@18.3.1)
+ '@wordpress/keyboard-shortcuts': 5.10.0(react@18.3.1)
'@wordpress/keycodes': 4.16.0
'@wordpress/media-utils': 5.10.0
'@wordpress/notices': 5.15.1(react@18.3.1)
'@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/plugins': 7.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/preferences': 4.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.19.1
'@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/rich-text': 7.16.0(react@18.3.1)
@@ -36979,7 +37896,7 @@ snapshots:
'@wordpress/a11y': 4.39.0
'@wordpress/api-fetch': 7.10.0
'@wordpress/blob': 4.10.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/commands': 1.10.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36997,13 +37914,13 @@ snapshots:
'@wordpress/i18n': 5.16.0
'@wordpress/icons': 10.11.0
'@wordpress/interface': 6.9.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/keyboard-shortcuts': 5.20.0(react@18.3.1)
+ '@wordpress/keyboard-shortcuts': 5.10.0(react@18.3.1)
'@wordpress/keycodes': 4.16.0
'@wordpress/media-utils': 5.10.0
'@wordpress/notices': 5.15.1(react@18.3.1)
'@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/plugins': 7.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/preferences': 4.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.19.1
'@wordpress/reusable-blocks': 5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/rich-text': 7.16.0(react@18.3.1)
@@ -37357,22 +38274,22 @@ snapshots:
- jest
- supports-color
- '@wordpress/eslint-plugin@22.16.0(@babel/core@7.25.7)(@types/eslint@8.44.8)(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)(wp-prettier@3.0.3)':
+ '@wordpress/eslint-plugin@22.16.0(@babel/core@7.25.7)(@types/eslint@8.44.8)(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3)(wp-prettier@3.0.3)':
dependencies:
'@babel/core': 7.25.7
'@babel/eslint-parser': 7.25.7(@babel/core@7.25.7)(eslint@8.55.0)
- '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2)
- '@typescript-eslint/parser': 6.21.0(eslint@8.55.0)(typescript@5.7.2)
+ '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3)
+ '@typescript-eslint/parser': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
'@wordpress/babel-preset-default': 8.30.0
'@wordpress/prettier-config': 4.30.0(wp-prettier@3.0.3)
cosmiconfig: 7.1.0
eslint: 8.55.0
eslint-config-prettier: 8.10.0(eslint@8.55.0)
- eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.2)(eslint@8.55.0)
- eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
+ eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)
+ eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3)
eslint-plugin-jsdoc: 46.10.1(eslint@8.55.0)
eslint-plugin-jsx-a11y: 6.8.0(eslint@8.55.0)
- eslint-plugin-playwright: 0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2))(eslint@8.55.0)
+ eslint-plugin-playwright: 0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3))(eslint@8.55.0)
eslint-plugin-prettier: 5.2.3(@types/eslint@8.44.8)(eslint-config-prettier@8.10.0(eslint@8.55.0))(eslint@8.55.0)(wp-prettier@3.0.3)
eslint-plugin-react: 7.33.2(eslint@8.55.0)
eslint-plugin-react-hooks: 4.6.0(eslint@8.55.0)
@@ -37380,7 +38297,7 @@ snapshots:
requireindex: 1.2.0
optionalDependencies:
prettier: wp-prettier@3.0.3
- typescript: 5.7.2
+ typescript: 5.9.3
transitivePeerDependencies:
- '@types/eslint'
- eslint-import-resolver-typescript
@@ -37419,9 +38336,9 @@ snapshots:
- jest
- supports-color
- '@wordpress/eslint-plugin@9.3.0(@babel/core@7.26.0)(eslint@7.32.0)(typescript@5.7.2)':
+ '@wordpress/eslint-plugin@9.3.0(@babel/core@7.29.0)(eslint@7.32.0)(typescript@5.7.2)':
dependencies:
- '@babel/eslint-parser': 7.23.3(@babel/core@7.26.0)(eslint@7.32.0)
+ '@babel/eslint-parser': 7.23.3(@babel/core@7.29.0)(eslint@7.32.0)
'@typescript-eslint/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2)
'@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@5.7.2)
'@wordpress/prettier-config': 1.4.0(wp-prettier@2.2.1-beta-1)
@@ -37446,17 +38363,53 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
+ '@wordpress/fields@0.0.11(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/blob': 4.20.0
+ '@wordpress/blocks': 13.10.0(react@18.3.1)
+ '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/dataviews': 4.12.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/element': 6.36.0
+ '@wordpress/hooks': 4.39.0
+ '@wordpress/html-entities': 4.21.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/icons': 10.11.0
+ '@wordpress/notices': 5.15.1(react@18.3.1)
+ '@wordpress/patterns': 2.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/primitives': 4.11.0(react@18.3.1)
+ '@wordpress/private-apis': 1.19.1
+ '@wordpress/url': 4.19.1
+ '@wordpress/warning': 3.36.0
+ change-case: 4.1.2
+ client-zip: 2.4.5
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - bufferutil
+ - react-dom
+ - supports-color
+ - utf-8-validate
+ - webpack
+ - webpack-virtual-modules
+
'@wordpress/fields@0.0.17(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/blob': 4.10.0
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/dataviews': 4.12.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/hooks': 4.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
@@ -37488,11 +38441,11 @@ snapshots:
'@wordpress/blob': 4.10.0
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/dataviews': 4.12.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/hooks': 4.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
@@ -37518,11 +38471,11 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/format-library@5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/format-library@5.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.26.0
'@wordpress/a11y': 4.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -37538,6 +38491,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- supports-color
'@wordpress/global-styles-engine@1.3.0(react@18.3.1)':
@@ -37596,6 +38550,10 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
+ '@wordpress/html-entities@4.20.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
'@wordpress/html-entities@4.21.0':
dependencies:
'@babel/runtime': 7.25.7
@@ -37708,7 +38666,7 @@ snapshots:
'@wordpress/icons@10.16.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/primitives': 4.20.0(react@18.3.1)
transitivePeerDependencies:
- react
@@ -37716,7 +38674,7 @@ snapshots:
'@wordpress/icons@10.20.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/primitives': 4.20.0(react@18.3.1)
transitivePeerDependencies:
- react
@@ -37724,7 +38682,7 @@ snapshots:
'@wordpress/icons@10.21.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
'@wordpress/primitives': 4.21.0(react@18.3.1)
transitivePeerDependencies:
- react
@@ -37780,18 +38738,18 @@ snapshots:
'@preact/signals': 1.3.1(preact@10.25.1)
preact: 10.25.1
- '@wordpress/interface@5.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/interface@5.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 3.58.0
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/deprecated': 3.58.0
'@wordpress/element': 5.35.0
'@wordpress/i18n': 4.58.0
'@wordpress/icons': 9.49.0
- '@wordpress/plugins': 6.15.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/plugins': 6.15.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 3.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/viewport': 5.24.0(react@18.3.1)
classnames: 2.3.2
@@ -37820,7 +38778,7 @@ snapshots:
'@wordpress/icons': 10.0.2(react@18.3.1)
'@wordpress/plugins': 7.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
'@wordpress/viewport': 6.0.2(react@18.3.1)
clsx: 2.1.1
react: 18.3.1
@@ -37835,14 +38793,14 @@ snapshots:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.39.0
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
'@wordpress/plugins': 7.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/preferences': 4.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.19.1
'@wordpress/viewport': 6.10.0(react@18.3.1)
clsx: 2.1.1
@@ -37926,10 +38884,10 @@ snapshots:
jest: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
jest-matcher-utils: 29.7.0
- '@wordpress/jest-console@8.30.0(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))':
+ '@wordpress/jest-console@8.30.0(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))':
dependencies:
'@babel/runtime': 7.25.7
- jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
jest-matcher-utils: 29.7.0
'@wordpress/jest-preset-default@11.29.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))':
@@ -37959,20 +38917,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@wordpress/jest-preset-default@12.30.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))':
+ '@wordpress/jest-preset-default@12.30.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))':
dependencies:
'@babel/core': 7.25.7
- '@wordpress/jest-console': 8.30.0(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
+ '@wordpress/jest-console': 8.30.0(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))
babel-jest: 29.7.0(@babel/core@7.25.7)
- jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
transitivePeerDependencies:
- supports-color
- '@wordpress/jest-preset-default@7.1.3(@babel/core@7.26.0)(jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/jest-preset-default@7.1.3(@babel/core@7.29.0)(jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@wojtekmaj/enzyme-adapter-react-17': 0.6.7(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/jest-console': 4.1.1(jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))
- babel-jest: 26.6.3(@babel/core@7.26.0)
+ babel-jest: 26.6.3(@babel/core@7.29.0)
enzyme: 3.11.0
enzyme-to-json: 3.6.2(enzyme@3.11.0)
jest: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
@@ -38025,12 +38983,20 @@ snapshots:
'@wordpress/keycodes': 4.0.1
react: 18.3.1
+ '@wordpress/keyboard-shortcuts@5.10.0(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/element': 6.20.0
+ '@wordpress/keycodes': 4.19.1
+ react: 18.3.1
+
'@wordpress/keyboard-shortcuts@5.20.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 6.36.0
- '@wordpress/keycodes': 4.36.0
+ '@wordpress/keycodes': 4.21.0
react: 18.3.1
'@wordpress/keycodes@2.19.3':
@@ -38077,7 +39043,7 @@ snapshots:
dependencies:
execa: 4.1.0
npm-package-arg: 8.1.5
- semver: 7.6.3
+ semver: 7.7.4
'@wordpress/media-utils@4.49.0':
dependencies:
@@ -38100,7 +39066,7 @@ snapshots:
'@babel/runtime': 7.25.7
'@wordpress/api-fetch': 7.19.1
'@wordpress/blob': 4.10.0
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
'@wordpress/i18n': 5.23.0
'@wordpress/notices@4.26.0(react@18.3.1)':
@@ -38147,9 +39113,9 @@ snapshots:
dependencies:
npm-package-json-lint: 6.4.0(typescript@5.7.2)
- '@wordpress/npm-package-json-lint-config@5.30.0(npm-package-json-lint@6.4.0(typescript@5.7.2))':
+ '@wordpress/npm-package-json-lint-config@5.30.0(npm-package-json-lint@6.4.0(typescript@5.9.3))':
dependencies:
- npm-package-json-lint: 6.4.0(typescript@5.7.2)
+ npm-package-json-lint: 6.4.0(typescript@5.9.3)
'@wordpress/patterns@1.19.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
@@ -38181,13 +39147,13 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.39.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.16.0(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
@@ -38211,13 +39177,13 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.39.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.16.0(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
@@ -38237,17 +39203,17 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/patterns@2.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/patterns@2.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.39.0
- '@wordpress/block-editor': 14.15.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
- '@wordpress/core-data': 7.20.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/compose': 7.16.0(react@18.3.1)
+ '@wordpress/core-data': 7.20.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/html-entities': 4.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
@@ -38267,10 +39233,10 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/plugins@6.15.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/plugins@6.15.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
'@wordpress/element': 5.35.0
'@wordpress/hooks': 3.58.0
@@ -38309,8 +39275,8 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/element': 6.20.0
'@wordpress/hooks': 4.16.0
'@wordpress/icons': 10.11.0
'@wordpress/is-shallow-equal': 5.16.0
@@ -38394,7 +39360,7 @@ snapshots:
'@wordpress/preferences@4.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.25.7
+ '@babel/runtime': 7.26.0
'@wordpress/a11y': 4.0.1
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
@@ -38403,7 +39369,7 @@ snapshots:
'@wordpress/element': 6.0.1
'@wordpress/i18n': 5.0.1
'@wordpress/icons': 10.0.2(react@18.3.1)
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
clsx: 2.1.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -38414,7 +39380,7 @@ snapshots:
'@wordpress/preferences@4.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@babel/runtime': 7.25.7
+ '@babel/runtime': 7.26.0
'@wordpress/a11y': 4.0.1
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
@@ -38423,6 +39389,26 @@ snapshots:
'@wordpress/element': 6.0.1
'@wordpress/i18n': 5.0.1
'@wordpress/icons': 10.0.2(react@18.3.1)
+ '@wordpress/private-apis': 1.0.2
+ clsx: 2.1.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - supports-color
+
+ '@wordpress/preferences@4.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/icons': 10.11.0
'@wordpress/private-apis': 1.19.1
clsx: 2.1.1
react: 18.3.1
@@ -38436,14 +39422,14 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.39.0
- '@wordpress/components': 29.6.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.21.0(react@18.3.1)
+ '@wordpress/components': 29.7.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.36.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.21.0
- '@wordpress/element': 6.21.0
+ '@wordpress/deprecated': 4.36.0
+ '@wordpress/element': 6.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.21.0(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
clsx: 2.1.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -38520,7 +39506,7 @@ snapshots:
'@wordpress/primitives@4.16.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.20.0
clsx: 2.1.1
react: 18.3.1
@@ -38534,7 +39520,7 @@ snapshots:
'@wordpress/primitives@4.21.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
clsx: 2.1.1
react: 18.3.1
@@ -38589,11 +39575,23 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
+ '@wordpress/private-apis@1.16.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
'@wordpress/private-apis@1.19.1':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/private-apis@1.40.0': {}
+ '@wordpress/private-apis@1.21.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
+ '@wordpress/private-apis@1.36.0': {}
+
+ '@wordpress/private-apis@1.8.1':
+ dependencies:
+ '@babel/runtime': 7.25.7
'@wordpress/react-i18n@3.55.0':
dependencies:
@@ -38610,12 +39608,12 @@ snapshots:
redux: 4.2.1
rungen: 0.3.2
- '@wordpress/reusable-blocks@4.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/reusable-blocks@4.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/block-editor': 12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 12.35.0(react@18.3.1)
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 5.35.0
@@ -38664,12 +39662,12 @@ snapshots:
'@wordpress/reusable-blocks@5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
'@wordpress/notices': 5.15.1(react@18.3.1)
@@ -38691,12 +39689,12 @@ snapshots:
'@wordpress/reusable-blocks@5.10.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/block-editor': 14.15.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/core-data': 7.20.0(@babel/core@7.25.7)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
'@wordpress/notices': 5.15.1(react@18.3.1)
@@ -38715,15 +39713,15 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/reusable-blocks@5.10.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/reusable-blocks@5.10.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/block-editor': 14.15.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/block-editor': 14.5.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/core-data': 7.20.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))
+ '@wordpress/core-data': 7.20.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/icons': 10.11.0
'@wordpress/notices': 5.15.1(react@18.3.1)
@@ -38793,14 +39791,42 @@ snapshots:
'@wordpress/a11y': 4.39.0
'@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/escape-html': 3.16.0
'@wordpress/i18n': 5.23.0
'@wordpress/keycodes': 4.19.1
memize: 2.1.0
react: 18.3.1
+ '@wordpress/rich-text@7.20.0(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/compose': 7.20.0(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/deprecated': 4.21.0
+ '@wordpress/element': 6.36.0
+ '@wordpress/escape-html': 3.20.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/keycodes': 4.20.0
+ memize: 2.1.0
+ react: 18.3.1
+
+ '@wordpress/rich-text@7.21.0(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/a11y': 4.39.0
+ '@wordpress/compose': 7.21.0(react@18.3.1)
+ '@wordpress/data': 10.0.2(react@18.3.1)
+ '@wordpress/deprecated': 4.21.0
+ '@wordpress/element': 6.21.0
+ '@wordpress/escape-html': 3.21.0
+ '@wordpress/i18n': 5.23.0
+ '@wordpress/keycodes': 4.21.0
+ memize: 2.1.0
+ react: 18.3.1
+
'@wordpress/rich-text@7.36.0(react@18.3.1)':
dependencies:
'@wordpress/a11y': 4.39.0
@@ -38828,31 +39854,31 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/element': 6.0.1
- '@wordpress/private-apis': 1.19.1
+ '@wordpress/private-apis': 1.0.2
'@wordpress/url': 4.0.1
history: 5.3.0
react: 18.3.1
- '@wordpress/scripts@19.2.4(@babel/core@7.26.0)(@swc/core@1.3.100)(file-loader@6.2.0(webpack@5.97.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))(typescript@5.7.2)(uglify-js@3.17.4)':
+ '@wordpress/scripts@19.2.4(@babel/core@7.29.0)(@swc/core@1.3.100)(file-loader@6.2.0(webpack@5.105.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))(typescript@5.7.2)(uglify-js@3.17.4)':
dependencies:
'@svgr/webpack': 5.5.0
'@wordpress/babel-preset-default': 6.17.0
'@wordpress/browserslist-config': 4.1.3
- '@wordpress/dependency-extraction-webpack-plugin': 3.7.0(webpack@5.89.0)
- '@wordpress/eslint-plugin': 9.3.0(@babel/core@7.26.0)(eslint@7.32.0)(typescript@5.7.2)
- '@wordpress/jest-preset-default': 7.1.3(@babel/core@7.26.0)(jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/dependency-extraction-webpack-plugin': 3.7.0(webpack@5.97.1)
+ '@wordpress/eslint-plugin': 9.3.0(@babel/core@7.29.0)(eslint@7.32.0)(typescript@5.7.2)
+ '@wordpress/jest-preset-default': 7.1.3(@babel/core@7.29.0)(jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/npm-package-json-lint-config': 4.32.0(npm-package-json-lint@5.4.2)
'@wordpress/postcss-plugins-preset': 3.6.1(postcss@8.4.32)
'@wordpress/prettier-config': 1.4.0(wp-prettier@2.2.1-beta-1)
'@wordpress/stylelint-config': 19.1.0(stylelint@13.13.1)
- babel-jest: 26.6.3(@babel/core@7.26.0)
- babel-loader: 8.3.0(@babel/core@7.26.0)(webpack@5.89.0)
+ babel-jest: 26.6.3(@babel/core@7.29.0)
+ babel-loader: 8.3.0(@babel/core@7.29.0)(webpack@5.97.1)
browserslist: 4.19.3
chalk: 4.1.2
check-node-version: 4.2.1
- clean-webpack-plugin: 3.0.0(webpack@5.89.0)
+ clean-webpack-plugin: 3.0.0(webpack@5.97.1)
cross-spawn: 5.1.0
- css-loader: 6.8.1(webpack@5.89.0)
+ css-loader: 6.8.1(webpack@5.97.1)
cssnano: 5.1.12(postcss@8.4.32)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38861,31 +39887,31 @@ snapshots:
expect-puppeteer: 4.4.0
filenamify: 4.3.0
jest: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
- jest-circus: 26.6.3
+ jest-circus: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
jest-dev-server: 5.0.3
jest-environment-node: 26.6.2
markdownlint: 0.23.1
markdownlint-cli: 0.27.1
merge-deep: 3.0.3
- mini-css-extract-plugin: 2.7.6(webpack@5.89.0)
+ mini-css-extract-plugin: 2.7.6(webpack@5.97.1)
minimist: 1.2.8
npm-package-json-lint: 5.4.2
postcss: 8.4.32
- postcss-loader: 6.2.1(postcss@8.4.32)(webpack@5.89.0)
+ postcss-loader: 6.2.1(postcss@8.4.32)(webpack@5.97.1)
prettier: wp-prettier@2.2.1-beta-1
puppeteer-core: 10.4.0
read-pkg-up: 1.0.1
resolve-bin: 0.4.3
sass: 1.69.5
- sass-loader: 12.6.0(sass@1.69.5)(webpack@5.89.0)
- source-map-loader: 3.0.2(webpack@5.89.0)
+ sass-loader: 12.6.0(sass@1.69.5)(webpack@5.97.1)
+ source-map-loader: 3.0.2(webpack@5.97.1)
stylelint: 13.13.1
- terser-webpack-plugin: 5.3.6(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.89.0)
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.89.0)
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ terser-webpack-plugin: 5.3.6(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1)
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.2))(webpack@5.97.1)
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
webpack-bundle-analyzer: 4.7.0
- webpack-cli: 4.10.0(webpack@5.97.1)
- webpack-livereload-plugin: 3.0.2(webpack@5.89.0)
+ webpack-cli: 4.10.0(webpack@5.105.2)
+ webpack-livereload-plugin: 3.0.2(webpack@5.97.1)
transitivePeerDependencies:
- '@babel/core'
- '@swc/core'
@@ -38937,7 +39963,7 @@ snapshots:
clean-webpack-plugin: 3.0.0(webpack@5.97.1)
copy-webpack-plugin: 10.2.4(webpack@5.97.1)
cross-spawn: 5.1.0
- css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ css-loader: 6.11.0(webpack@5.97.1)
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38951,7 +39977,7 @@ snapshots:
jest-environment-node: 29.7.0
markdownlint-cli: 0.31.1
merge-deep: 3.0.3
- mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ mini-css-extract-plugin: 2.9.2(webpack@5.97.1)
minimist: 1.2.8
npm-package-json-lint: 6.4.0(typescript@5.7.2)
npm-packlist: 3.0.0
@@ -38969,12 +39995,12 @@ snapshots:
sass-loader: 12.6.0(sass@1.69.5)(webpack@5.97.1)
source-map-loader: 3.0.2(webpack@5.97.1)
stylelint: 14.16.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100))
+ terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1)
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.97.1)
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.1(webpack@5.97.1)
transitivePeerDependencies:
- '@rspack/core'
- '@swc/core'
@@ -39012,7 +40038,7 @@ snapshots:
'@pmmmwh/react-refresh-webpack-plugin': 0.5.11(@types/webpack@4.41.38)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.1)(webpack-hot-middleware@2.25.4)(webpack@5.97.1)
'@svgr/webpack': 8.1.0(typescript@5.7.2)
'@wordpress/babel-preset-default': 8.30.0
- '@wordpress/browserslist-config': 6.30.0
+ '@wordpress/browserslist-config': 6.42.0
'@wordpress/dependency-extraction-webpack-plugin': 6.30.0(webpack@5.97.1)
'@wordpress/e2e-test-utils-playwright': 1.22.0(@playwright/test@1.57.0)
'@wordpress/eslint-plugin': 22.8.0(@babel/core@7.25.7)(@types/eslint@8.44.8)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.2)(eslint@8.55.0)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)(wp-prettier@3.0.3)
@@ -39023,14 +40049,14 @@ snapshots:
'@wordpress/stylelint-config': 23.14.0(postcss@8.4.49)(stylelint-scss@6.11.1(stylelint@16.11.0(typescript@5.7.2)))(stylelint@16.11.0(typescript@5.7.2))
adm-zip: 0.5.10
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100))
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
browserslist: 4.24.4
chalk: 4.1.2
check-node-version: 4.2.1
clean-webpack-plugin: 3.0.0(webpack@5.97.1)
copy-webpack-plugin: 10.2.4(webpack@5.97.1)
cross-spawn: 7.0.6
- css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ css-loader: 6.11.0(webpack@5.97.1)
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -39045,7 +40071,7 @@ snapshots:
json2php: 0.0.9
markdownlint-cli: 0.31.1
merge-deep: 3.0.3
- mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ mini-css-extract-plugin: 2.9.2(webpack@5.97.1)
minimist: 1.2.8
npm-package-json-lint: 6.4.0(typescript@5.7.2)
npm-packlist: 3.0.0
@@ -39099,31 +40125,31 @@ snapshots:
- webpack-hot-middleware
- webpack-plugin-serve
- '@wordpress/scripts@30.23.0(@playwright/test@1.57.0)(@swc/core@1.3.100)(@types/eslint@8.44.8)(@types/node@20.17.8)(@types/webpack@4.41.38)(@wordpress/env@10.32.0(@types/node@20.17.8))(file-loader@6.2.0(webpack@5.97.1))(node-notifier@8.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.11.1(stylelint@14.16.1))(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(webpack-hot-middleware@2.25.4)':
+ '@wordpress/scripts@30.23.0(@playwright/test@1.57.0)(@swc/core@1.3.100)(@types/eslint@8.44.8)(@types/node@20.17.8)(@types/webpack@4.41.38)(@wordpress/env@10.32.0(@types/node@20.17.8))(file-loader@6.2.0(webpack@5.97.1))(node-notifier@8.0.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.11.1(stylelint@14.16.1))(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.25.4)':
dependencies:
'@babel/core': 7.25.7
'@playwright/test': 1.57.0
'@pmmmwh/react-refresh-webpack-plugin': 0.5.11(@types/webpack@4.41.38)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.1)(webpack-hot-middleware@2.25.4)(webpack@5.97.1)
- '@svgr/webpack': 8.1.0(typescript@5.7.2)
+ '@svgr/webpack': 8.1.0(typescript@5.9.3)
'@wordpress/babel-preset-default': 8.30.0
- '@wordpress/browserslist-config': 6.30.0
+ '@wordpress/browserslist-config': 6.42.0
'@wordpress/dependency-extraction-webpack-plugin': 6.30.0(webpack@5.97.1)
'@wordpress/e2e-test-utils-playwright': 1.30.0(@playwright/test@1.57.0)
- '@wordpress/eslint-plugin': 22.16.0(@babel/core@7.25.7)(@types/eslint@8.44.8)(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)(wp-prettier@3.0.3)
- '@wordpress/jest-preset-default': 12.30.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))
- '@wordpress/npm-package-json-lint-config': 5.30.0(npm-package-json-lint@6.4.0(typescript@5.7.2))
+ '@wordpress/eslint-plugin': 22.16.0(@babel/core@7.25.7)(@types/eslint@8.44.8)(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3)(wp-prettier@3.0.3)
+ '@wordpress/jest-preset-default': 12.30.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))
+ '@wordpress/npm-package-json-lint-config': 5.30.0(npm-package-json-lint@6.4.0(typescript@5.9.3))
'@wordpress/postcss-plugins-preset': 5.30.0(postcss@8.4.49)
'@wordpress/prettier-config': 4.30.0(wp-prettier@3.0.3)
- '@wordpress/stylelint-config': 23.22.0(postcss@8.4.49)(stylelint-scss@6.11.1(stylelint@14.16.1))(stylelint@16.11.0(typescript@5.7.2))
+ '@wordpress/stylelint-config': 23.22.0(postcss@8.4.49)(stylelint-scss@6.11.1(stylelint@14.16.1))(stylelint@16.11.0(typescript@5.9.3))
adm-zip: 0.5.10
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100))
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
browserslist: 4.24.4
chalk: 4.1.2
check-node-version: 4.2.1
copy-webpack-plugin: 10.2.4(webpack@5.97.1)
cross-spawn: 7.0.6
- css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.3.100))
+ css-loader: 6.11.0(webpack@5.97.1)
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -39131,16 +40157,16 @@ snapshots:
expect-puppeteer: 4.4.0
fast-glob: 3.3.3
filenamify: 4.3.0
- jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
jest-dev-server: 10.1.4
jest-environment-jsdom: 29.7.0
jest-environment-node: 29.7.0
json2php: 0.0.9
markdownlint-cli: 0.31.1
merge-deep: 3.0.3
- mini-css-extract-plugin: 2.9.2(webpack@5.97.1(@swc/core@1.3.100))
+ mini-css-extract-plugin: 2.9.2(webpack@5.97.1)
minimist: 1.2.8
- npm-package-json-lint: 6.4.0(typescript@5.7.2)
+ npm-package-json-lint: 6.4.0(typescript@5.9.3)
npm-packlist: 3.0.0
postcss: 8.4.49
postcss-loader: 6.2.1(postcss@8.4.49)(webpack@5.97.1)
@@ -39156,13 +40182,13 @@ snapshots:
sass-loader: 16.0.5(sass@1.69.5)(webpack@5.97.1)
schema-utils: 4.3.0
source-map-loader: 3.0.2(webpack@5.97.1)
- stylelint: 16.11.0(typescript@5.7.2)
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100))
+ stylelint: 16.11.0(typescript@5.9.3)
+ terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1)
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.97.1)
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.1(webpack@5.97.1)
optionalDependencies:
'@wordpress/env': 10.32.0(@types/node@20.17.8)
transitivePeerDependencies:
@@ -39212,7 +40238,7 @@ snapshots:
'@wordpress/stylelint-config': 21.36.0(postcss@8.4.32)(stylelint@16.11.0(typescript@5.7.2))
adm-zip: 0.5.10
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100))
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
browserslist: 4.24.2
chalk: 4.1.2
check-node-version: 4.2.1
@@ -39252,12 +40278,12 @@ snapshots:
schema-utils: 4.2.0
source-map-loader: 3.0.2(webpack@5.97.1)
stylelint: 16.11.0(typescript@5.7.2)
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100))
+ terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1)
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.97.1)
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
webpack-bundle-analyzer: 4.10.2
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1)
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.1(webpack@5.97.1)
transitivePeerDependencies:
- '@swc/core'
- '@types/node'
@@ -39331,10 +40357,10 @@ snapshots:
'@wordpress/api-fetch': 7.19.1
'@wordpress/blocks': 13.10.0(react@18.3.1)
'@wordpress/components': 28.10.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/deprecated': 4.36.0
- '@wordpress/element': 6.36.0
+ '@wordpress/deprecated': 4.20.0
+ '@wordpress/element': 6.20.0
'@wordpress/i18n': 5.23.0
'@wordpress/url': 4.19.1
fast-deep-equal: 3.1.3
@@ -39369,6 +40395,11 @@ snapshots:
'@babel/runtime': 7.25.7
change-case: 4.1.2
+ '@wordpress/style-engine@2.10.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ change-case: 4.1.2
+
'@wordpress/style-engine@2.20.0':
dependencies:
'@babel/runtime': 7.25.7
@@ -39419,12 +40450,12 @@ snapshots:
transitivePeerDependencies:
- postcss
- '@wordpress/stylelint-config@23.22.0(postcss@8.4.49)(stylelint-scss@6.11.1(stylelint@14.16.1))(stylelint@16.11.0(typescript@5.7.2))':
+ '@wordpress/stylelint-config@23.22.0(postcss@8.4.49)(stylelint-scss@6.11.1(stylelint@14.16.1))(stylelint@16.11.0(typescript@5.9.3))':
dependencies:
- '@stylistic/stylelint-plugin': 3.1.2(stylelint@16.11.0(typescript@5.7.2))
- stylelint: 16.11.0(typescript@5.7.2)
- stylelint-config-recommended: 14.0.1(stylelint@16.11.0(typescript@5.7.2))
- stylelint-config-recommended-scss: 14.1.0(postcss@8.4.49)(stylelint@16.11.0(typescript@5.7.2))
+ '@stylistic/stylelint-plugin': 3.1.2(stylelint@16.11.0(typescript@5.9.3))
+ stylelint: 16.11.0(typescript@5.9.3)
+ stylelint-config-recommended: 14.0.1(stylelint@16.11.0(typescript@5.9.3))
+ stylelint-config-recommended-scss: 14.1.0(postcss@8.4.49)(stylelint@16.11.0(typescript@5.9.3))
stylelint-scss: 6.11.1(stylelint@14.16.1)
transitivePeerDependencies:
- postcss
@@ -39484,6 +40515,10 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
+ '@wordpress/token-list@3.10.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
'@wordpress/token-list@3.20.0':
dependencies:
'@babel/runtime': 7.25.7
@@ -39501,17 +40536,17 @@ snapshots:
'@wordpress/undo-manager@1.16.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/is-shallow-equal': 5.36.0
+ '@wordpress/is-shallow-equal': 5.21.0
'@wordpress/undo-manager@1.20.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/is-shallow-equal': 5.36.0
+ '@wordpress/is-shallow-equal': 5.21.0
'@wordpress/undo-manager@1.21.0':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/is-shallow-equal': 5.36.0
+ '@wordpress/is-shallow-equal': 5.21.0
'@wordpress/undo-manager@1.36.0':
dependencies:
@@ -39528,7 +40563,7 @@ snapshots:
'@wordpress/element': 6.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/url': 4.20.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -39552,7 +40587,7 @@ snapshots:
'@wordpress/element': 6.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/url': 4.20.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -39565,10 +40600,10 @@ snapshots:
- webpack
- webpack-virtual-modules
- '@wordpress/upload-media@0.5.0(@babel/core@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.97.1(@swc/core@1.3.100))':
+ '@wordpress/upload-media@0.5.0(@babel/core@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.105.2(@swc/core@1.3.100))':
dependencies:
'@babel/runtime': 7.25.7
- '@shopify/web-worker': 6.4.0(@babel/core@7.26.0)(webpack@5.97.1(@swc/core@1.3.100))
+ '@shopify/web-worker': 6.4.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.3.100))
'@wordpress/api-fetch': 7.20.0
'@wordpress/blob': 4.36.0
'@wordpress/compose': 7.36.0(react@18.3.1)
@@ -39576,7 +40611,7 @@ snapshots:
'@wordpress/element': 6.36.0
'@wordpress/i18n': 5.23.0
'@wordpress/preferences': 4.20.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/private-apis': 1.40.0
+ '@wordpress/private-apis': 1.36.0
'@wordpress/url': 4.20.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -39638,9 +40673,9 @@ snapshots:
'@wordpress/viewport@6.10.0(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/compose': 7.36.0(react@18.3.1)
+ '@wordpress/compose': 7.20.0(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
- '@wordpress/element': 6.36.0
+ '@wordpress/element': 6.21.0
react: 18.3.1
'@wordpress/warning@2.57.0': {}
@@ -39663,13 +40698,13 @@ snapshots:
'@wordpress/warning@3.8.1': {}
- '@wordpress/widgets@3.24.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/widgets@3.24.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/api-fetch': 6.55.0
'@wordpress/block-editor': 12.26.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 12.35.0(react@18.3.1)
- '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 25.16.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(@types/react@18.3.16)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 6.35.0(react@18.3.1)
'@wordpress/core-data': 6.35.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
@@ -39692,15 +40727,15 @@ snapshots:
- utf-8-validate
- vite
- '@wordpress/widgets@4.11.0(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/widgets@4.11.0(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/api-fetch': 7.0.1
- '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 13.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 13.0.3(react@18.3.1)
'@wordpress/components': 28.0.3(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.0.1(react@18.3.1)
- '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.0.7(@emotion/is-prop-valid@1.2.1)(@types/react-dom@18.3.0)(@types/react@18.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/data': 10.0.2(react@18.3.1)
'@wordpress/element': 6.0.1
'@wordpress/i18n': 5.0.1
@@ -39712,6 +40747,7 @@ snapshots:
transitivePeerDependencies:
- '@emotion/is-prop-valid'
- '@types/react'
+ - '@types/react-dom'
- bufferutil
- supports-color
- utf-8-validate
@@ -39724,6 +40760,10 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
+ '@wordpress/wordcount@4.10.0':
+ dependencies:
+ '@babel/runtime': 7.25.7
+
'@wordpress/wordcount@4.20.0':
dependencies:
'@babel/runtime': 7.25.7
@@ -39957,12 +40997,12 @@ snapshots:
acorn-globals@7.0.1:
dependencies:
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-walk: 8.3.1
- acorn-import-assertions@1.9.0(acorn@8.14.0):
+ acorn-import-phases@1.0.4(acorn@8.16.0):
dependencies:
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-jsx@5.3.2(acorn@6.4.2):
dependencies:
@@ -39988,6 +41028,8 @@ snapshots:
acorn@8.14.0: {}
+ acorn@8.16.0: {}
+
address@1.2.2: {}
adm-zip@0.5.10: {}
@@ -40001,7 +41043,7 @@ snapshots:
agent-base@6.0.2:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -40477,8 +41519,8 @@ snapshots:
autoprefixer@10.4.21(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
- caniuse-lite: 1.0.30001703
+ browserslist: 4.28.2
+ caniuse-lite: 1.0.30001784
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
@@ -40583,14 +41625,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-jest@26.6.3(@babel/core@7.26.0):
+ babel-jest@26.6.3(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@jest/transform': 26.6.2
'@jest/types': 26.6.2
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 26.6.2(@babel/core@7.26.0)
+ babel-preset-jest: 26.6.2(@babel/core@7.29.0)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -40637,13 +41679,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-jest@29.7.0(@babel/core@7.26.0):
+ babel-jest@29.7.0(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@jest/transform': 29.7.0
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.26.0)
+ babel-preset-jest: 29.6.3(@babel/core@7.29.0)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -40667,29 +41709,36 @@ snapshots:
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
- babel-loader@8.3.0(@babel/core@7.26.0)(webpack@5.89.0):
+ babel-loader@8.3.0(@babel/core@7.29.0)(webpack@5.97.1):
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
find-cache-dir: 3.3.2
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
babel-loader@9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)):
dependencies:
'@babel/core': 7.25.7
find-cache-dir: 4.0.0
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
babel-loader@9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.3.100)):
dependencies:
'@babel/core': 7.25.7
find-cache-dir: 4.0.0
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
+ webpack: 5.97.1(@swc/core@1.3.100)
+
+ babel-loader@9.2.1(@babel/core@7.25.7)(webpack@5.97.1):
+ dependencies:
+ '@babel/core': 7.25.7
+ find-cache-dir: 4.0.0
+ schema-utils: 4.3.3
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
babel-plugin-add-react-displayname@0.0.5: {}
@@ -40714,24 +41763,35 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ babel-plugin-istanbul@7.0.1:
+ dependencies:
+ '@babel/helper-plugin-utils': 7.28.6
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 6.0.3
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+ optional: true
+
babel-plugin-jest-hoist@26.6.2:
dependencies:
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.4
babel-plugin-jest-hoist@27.5.1:
dependencies:
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.4
babel-plugin-jest-hoist@29.6.3:
dependencies:
'@babel/template': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.4
@@ -40750,11 +41810,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0):
+ babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.29.0):
dependencies:
'@babel/compat-data': 7.26.2
- '@babel/core': 7.26.0
- '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.0)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -40775,10 +41835,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0):
+ babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.0)
core-js-compat: 3.39.0
transitivePeerDependencies:
- supports-color
@@ -40790,10 +41850,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0):
+ babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
- '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0)
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -40823,39 +41883,78 @@ snapshots:
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7)
- babel-preset-current-node-syntax@1.0.1(@babel/core@7.26.0):
- dependencies:
- '@babel/core': 7.26.0
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0)
+ babel-preset-current-node-syntax@1.0.1(@babel/core@7.29.0):
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0)
+ optional: true
+
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.25.7):
+ dependencies:
+ '@babel/core': 7.25.7
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.7)
+ '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.25.7)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.7)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7)
+
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0):
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0)
babel-preset-jest@26.6.2(@babel/core@7.25.7):
dependencies:
'@babel/core': 7.25.7
babel-plugin-jest-hoist: 26.6.2
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.7)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.25.7)
- babel-preset-jest@26.6.2(@babel/core@7.26.0):
+ babel-preset-jest@26.6.2(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
babel-plugin-jest-hoist: 26.6.2
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.26.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
babel-preset-jest@27.5.1(@babel/core@7.25.7):
dependencies:
'@babel/core': 7.25.7
babel-plugin-jest-hoist: 27.5.1
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.7)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.25.7)
babel-preset-jest@29.6.3(@babel/core@7.25.7):
dependencies:
@@ -40863,11 +41962,11 @@ snapshots:
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.7)
- babel-preset-jest@29.6.3(@babel/core@7.26.0):
+ babel-preset-jest@29.6.3(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.26.0)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.29.0)
optional: true
babel-runtime@6.25.0:
@@ -40920,6 +42019,8 @@ snapshots:
mixin-deep: 1.3.2
pascalcase: 0.1.1
+ baseline-browser-mapping@2.10.13: {}
+
basic-ftp@5.0.5: {}
batch@0.6.1: {}
@@ -41156,7 +42257,7 @@ snapshots:
browserslist@3.2.8:
dependencies:
caniuse-lite: 1.0.30001146
- electron-to-chromium: 1.4.609
+ electron-to-chromium: 1.5.331
browserslist@4.19.3:
dependencies:
@@ -41168,17 +42269,17 @@ snapshots:
browserslist@4.22.2:
dependencies:
- caniuse-lite: 1.0.30001651
- electron-to-chromium: 1.5.9
- node-releases: 2.0.18
- update-browserslist-db: 1.1.0(browserslist@4.22.2)
+ caniuse-lite: 1.0.30001784
+ electron-to-chromium: 1.5.331
+ node-releases: 2.0.37
+ update-browserslist-db: 1.2.3(browserslist@4.22.2)
browserslist@4.24.2:
dependencies:
- caniuse-lite: 1.0.30001683
- electron-to-chromium: 1.5.64
- node-releases: 2.0.18
- update-browserslist-db: 1.1.1(browserslist@4.24.2)
+ caniuse-lite: 1.0.30001784
+ electron-to-chromium: 1.5.331
+ node-releases: 2.0.37
+ update-browserslist-db: 1.2.3(browserslist@4.24.2)
browserslist@4.24.4:
dependencies:
@@ -41187,6 +42288,14 @@ snapshots:
node-releases: 2.0.19
update-browserslist-db: 1.1.1(browserslist@4.24.4)
+ browserslist@4.28.2:
+ dependencies:
+ baseline-browser-mapping: 2.10.13
+ caniuse-lite: 1.0.30001784
+ electron-to-chromium: 1.5.331
+ node-releases: 2.0.37
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
+
bs-logger@0.2.6:
dependencies:
fast-json-stable-stringify: 2.1.0
@@ -41251,7 +42360,7 @@ snapshots:
builtins@5.0.1:
dependencies:
- semver: 7.6.3
+ semver: 7.7.4
bytes@1.0.0: {}
@@ -41459,12 +42568,10 @@ snapshots:
caniuse-lite@1.0.30001568: {}
- caniuse-lite@1.0.30001651: {}
-
- caniuse-lite@1.0.30001683: {}
-
caniuse-lite@1.0.30001703: {}
+ caniuse-lite@1.0.30001784: {}
+
canvas-confetti@1.9.2: {}
capital-case@1.0.4:
@@ -41487,7 +42594,7 @@ snapshots:
carlo@0.9.46:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
puppeteer-core: 1.12.2
transitivePeerDependencies:
- bufferutil
@@ -41699,6 +42806,9 @@ snapshots:
ci-info@3.9.0: {}
+ ci-info@4.4.0:
+ optional: true
+
cipher-base@1.0.4:
dependencies:
inherits: 2.0.4
@@ -41737,17 +42847,11 @@ snapshots:
dependencies:
escape-string-regexp: 4.0.0
- clean-webpack-plugin@3.0.0(webpack@5.89.0):
- dependencies:
- '@types/webpack': 4.41.38
- del: 4.1.1
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
-
clean-webpack-plugin@3.0.0(webpack@5.97.1):
dependencies:
'@types/webpack': 4.41.38
del: 4.1.1
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
cli-boxes@1.0.0: {}
@@ -42151,11 +43255,20 @@ snapshots:
glob-parent: 6.0.2
globby: 12.2.0
normalize-path: 3.0.0
- schema-utils: 4.2.0
+ schema-utils: 4.3.3
serialize-javascript: 6.0.1
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
copy-webpack-plugin@13.0.0(webpack@5.97.1(@swc/core@1.3.100)):
+ dependencies:
+ glob-parent: 6.0.2
+ normalize-path: 3.0.0
+ schema-utils: 4.3.0
+ serialize-javascript: 6.0.2
+ tinyglobby: 0.2.12
+ webpack: 5.97.1(@swc/core@1.3.100)
+
+ copy-webpack-plugin@13.0.0(webpack@5.97.1):
dependencies:
glob-parent: 6.0.2
normalize-path: 3.0.0
@@ -42166,7 +43279,7 @@ snapshots:
core-js-compat@3.39.0:
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
core-js-pure@3.34.0: {}
@@ -42214,6 +43327,15 @@ snapshots:
optionalDependencies:
typescript: 5.7.2
+ cosmiconfig@8.3.6(typescript@5.9.3):
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ optionalDependencies:
+ typescript: 5.9.3
+
cosmiconfig@9.0.0(typescript@5.7.2):
dependencies:
env-paths: 2.2.1
@@ -42223,6 +43345,15 @@ snapshots:
optionalDependencies:
typescript: 5.7.2
+ cosmiconfig@9.0.0(typescript@5.9.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 5.9.3
+
cp-file@7.0.0:
dependencies:
graceful-fs: 4.2.11
@@ -42275,13 +43406,13 @@ snapshots:
safe-buffer: 5.2.1
sha.js: 2.4.11
- create-jest@29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)):
+ create-jest@29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ jest-config: 29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -42436,19 +43567,20 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.6.3
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
- css-loader@6.8.1(webpack@5.89.0):
+ css-loader@6.11.0(webpack@5.97.1):
dependencies:
icss-utils: 5.1.0(postcss@8.4.49)
postcss: 8.4.49
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.49)
- postcss-modules-local-by-default: 4.0.3(postcss@8.4.49)
- postcss-modules-scope: 3.0.0(postcss@8.4.49)
+ postcss-modules-extract-imports: 3.1.0(postcss@8.4.49)
+ postcss-modules-local-by-default: 4.2.0(postcss@8.4.49)
+ postcss-modules-scope: 3.2.1(postcss@8.4.49)
postcss-modules-values: 4.0.0(postcss@8.4.49)
postcss-value-parser: 4.2.0
semver: 7.6.3
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ optionalDependencies:
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
css-loader@6.8.1(webpack@5.97.1):
dependencies:
@@ -42460,7 +43592,7 @@ snapshots:
postcss-modules-values: 4.0.0(postcss@8.4.49)
postcss-value-parser: 4.2.0
semver: 7.6.3
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
css-select-base-adapter@0.1.1: {}
@@ -42588,7 +43720,7 @@ snapshots:
cssnano-preset-default@6.1.2(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
css-declaration-sorter: 7.2.0(postcss@8.4.32)
cssnano-utils: 4.0.2(postcss@8.4.32)
postcss: 8.4.32
@@ -42622,7 +43754,7 @@ snapshots:
cssnano-preset-default@6.1.2(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
css-declaration-sorter: 7.2.0(postcss@8.4.49)
cssnano-utils: 4.0.2(postcss@8.4.49)
postcss: 8.4.49
@@ -42817,35 +43949,35 @@ snapshots:
dependencies:
ms: 2.1.2
- debug@4.3.4(supports-color@5.5.0):
+ debug@4.3.4:
dependencies:
ms: 2.1.2
- optionalDependencies:
- supports-color: 5.5.0
- debug@4.3.4(supports-color@8.1.1):
+ debug@4.3.5:
dependencies:
ms: 2.1.2
- optionalDependencies:
- supports-color: 8.1.1
- debug@4.3.4(supports-color@9.4.0):
+ debug@4.4.0:
dependencies:
- ms: 2.1.2
- optionalDependencies:
- supports-color: 9.4.0
+ ms: 2.1.3
- debug@4.3.5:
+ debug@4.4.3(supports-color@5.5.0):
dependencies:
- ms: 2.1.2
+ ms: 2.1.3
+ optionalDependencies:
+ supports-color: 5.5.0
- debug@4.3.6:
+ debug@4.4.3(supports-color@8.1.1):
dependencies:
- ms: 2.1.2
+ ms: 2.1.3
+ optionalDependencies:
+ supports-color: 8.1.1
- debug@4.4.0:
+ debug@4.4.3(supports-color@9.4.0):
dependencies:
ms: 2.1.3
+ optionalDependencies:
+ supports-color: 9.4.0
debuglog@1.0.1: {}
@@ -43035,7 +44167,7 @@ snapshots:
detect-port@1.5.1:
dependencies:
address: 1.2.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -43288,7 +44420,7 @@ snapshots:
'@one-ini/wasm': 0.1.1
commander: 10.0.1
minimatch: 9.0.1
- semver: 7.6.3
+ semver: 7.7.4
ee-first@1.1.1: {}
@@ -43300,9 +44432,7 @@ snapshots:
electron-to-chromium@1.5.114: {}
- electron-to-chromium@1.5.64: {}
-
- electron-to-chromium@1.5.9: {}
+ electron-to-chromium@1.5.331: {}
elliptic@6.5.4:
dependencies:
@@ -43366,17 +44496,17 @@ snapshots:
enhanced-resolve@5.15.0:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.1
+ tapable: 2.3.2
enhanced-resolve@5.16.0:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.1
+ tapable: 2.3.2
- enhanced-resolve@5.17.1:
+ enhanced-resolve@5.20.1:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.1
+ tapable: 2.3.2
enquirer@2.4.1:
dependencies:
@@ -43395,8 +44525,6 @@ snapshots:
env-paths@2.2.1: {}
- envinfo@7.13.0: {}
-
envinfo@7.14.0: {}
enzyme-shallow-equal@1.0.5:
@@ -43541,10 +44669,10 @@ snapshots:
iterator.prototype: 1.1.2
safe-array-concat: 1.0.1
- es-module-lexer@1.4.1: {}
-
es-module-lexer@1.7.0: {}
+ es-module-lexer@2.0.0: {}
+
es-object-atoms@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -43585,7 +44713,7 @@ snapshots:
esbuild-register@3.5.0(esbuild@0.18.20):
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
esbuild: 0.18.20
transitivePeerDependencies:
- supports-color
@@ -43660,7 +44788,7 @@ snapshots:
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.56.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-webpack@0.13.2)(eslint-plugin-import@2.28.1)(eslint@8.55.0):
dependencies:
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
enhanced-resolve: 5.15.0
eslint: 8.55.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.56.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.2)(eslint@8.55.0)
@@ -43677,7 +44805,7 @@ snapshots:
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-webpack@0.13.8)(eslint-plugin-import@2.29.0)(eslint@8.55.0):
dependencies:
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
enhanced-resolve: 5.15.0
eslint: 8.55.0
eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.55.0)
@@ -43774,6 +44902,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0):
+ dependencies:
+ debug: 3.2.7
+ optionalDependencies:
+ '@typescript-eslint/parser': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ eslint: 8.55.0
+ eslint-import-resolver-node: 0.3.9
+ transitivePeerDependencies:
+ - supports-color
+
eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.56.0(eslint@8.55.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.2)(eslint@8.55.0):
dependencies:
array-includes: 3.1.7
@@ -43882,6 +45020,33 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
+ eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0):
+ dependencies:
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.3
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.55.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0)
+ hasown: 2.0.0
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.1
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.14.2
+ optionalDependencies:
+ '@typescript-eslint/parser': 6.21.0(eslint@8.55.0)(typescript@5.9.3)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
eslint-plugin-jest@23.20.0(eslint@8.55.0)(typescript@5.7.2):
dependencies:
'@typescript-eslint/experimental-utils': 2.34.0(eslint@8.55.0)(typescript@5.7.2)
@@ -43944,24 +45109,24 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2):
+ eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2):
dependencies:
'@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.7.2)
eslint: 8.55.0
optionalDependencies:
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2)
- jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ jest: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2):
+ eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.7.2)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.9.3)
eslint: 8.55.0
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2)
- jest: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
+ '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3)
+ jest: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
transitivePeerDependencies:
- supports-color
- typescript
@@ -43981,13 +45146,13 @@ snapshots:
dependencies:
'@es-joy/jsdoccomment': 0.10.8
comment-parser: 1.2.4
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
eslint: 7.32.0
esquery: 1.5.0
jsdoc-type-pratt-parser: 1.2.0
lodash: 4.17.21
regextras: 0.8.0
- semver: 7.6.3
+ semver: 7.7.4
spdx-expression-parse: 3.0.1
transitivePeerDependencies:
- supports-color
@@ -43996,11 +45161,11 @@ snapshots:
dependencies:
'@es-joy/jsdoccomment': 0.36.1
comment-parser: 1.3.1
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
escape-string-regexp: 4.0.0
eslint: 8.55.0
esquery: 1.5.0
- semver: 7.6.3
+ semver: 7.7.4
spdx-expression-parse: 3.0.1
transitivePeerDependencies:
- supports-color
@@ -44010,12 +45175,12 @@ snapshots:
'@es-joy/jsdoccomment': 0.41.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
escape-string-regexp: 4.0.0
eslint: 8.55.0
esquery: 1.5.0
is-builtin-module: 3.2.1
- semver: 7.6.3
+ semver: 7.7.4
spdx-expression-parse: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -44067,17 +45232,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2))(eslint@8.55.0):
+ eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2))(eslint@8.55.0):
dependencies:
eslint: 8.55.0
optionalDependencies:
- eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2)
+ eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
- eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2))(eslint@8.55.0):
+ eslint-plugin-playwright@0.15.3(eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3))(eslint@8.55.0):
dependencies:
eslint: 8.55.0
optionalDependencies:
- eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2)
+ eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(typescript@5.9.3))(eslint@8.55.0)(jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)))(typescript@5.9.3)
eslint-plugin-playwright@0.22.1(eslint-plugin-jest@23.20.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0):
dependencies:
@@ -44250,7 +45415,7 @@ snapshots:
ajv: 6.12.6
chalk: 2.4.2
cross-spawn: 6.0.5
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
doctrine: 3.0.0
eslint-scope: 4.0.3
eslint-utils: 1.4.3
@@ -44293,7 +45458,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
doctrine: 3.0.0
enquirer: 2.4.1
escape-string-regexp: 4.0.0
@@ -44554,6 +45719,26 @@ snapshots:
jest-message-util: 29.7.0
jest-util: 29.7.0
+ expect@30.2.0:
+ dependencies:
+ '@jest/expect-utils': 30.2.0
+ '@jest/get-type': 30.1.0
+ jest-matcher-utils: 30.2.0
+ jest-message-util: 30.2.0
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
+ optional: true
+
+ expect@30.3.0:
+ dependencies:
+ '@jest/expect-utils': 30.3.0
+ '@jest/get-type': 30.1.0
+ jest-matcher-utils: 30.3.0
+ jest-message-util: 30.3.0
+ jest-mock: 30.3.0
+ jest-util: 30.3.0
+ optional: true
+
exponential-backoff@3.1.1: {}
express@4.18.2:
@@ -44669,7 +45854,7 @@ snapshots:
extract-zip@2.0.1:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -44817,11 +46002,18 @@ snapshots:
schema-utils: 3.3.0
webpack: 4.47.0(webpack-cli@5.1.4)
+ file-loader@6.2.0(webpack@5.105.2):
+ dependencies:
+ loader-utils: 2.0.4
+ schema-utils: 3.3.0
+ webpack: 5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ optional: true
+
file-loader@6.2.0(webpack@5.97.1):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
optional: true
file-sync-cmp@0.1.1: {}
@@ -44918,7 +46110,7 @@ snapshots:
dependencies:
chalk: 4.1.2
commander: 5.1.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -45020,7 +46212,7 @@ snapshots:
follow-redirects@1.15.6(debug@4.3.4):
optionalDependencies:
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.3.4
for-each@0.3.3:
dependencies:
@@ -45083,7 +46275,7 @@ snapshots:
memfs: 3.5.3
minimatch: 3.1.2
schema-utils: 2.7.0
- semver: 7.6.3
+ semver: 7.7.4
tapable: 1.1.3
typescript: 5.7.2
webpack: 4.47.0(webpack-cli@5.1.4)
@@ -45102,8 +46294,8 @@ snapshots:
minimatch: 3.1.2
node-abort-controller: 3.1.1
schema-utils: 3.3.0
- semver: 7.6.3
- tapable: 2.2.1
+ semver: 7.7.4
+ tapable: 2.3.2
typescript: 5.7.2
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
@@ -45119,12 +46311,29 @@ snapshots:
minimatch: 3.1.2
node-abort-controller: 3.1.1
schema-utils: 3.3.0
- semver: 7.6.3
- tapable: 2.2.1
+ semver: 7.7.4
+ tapable: 2.3.2
typescript: 5.7.2
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
fork-ts-checker-webpack-plugin@9.0.2(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100)):
+ dependencies:
+ '@babel/code-frame': 7.24.7
+ chalk: 4.1.2
+ chokidar: 3.5.3
+ cosmiconfig: 8.3.6(typescript@5.7.2)
+ deepmerge: 4.3.1
+ fs-extra: 10.1.0
+ memfs: 3.5.3
+ minimatch: 3.1.2
+ node-abort-controller: 3.1.1
+ schema-utils: 3.3.0
+ semver: 7.6.3
+ tapable: 2.2.1
+ typescript: 5.7.2
+ webpack: 5.97.1(@swc/core@1.3.100)
+
+ fork-ts-checker-webpack-plugin@9.0.2(typescript@5.7.2)(webpack@5.97.1):
dependencies:
'@babel/code-frame': 7.24.7
chalk: 4.1.2
@@ -45408,7 +46617,7 @@ snapshots:
dependencies:
basic-ftp: 5.0.5
data-uri-to-buffer: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
fs-extra: 11.2.0
transitivePeerDependencies:
- supports-color
@@ -46161,7 +47370,7 @@ snapshots:
html-minifier-terser: 6.1.0
lodash: 4.17.21
pretty-error: 4.0.0
- tapable: 2.2.1
+ tapable: 2.3.2
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
html-webpack-plugin@5.5.4(webpack@5.97.1):
@@ -46170,7 +47379,7 @@ snapshots:
html-minifier-terser: 6.1.0
lodash: 4.17.21
pretty-error: 4.0.0
- tapable: 2.2.1
+ tapable: 2.3.2
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
htmlparser2@3.10.1:
@@ -46208,7 +47417,7 @@ snapshots:
http-call@5.3.0:
dependencies:
content-type: 1.0.5
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
is-retry-allowed: 1.2.0
is-stream: 2.0.1
parse-json: 4.0.0
@@ -46249,7 +47458,7 @@ snapshots:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -46257,14 +47466,14 @@ snapshots:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -46312,28 +47521,28 @@ snapshots:
https-proxy-agent@4.0.0:
dependencies:
agent-base: 5.1.1
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
https-proxy-agent@5.0.0:
dependencies:
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -46357,7 +47566,7 @@ snapshots:
'@babel/runtime': 7.25.7
'@tannin/sprintf': 1.2.0
'@wordpress/compose': 6.35.0(react@18.3.1)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
events: 3.3.0
hash.js: 1.1.7
lodash: 4.17.21
@@ -46436,6 +47645,11 @@ snapshots:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0
+ import-local@3.2.0:
+ dependencies:
+ pkg-dir: 4.2.0
+ resolve-cwd: 3.0.0
+
import-locals@2.0.0: {}
imurmurhash@0.1.4: {}
@@ -46956,9 +48170,20 @@ snapshots:
'@babel/parser': 7.26.2
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
- semver: 7.6.3
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-instrument@6.0.3:
+ dependencies:
+ '@babel/core': 7.25.7
+ '@babel/parser': 7.29.2
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 7.7.4
transitivePeerDependencies:
- supports-color
+ optional: true
istanbul-lib-report@3.0.1:
dependencies:
@@ -46968,7 +48193,7 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
@@ -47019,7 +48244,7 @@ snapshots:
jest-util: 29.7.0
p-limit: 3.1.0
- jest-circus@26.6.3:
+ jest-circus@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)):
dependencies:
'@babel/traverse': 7.25.9
'@jest/environment': 26.6.2
@@ -47043,7 +48268,11 @@ snapshots:
stack-utils: 2.0.6
throat: 5.0.0
transitivePeerDependencies:
+ - bufferutil
+ - canvas
- supports-color
+ - ts-node
+ - utf-8-validate
jest-circus@29.5.0:
dependencies:
@@ -47104,7 +48333,7 @@ snapshots:
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
- import-local: 3.1.0
+ import-local: 3.2.0
is-ci: 2.0.0
jest-config: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
jest-util: 26.6.2
@@ -47162,16 +48391,16 @@ snapshots:
- supports-color
- ts-node
- jest-cli@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)):
+ jest-cli@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ '@jest/core': 29.7.0(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ create-jest: 29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
exit: 0.1.2
- import-local: 3.1.0
- jest-config: 29.7.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ import-local: 3.2.0
+ jest-config: 29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -47191,7 +48420,7 @@ snapshots:
chalk: 4.1.2
create-jest: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
exit: 0.1.2
- import-local: 3.1.0
+ import-local: 3.2.0
jest-config: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
jest-util: 29.7.0
jest-validate: 29.7.0
@@ -47207,7 +48436,7 @@ snapshots:
jest-config@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)):
dependencies:
'@babel/core': 7.25.7
- '@jest/test-sequencer': 26.6.3
+ '@jest/test-sequencer': 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
'@jest/types': 26.6.2
babel-jest: 26.6.3(@babel/core@7.25.7)
chalk: 4.1.2
@@ -47294,6 +48523,37 @@ snapshots:
- babel-plugin-macros
- supports-color
+ jest-config@29.7.0(@types/node@20.17.8)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)):
+ dependencies:
+ '@babel/core': 7.25.7
+ '@jest/test-sequencer': 29.7.0
+ '@jest/types': 29.6.3
+ babel-jest: 29.7.0(@babel/core@7.25.7)
+ chalk: 4.1.2
+ ci-info: 3.9.0
+ deepmerge: 4.3.1
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 29.7.0(babel-plugin-macros@3.1.0)
+ jest-environment-node: 29.7.0
+ jest-get-type: 29.6.3
+ jest-regex-util: 29.6.3
+ jest-resolve: 29.7.0
+ jest-runner: 29.7.0
+ jest-util: 29.7.0
+ jest-validate: 29.7.0
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 29.7.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ optionalDependencies:
+ '@types/node': 20.17.8
+ ts-node: 10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
jest-config@29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)):
dependencies:
'@babel/core': 7.25.7
@@ -47385,6 +48645,22 @@ snapshots:
jest-get-type: 29.6.3
pretty-format: 29.7.0
+ jest-diff@30.2.0:
+ dependencies:
+ '@jest/diff-sequences': 30.0.1
+ '@jest/get-type': 30.1.0
+ chalk: 4.1.2
+ pretty-format: 30.2.0
+ optional: true
+
+ jest-diff@30.3.0:
+ dependencies:
+ '@jest/diff-sequences': 30.3.0
+ '@jest/get-type': 30.1.0
+ chalk: 4.1.2
+ pretty-format: 30.3.0
+ optional: true
+
jest-docblock@26.0.0:
dependencies:
detect-newline: 3.1.0
@@ -47544,6 +48820,22 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ jest-haste-map@30.2.0:
+ dependencies:
+ '@jest/types': 30.2.0
+ '@types/node': 20.17.8
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 30.0.1
+ jest-util: 30.2.0
+ jest-worker: 30.2.0
+ micromatch: 4.0.8
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+ optional: true
+
jest-jasmine2@26.6.3:
dependencies:
'@babel/traverse': 7.25.9
@@ -47598,6 +48890,22 @@ snapshots:
jest-get-type: 29.6.3
pretty-format: 29.7.0
+ jest-matcher-utils@30.2.0:
+ dependencies:
+ '@jest/get-type': 30.1.0
+ chalk: 4.1.2
+ jest-diff: 30.2.0
+ pretty-format: 30.2.0
+ optional: true
+
+ jest-matcher-utils@30.3.0:
+ dependencies:
+ '@jest/get-type': 30.1.0
+ chalk: 4.1.2
+ jest-diff: 30.3.0
+ pretty-format: 30.3.0
+ optional: true
+
jest-message-util@26.6.2:
dependencies:
'@babel/code-frame': 7.26.2
@@ -47622,6 +48930,32 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
+ jest-message-util@30.2.0:
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@jest/types': 30.2.0
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.8
+ pretty-format: 30.2.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ optional: true
+
+ jest-message-util@30.3.0:
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@jest/types': 30.3.0
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ picomatch: 4.0.4
+ pretty-format: 30.3.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+ optional: true
+
jest-mock@26.6.2:
dependencies:
'@jest/types': 26.6.2
@@ -47633,6 +48967,20 @@ snapshots:
'@types/node': 20.17.8
jest-util: 29.7.0
+ jest-mock@30.2.0:
+ dependencies:
+ '@jest/types': 30.2.0
+ '@types/node': 20.17.8
+ jest-util: 30.2.0
+ optional: true
+
+ jest-mock@30.3.0:
+ dependencies:
+ '@jest/types': 30.3.0
+ '@types/node': 20.17.8
+ jest-util: 30.3.0
+ optional: true
+
jest-pnp-resolver@1.2.3(jest-resolve@26.6.2):
optionalDependencies:
jest-resolve: 26.6.2
@@ -47647,6 +48995,9 @@ snapshots:
jest-regex-util@29.6.3: {}
+ jest-regex-util@30.0.1:
+ optional: true
+
jest-resolve-dependencies@26.6.3:
dependencies:
'@jest/types': 26.6.2
@@ -47815,7 +49166,7 @@ snapshots:
jest-snapshot@26.6.2:
dependencies:
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@jest/types': 26.6.2
'@types/babel__traverse': 7.20.4
'@types/prettier': 2.7.3
@@ -47830,21 +49181,21 @@ snapshots:
jest-resolve: 26.6.2
natural-compare: 1.4.0
pretty-format: 26.6.2
- semver: 7.6.3
+ semver: 7.7.4
transitivePeerDependencies:
- supports-color
jest-snapshot@29.7.0:
dependencies:
'@babel/core': 7.25.7
- '@babel/generator': 7.26.2
+ '@babel/generator': 7.29.1
'@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7)
- '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.25.7)
- '@babel/types': 7.26.0
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.25.7)
+ '@babel/types': 7.29.0
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.7)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.25.7)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -47855,9 +49206,36 @@ snapshots:
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
- semver: 7.6.3
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+
+ jest-snapshot@30.2.0:
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0)
+ '@babel/types': 7.29.0
+ '@jest/expect-utils': 30.2.0
+ '@jest/get-type': 30.1.0
+ '@jest/snapshot-utils': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0)
+ chalk: 4.1.2
+ expect: 30.2.0
+ graceful-fs: 4.2.11
+ jest-diff: 30.2.0
+ jest-matcher-utils: 30.2.0
+ jest-message-util: 30.2.0
+ jest-util: 30.2.0
+ pretty-format: 30.2.0
+ semver: 7.7.4
+ synckit: 0.11.12
transitivePeerDependencies:
- supports-color
+ optional: true
jest-util@26.6.2:
dependencies:
@@ -47886,6 +49264,26 @@ snapshots:
graceful-fs: 4.2.11
picomatch: 2.3.1
+ jest-util@30.2.0:
+ dependencies:
+ '@jest/types': 30.2.0
+ '@types/node': 20.17.8
+ chalk: 4.1.2
+ ci-info: 4.4.0
+ graceful-fs: 4.2.11
+ picomatch: 4.0.4
+ optional: true
+
+ jest-util@30.3.0:
+ dependencies:
+ '@jest/types': 30.3.0
+ '@types/node': 20.17.8
+ chalk: 4.1.2
+ ci-info: 4.4.0
+ graceful-fs: 4.2.11
+ picomatch: 4.0.4
+ optional: true
+
jest-validate@26.6.2:
dependencies:
'@jest/types': 26.6.2
@@ -47944,10 +49342,19 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
+ jest-worker@30.2.0:
+ dependencies:
+ '@types/node': 20.17.8
+ '@ungap/structured-clone': 1.3.0
+ jest-util: 30.2.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+ optional: true
+
jest@26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)):
dependencies:
'@jest/core': 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
- import-local: 3.1.0
+ import-local: 3.2.0
jest-cli: 26.6.3(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
transitivePeerDependencies:
- bufferutil
@@ -47984,12 +49391,12 @@ snapshots:
- supports-color
- ts-node
- jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)):
+ jest@29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ '@jest/core': 29.7.0(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
'@jest/types': 29.6.3
- import-local: 3.1.0
- jest-cli: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2))
+ import-local: 3.2.0
+ jest-cli: 29.7.0(@types/node@20.17.8)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3))
optionalDependencies:
node-notifier: 8.0.2
transitivePeerDependencies:
@@ -48002,7 +49409,7 @@ snapshots:
dependencies:
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
'@jest/types': 29.6.3
- import-local: 3.1.0
+ import-local: 3.2.0
jest-cli: 29.7.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2))
optionalDependencies:
node-notifier: 8.0.2
@@ -48120,7 +49527,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- jscodeshift@0.15.1(@babel/preset-env@7.25.7(@babel/core@7.26.0)):
+ jscodeshift@0.15.1(@babel/preset-env@7.25.7(@babel/core@7.29.0)):
dependencies:
'@babel/core': 7.25.7
'@babel/parser': 7.26.2
@@ -48143,7 +49550,7 @@ snapshots:
temp: 0.8.4
write-file-atomic: 2.4.3
optionalDependencies:
- '@babel/preset-env': 7.25.7(@babel/core@7.26.0)
+ '@babel/preset-env': 7.25.7(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
@@ -48158,7 +49565,7 @@ snapshots:
jsdom@16.7.0:
dependencies:
abab: 2.0.6
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-globals: 6.0.0
cssom: 0.4.4
cssstyle: 2.3.0
@@ -48192,7 +49599,7 @@ snapshots:
jsdom@20.0.3:
dependencies:
abab: 2.0.6
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-globals: 7.0.1
cssom: 0.5.0
cssstyle: 2.3.0
@@ -48310,7 +49717,7 @@ snapshots:
lodash.isstring: 4.0.1
lodash.once: 4.1.1
ms: 2.1.3
- semver: 7.6.3
+ semver: 7.7.4
jsprim@1.4.2:
dependencies:
@@ -48576,7 +49983,7 @@ snapshots:
cli-truncate: 3.1.0
colorette: 2.0.20
commander: 9.5.0
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
execa: 5.1.1
lilconfig: 2.0.5
listr2: 4.0.5(enquirer@2.4.1)
@@ -48595,7 +50002,7 @@ snapshots:
chalk: 5.2.0
cli-truncate: 3.1.0
commander: 10.0.1
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
execa: 7.2.0
lilconfig: 2.1.0
listr2: 5.0.8(enquirer@2.4.1)
@@ -48669,7 +50076,7 @@ snapshots:
loader-runner@2.4.0: {}
- loader-runner@4.3.0: {}
+ loader-runner@4.3.1: {}
loader-utils@1.4.2:
dependencies:
@@ -48893,7 +50300,7 @@ snapshots:
magic-string@0.30.5:
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.5
make-dir@1.3.0:
dependencies:
@@ -48911,7 +50318,7 @@ snapshots:
make-dir@4.0.0:
dependencies:
- semver: 7.6.3
+ semver: 7.7.4
make-error@1.3.6: {}
@@ -49288,7 +50695,7 @@ snapshots:
micromark@2.11.4:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
@@ -49359,17 +50766,18 @@ snapshots:
min-indent@1.0.1: {}
- mini-css-extract-plugin@2.7.6(webpack@5.89.0):
- dependencies:
- schema-utils: 4.2.0
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
-
mini-css-extract-plugin@2.7.6(webpack@5.97.1):
dependencies:
- schema-utils: 4.2.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ schema-utils: 4.3.3
+ webpack: 5.97.1(@swc/core@1.3.100)
mini-css-extract-plugin@2.9.2(webpack@5.97.1(@swc/core@1.3.100)):
+ dependencies:
+ schema-utils: 4.3.0
+ tapable: 2.2.1
+ webpack: 5.97.1(@swc/core@1.3.100)
+
+ mini-css-extract-plugin@2.9.2(webpack@5.97.1):
dependencies:
schema-utils: 4.3.0
tapable: 2.2.1
@@ -49646,7 +51054,7 @@ snapshots:
dependencies:
carlo: 0.9.46
chokidar: 3.5.3
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
isbinaryfile: 3.0.3
mime: 2.6.0
opn: 5.5.0
@@ -49721,7 +51129,7 @@ snapshots:
nopt: 5.0.0
npmlog: 6.0.2
rimraf: 3.0.2
- semver: 7.6.3
+ semver: 7.7.4
tar: 6.2.0
which: 2.0.2
transitivePeerDependencies:
@@ -49738,7 +51146,7 @@ snapshots:
nopt: 6.0.0
npmlog: 6.0.2
rimraf: 3.0.2
- semver: 7.6.3
+ semver: 7.7.4
tar: 6.2.0
which: 2.0.2
transitivePeerDependencies:
@@ -49777,7 +51185,7 @@ snapshots:
dependencies:
growly: 1.3.0
is-wsl: 2.2.0
- semver: 7.6.3
+ semver: 7.7.4
shellwords: 0.1.1
uuid: 8.3.2
which: 2.0.2
@@ -49790,10 +51198,10 @@ snapshots:
node-releases@2.0.14: {}
- node-releases@2.0.18: {}
-
node-releases@2.0.19: {}
+ node-releases@2.0.37: {}
+
node-stream-zip@1.15.0: {}
node-watch@0.7.4: {}
@@ -49801,7 +51209,7 @@ snapshots:
nodemon@3.0.2:
dependencies:
chokidar: 3.5.3
- debug: 4.3.4(supports-color@5.5.0)
+ debug: 4.4.3(supports-color@5.5.0)
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
@@ -49854,7 +51262,7 @@ snapshots:
dependencies:
hosted-git-info: 6.1.1
is-core-module: 2.13.1
- semver: 7.6.3
+ semver: 7.7.4
validate-npm-package-license: 3.0.4
normalize-path@2.1.1:
@@ -49881,11 +51289,11 @@ snapshots:
npm-install-checks@4.0.0:
dependencies:
- semver: 7.6.3
+ semver: 7.7.4
npm-install-checks@6.3.0:
dependencies:
- semver: 7.6.3
+ semver: 7.7.4
npm-normalize-package-bin@1.0.1: {}
@@ -49897,7 +51305,7 @@ snapshots:
dependencies:
hosted-git-info: 6.1.1
proc-log: 3.0.0
- semver: 7.6.3
+ semver: 7.7.4
validate-npm-package-name: 5.0.0
npm-package-arg@8.1.5:
@@ -49912,7 +51320,7 @@ snapshots:
ajv-errors: 1.0.1(ajv@6.12.6)
chalk: 4.1.2
cosmiconfig: 7.1.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
ignore: 5.3.0
is-plain-obj: 3.0.0
@@ -49932,7 +51340,30 @@ snapshots:
ajv-errors: 1.0.1(ajv@6.12.6)
chalk: 4.1.2
cosmiconfig: 8.3.6(typescript@5.7.2)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
+ globby: 11.1.0
+ ignore: 5.3.0
+ is-plain-obj: 3.0.0
+ jsonc-parser: 3.2.0
+ log-symbols: 4.1.0
+ meow: 9.0.0
+ plur: 4.0.0
+ semver: 7.6.3
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ type-fest: 3.13.1
+ validate-npm-package-name: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ npm-package-json-lint@6.4.0(typescript@5.9.3):
+ dependencies:
+ ajv: 6.12.6
+ ajv-errors: 1.0.1(ajv@6.12.6)
+ chalk: 4.1.2
+ cosmiconfig: 8.3.6(typescript@5.9.3)
+ debug: 4.4.3(supports-color@9.4.0)
globby: 11.1.0
ignore: 5.3.0
is-plain-obj: 3.0.0
@@ -49965,14 +51396,14 @@ snapshots:
npm-install-checks: 4.0.0
npm-normalize-package-bin: 1.0.1
npm-package-arg: 8.1.5
- semver: 7.6.3
+ semver: 7.7.4
npm-pick-manifest@8.0.2:
dependencies:
npm-install-checks: 6.3.0
npm-normalize-package-bin: 3.0.1
npm-package-arg: 10.1.0
- semver: 7.6.3
+ semver: 7.7.4
npm-registry-fetch@12.0.2:
dependencies:
@@ -50148,7 +51579,7 @@ snapshots:
'@oclif/plugin-warn-if-update-available': 2.1.1(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)
aws-sdk: 2.1515.0
concurrently: 7.6.0
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
find-yarn-workspace-root: 2.0.0
fs-extra: 8.1.0
github-slugger: 1.5.0
@@ -50369,7 +51800,7 @@ snapshots:
p-transform@1.3.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
p-queue: 6.6.2
transitivePeerDependencies:
- supports-color
@@ -50380,7 +51811,7 @@ snapshots:
dependencies:
'@tootallnate/quickjs-emscripten': 0.23.0
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
get-uri: 6.0.3
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
@@ -50667,7 +52098,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
crc32: 0.2.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
seed-random: 2.2.0
transitivePeerDependencies:
- supports-color
@@ -50684,6 +52115,9 @@ snapshots:
picomatch@4.0.2: {}
+ picomatch@4.0.4:
+ optional: true
+
pidtree@0.5.0: {}
pidtree@0.6.0: {}
@@ -50702,6 +52136,9 @@ snapshots:
pirates@4.0.6: {}
+ pirates@4.0.7:
+ optional: true
+
pkg-dir@3.0.0:
dependencies:
find-up: 3.0.0
@@ -50800,7 +52237,7 @@ snapshots:
postcss-colormin@5.3.1(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.32
@@ -50808,7 +52245,7 @@ snapshots:
postcss-colormin@5.3.1(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.49
@@ -50816,7 +52253,7 @@ snapshots:
postcss-colormin@6.1.0(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.32
@@ -50824,7 +52261,7 @@ snapshots:
postcss-colormin@6.1.0(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.49
@@ -50832,25 +52269,25 @@ snapshots:
postcss-convert-values@5.1.3(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-convert-values@5.1.3(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-value-parser: 4.2.0
postcss-convert-values@6.1.0(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-convert-values@6.1.0(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-value-parser: 4.2.0
@@ -50931,7 +52368,7 @@ snapshots:
dependencies:
htmlparser2: 3.10.1
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss@8.4.49)
+ postcss-syntax: 0.36.2(postcss@8.4.32)
postcss-less@3.1.4:
dependencies:
@@ -50947,7 +52384,7 @@ snapshots:
semver: 7.6.3
webpack: 4.47.0(webpack-cli@5.1.4)
- postcss-loader@4.3.0(postcss@8.4.49)(webpack@5.97.1):
+ postcss-loader@4.3.0(postcss@8.4.49)(webpack@5.97.1(@swc/core@1.3.100)):
dependencies:
cosmiconfig: 7.1.0
klona: 2.0.6
@@ -50955,15 +52392,17 @@ snapshots:
postcss: 8.4.49
schema-utils: 3.3.0
semver: 7.6.3
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
- postcss-loader@6.2.1(postcss@8.4.32)(webpack@5.89.0):
+ postcss-loader@4.3.0(postcss@8.4.49)(webpack@5.97.1):
dependencies:
cosmiconfig: 7.1.0
klona: 2.0.6
- postcss: 8.4.32
+ loader-utils: 2.0.4
+ postcss: 8.4.49
+ schema-utils: 3.3.0
semver: 7.6.3
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
postcss-loader@6.2.1(postcss@8.4.32)(webpack@5.97.1):
dependencies:
@@ -50971,7 +52410,7 @@ snapshots:
klona: 2.0.6
postcss: 8.4.32
semver: 7.6.3
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
postcss-loader@6.2.1(postcss@8.4.49)(webpack@5.97.1):
dependencies:
@@ -50979,7 +52418,7 @@ snapshots:
klona: 2.0.6
postcss: 8.4.49
semver: 7.6.3
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
postcss-media-query-parser@0.2.3: {}
@@ -51009,7 +52448,7 @@ snapshots:
postcss-merge-rules@5.1.4(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
cssnano-utils: 3.1.0(postcss@8.4.32)
postcss: 8.4.32
@@ -51017,7 +52456,7 @@ snapshots:
postcss-merge-rules@5.1.4(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
cssnano-utils: 3.1.0(postcss@8.4.49)
postcss: 8.4.49
@@ -51025,7 +52464,7 @@ snapshots:
postcss-merge-rules@6.1.1(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
cssnano-utils: 4.0.2(postcss@8.4.32)
postcss: 8.4.32
@@ -51033,7 +52472,7 @@ snapshots:
postcss-merge-rules@6.1.1(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
cssnano-utils: 4.0.2(postcss@8.4.49)
postcss: 8.4.49
@@ -51091,28 +52530,28 @@ snapshots:
postcss-minify-params@5.1.4(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
cssnano-utils: 3.1.0(postcss@8.4.32)
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-minify-params@5.1.4(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
cssnano-utils: 3.1.0(postcss@8.4.49)
postcss: 8.4.49
postcss-value-parser: 4.2.0
postcss-minify-params@6.1.0(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
cssnano-utils: 4.0.2(postcss@8.4.32)
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-minify-params@6.1.0(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
cssnano-utils: 4.0.2(postcss@8.4.49)
postcss: 8.4.49
postcss-value-parser: 4.2.0
@@ -51313,25 +52752,25 @@ snapshots:
postcss-normalize-unicode@5.1.1(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-normalize-unicode@5.1.1(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-value-parser: 4.2.0
postcss-normalize-unicode@6.1.0(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-value-parser: 4.2.0
postcss-normalize-unicode@6.1.0(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-value-parser: 4.2.0
@@ -51405,31 +52844,35 @@ snapshots:
dependencies:
postcss: 8.4.49
+ postcss-prefixwrap@1.53.0(postcss@8.4.32):
+ dependencies:
+ postcss: 8.4.32
+
postcss-prefixwrap@1.53.0(postcss@8.4.49):
dependencies:
postcss: 8.4.49
postcss-reduce-initial@5.1.2(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
postcss: 8.4.32
postcss-reduce-initial@5.1.2(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
postcss: 8.4.49
postcss-reduce-initial@6.1.0(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
postcss: 8.4.32
postcss-reduce-initial@6.1.0(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
caniuse-api: 3.0.0
postcss: 8.4.49
@@ -51523,9 +52966,9 @@ snapshots:
postcss-value-parser: 4.2.0
svgo: 3.3.2
- postcss-syntax@0.36.2(postcss@8.4.49):
+ postcss-syntax@0.36.2(postcss@8.4.32):
dependencies:
- postcss: 8.4.49
+ postcss: 8.4.32
postcss-unique-selectors@5.1.1(postcss@8.4.32):
dependencies:
@@ -51547,6 +52990,11 @@ snapshots:
postcss: 8.4.49
postcss-selector-parser: 6.1.2
+ postcss-urlrebase@1.4.0(postcss@8.4.32):
+ dependencies:
+ postcss: 8.4.32
+ postcss-value-parser: 4.2.0
+
postcss-urlrebase@1.4.0(postcss@8.4.49):
dependencies:
postcss: 8.4.49
@@ -51649,6 +53097,20 @@ snapshots:
ansi-styles: 5.2.0
react-is: 18.3.1
+ pretty-format@30.2.0:
+ dependencies:
+ '@jest/schemas': 30.0.5
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+ optional: true
+
+ pretty-format@30.3.0:
+ dependencies:
+ '@jest/schemas': 30.0.5
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+ optional: true
+
pretty-hrtime@1.0.3: {}
prismjs@1.27.0: {}
@@ -51748,7 +53210,7 @@ snapshots:
proxy-agent@6.3.0:
dependencies:
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
lru-cache: 7.18.3
@@ -51761,7 +53223,7 @@ snapshots:
proxy-agent@6.5.0:
dependencies:
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
lru-cache: 7.18.3
@@ -51820,7 +53282,7 @@ snapshots:
puppeteer-core@1.12.2:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
extract-zip: 1.7.0
https-proxy-agent: 2.2.4
mime: 2.6.0
@@ -51856,7 +53318,7 @@ snapshots:
puppeteer-core@13.7.0(encoding@0.1.13):
dependencies:
cross-fetch: 3.1.5(encoding@0.1.13)
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.3.4
devtools-protocol: 0.0.981744
extract-zip: 2.0.1
https-proxy-agent: 5.0.1
@@ -51876,7 +53338,7 @@ snapshots:
puppeteer-core@2.1.1:
dependencies:
'@types/mime-types': 2.1.4
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
extract-zip: 1.7.0
https-proxy-agent: 4.0.0
mime: 2.6.0
@@ -51895,7 +53357,7 @@ snapshots:
'@puppeteer/browsers': 1.4.6(typescript@5.7.2)
chromium-bidi: 0.4.16(devtools-protocol@0.0.1147663)
cross-fetch: 4.0.0(encoding@0.1.13)
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.3.4
devtools-protocol: 0.0.1147663
ws: 8.13.0
optionalDependencies:
@@ -51910,7 +53372,7 @@ snapshots:
dependencies:
'@puppeteer/browsers': 2.6.1
chromium-bidi: 0.8.0(devtools-protocol@0.0.1367902)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
devtools-protocol: 0.0.1367902
typed-query-selector: 2.12.0
ws: 8.18.0
@@ -51923,7 +53385,7 @@ snapshots:
dependencies:
'@puppeteer/browsers': 2.6.1
chromium-bidi: 0.11.0(devtools-protocol@0.0.1367902)
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
devtools-protocol: 0.0.1367902
typed-query-selector: 2.12.0
ws: 8.18.0
@@ -51945,7 +53407,7 @@ snapshots:
qqjs@0.3.11:
dependencies:
chalk: 2.4.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
execa: 0.10.0
fs-extra: 6.0.1
get-stream: 5.2.0
@@ -52123,7 +53585,7 @@ snapshots:
react-docgen-typescript-plugin@1.0.5(typescript@5.7.2)(webpack@5.97.1):
dependencies:
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
endent: 2.1.0
find-cache-dir: 3.3.2
flat-cache: 3.2.0
@@ -52158,7 +53620,7 @@ snapshots:
dependencies:
'@babel/core': 7.25.7
'@babel/traverse': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/types': 7.29.0
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.4
'@types/doctrine': 0.0.9
@@ -53094,7 +54556,7 @@ snapshots:
rxjs@7.8.1:
dependencies:
- tslib: 2.8.1
+ tslib: 2.6.3
rxjs@7.8.2:
dependencies:
@@ -53150,15 +54612,18 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
semver: 7.6.3
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
optionalDependencies:
sass: 1.69.5
- sass-loader@12.6.0(sass@1.69.5)(webpack@5.89.0):
+ sass-loader@10.5.0(sass@1.69.5)(webpack@5.97.1):
dependencies:
klona: 2.0.6
+ loader-utils: 2.0.4
neo-async: 2.6.2
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ schema-utils: 3.3.0
+ semver: 7.6.3
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
optionalDependencies:
sass: 1.69.5
@@ -53166,7 +54631,7 @@ snapshots:
dependencies:
klona: 2.0.6
neo-async: 2.6.2
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
optionalDependencies:
sass: 1.69.5
@@ -53247,6 +54712,13 @@ snapshots:
ajv-formats: 2.1.1(ajv@8.17.1)
ajv-keywords: 5.1.0(ajv@8.17.1)
+ schema-utils@4.3.3:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
+
scoped-regex@2.1.0: {}
section-matter@1.0.0:
@@ -53285,6 +54757,8 @@ snapshots:
semver@7.6.3: {}
+ semver@7.7.4: {}
+
send@0.18.0:
dependencies:
debug: 2.6.9
@@ -53536,7 +55010,7 @@ snapshots:
dependencies:
'@kwsites/file-exists': 1.1.1
'@kwsites/promise-deferred': 1.1.1
- debug: 4.3.4(supports-color@9.4.0)
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -53545,7 +55019,7 @@ snapshots:
simple-peer@9.11.1:
dependencies:
buffer: 6.0.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
err-code: 3.0.1
get-browser-rtc: 1.1.0
queue-microtask: 1.2.3
@@ -53646,7 +55120,7 @@ snapshots:
socks-proxy-agent@6.2.1:
dependencies:
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
socks: 2.8.3
transitivePeerDependencies:
- supports-color
@@ -53654,7 +55128,7 @@ snapshots:
socks-proxy-agent@7.0.0:
dependencies:
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
socks: 2.8.3
transitivePeerDependencies:
- supports-color
@@ -53662,7 +55136,7 @@ snapshots:
socks-proxy-agent@8.0.5:
dependencies:
agent-base: 7.1.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
socks: 2.8.3
transitivePeerDependencies:
- supports-color
@@ -53688,19 +55162,12 @@ snapshots:
source-map-js@1.2.1: {}
- source-map-loader@3.0.2(webpack@5.89.0):
- dependencies:
- abab: 2.0.6
- iconv-lite: 0.6.3
- source-map-js: 1.0.2
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
-
source-map-loader@3.0.2(webpack@5.97.1):
dependencies:
abab: 2.0.6
iconv-lite: 0.6.3
source-map-js: 1.0.2
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
source-map-resolve@0.5.3:
dependencies:
@@ -53774,7 +55241,7 @@ snapshots:
spdy-transport@3.0.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@@ -53785,7 +55252,7 @@ snapshots:
spdy@4.0.2:
dependencies:
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
handle-thing: 2.0.1
http-deceiver: 1.2.7
select-hose: 2.0.0
@@ -54120,25 +55587,25 @@ snapshots:
stylehacks@5.1.1(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-selector-parser: 6.1.2
stylehacks@5.1.1(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-selector-parser: 6.1.2
stylehacks@6.1.1(postcss@8.4.32):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.32
postcss-selector-parser: 6.1.2
stylehacks@6.1.1(postcss@8.4.49):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
postcss: 8.4.49
postcss-selector-parser: 6.1.2
@@ -54151,6 +55618,15 @@ snapshots:
optionalDependencies:
postcss: 8.4.49
+ stylelint-config-recommended-scss@14.1.0(postcss@8.4.49)(stylelint@16.11.0(typescript@5.9.3)):
+ dependencies:
+ postcss-scss: 4.0.9(postcss@8.4.49)
+ stylelint: 16.11.0(typescript@5.9.3)
+ stylelint-config-recommended: 14.0.1(stylelint@16.11.0(typescript@5.9.3))
+ stylelint-scss: 6.11.1(stylelint@16.11.0(typescript@5.9.3))
+ optionalDependencies:
+ postcss: 8.4.49
+
stylelint-config-recommended-scss@4.3.0(stylelint-scss@3.21.0(stylelint@13.13.1))(stylelint@13.13.1):
dependencies:
stylelint: 13.13.1
@@ -54179,6 +55655,10 @@ snapshots:
dependencies:
stylelint: 16.11.0(typescript@5.7.2)
+ stylelint-config-recommended@14.0.1(stylelint@16.11.0(typescript@5.9.3)):
+ dependencies:
+ stylelint: 16.11.0(typescript@5.9.3)
+
stylelint-config-recommended@3.0.0(stylelint@13.13.1):
dependencies:
stylelint: 13.13.1
@@ -54244,6 +55724,18 @@ snapshots:
postcss-value-parser: 4.2.0
stylelint: 16.11.0(typescript@5.7.2)
+ stylelint-scss@6.11.1(stylelint@16.11.0(typescript@5.9.3)):
+ dependencies:
+ css-tree: 3.1.0
+ is-plain-object: 5.0.0
+ known-css-properties: 0.35.0
+ mdn-data: 2.21.0
+ postcss-media-query-parser: 0.2.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-selector-parser: 7.1.0
+ postcss-value-parser: 4.2.0
+ stylelint: 16.11.0(typescript@5.9.3)
+
stylelint@13.13.1:
dependencies:
'@stylelint/postcss-css-in-js': 0.37.3(postcss-syntax@0.36.2)(postcss@7.0.39)
@@ -54252,7 +55744,7 @@ snapshots:
balanced-match: 2.0.0
chalk: 4.1.2
cosmiconfig: 7.1.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
execall: 2.0.0
fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
@@ -54281,7 +55773,7 @@ snapshots:
postcss-sass: 0.4.4
postcss-scss: 2.1.1
postcss-selector-parser: 6.1.2
- postcss-syntax: 0.36.2(postcss@8.4.49)
+ postcss-syntax: 0.36.2(postcss@8.4.32)
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
slash: 3.0.0
@@ -54306,7 +55798,7 @@ snapshots:
colord: 2.9.3
cosmiconfig: 7.1.0
css-functions-list: 3.2.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
fast-glob: 3.3.3
fastest-levenshtein: 1.0.16
file-entry-cache: 6.0.1
@@ -54354,7 +55846,51 @@ snapshots:
cosmiconfig: 9.0.0(typescript@5.7.2)
css-functions-list: 3.2.3
css-tree: 3.1.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
+ fast-glob: 3.3.2
+ fastest-levenshtein: 1.0.16
+ file-entry-cache: 9.1.0
+ global-modules: 2.0.0
+ globby: 11.1.0
+ globjoin: 0.1.4
+ html-tags: 3.3.1
+ ignore: 6.0.2
+ imurmurhash: 0.1.4
+ is-plain-object: 5.0.0
+ known-css-properties: 0.35.0
+ mathml-tag-names: 2.1.3
+ meow: 13.2.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.4.49
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-safe-parser: 7.0.1(postcss@8.4.49)
+ postcss-selector-parser: 7.1.0
+ postcss-value-parser: 4.2.0
+ resolve-from: 5.0.0
+ string-width: 4.2.3
+ supports-hyperlinks: 3.1.0
+ svg-tags: 1.0.0
+ table: 6.9.0
+ write-file-atomic: 5.0.1
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ stylelint@16.11.0(typescript@5.9.3):
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
+ '@dual-bundle/import-meta-resolve': 4.1.0
+ balanced-match: 2.0.0
+ colord: 2.9.3
+ cosmiconfig: 9.0.0(typescript@5.9.3)
+ css-functions-list: 3.2.3
+ css-tree: 3.1.0
+ debug: 4.4.3(supports-color@9.4.0)
fast-glob: 3.3.2
fastest-levenshtein: 1.0.16
file-entry-cache: 9.1.0
@@ -54396,7 +55932,7 @@ snapshots:
dependencies:
component-emitter: 1.3.1
cookiejar: 2.1.4
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
fast-safe-stringify: 2.1.1
form-data: 4.0.0
formidable: 2.1.2
@@ -54404,7 +55940,7 @@ snapshots:
mime: 2.6.0
qs: 6.11.2
readable-stream: 3.6.2
- semver: 7.6.3
+ semver: 7.7.4
transitivePeerDependencies:
- supports-color
@@ -54516,6 +56052,11 @@ snapshots:
synchronous-promise@2.0.17: {}
+ synckit@0.11.12:
+ dependencies:
+ '@pkgr/core': 0.2.9
+ optional: true
+
synckit@0.9.2:
dependencies:
'@pkgr/core': 0.1.1
@@ -54572,6 +56113,8 @@ snapshots:
tapable@2.2.1: {}
+ tapable@2.3.2: {}
+
tar-fs@2.0.0:
dependencies:
chownr: 1.1.4
@@ -54690,95 +56233,126 @@ snapshots:
transitivePeerDependencies:
- bluebird
- terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)):
+ terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
terser: 5.36.0
- webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
+ webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
optionalDependencies:
'@swc/core': 1.3.100
esbuild: 0.18.20
- terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1):
+ terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(webpack@5.97.1):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
terser: 5.36.0
+ webpack: 5.97.1(@swc/core@1.3.100)
+ optionalDependencies:
+ '@swc/core': 1.3.100
+
+ terser-webpack-plugin@5.3.6(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ jest-worker: 27.5.1
+ schema-utils: 3.3.0
+ serialize-javascript: 6.0.1
+ terser: 5.36.0
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ optionalDependencies:
+ '@swc/core': 1.3.100
+ uglify-js: 3.17.4
+
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ jest-worker: 27.5.1
+ schema-utils: 4.3.3
+ terser: 5.36.0
+ webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
+ optionalDependencies:
+ '@swc/core': 1.3.100
+ esbuild: 0.18.20
+
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ jest-worker: 27.5.1
+ schema-utils: 4.3.3
+ terser: 5.36.0
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
optionalDependencies:
'@swc/core': 1.3.100
esbuild: 0.18.20
- terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.89.0):
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.105.2):
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 4.3.0
- serialize-javascript: 6.0.2
+ schema-utils: 4.3.3
terser: 5.36.0
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
optionalDependencies:
'@swc/core': 1.3.100
uglify-js: 3.17.4
- terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1):
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1):
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 4.3.0
- serialize-javascript: 6.0.2
+ schema-utils: 4.3.3
terser: 5.36.0
webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
optionalDependencies:
'@swc/core': 1.3.100
uglify-js: 3.17.4
- terser-webpack-plugin@5.3.11(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100)):
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(webpack@5.105.2(@swc/core@1.3.100)):
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 4.3.0
- serialize-javascript: 6.0.2
+ schema-utils: 4.3.3
terser: 5.36.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.105.2(@swc/core@1.3.100)
optionalDependencies:
'@swc/core': 1.3.100
- terser-webpack-plugin@5.3.6(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.89.0):
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100)):
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 3.3.0
- serialize-javascript: 6.0.1
- terser: 5.26.0
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ schema-utils: 4.3.3
+ terser: 5.36.0
+ webpack: 5.97.1(@swc/core@1.3.100)
optionalDependencies:
'@swc/core': 1.3.100
- uglify-js: 3.17.4
- terser@4.8.1:
+ terser-webpack-plugin@5.4.0(@swc/core@1.3.100)(webpack@5.97.1):
dependencies:
- acorn: 8.14.0
- commander: 2.20.3
- source-map: 0.6.1
- source-map-support: 0.5.21
+ '@jridgewell/trace-mapping': 0.3.31
+ jest-worker: 27.5.1
+ schema-utils: 4.3.3
+ terser: 5.36.0
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ optionalDependencies:
+ '@swc/core': 1.3.100
- terser@5.26.0:
+ terser@4.8.1:
dependencies:
- '@jridgewell/source-map': 0.3.6
- acorn: 8.14.0
+ acorn: 8.16.0
commander: 2.20.3
+ source-map: 0.6.1
source-map-support: 0.5.21
terser@5.36.0:
dependencies:
'@jridgewell/source-map': 0.3.6
- acorn: 8.14.0
+ acorn: 8.16.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -54961,6 +56535,10 @@ snapshots:
dependencies:
typescript: 5.7.2
+ ts-api-utils@1.4.3(typescript@5.9.3):
+ dependencies:
+ typescript: 5.9.3
+
ts-api-utils@2.1.0(typescript@5.7.2):
dependencies:
typescript: 5.7.2
@@ -55035,7 +56613,7 @@ snapshots:
'@jest/types': 29.6.3
babel-jest: 29.7.0(@babel/core@7.25.7)
- ts-jest@29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2):
+ ts-jest@29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@20.17.8)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2)))(typescript@5.7.2):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -55048,11 +56626,11 @@ snapshots:
typescript: 5.7.2
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.0)
+ babel-jest: 29.7.0(@babel/core@7.29.0)
- ts-jest@29.1.1(@babel/core@7.26.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2):
+ ts-jest@29.1.1(@babel/core@7.29.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.0))(jest@29.5.0(@types/node@22.9.1)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(typescript@5.7.2):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -55065,11 +56643,11 @@ snapshots:
typescript: 5.7.2
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.26.0
+ '@babel/core': 7.29.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.26.0)
+ babel-jest: 29.7.0(@babel/core@7.29.0)
- ts-loader@9.5.1(typescript@5.7.2)(webpack@5.97.1(@swc/core@1.3.100)):
+ ts-loader@9.5.1(typescript@5.7.2)(webpack@5.105.2(@swc/core@1.3.100)):
dependencies:
chalk: 4.1.2
enhanced-resolve: 5.16.0
@@ -55077,7 +56655,17 @@ snapshots:
semver: 7.6.3
source-map: 0.7.4
typescript: 5.7.2
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.105.2(@swc/core@1.3.100)
+
+ ts-loader@9.5.1(typescript@5.7.2)(webpack@5.105.2):
+ dependencies:
+ chalk: 4.1.2
+ enhanced-resolve: 5.16.0
+ micromatch: 4.0.7
+ semver: 7.6.3
+ source-map: 0.7.4
+ typescript: 5.7.2
+ webpack: 5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
ts-loader@9.5.1(typescript@5.7.2)(webpack@5.97.1):
dependencies:
@@ -55087,7 +56675,7 @@ snapshots:
semver: 7.6.3
source-map: 0.7.4
typescript: 5.7.2
- webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.7.2):
dependencies:
@@ -55109,6 +56697,26 @@ snapshots:
optionalDependencies:
'@swc/core': 1.3.100
+ ts-node@10.9.2(@swc/core@1.3.100)(@types/node@20.17.8)(typescript@5.9.3):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.9
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 20.17.8
+ acorn: 8.11.2
+ acorn-walk: 8.3.1
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.9.3
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+ optionalDependencies:
+ '@swc/core': 1.3.100
+
ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
@@ -55156,6 +56764,11 @@ snapshots:
tslib: 1.14.1
typescript: 5.7.2
+ tsutils@3.21.0(typescript@5.9.3):
+ dependencies:
+ tslib: 1.14.1
+ typescript: 5.9.3
+
tsyringe@4.10.0:
dependencies:
tslib: 1.14.1
@@ -55165,7 +56778,7 @@ snapshots:
tuf-js@1.1.7:
dependencies:
'@tufjs/models': 1.0.4
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
make-fetch-happen: 11.1.1
transitivePeerDependencies:
- supports-color
@@ -55260,6 +56873,8 @@ snapshots:
typescript@5.7.2: {}
+ typescript@5.9.3: {}
+
uc.micro@1.0.6: {}
uglify-es@3.3.9:
@@ -55433,9 +57048,9 @@ snapshots:
unplugin@1.5.1:
dependencies:
- acorn: 8.14.0
+ acorn: 8.16.0
chokidar: 3.6.0
- webpack-sources: 3.2.3
+ webpack-sources: 3.3.4
webpack-virtual-modules: 0.6.1
unquote@1.1.1: {}
@@ -55458,21 +57073,27 @@ snapshots:
upath@1.2.0:
optional: true
- update-browserslist-db@1.1.0(browserslist@4.22.2):
+ update-browserslist-db@1.1.1(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ update-browserslist-db@1.2.3(browserslist@4.22.2):
dependencies:
browserslist: 4.22.2
escalade: 3.2.0
picocolors: 1.1.1
- update-browserslist-db@1.1.1(browserslist@4.24.2):
+ update-browserslist-db@1.2.3(browserslist@4.24.2):
dependencies:
browserslist: 4.24.2
escalade: 3.2.0
picocolors: 1.1.1
- update-browserslist-db@1.1.1(browserslist@4.24.4):
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
dependencies:
- browserslist: 4.24.4
+ browserslist: 4.28.2
escalade: 3.2.0
picocolors: 1.1.1
@@ -55521,21 +57142,21 @@ snapshots:
optionalDependencies:
file-loader: 6.2.0(webpack@4.47.0(webpack-cli@5.1.4))
- url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.89.0):
+ url-loader@4.1.1(file-loader@6.2.0(webpack@5.105.2))(webpack@5.97.1):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
optionalDependencies:
- file-loader: 6.2.0(webpack@5.97.1)
+ file-loader: 6.2.0(webpack@5.105.2)
url-loader@4.1.1(file-loader@6.2.0(webpack@5.97.1))(webpack@5.97.1):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
optionalDependencies:
file-loader: 6.2.0(webpack@5.97.1)
@@ -55675,7 +57296,7 @@ snapshots:
v8-to-istanbul@9.2.0:
dependencies:
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/trace-mapping': 0.3.31
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
@@ -55696,13 +57317,13 @@ snapshots:
dependencies:
builtins: 5.0.1
- valtio@1.7.0(@babel/helper-module-imports@7.25.9)(@babel/types@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1):
+ valtio@1.7.0(@babel/helper-module-imports@7.28.6)(@babel/types@7.29.0)(babel-plugin-macros@3.1.0)(react@18.3.1):
dependencies:
proxy-compare: 2.3.0
use-sync-external-store: 1.2.0(react@18.3.1)
optionalDependencies:
- '@babel/helper-module-imports': 7.25.9
- '@babel/types': 7.26.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/types': 7.29.0
babel-plugin-macros: 3.1.0
react: 18.3.1
@@ -55793,7 +57414,7 @@ snapshots:
dependencies:
chalk: 2.4.2
commander: 3.0.2
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
transitivePeerDependencies:
- supports-color
@@ -55828,12 +57449,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- watchpack@2.4.0:
- dependencies:
- glob-to-regexp: 0.4.1
- graceful-fs: 4.2.11
-
- watchpack@2.4.1:
+ watchpack@2.5.1:
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
@@ -55863,7 +57479,7 @@ snapshots:
webpack-bundle-analyzer@4.10.2:
dependencies:
'@discoveryjs/json-ext': 0.5.7
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-walk: 8.3.1
commander: 7.2.0
debounce: 1.2.1
@@ -55880,7 +57496,7 @@ snapshots:
webpack-bundle-analyzer@4.7.0:
dependencies:
- acorn: 8.14.0
+ acorn: 8.16.0
acorn-walk: 8.3.1
chalk: 4.1.2
commander: 7.2.0
@@ -55916,20 +57532,20 @@ snapshots:
- bufferutil
- utf-8-validate
- webpack-cli@4.10.0(webpack@5.97.1):
+ webpack-cli@4.10.0(webpack@5.105.2):
dependencies:
'@discoveryjs/json-ext': 0.5.7
- '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.97.1)
+ '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.105.2)
'@webpack-cli/info': 1.5.0(webpack-cli@4.10.0)
'@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0)
colorette: 2.0.20
commander: 7.2.0
cross-spawn: 7.0.6
fastest-levenshtein: 1.0.16
- import-local: 3.1.0
+ import-local: 3.2.0
interpret: 2.2.0
rechoir: 0.7.1
- webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
webpack-merge: 5.10.0
webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1):
@@ -55943,14 +57559,14 @@ snapshots:
cross-spawn: 7.0.6
envinfo: 7.14.0
fastest-levenshtein: 1.0.16
- import-local: 3.1.0
+ import-local: 3.2.0
interpret: 3.1.1
rechoir: 0.8.0
- webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.3.100)
webpack-merge: 5.10.0
optionalDependencies:
webpack-bundle-analyzer: 4.10.2
- webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.1(webpack@5.97.1)
webpack-cli@5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1):
dependencies:
@@ -55963,7 +57579,7 @@ snapshots:
cross-spawn: 7.0.6
envinfo: 7.14.0
fastest-levenshtein: 1.0.16
- import-local: 3.1.0
+ import-local: 3.2.0
interpret: 3.1.1
rechoir: 0.8.0
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
@@ -55972,6 +57588,25 @@ snapshots:
webpack-bundle-analyzer: 4.9.1
webpack-dev-server: 4.15.1(debug@4.3.4)(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-cli@5.1.4(webpack-dev-server@4.15.1)(webpack@5.97.1):
+ dependencies:
+ '@discoveryjs/json-ext': 0.5.7
+ '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.97.1)
+ '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.97.1)
+ '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ colorette: 2.0.20
+ commander: 10.0.1
+ cross-spawn: 7.0.6
+ envinfo: 7.14.0
+ fastest-levenshtein: 1.0.16
+ import-local: 3.2.0
+ interpret: 3.1.1
+ rechoir: 0.8.0
+ webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
+ webpack-merge: 5.10.0
+ optionalDependencies:
+ webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.97.1)
+
webpack-cli@5.1.4(webpack@5.97.1):
dependencies:
'@discoveryjs/json-ext': 0.5.7
@@ -55983,7 +57618,7 @@ snapshots:
cross-spawn: 7.0.6
envinfo: 7.14.0
fastest-levenshtein: 1.0.16
- import-local: 3.1.0
+ import-local: 3.2.0
interpret: 3.1.1
rechoir: 0.8.0
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
@@ -56004,7 +57639,7 @@ snapshots:
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
optional: true
@@ -56014,7 +57649,7 @@ snapshots:
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
webpack-dev-middleware@6.1.1(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)):
@@ -56023,7 +57658,7 @@ snapshots:
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
optionalDependencies:
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)
@@ -56033,7 +57668,7 @@ snapshots:
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.0
+ schema-utils: 4.3.3
optionalDependencies:
webpack: 5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4)
@@ -56112,7 +57747,7 @@ snapshots:
ws: 8.18.0
optionalDependencies:
webpack: 5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.97.1)
transitivePeerDependencies:
- bufferutil
- debug
@@ -56160,6 +57795,46 @@ snapshots:
- utf-8-validate
optional: true
+ webpack-dev-server@4.15.1(webpack@5.97.1):
+ dependencies:
+ '@types/bonjour': 3.5.13
+ '@types/connect-history-api-fallback': 1.5.4
+ '@types/express': 4.17.21
+ '@types/serve-index': 1.9.4
+ '@types/serve-static': 1.15.5
+ '@types/sockjs': 0.3.36
+ '@types/ws': 8.5.10
+ ansi-html-community: 0.0.8
+ bonjour-service: 1.1.1
+ chokidar: 3.6.0
+ colorette: 2.0.20
+ compression: 1.7.5
+ connect-history-api-fallback: 2.0.0
+ default-gateway: 6.0.3
+ express: 4.18.2
+ graceful-fs: 4.2.11
+ html-entities: 2.4.0
+ http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.3.4)
+ ipaddr.js: 2.1.0
+ launch-editor: 2.6.1
+ open: 8.4.2
+ p-retry: 4.6.2
+ rimraf: 3.0.2
+ schema-utils: 4.3.0
+ selfsigned: 2.4.1
+ serve-index: 1.9.1
+ sockjs: 0.3.24
+ spdy: 4.0.2
+ webpack-dev-middleware: 5.3.3(webpack@5.97.1)
+ ws: 8.18.0
+ optionalDependencies:
+ webpack: 5.97.1(@swc/core@1.3.100)
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - supports-color
+ - utf-8-validate
+
webpack-filter-warnings-plugin@1.2.1(webpack@4.47.0(webpack-cli@5.1.4)):
dependencies:
webpack: 4.47.0(webpack-cli@5.1.4)
@@ -56172,13 +57847,13 @@ snapshots:
html-entities: 2.4.0
strip-ansi: 6.0.1
- webpack-livereload-plugin@3.0.2(webpack@5.89.0):
+ webpack-livereload-plugin@3.0.2(webpack@5.97.1):
dependencies:
anymatch: 3.1.3
portfinder: 1.0.32
- schema-utils: 4.2.0
+ schema-utils: 4.3.3
tiny-lr: 1.1.1
- webpack: 5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
+ webpack: 5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0)
transitivePeerDependencies:
- supports-color
@@ -56193,6 +57868,11 @@ snapshots:
flat: 5.0.2
wildcard: 2.0.1
+ webpack-remove-empty-scripts@1.0.4(webpack@5.97.1(@swc/core@1.3.100)):
+ dependencies:
+ ansis: 1.5.2
+ webpack: 5.97.1(@swc/core@1.3.100)
+
webpack-remove-empty-scripts@1.0.4(webpack@5.97.1):
dependencies:
ansis: 1.5.2
@@ -56203,7 +57883,7 @@ snapshots:
source-list-map: 2.0.1
source-map: 0.6.1
- webpack-sources@3.2.3: {}
+ webpack-sources@3.3.4: {}
webpack-virtual-modules@0.2.2:
dependencies:
@@ -56241,38 +57921,101 @@ snapshots:
watchpack: 1.7.5
webpack-sources: 1.4.3
optionalDependencies:
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ webpack-cli: 5.1.4(webpack-dev-server@4.15.1)(webpack@5.97.1)
transitivePeerDependencies:
- supports-color
- webpack@5.89.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0):
+ webpack@5.105.2(@swc/core@1.3.100):
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.5
- '@webassemblyjs/ast': 1.11.6
- '@webassemblyjs/wasm-edit': 1.11.6
- '@webassemblyjs/wasm-parser': 1.11.6
- acorn: 8.14.0
- acorn-import-assertions: 1.9.0(acorn@8.14.0)
- browserslist: 4.19.3
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.16.0
+ acorn-import-phases: 1.0.4(acorn@8.16.0)
+ browserslist: 4.28.2
chrome-trace-event: 1.0.3
- enhanced-resolve: 5.16.0
- es-module-lexer: 1.4.1
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 2.0.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
- schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.89.0)
- watchpack: 2.4.0
- webpack-sources: 3.2.3
+ schema-utils: 4.3.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(webpack@5.105.2(@swc/core@1.3.100))
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ webpack@5.105.2(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0):
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.16.0
+ acorn-import-phases: 1.0.4(acorn@8.16.0)
+ browserslist: 4.28.2
+ chrome-trace-event: 1.0.3
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 2.0.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.1
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 4.3.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.105.2)
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
optionalDependencies:
- webpack-cli: 4.10.0(webpack@5.97.1)
+ webpack-cli: 4.10.0(webpack@5.105.2)
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
+ webpack@5.97.1(@swc/core@1.3.100):
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.8
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.16.0
+ browserslist: 4.28.2
+ chrome-trace-event: 1.0.3
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 1.7.0
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.1
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 3.3.0
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100))
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -56281,28 +58024,28 @@ snapshots:
webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20):
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
- acorn: 8.14.0
- browserslist: 4.24.4
+ acorn: 8.16.0
+ browserslist: 4.28.2
chrome-trace-event: 1.0.3
- enhanced-resolve: 5.17.1
- es-module-lexer: 1.4.1
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
- watchpack: 2.4.1
- webpack-sources: 3.2.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20))
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -56311,28 +58054,28 @@ snapshots:
webpack@5.97.1(@swc/core@1.3.100)(esbuild@0.18.20)(webpack-cli@5.1.4):
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
- acorn: 8.14.0
- browserslist: 4.24.4
+ acorn: 8.16.0
+ browserslist: 4.28.2
chrome-trace-event: 1.0.3
- enhanced-resolve: 5.17.1
- es-module-lexer: 1.4.1
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1)
- watchpack: 2.4.1
- webpack-sources: 3.2.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(esbuild@0.18.20)(webpack@5.97.1)
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
optionalDependencies:
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
transitivePeerDependencies:
@@ -56343,30 +58086,30 @@ snapshots:
webpack@5.97.1(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack-cli@4.10.0):
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
- acorn: 8.14.0
- browserslist: 4.24.4
+ acorn: 8.16.0
+ browserslist: 4.28.2
chrome-trace-event: 1.0.3
- enhanced-resolve: 5.17.1
- es-module-lexer: 1.4.1
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1)
- watchpack: 2.4.1
- webpack-sources: 3.2.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(uglify-js@3.17.4)(webpack@5.97.1)
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
optionalDependencies:
- webpack-cli: 4.10.0(webpack@5.97.1)
+ webpack-cli: 4.10.0(webpack@5.105.2)
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -56375,30 +58118,30 @@ snapshots:
webpack@5.97.1(@swc/core@1.3.100)(webpack-cli@5.1.4):
dependencies:
'@types/eslint-scope': 3.7.7
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
- acorn: 8.14.0
- browserslist: 4.24.4
+ acorn: 8.16.0
+ browserslist: 4.28.2
chrome-trace-event: 1.0.3
- enhanced-resolve: 5.17.1
- es-module-lexer: 1.4.1
+ enhanced-resolve: 5.20.1
+ es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 3.3.0
- tapable: 2.2.1
- terser-webpack-plugin: 5.3.11(@swc/core@1.3.100)(webpack@5.97.1(@swc/core@1.3.100))
- watchpack: 2.4.1
- webpack-sources: 3.2.3
+ tapable: 2.3.2
+ terser-webpack-plugin: 5.4.0(@swc/core@1.3.100)(webpack@5.97.1)
+ watchpack: 2.5.1
+ webpack-sources: 3.3.4
optionalDependencies:
- webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.1)(webpack@5.97.1)
+ webpack-cli: 5.1.4(webpack@5.97.1)
transitivePeerDependencies:
- '@swc/core'
- esbuild
@@ -56859,7 +58602,7 @@ snapshots:
cli-table: 0.3.11
commander: 7.1.0
dateformat: 4.6.3
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
diff: 5.1.0
error: 10.4.0
escape-string-regexp: 4.0.0
@@ -56896,7 +58639,7 @@ snapshots:
dependencies:
chalk: 4.1.2
dargs: 7.0.0
- debug: 4.4.0
+ debug: 4.4.3(supports-color@9.4.0)
execa: 5.1.1
github-username: 6.0.0(encoding@0.1.13)
lodash: 4.17.21