Repository: woocommerce/woocommerce
Pull request #56238: [dev] Monorepo: fix internal packages linking (workspace-dependencies)
Author: login: kalessil
Labels: name: package: @woocommerce/e2e-environment
description: Issues related to @woocommerce/e2e-environment package.
name: plugin: woocommerce
description: Issues related to the WooCommerce Core plugin.
name: focus: monorepo infrastructure
description: Issues and PRs related to monorepo tooling.
name: package: @woocommerce/admin-e2e-tests
description: issues related to @woocommerce/admin-e2e-tests
name: package: @woocommerce/components
description: issues related to @woocommerce/components
name: plugin: woo-ai
description: Issues related to the Woo AI features plugin.
name: needs: analysis
description: Indicates if the PR requires a PR testing scrub session.
Created: 2025-03-08T06:36:22Z | Merged: 2025-03-11T06:54:11Z

### Submission Review Guidelines:

-   I have followed the [WooCommerce Contributing Guidelines](https://github.com/woocommerce/woocommerce/blob/trunk/.github/CONTRIBUTING.md) and the [WordPress Coding Standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/).
-   I have checked to ensure there aren't other open [Pull Requests](https://github.com/woocommerce/woocommerce/pulls) for the same update/change.
-   I have reviewed my code for [security best practices](https://developer.wordpress.org/apis/security/).
-   Following the above guidelines will result in quick merges and clear and detailed feedback when appropriate.

<!-- You can erase any parts of this template not applicable to your Pull Request. -->

### Changes proposed in this Pull Request:

With the changes from https://github.com/woocommerce/woocommerce/pull/56203, it appears that we have some gaps in linking workspace packages together - versions not specified as 'workspace:*' and have specific versions instead.

In this PR, we updated the `syncpack` config to enforce usage of `@woocommerce/*` dependencies from the workspace and updated existing packages accordingly.

### How to test the changes in this Pull Request:

- CI-checks shall pass :heavy_check_mark: 
- core/ai plugins zip files built from this branch and trunk should match :heavy_check_mark: 
- build for the modified packages shall pass :heavy_check_mark: 



Diff:
diff --git a/.syncpackrc b/.syncpackrc
index 0b49f4554908d..29e8f58a80365 100644
--- a/.syncpackrc
+++ b/.syncpackrc
@@ -29,7 +29,6 @@
 				"@testing-library/*",
 				"@types/*",
 				"@typescript-eslint/*",
-				"@woocommerce/*",
 				"@wordpress/api-fetch",
 				"@wordpress/autop",
 				"@wordpress/babel-preset-default",
@@ -294,7 +293,6 @@
 				"@wordpress/env"
 			],
 			"packages": [
-				"@woocommerce/block-library",
 				"**"
 			],
 			"pinVersion": "10.17.0"
@@ -308,6 +306,30 @@
 			],
 			"pinVersion": "^1.15.0"
 		},
