Commit 37c51428928 for woocommerce

commit 37c5142892899d00b446581a34583e51f02cd379
Author: Ján Mikláš <neosinner@gmail.com>
Date:   Thu Aug 20 12:03:21 2026 +0200

    Add shared tooling dependency catalog (#67842)

    * Add shared tooling dependency catalog

    * Add changelog entries for tooling catalog

diff --git a/.syncpackrc b/.syncpackrc
index 6db62c23789..367ad96d3d7 100644
--- a/.syncpackrc
+++ b/.syncpackrc
@@ -110,22 +110,24 @@
 			]
 		},
 		{
-			"label": "Babel dependencies, must be aligned with versions in @wordpress/babel-preset-default package",
+			"label": "Direct Babel build tooling shared across workspace packages",
+			"dependencyTypes": [
+				"prod",
+				"dev"
+			],
 			"dependencies": [
 				"@babel/core",
 				"@babel/cli",
 				"@babel/plugin-syntax-jsx",
-				"@babel/plugin-transform-react-jsx",
-				"@babel/plugin-transform-runtime",
 				"@babel/preset-env",
 				"@babel/preset-react",
 				"@babel/preset-typescript",
 				"@babel/runtime"
 			],
-			"pinVersion": "7.25.7",
 			"packages": [
 				"**"
-			]
+			],
+			"policy": "catalog"
 		},
 		{
 			"label": "Babel dependencies: babel-plugin-transform-react-remove-prop-types - reduce build artifacts size",
@@ -210,13 +212,17 @@
 			"pinVersion": "^10.0.0"
 		},
 		{
+			"dependencyTypes": [
+				"prod",
+				"dev"
+			],
 			"dependencies": [
 				"webpack"
 			],
 			"packages": [
 				"**"
 			],
-			"pinVersion": "5.97.x"
+			"policy": "catalog"
 		},
 		{
 			"dependencies": [
@@ -560,13 +566,17 @@
 			"pinVersion": "4.3.x"
 		},
 		{
+			"dependencyTypes": [
+				"prod",
+				"dev"
+			],
 			"dependencies": [
 				"postcss"
 			],
 			"packages": [
 				"**"
 			],
-			"pinVersion": "8.4.x"
+			"policy": "catalog"
 		},
 		{
 			"dependencies": [
diff --git a/package.json b/package.json
index 2ba828bd913..12e406d08dd 100644
--- a/package.json
+++ b/package.json
@@ -42,8 +42,8 @@
 		"wc:watch:classic-assets": "pnpm --filter='@woocommerce/plugin-woocommerce' watch:build:classic-assets"
 	},
 	"devDependencies": {
-		"@babel/preset-env": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/preset-env": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@types/node": "^24.1.0",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
@@ -70,10 +70,10 @@
 		"sass-loader": "10.5.x",
 		"syncpack": "15.3.3",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x"
+		"webpack": "catalog:tooling"
 	},
 	"dependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@wordpress/babel-preset-default": "next",
 		"lodash": "^4.17.21",
 		"wp-textdomain": "1.0.1"
diff --git a/packages/js/admin-layout/changelog/wooplug-7554-add-tooling-catalog b/packages/js/admin-layout/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/admin-layout/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/admin-layout/package.json b/packages/js/admin-layout/package.json
index a61316d70be..540274eaac5 100644
--- a/packages/js/admin-layout/package.json
+++ b/packages/js/admin-layout/package.json
@@ -92,7 +92,7 @@
 		"sass-loader": "10.5.x",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"peerDependencies": {
diff --git a/packages/js/components/changelog/wooplug-7554-add-tooling-catalog b/packages/js/components/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/components/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/components/package.json b/packages/js/components/package.json
index 84f66d5c306..ef183fa97be 100644
--- a/packages/js/components/package.json
+++ b/packages/js/components/package.json
@@ -148,8 +148,8 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@storybook/addon-console": "^1.2.3",
 		"@storybook/addon-docs": "7.6.19",
 		"@storybook/addon-links": "7.6.19",
@@ -176,7 +176,7 @@
 		"jest": "29.5.x",
 		"jest-cli": "29.5.x",
 		"jest-environment-jsdom": "29.5.x",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-loader": "4.3.x",
 		"qrcode.react": "^3.1.0",
 		"react": "18.3.x",
@@ -187,7 +187,7 @@
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
 		"uuid": "^9.0.1",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"config": {
diff --git a/packages/js/csv-export/changelog/wooplug-7554-add-tooling-catalog b/packages/js/csv-export/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/csv-export/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/csv-export/package.json b/packages/js/csv-export/package.json
index f8f7c9c8c23..3ada211bd5f 100644
--- a/packages/js/csv-export/package.json
+++ b/packages/js/csv-export/package.json
@@ -63,7 +63,7 @@
 		"browser-filesaver": "^1.1.1"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
diff --git a/packages/js/currency/changelog/wooplug-7554-add-tooling-catalog b/packages/js/currency/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/currency/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/currency/package.json b/packages/js/currency/package.json
index 4d6907c7477..f70d5d802fd 100644
--- a/packages/js/currency/package.json
+++ b/packages/js/currency/package.json
@@ -83,7 +83,7 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@types/react": "18.3.x",
 		"@woocommerce/eslint-config": "workspace:*",
diff --git a/packages/js/customer-effort-score/changelog/wooplug-7554-add-tooling-catalog b/packages/js/customer-effort-score/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/customer-effort-score/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/customer-effort-score/package.json b/packages/js/customer-effort-score/package.json
index 37b0f4d6c3f..5c089f7dfc0 100644
--- a/packages/js/customer-effort-score/package.json
+++ b/packages/js/customer-effort-score/package.json
@@ -88,7 +88,7 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@testing-library/dom": "^10.4.x",
 		"@testing-library/react": "^16.x.x",
 		"@types/jest": "29.5.x",
@@ -107,7 +107,7 @@
 		"jest": "29.5.x",
 		"jest-cli": "29.5.x",
 		"jest-environment-jsdom": "29.5.x",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-loader": "4.3.x",
 		"react": "18.3.x",
 		"react-dom": "18.3.x",
@@ -115,7 +115,7 @@
 		"sass-loader": "10.5.x",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"peerDependencies": {
diff --git a/packages/js/data/changelog/wooplug-7554-add-tooling-catalog b/packages/js/data/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/data/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/data/package.json b/packages/js/data/package.json
index 3edf86a5c8b..abf8276247f 100644
--- a/packages/js/data/package.json
+++ b/packages/js/data/package.json
@@ -91,8 +91,8 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@testing-library/dom": "^10.4.x",
 		"@testing-library/react": "^16.x.x",
 		"@types/jest": "29.5.x",
diff --git a/packages/js/date/changelog/wooplug-7554-add-tooling-catalog b/packages/js/date/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/date/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/date/package.json b/packages/js/date/package.json
index 926cabf37ea..435bd8233b0 100644
--- a/packages/js/date/package.json
+++ b/packages/js/date/package.json
@@ -46,7 +46,7 @@
 		"qs": "^6.11.2"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@types/lodash": "^4.14.202",
 		"@types/node": "^24.1.0",
diff --git a/packages/js/dependency-extraction-webpack-plugin/changelog/wooplug-7554-add-tooling-catalog b/packages/js/dependency-extraction-webpack-plugin/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/dependency-extraction-webpack-plugin/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/dependency-extraction-webpack-plugin/package.json b/packages/js/dependency-extraction-webpack-plugin/package.json
index 5c7e3ad469a..3ed9021b7cf 100644
--- a/packages/js/dependency-extraction-webpack-plugin/package.json
+++ b/packages/js/dependency-extraction-webpack-plugin/package.json
@@ -31,7 +31,7 @@
 		"access": "public"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
 		"eslint": "^10.0.0",
@@ -40,7 +40,7 @@
 		"rimraf": "5.0.5",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"scripts": {
diff --git a/packages/js/email-editor/changelog/wooplug-7554-add-tooling-catalog b/packages/js/email-editor/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/email-editor/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/email-editor/package.json b/packages/js/email-editor/package.json
index 8619bb1e0bd..4aaaced6db8 100644
--- a/packages/js/email-editor/package.json
+++ b/packages/js/email-editor/package.json
@@ -152,7 +152,7 @@
 		"ts-jest": "29.1.x",
 		"ts-loader": "9.5.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"config": {
diff --git a/packages/js/eslint-plugin/changelog/wooplug-7554-add-tooling-catalog b/packages/js/eslint-plugin/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/eslint-plugin/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/eslint-plugin/package.json b/packages/js/eslint-plugin/package.json
index 713c0e765ef..e287f0a6251 100644
--- a/packages/js/eslint-plugin/package.json
+++ b/packages/js/eslint-plugin/package.json
@@ -48,7 +48,7 @@
 		"lint:lang:js": "eslint ./configs ./index.js"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"eslint": "^10.0.0",
 		"rimraf": "5.0.5",
 		"typescript": "5.7.x"
diff --git a/packages/js/experimental-products-app/changelog/wooplug-7554-add-tooling-catalog b/packages/js/experimental-products-app/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/experimental-products-app/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/experimental-products-app/package.json b/packages/js/experimental-products-app/package.json
index e3607449968..3d59566a807 100644
--- a/packages/js/experimental-products-app/package.json
+++ b/packages/js/experimental-products-app/package.json
@@ -80,8 +80,8 @@
 		"react-dom": "18.3.x"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@testing-library/dom": "^10.4.x",
 		"@testing-library/jest-dom": "^6.x.x",
 		"@testing-library/react": "^16.x.x",
@@ -98,13 +98,13 @@
 		"jest": "29.5.x",
 		"jest-cli": "29.5.x",
 		"jest-environment-jsdom": "29.5.x",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-loader": "4.3.x",
 		"rimraf": "5.0.5",
 		"sass-loader": "10.5.x",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x",
 		"webpack-remove-empty-scripts": "1.0.x"
 	},
diff --git a/packages/js/experimental/changelog/wooplug-7554-add-tooling-catalog b/packages/js/experimental/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/experimental/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/experimental/package.json b/packages/js/experimental/package.json
index 57ad3f09d07..d9e1440cd73 100644
--- a/packages/js/experimental/package.json
+++ b/packages/js/experimental/package.json
@@ -67,8 +67,8 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@storybook/addon-actions": "6.5.17-alpha.0",
 		"@storybook/addon-console": "^1.2.3",
 		"@storybook/react": "6.5.17-alpha.0",
@@ -88,7 +88,7 @@
 		"jest": "29.5.x",
 		"jest-cli": "29.5.x",
 		"jest-environment-jsdom": "29.5.x",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-loader": "4.3.x",
 		"react": "18.3.x",
 		"react-dom": "18.3.x",
@@ -96,7 +96,7 @@
 		"sass-loader": "10.5.x",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"peerDependencies": {
diff --git a/packages/js/explat/changelog/wooplug-7554-add-tooling-catalog b/packages/js/explat/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/explat/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/explat/package.json b/packages/js/explat/package.json
index 4e26d79534c..0fc38747a74 100644
--- a/packages/js/explat/package.json
+++ b/packages/js/explat/package.json
@@ -73,7 +73,7 @@
 		"qs": "^6.11.2"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/cookie": "^0.4.1",
 		"@types/jest": "29.5.x",
 		"@types/node": "^24.1.0",
diff --git a/packages/js/expression-evaluation/changelog/wooplug-7554-add-tooling-catalog b/packages/js/expression-evaluation/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/expression-evaluation/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/expression-evaluation/package.json b/packages/js/expression-evaluation/package.json
index b8a17f02094..f9e8fbe1a65 100644
--- a/packages/js/expression-evaluation/package.json
+++ b/packages/js/expression-evaluation/package.json
@@ -73,7 +73,7 @@
 		"watch:build:project:esm": "node build.mjs --watch"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
diff --git a/packages/js/internal-js-tests/changelog/wooplug-7554-add-tooling-catalog b/packages/js/internal-js-tests/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/internal-js-tests/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/internal-js-tests/package.json b/packages/js/internal-js-tests/package.json
index 9efbb132d89..4bfb5212ecc 100644
--- a/packages/js/internal-js-tests/package.json
+++ b/packages/js/internal-js-tests/package.json
@@ -63,7 +63,7 @@
 		"regenerator-runtime": "^0.13.11"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
 		"@woocommerce/internal-build": "workspace:*",
diff --git a/packages/js/navigation/changelog/wooplug-7554-add-tooling-catalog b/packages/js/navigation/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/navigation/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/navigation/package.json b/packages/js/navigation/package.json
index ba2d223fa7f..037d52c126d 100644
--- a/packages/js/navigation/package.json
+++ b/packages/js/navigation/package.json
@@ -93,8 +93,8 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@types/qs": "^6.9.10",
 		"@woocommerce/eslint-config": "workspace:*",
diff --git a/packages/js/notices/changelog/wooplug-7554-add-tooling-catalog b/packages/js/notices/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/notices/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/notices/package.json b/packages/js/notices/package.json
index dc8ac5f016e..49e526b95b5 100644
--- a/packages/js/notices/package.json
+++ b/packages/js/notices/package.json
@@ -86,7 +86,7 @@
 	},
 	"private": true,
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/lodash": "^4.14.202",
 		"@woocommerce/eslint-config": "workspace:*",
 		"@woocommerce/eslint-plugin": "workspace:*",
diff --git a/packages/js/number/changelog/wooplug-7554-add-tooling-catalog b/packages/js/number/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/number/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/number/package.json b/packages/js/number/package.json
index 085fd3f80f7..df050a68a6b 100644
--- a/packages/js/number/package.json
+++ b/packages/js/number/package.json
@@ -71,8 +71,8 @@
 		"watch:build:project:esm": "node build.mjs --watch"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@types/lodash": "^4.14.202",
 		"@woocommerce/eslint-config": "workspace:*",
diff --git a/packages/js/onboarding/changelog/wooplug-7554-add-tooling-catalog b/packages/js/onboarding/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/onboarding/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/onboarding/package.json b/packages/js/onboarding/package.json
index 3eb40446b88..ef035be7cf4 100644
--- a/packages/js/onboarding/package.json
+++ b/packages/js/onboarding/package.json
@@ -78,7 +78,7 @@
 		"string-similarity": "4.0.4"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@testing-library/react": "^16.x.x",
 		"@types/jest": "29.5.x",
 		"@types/react": "18.3.x",
@@ -93,13 +93,13 @@
 		"jest": "29.5.x",
 		"jest-cli": "29.5.x",
 		"jest-environment-jsdom": "29.5.x",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-loader": "4.3.x",
 		"rimraf": "5.0.5",
 		"sass-loader": "10.5.x",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"publishConfig": {
diff --git a/packages/js/remote-logging/changelog/wooplug-7554-add-tooling-catalog b/packages/js/remote-logging/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/remote-logging/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/remote-logging/package.json b/packages/js/remote-logging/package.json
index 299eeb9e2a1..93e4c199f24 100644
--- a/packages/js/remote-logging/package.json
+++ b/packages/js/remote-logging/package.json
@@ -70,7 +70,7 @@
 		"tracekit": "^0.4.6"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/debug": "^4.1.12",
 		"@types/jest": "29.5.x",
 		"@types/node": "^24.1.0",
diff --git a/packages/js/sanitize/changelog/wooplug-7554-add-tooling-catalog b/packages/js/sanitize/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/sanitize/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/sanitize/package.json b/packages/js/sanitize/package.json
index 8f33088899e..20b2b0dd28e 100644
--- a/packages/js/sanitize/package.json
+++ b/packages/js/sanitize/package.json
@@ -41,7 +41,7 @@
 		"dompurify": "^3.2.6"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/dompurify": "^2.0.4",
 		"@types/jest": "29.5.x",
 		"@types/trusted-types": "^2.0.7",
diff --git a/packages/js/settings-ui/changelog/wooplug-7554-add-tooling-catalog b/packages/js/settings-ui/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/settings-ui/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/settings-ui/package.json b/packages/js/settings-ui/package.json
index 5d2c91e250b..640751e3d79 100644
--- a/packages/js/settings-ui/package.json
+++ b/packages/js/settings-ui/package.json
@@ -44,7 +44,7 @@
 		"@wordpress/i18n": "catalog:wp-min"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/jest": "29.5.x",
 		"@types/react": "18.3.x",
 		"@woocommerce/eslint-plugin": "workspace:*",
diff --git a/packages/js/tracks/changelog/wooplug-7554-add-tooling-catalog b/packages/js/tracks/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..9f377230e05
--- /dev/null
+++ b/packages/js/tracks/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,3 @@
+Significance: patch
+Type: dev
+Comment: Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/js/tracks/package.json b/packages/js/tracks/package.json
index b0077761e68..8680cb782af 100644
--- a/packages/js/tracks/package.json
+++ b/packages/js/tracks/package.json
@@ -72,7 +72,7 @@
 		"watch:build:project:esm": "node build.mjs --watch"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
+		"@babel/core": "catalog:tooling",
 		"@types/debug": "^4.1.12",
 		"@types/jest": "29.5.x",
 		"@types/node": "^24.1.0",
diff --git a/packages/php/woocommerce-analytics/changelog/wooplug-7554-add-tooling-catalog b/packages/php/woocommerce-analytics/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..4650bfc1df2
--- /dev/null
+++ b/packages/php/woocommerce-analytics/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/packages/php/woocommerce-analytics/package.json b/packages/php/woocommerce-analytics/package.json
index 952effd34e6..c99f112a73b 100644
--- a/packages/php/woocommerce-analytics/package.json
+++ b/packages/php/woocommerce-analytics/package.json
@@ -31,9 +31,9 @@
 		"debug": "4.4.3"
 	},
 	"devDependencies": {
-		"@babel/core": "7.25.7",
-		"@babel/preset-env": "7.25.7",
-		"@babel/preset-typescript": "7.25.7",
+		"@babel/core": "catalog:tooling",
+		"@babel/preset-env": "catalog:tooling",
+		"@babel/preset-typescript": "catalog:tooling",
 		"@jest/globals": "29.5.x",
 		"@types/jest": "29.5.x",
 		"@types/jquery": "3.5.33",
@@ -42,7 +42,7 @@
 		"babel-loader": "9.2.x",
 		"jest": "29.5.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"config": {
diff --git a/plugins/woocommerce/changelog/wooplug-7554-add-tooling-catalog b/plugins/woocommerce/changelog/wooplug-7554-add-tooling-catalog
new file mode 100644
index 00000000000..1ec9ccca2ab
--- /dev/null
+++ b/plugins/woocommerce/changelog/wooplug-7554-add-tooling-catalog
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Use the tooling catalog for shared Babel, PostCSS, and webpack versions.
diff --git a/plugins/woocommerce/client/admin/package.json b/plugins/woocommerce/client/admin/package.json
index 83f38627774..7dee7528fd5 100644
--- a/plugins/woocommerce/client/admin/package.json
+++ b/plugins/woocommerce/client/admin/package.json
@@ -132,11 +132,11 @@
 	},
 	"devDependencies": {
 		"@automattic/color-studio": "^4.0.0",
-		"@babel/cli": "7.25.7",
-		"@babel/core": "7.25.7",
-		"@babel/preset-env": "7.25.7",
-		"@babel/preset-typescript": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/cli": "catalog:tooling",
+		"@babel/core": "catalog:tooling",
+		"@babel/preset-env": "catalog:tooling",
+		"@babel/preset-typescript": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
 		"@statelyai/inspect": "^0.3.1",
 		"@testing-library/dom": "8.11.3",
@@ -199,7 +199,7 @@
 		"moment": "^2.29.4",
 		"moment-timezone": "^0.5.43",
 		"node-watch": "^0.7.4",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-color-function": "^4.1.0",
 		"postcss-loader": "4.3.x",
 		"prettier": "npm:wp-prettier@3.0.3",
@@ -216,7 +216,7 @@
 		"stylelint": "^14.16.1",
 		"ts-jest": "29.1.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-bundle-analyzer": "4.9.x",
 		"webpack-cli": "5.1.x",
 		"webpack-dev-server": "4.15.x",
diff --git a/plugins/woocommerce/client/blocks/package.json b/plugins/woocommerce/client/blocks/package.json
index fd31f378729..7b1a3a1dcd7 100644
--- a/plugins/woocommerce/client/blocks/package.json
+++ b/plugins/woocommerce/client/blocks/package.json
@@ -91,11 +91,11 @@
 	},
 	"devDependencies": {
 		"@automattic/color-studio": "4.0.0",
-		"@babel/cli": "7.25.7",
-		"@babel/core": "7.25.7",
-		"@babel/plugin-syntax-jsx": "7.25.7",
-		"@babel/preset-react": "7.25.7",
-		"@babel/preset-typescript": "7.25.7",
+		"@babel/cli": "catalog:tooling",
+		"@babel/core": "catalog:tooling",
+		"@babel/plugin-syntax-jsx": "catalog:tooling",
+		"@babel/preset-react": "catalog:tooling",
+		"@babel/preset-typescript": "catalog:tooling",
 		"@bartekbp/typescript-checkstyle": "5.0.0",
 		"@playwright/test": "^1.61.1",
 		"@storybook/addon-a11y": "7.5.2",
@@ -201,7 +201,7 @@
 		"mini-css-extract-plugin": "2.9.x",
 		"msw": "2.10.4",
 		"playwright-ctrf-json-reporter": "0.0.27",
-		"postcss": "8.4.x",
+		"postcss": "catalog:tooling",
 		"postcss-color-function": "4.1.0",
 		"postcss-loader": "4.3.x",
 		"prettier": "npm:wp-prettier@3.0.3",
@@ -221,7 +221,7 @@
 		"stylelint-scss": "^6.4.0",
 		"typescript": "5.7.x",
 		"utility-types": "3.10.0",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-bundle-analyzer": "4.9.x",
 		"webpack-cli": "5.1.x",
 		"wp-types": "3.63.0"
diff --git a/plugins/woocommerce/package.json b/plugins/woocommerce/package.json
index dea7d0decf9..c9760230117 100644
--- a/plugins/woocommerce/package.json
+++ b/plugins/woocommerce/package.json
@@ -1091,9 +1091,9 @@
 		}
 	},
 	"devDependencies": {
-		"@babel/cli": "7.25.7",
-		"@babel/core": "7.25.7",
-		"@babel/preset-env": "7.25.7",
+		"@babel/cli": "catalog:tooling",
+		"@babel/core": "catalog:tooling",
+		"@babel/preset-env": "catalog:tooling",
 		"@faker-js/faker": "^9.3.0",
 		"@playwright/test": "^1.61.1",
 		"@typescript-eslint/eslint-plugin": "^8.63.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e43e39aa163..0bed9a34b1b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,6 +5,34 @@ settings:
   excludeLinksFromLockfile: false

 catalogs:
+  tooling:
+    '@babel/cli':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/core':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/plugin-syntax-jsx':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/preset-env':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/preset-react':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/preset-typescript':
+      specifier: 7.25.7
+      version: 7.25.7
+    '@babel/runtime':
+      specifier: 7.25.7
+      version: 7.25.7
+    postcss:
+      specifier: 8.4.x
+      version: 8.4.49
+    webpack:
+      specifier: 5.97.x
+      version: 5.97.1
   wp-bundled:
     '@wordpress/admin-ui':
       specifier: 2.4.1
@@ -194,7 +222,7 @@ importers:
   .:
     dependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@wordpress/babel-preset-default':
         specifier: next
@@ -207,10 +235,10 @@ importers:
         version: 1.0.1
     devDependencies:
       '@babel/preset-env':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/node':
         specifier: ^24.1.0
@@ -291,7 +319,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)

   packages/js/admin-layout:
@@ -355,7 +383,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -545,10 +573,10 @@ importers:
         version: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@storybook/addon-console':
         specifier: ^1.2.3
@@ -629,7 +657,7 @@ importers:
         specifier: 29.5.x
         version: 29.5.0
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-loader:
         specifier: 4.3.x
@@ -662,7 +690,7 @@ importers:
         specifier: ^9.0.1
         version: 9.0.1
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -680,7 +708,7 @@ importers:
         version: 1.1.1
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -741,7 +769,7 @@ importers:
         version: 6.6.1
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -817,7 +845,7 @@ importers:
         version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@testing-library/dom':
         specifier: ^10.4.x
@@ -874,7 +902,7 @@ importers:
         specifier: 29.5.x
         version: 29.5.0
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-loader:
         specifier: 4.3.x
@@ -898,7 +926,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -959,10 +987,10 @@ importers:
         version: 4.0.2
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@testing-library/dom':
         specifier: ^10.4.x
@@ -1056,7 +1084,7 @@ importers:
         version: 6.15.1
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -1114,7 +1142,7 @@ importers:
         version: 6.43.1-next.v.202604091042.0(webpack@5.97.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@woocommerce/eslint-config':
         specifier: workspace:*
@@ -1141,7 +1169,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -1401,7 +1429,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -1423,7 +1451,7 @@ importers:
         version: 8.64.0(eslint@10.7.0(jiti@2.6.1))(typescript@5.7.3)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       eslint:
         specifier: ^10.0.0
@@ -1475,10 +1503,10 @@ importers:
         version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@storybook/addon-actions':
         specifier: 6.5.17-alpha.0
@@ -1538,7 +1566,7 @@ importers:
         specifier: 29.5.x
         version: 29.5.0
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-loader:
         specifier: 4.3.x
@@ -1562,7 +1590,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -1656,10 +1684,10 @@ importers:
         version: 18.3.1(react@18.3.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@testing-library/dom':
         specifier: ^10.4.x
@@ -1710,7 +1738,7 @@ importers:
         specifier: 29.5.x
         version: 29.5.0
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-loader:
         specifier: 4.3.x
@@ -1728,7 +1756,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -1759,7 +1787,7 @@ importers:
         version: 6.15.1
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/cookie':
         specifier: ^0.4.1
@@ -1820,7 +1848,7 @@ importers:
         version: 3.0.2
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -1956,7 +1984,7 @@ importers:
         version: 0.13.11
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@woocommerce/eslint-config':
         specifier: workspace:*
@@ -2044,10 +2072,10 @@ importers:
         version: 6.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -2114,7 +2142,7 @@ importers:
         version: 4.17.21
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/lodash':
         specifier: ^4.14.202
@@ -2163,10 +2191,10 @@ importers:
         version: 3.0.34
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -2248,7 +2276,7 @@ importers:
         version: 4.0.4
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@testing-library/react':
         specifier: ^16.x.x
@@ -2293,7 +2321,7 @@ importers:
         specifier: 29.5.x
         version: 29.5.0
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-loader:
         specifier: 4.3.x
@@ -2311,7 +2339,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -2333,7 +2361,7 @@ importers:
         version: 0.4.9
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/debug':
         specifier: ^4.1.12
@@ -2388,7 +2416,7 @@ importers:
         version: 3.4.0
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/dompurify':
         specifier: ^2.0.4
@@ -2455,7 +2483,7 @@ importers:
         version: 6.6.1
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/jest':
         specifier: 29.5.x
@@ -2507,7 +2535,7 @@ importers:
         version: 4.4.3(supports-color@9.4.0)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@types/debug':
         specifier: ^4.1.12
@@ -2586,13 +2614,13 @@ importers:
         version: 4.4.3(supports-color@9.4.0)
     devDependencies:
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/preset-env':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-typescript':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@jest/globals':
         specifier: 29.5.x
@@ -2619,7 +2647,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -2644,13 +2672,13 @@ importers:
         version: link:client/legacy
     devDependencies:
       '@babel/cli':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/preset-env':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@faker-js/faker':
         specifier: ^9.3.0
@@ -3120,19 +3148,19 @@ importers:
         specifier: ^4.0.0
         version: 4.0.0
       '@babel/cli':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/preset-env':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-typescript':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@pmmmwh/react-refresh-webpack-plugin':
         specifier: ^0.5.11
@@ -3321,7 +3349,7 @@ importers:
         specifier: ^0.7.4
         version: 0.7.4
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-color-function:
         specifier: ^4.1.0
@@ -3372,7 +3400,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-bundle-analyzer:
         specifier: 4.9.x
@@ -3544,19 +3572,19 @@ importers:
         specifier: 4.0.0
         version: 4.0.0
       '@babel/cli':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/core':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@babel/plugin-syntax-jsx':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-react':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-typescript':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@bartekbp/typescript-checkstyle':
         specifier: 5.0.0
@@ -3874,7 +3902,7 @@ importers:
         specifier: 0.0.27
         version: 0.0.27
       postcss:
-        specifier: 8.4.x
+        specifier: catalog:tooling
         version: 8.4.49
       postcss-color-function:
         specifier: 4.1.0
@@ -3934,7 +3962,7 @@ importers:
         specifier: 3.10.0
         version: 3.10.0
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
       webpack-bundle-analyzer:
         specifier: 4.9.x
@@ -4285,7 +4313,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
       webpack-cli:
         specifier: 5.1.x
@@ -4413,16 +4441,16 @@ importers:
   tools/storybook:
     devDependencies:
       '@babel/preset-env':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-react':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/preset-typescript':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7(@babel/core@7.25.7)
       '@babel/runtime':
-        specifier: 7.25.7
+        specifier: catalog:tooling
         version: 7.25.7
       '@storybook/addon-a11y':
         specifier: 7.6.19
@@ -4500,7 +4528,7 @@ importers:
         specifier: 5.7.x
         version: 5.7.3
       webpack:
-        specifier: 5.97.x
+        specifier: catalog:tooling
         version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)

 packages:
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 066327ff269..004c5e2615f 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -69,6 +69,18 @@ catalogs:
         '@wordpress/views': 1.0.8
         '@wordpress/base-styles': 6.9.1

+    # Shared build tooling used across workspace packages.
+    tooling:
+        '@babel/cli': 7.25.7
+        '@babel/core': 7.25.7
+        '@babel/plugin-syntax-jsx': 7.25.7
+        '@babel/preset-env': 7.25.7
+        '@babel/preset-react': 7.25.7
+        '@babel/preset-typescript': 7.25.7
+        '@babel/runtime': 7.25.7
+        postcss: 8.4.x
+        webpack: 5.97.x
+
 packages:
     - 'packages/js/*'
     - 'packages/php/*'
diff --git a/tools/monorepo-utils/package.json b/tools/monorepo-utils/package.json
index c4470643fed..2d34827b62e 100644
--- a/tools/monorepo-utils/package.json
+++ b/tools/monorepo-utils/package.json
@@ -60,7 +60,7 @@
 		"ts-jest": "29.1.x",
 		"ts-loader": "9.5.x",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x",
+		"webpack": "catalog:tooling",
 		"webpack-cli": "5.1.x"
 	},
 	"engines": {
diff --git a/tools/storybook/package.json b/tools/storybook/package.json
index 3f23299f6ca..b2f48270bbc 100644
--- a/tools/storybook/package.json
+++ b/tools/storybook/package.json
@@ -26,10 +26,10 @@
 		"url": "https://github.com/woocommerce/woocommerce/issues"
 	},
 	"devDependencies": {
-		"@babel/preset-env": "7.25.7",
-		"@babel/preset-react": "7.25.7",
-		"@babel/preset-typescript": "7.25.7",
-		"@babel/runtime": "7.25.7",
+		"@babel/preset-env": "catalog:tooling",
+		"@babel/preset-react": "catalog:tooling",
+		"@babel/preset-typescript": "catalog:tooling",
+		"@babel/runtime": "catalog:tooling",
 		"@storybook/addon-a11y": "7.6.19",
 		"@storybook/addon-actions": "7.6.19",
 		"@storybook/addon-console": "^1.2.3",
@@ -55,6 +55,6 @@
 		"react-dom": "18.3.x",
 		"storybook": "7.6.19",
 		"typescript": "5.7.x",
-		"webpack": "5.97.x"
+		"webpack": "catalog:tooling"
 	}
 }