+		{
+			"label": "Ensure @woocommerce/* dependencies are locked to the monorepo itself - except certain dependencies (migration pending).",
+			"dependencies": [
+				"@woocommerce/settings"
+			],
+			"packages": [
+				"**"
+			],
+			"pinVersion": "1.0.0"
+		},
+		{
+			"label": "Ensure @woocommerce/* dependencies are locked to the monorepo itself (except peer-deps for now).",
+			"dependencyTypes": [
+				"prod",
+				"dev"
+			],
+			"dependencies": [
+				"@woocommerce/*"
+			],
+			"packages": [
+				"**"
+			],
+			"pinVersion": "workspace:*"
+		},
 		{
 			"label": "@wordpress/* build-dependencies (always ahead of runtime-dependencies)",
 			"dependencies": [
diff --git a/packages/js/admin-e2e-tests/changelog/dev-monorepo-internal-packages-linking-fixes b/packages/js/admin-e2e-tests/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/packages/js/admin-e2e-tests/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/packages/js/admin-e2e-tests/package.json b/packages/js/admin-e2e-tests/package.json
index 382d0bf2ca644..4d841642341a3 100644
--- a/packages/js/admin-e2e-tests/package.json
+++ b/packages/js/admin-e2e-tests/package.json
@@ -60,7 +60,7 @@
 		"@types/expect-puppeteer": "^4.4.7",
 		"@types/puppeteer": "^5.4.7",
 		"@typescript-eslint/eslint-plugin": "^5.62.0",
-		"@woocommerce/api": "^0.2.0",
+		"@woocommerce/api": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
 		"eslint": "^8.55.0",
 		"jest": "27.5.x",
@@ -106,6 +106,13 @@
 			"allowUsuallyExcludedPaths": true,
 			"files": [
 				"package.json",
+				"node_modules/@woocommerce/api/dist/",
+				"!node_modules/@woocommerce/api/*.ts.map",
+				"!node_modules/@woocommerce/api/*.tsbuildinfo",
+				"!node_modules/@woocommerce/api/dist/**/__tests__/",
+				"!node_modules/@woocommerce/api/dist/**/__mocks__/",
+				"!node_modules/@woocommerce/api/dist/**/__snapshops__/",
+				"!node_modules/@woocommerce/api/dist/**/__test_data__/",
 				"node_modules/@woocommerce/eslint-plugin/configs",
 				"node_modules/@woocommerce/eslint-plugin/rules",
 				"node_modules/@woocommerce/eslint-plugin/index.js"
diff --git a/packages/js/block-templates/changelog/dev-monorepo-internal-packages-linking-fixes b/packages/js/block-templates/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/packages/js/block-templates/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/packages/js/block-templates/package.json b/packages/js/block-templates/package.json
index aabbca866eb53..298aa785c5016 100644
--- a/packages/js/block-templates/package.json
+++ b/packages/js/block-templates/package.json
@@ -51,7 +51,7 @@
 	},
 	"dependencies": {
 		"@woocommerce/expression-evaluation": "workspace:*",
-		"@woocommerce/settings": "^1.0.0",
+		"@woocommerce/settings": "1.0.0",
 		"@wordpress/block-editor": "wp-6.6",
 		"@wordpress/blocks": "wp-6.6",
 		"@wordpress/core-data": "wp-6.6",
diff --git a/packages/js/components/changelog/dev-monorepo-internal-packages-linking-fixes b/packages/js/components/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/packages/js/components/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/packages/js/components/src/product-image/index.tsx b/packages/js/components/src/product-image/index.tsx
index 4e36c56c5597c..b9ce7ef6b37c1 100644
--- a/packages/js/components/src/product-image/index.tsx
+++ b/packages/js/components/src/product-image/index.tsx
@@ -12,6 +12,7 @@ import { placeholderWhiteBackground as placeholder } from './placeholder';
 
 type Image = {
 	src?: string;
+	alt?: string;
 };
 
 type ProductImageProps = {
diff --git a/packages/js/e2e-environment/package.json b/packages/js/e2e-environment/package.json
index 29be687557daa..237e694886c29 100644
--- a/packages/js/e2e-environment/package.json
+++ b/packages/js/e2e-environment/package.json
@@ -51,7 +51,7 @@
 		"@automattic/puppeteer-utils": "github:Automattic/puppeteer-utils#0f3ec50",
 		"@jest/test-sequencer": "27.5.x",
 		"@slack/web-api": "^6.10.0",
-		"@woocommerce/api": "^0.2.0",
+		"@woocommerce/api": "workspace:*",
 		"@wordpress/e2e-test-utils": "^4.16.1",
 		"@wordpress/jest-preset-default": "^7.1.3",
 		"app-root-path": "^3.1.0",
diff --git a/packages/js/product-editor/changelog/dev-monorepo-internal-packages-linking-fixes b/packages/js/product-editor/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/packages/js/product-editor/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/packages/js/product-editor/package.json b/packages/js/product-editor/package.json
index 8ced5cb63525b..67fbed2edaa85 100644
--- a/packages/js/product-editor/package.json
+++ b/packages/js/product-editor/package.json
@@ -45,10 +45,10 @@
 		"@woocommerce/data": "workspace:*",
 		"@woocommerce/experimental": "workspace:*",
 		"@woocommerce/expression-evaluation": "workspace:*",
-		"@woocommerce/navigation": "workspace:^",
+		"@woocommerce/navigation": "workspace:*",
 		"@woocommerce/number": "workspace:*",
-		"@woocommerce/settings": "^1.0.0",
-		"@woocommerce/tracks": "workspace:^",
+		"@woocommerce/settings": "1.0.0",
+		"@woocommerce/tracks": "workspace:*",
 		"@wordpress/api-fetch": "wp-6.6",
 		"@wordpress/block-editor": "wp-6.6",
 		"@wordpress/blocks": "wp-6.6",
diff --git a/packages/js/settings-editor/changelog/dev-monorepo-internal-packages-linking-fixes b/packages/js/settings-editor/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/packages/js/settings-editor/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/packages/js/settings-editor/package.json b/packages/js/settings-editor/package.json
index 7cc22af8c55c1..43d71d36537dd 100644
--- a/packages/js/settings-editor/package.json
+++ b/packages/js/settings-editor/package.json
@@ -37,9 +37,9 @@
 		"@types/lodash": "^4.14.202",
 		"@types/prop-types": "^15.7.11",
 		"@types/wordpress__blocks": "11.0.7",
-		"@woocommerce/product-editor": "workspace:^",
-		"@woocommerce/settings": "^1.0.0",
-		"@woocommerce/tracks": "workspace:^",
+		"@woocommerce/product-editor": "workspace:*",
+		"@woocommerce/settings": "1.0.0",
+		"@woocommerce/tracks": "workspace:*",
 		"@wordpress/api-fetch": "wp-6.6",
 		"@wordpress/components": "wp-6.6",
 		"@wordpress/compose": "wp-6.6",
diff --git a/plugins/woo-ai/changelog/dev-monorepo-internal-packages-linking-fixes b/plugins/woo-ai/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/plugins/woo-ai/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/plugins/woo-ai/package.json b/plugins/woo-ai/package.json
index 52fbb462b3457..e8c93708987c9 100644
--- a/plugins/woo-ai/package.json
+++ b/plugins/woo-ai/package.json
@@ -72,7 +72,7 @@
 		"@emotion/react": "^11.11.1",
 		"@types/prop-types": "^15.7.11",
 		"@types/react-outside-click-handler": "^1.3.3",
-		"@woocommerce/ai": "workspace:0.1.0-beta.0",
+		"@woocommerce/ai": "workspace:*",
 		"@woocommerce/components": "workspace:*",
 		"@woocommerce/tracks": "workspace:*",
 		"@wordpress/api-fetch": "wp-6.6",
@@ -107,6 +107,35 @@
 			"npm run lint:css:fix"
 		]
 	},
+	"config": {
+		"ci": {
+			"lint": {
+				"command": "lint:lang:js",
+				"changes": [
+					"src/**/*.{js,ts,tsx,scss}",
+					"tests/**/*.{js,ts,tsx,scss}"
+				]
+			},
+			"tests": [
+				{
+					"name": "JavaScript",
+					"command": "test:unit",
+					"changes": [
+						".wp-env.json",
+						"webpack.config.js",
+						"babel.config.js",
+						"tsconfig.json",
+						"src/**/*.{js,ts,tsx,scss}",
+						"tests/**/*.{js,ts,tsx,scss}"
+					],
+					"events": [
+						"pull_request",
+						"push"
+					]
+				}
+			]
+		}
+	},
 	"wireit": {
 		"build:project:wp-scripts": {
 			"command": "wp-scripts build",
diff --git a/plugins/woocommerce/changelog/dev-monorepo-internal-packages-linking-fixes b/plugins/woocommerce/changelog/dev-monorepo-internal-packages-linking-fixes
new file mode 100644
index 0000000000000..52ec37bc35694
--- /dev/null
+++ b/plugins/woocommerce/changelog/dev-monorepo-internal-packages-linking-fixes
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Monorepo: ensure monorepo packages are linked via workspace-version of the dependencies.
diff --git a/plugins/woocommerce/client/admin/package.json b/plugins/woocommerce/client/admin/package.json
index beef30c5cfc35..21f74479dde8b 100644
--- a/plugins/woocommerce/client/admin/package.json
+++ b/plugins/woocommerce/client/admin/package.json
@@ -50,7 +50,7 @@
 		"@dnd-kit/modifiers": "^6.0.1",
 		"@dnd-kit/sortable": "^7.0.2",
 		"@react-spring/web": "^9.7.3",
-		"@woocommerce/api": "^0.2.0",
+		"@woocommerce/api": "workspace:*",
 		"@wordpress/a11y": "wp-6.6",
 		"@wordpress/api-fetch": "wp-6.6",
 		"@wordpress/base-styles": "wp-6.6",
@@ -140,7 +140,7 @@
 		"@typescript-eslint/parser": "^5.62.0",
 		"@woocommerce/admin-e2e-tests": "workspace:*",
 		"@woocommerce/admin-layout": "workspace:*",
-		"@woocommerce/ai": "workspace:0.1.0-beta.0",
+		"@woocommerce/ai": "workspace:*",
 		"@woocommerce/block-templates": "workspace:*",
 		"@woocommerce/components": "workspace:*",
 		"@woocommerce/csv-export": "workspace:*",
@@ -298,6 +298,13 @@
 			"allowUsuallyExcludedPaths": true,
 			"files": [
 				"package.json",
+				"node_modules/@woocommerce/api/dist/",
+				"!node_modules/@woocommerce/api/*.ts.map",
+				"!node_modules/@woocommerce/api/*.tsbuildinfo",
+				"!node_modules/@woocommerce/api/dist/**/__tests__/",
+				"!node_modules/@woocommerce/api/dist/**/__mocks__/",
+				"!node_modules/@woocommerce/api/dist/**/__snapshops__/",
+				"!node_modules/@woocommerce/api/dist/**/__test_data__/",
 				"node_modules/@woocommerce/admin-e2e-tests/build",
 				"!node_modules/@woocommerce/admin-e2e-tests/*.ts.map",
 				"!node_modules/@woocommerce/admin-e2e-tests/*.tsbuildinfo",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0204927af4e48..04d63099a0bc8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -173,8 +173,8 @@ importers:
         specifier: ^5.62.0
         version: 5.62.0(@typescript-eslint/parser@6.21.0(eslint@8.55.0)(typescript@5.7.2))(eslint@8.55.0)(typescript@5.7.2)
       '@woocommerce/api':
-        specifier: ^0.2.0
-        version: 0.2.0
+        specifier: workspace:*
+        version: link:../api
       '@woocommerce/eslint-plugin':
         specifier: workspace:*
         version: link:../eslint-plugin
@@ -510,7 +510,7 @@ importers:
         specifier: workspace:*
         version: link:../expression-evaluation
       '@woocommerce/settings':
-        specifier: ^1.0.0
+        specifier: 1.0.0
         version: 1.0.0
       '@wordpress/block-editor':
         specifier: wp-6.6
@@ -1494,8 +1494,8 @@ importers:
         specifier: ^6.10.0
         version: 6.10.0
       '@woocommerce/api':
-        specifier: ^0.2.0
-        version: 0.2.0
+        specifier: workspace:*
+        version: link:../api
       '@wordpress/e2e-test-utils':
         specifier: ^4.16.1
         version: 4.16.1(encoding@0.1.13)(jest@27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.100)(@types/node@22.9.1)(typescript@5.7.2)))(puppeteer@2.1.1)(react-native@0.73.0(@babel/core@7.12.9)(@babel/preset-env@7.25.7(@babel/core@7.12.9))(encoding@0.1.13)(react@18.3.1))
@@ -2741,16 +2741,16 @@ importers:
         specifier: workspace:*
         version: link:../expression-evaluation
       '@woocommerce/navigation':
-        specifier: workspace:^
+        specifier: workspace:*
         version: link:../navigation
       '@woocommerce/number':
         specifier: workspace:*
         version: link:../number
       '@woocommerce/settings':
-        specifier: ^1.0.0
+        specifier: 1.0.0
         version: 1.0.0
       '@woocommerce/tracks':
-        specifier: workspace:^
+        specifier: workspace:*
         version: link:../tracks
       '@wordpress/api-fetch':
         specifier: wp-6.6
@@ -3067,13 +3067,13 @@ importers:
         specifier: workspace:*
         version: link:../navigation
       '@woocommerce/product-editor':
-        specifier: workspace:^
+        specifier: workspace:*
         version: link:../product-editor
       '@woocommerce/settings':
-        specifier: ^1.0.0
+        specifier: 1.0.0
         version: 1.0.0
       '@woocommerce/tracks':
-        specifier: workspace:^
+        specifier: workspace:*
         version: link:../tracks
       '@wordpress/api-fetch':
         specifier: wp-6.6
@@ -3366,7 +3366,7 @@ importers:
         specifier: ^1.3.3
         version: 1.3.3
       '@woocommerce/ai':
-        specifier: workspace:0.1.0-beta.0
+        specifier: workspace:*
         version: link:../../packages/js/ai
       '@woocommerce/components':
         specifier: workspace:*
@@ -3792,8 +3792,8 @@ importers:
         specifier: ^9.7.3
         version: 9.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@woocommerce/api':
-        specifier: ^0.2.0
-        version: 0.2.0
+        specifier: workspace:*
+        version: link:../../../../packages/js/api
       '@wordpress/a11y':
         specifier: wp-6.6
         version: 4.0.1
@@ -4060,7 +4060,7 @@ importers:
         specifier: workspace:*
         version: link:../../../../packages/js/admin-layout
       '@woocommerce/ai':
-        specifier: workspace:0.1.0-beta.0
+        specifier: workspace:*
         version: link:../../../../packages/js/ai
       '@woocommerce/block-templates':
         specifier: workspace:*
@@ -34100,9 +34100,7 @@ snapshots:
       source-map: 0.6.1
       string-length: 2.0.0
     transitivePeerDependencies:
-      - bufferutil
       - supports-color
-      - utf-8-validate
 
   '@jest/reporters@25.5.1':
     dependencies:
@@ -34316,9 +34314,12 @@ snapshots:
       jest-runner: 25.5.4
       jest-runtime: 25.5.4
     transitivePeerDependencies:
+      - bufferutil
+      - canvas
       - supports-color
+      - utf-8-validate
 
-  '@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
@@ -34326,7 +34327,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@27.5.1':
     dependencies:
@@ -40629,13 +40634,13 @@ snapshots:
       '@types/node': 20.17.8
     optional: true
 
-  '@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/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.7.2))(eslint@7.32.0)(typescript@5.7.2)':
     dependencies:
       '@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
-      eslint: 8.55.0
+      eslint: 7.32.0
       functional-red-black-tree: 1.0.1
       ignore: 5.3.0
       regexpp: 3.2.0
@@ -44603,7 +44608,7 @@ snapshots:
   '@wordpress/eslint-plugin@9.3.0(@babel/core@7.26.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)
-      '@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/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.7.2))(eslint@7.32.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)
       cosmiconfig: 7.1.0
@@ -45925,7 +45930,7 @@ 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(debug@4.3.4)
       jest-environment-node: 26.6.2
       markdownlint: 0.23.1
@@ -46004,7 +46009,7 @@ 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(debug@4.3.4)
       jest-environment-node: 26.6.2
       markdownlint: 0.23.1
@@ -51568,7 +51573,7 @@ snapshots:
       '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@5.7.2)
       eslint: 7.32.0
     optionalDependencies:
-      '@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/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@5.7.2))(eslint@7.32.0)(typescript@5.7.2)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -55016,7 +55021,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  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
@@ -55040,7 +55045,11 @@ snapshots:
       stack-utils: 2.0.6
       throat: 5.0.0
     transitivePeerDependencies:
+      - bufferutil
+      - canvas
       - supports-color
+      - ts-node
+      - utf-8-validate
 
   jest-circus@27.5.1:
     dependencies:
@@ -55298,7 +55307,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.26.0
-      '@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.26.0)
       chalk: 4.1.2
@@ -55911,9 +55920,7 @@ snapshots:
       pretty-format: 24.9.0
       throat: 4.1.0
     transitivePeerDependencies:
-      - bufferutil
       - supports-color
-      - utf-8-validate
 
   jest-jasmine2@25.5.4:
     dependencies:


Reviews:
user: login: kalessil
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-08T06:39:05Z
user: login: kalessil
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-08T06:39:13Z
user: login: kalessil
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-08T06:41:18Z

Review comments:
diff_hunk: @@ -50,8 +50,8 @@
 		"config": "3.3.7"
 	},
 	"peerDependencies": {
-		"@woocommerce/e2e-environment": "^0.2.3 || ^0.3.0",
-		"@woocommerce/e2e-utils": "^0.2.0",
+		"@woocommerce/e2e-environment": "workspace:*",
path: packages/js/admin-e2e-tests/package.json
user: login: kalessil
body: TBD: move/drop.
created_at: 2025-03-08T06:39:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -56,8 +56,8 @@
 		"wireit": "0.14.10"
 	},
 	"peerDependencies": {
-		"@woocommerce/api": "^0.2.0",
-		"@woocommerce/e2e-utils": "^0.1.6"
+		"@woocommerce/api": "workspace:*",
path: packages/js/e2e-core-tests/package.json
user: login: kalessil
body: TBD: move/drop.
created_at: 2025-03-08T06:39:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -52,9 +52,6 @@
 		"eslint-plugin-jest": "23.20.0",
 		"wireit": "0.14.10"
 	},
-	"peerDependencies": {
path: packages/js/e2e-utils/package.json
user: login: kalessil
body: TBD: move/drop.
created_at: 2025-03-08T06:41:18Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-03-11T06:37:24Z
body: ## Testing Guidelines
Hi  @woocommerce/flux,

Apart from reviewing the code changes, please make sure to **review the testing instructions** ([Guide](https://github.com/woocommerce/woocommerce/wiki/Writing-high-quality-testing-instructions)) and verify that relevant tests (E2E, Unit, Integration, etc.) have been added or updated as needed.

**Reminder:** PR reviewers are required to document testing performed. This includes:
- 🖼️ **Screenshots or screen recordings**.
- 📝 **List of functionality tested / steps followed**.
- 🌐 **Site details** (environment attributes such as hosting type, plugins, theme, store size, store age, and relevant settings).
- 🔍 **Any analysis performed**, such as assessing potential impacts on environment attributes and other plugins, conducting performance profiling, or using LLM/AI-based analysis.

⚠️ Within the testing details you provide, please ensure that no sensitive information (such as API keys, passwords, user data, etc.) is included in this public issue.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-11T06:41:18Z
body: **Size Change:** +228 B (0%) 

**Total Size:** 5.61 MB



<a href="https://github.com/preactjs/compressed-size-action"><sub>compressed-size-action</sub></a>
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-11T06:44:31Z
body: 
## Test using WordPress Playground
The changes in this pull request can be previewed and tested using a [WordPress Playground](https://developer.wordpress.org/playground/) instance.
[WordPress Playground](https://developer.wordpress.org/playground/) is an experimental project that creates a full WordPress instance entirely within the browser.

[Test this pull request with WordPress Playground](https://playground.wordpress.net/#{"landingPage":"/wp-admin/admin.php?page=wc-admin","preferredVersions":{"php":"8.0","wp":"latest"},"phpExtensionBundles":["kitchen-sink"],"features":{"networking":true},"steps":[{"step":"installPlugin","pluginZipFile":{"resource":"url","url":"https://playground.wordpress.net/plugin-proxy.php?org=woocommerce&repo=woocommerce&workflow=Build%20Live%20Branch&artifact=plugins-13781891512&pr=56238"},"options":{"activate":true}},{"step":"installPlugin","pluginZipFile":{"resource":"url","url":"https://github-proxy.com/https://github.com/woocommerce/woocommerce/releases/download/wc-beta-tester-2.3.1/woocommerce-beta-tester.zip"},"options":{"activate":true}},{"step":"login","username":"admin","password":"password"}],"plugins":[]}).

Note that this URL is valid for 30 days from when this comment was last updated. You can update it by closing/reopening the PR or pushing a new commit.

author_association: CONTRIBUTOR