Commit f0ae5d99baf for woocommerce
commit f0ae5d99bafb26135cc24dc8b8c9c94de9a3fa92
Author: Christopher Allford <6451942+ObliviousHarmony@users.noreply.github.com>
Date: Tue Jun 2 03:14:40 2026 -0700
Centralize `esbuild` Configuration (#65422)
* Scaffold @woocommerce/internal-build Package
Move SCSS abstracts, webpack helpers, generate-types script, and shared
tsconfig out of @woocommerce/internal-style-build and
@woocommerce/internal-ts-config into a single new package. Patch headers
and includePaths are rewritten for the renamed directories. The lib's
own TypeScript scaffold builds cleanly via tsc; the esbuild helpers it
will expose are stubbed and land in a follow-up commit.
* Implement Esbuild Helpers in @woocommerce/internal-build
Add runPackageBuilder, buildPackage, and watchPackage plus a TTY-aware
logger that drives output for both one-shot and watch builds. Watch
mode shuts down cleanly on SIGINT and SIGTERM. Webpack helpers are
renamed to .cjs so the package can opt into "type": "module" while the
require-only subpath export still resolves to CommonJS.
* Wire @woocommerce/internal-build Into 23 packages/js Packages
Add the workspace dep and drop esbuild, glob, chokidar, and
@woocommerce/internal-ts-config which are now provided transitively.
The per-package build.mjs, tsconfig, and exports edits land in
follow-up commits.
* Migrate @woocommerce/number to internal-build
Replace build.mjs with a runPackageBuilder call, retarget tsconfig
extends, drop the dead tsconfig-cjs.json, and add conditional exports
with publishConfig stripping the source condition on publish.
* Migrate @woocommerce/admin-layout to internal-build
Replace build.mjs with a runPackageBuilder call, retarget tsconfig
extends, drop the dead tsconfig-cjs.json, and add conditional exports
with publishConfig stripping the source condition on publish.
* Migrate @woocommerce/block-templates to internal-build
* Migrate @woocommerce/components to internal-build
* Migrate @woocommerce/csv-export to internal-build
* Migrate @woocommerce/currency to internal-build
* Migrate @woocommerce/customer-effort-score to internal-build
* Migrate @woocommerce/data to internal-build
* Migrate @woocommerce/date to internal-build
* Migrate @woocommerce/e2e-utils-playwright to internal-build
* Migrate @woocommerce/email-editor to internal-build
* Migrate @woocommerce/experimental to internal-build
* Migrate @woocommerce/experimental-products-app to internal-build
* Migrate @woocommerce/explat to internal-build
* Migrate @woocommerce/expression-evaluation to internal-build
* Migrate @woocommerce/integrate-plugin to internal-build
* Migrate @woocommerce/navigation to internal-build
* Migrate @woocommerce/notices to internal-build
* Migrate @woocommerce/onboarding to internal-build
* Migrate @woocommerce/remote-logging to internal-build
* Migrate @woocommerce/sanitize to internal-build
* Migrate @woocommerce/tracks to internal-build
* Migrate @woocommerce/internal-js-tests to internal-build
Uses runPackageBuilder's ignore option to exclude setup-*.js and
mocks/** from the entry point glob. The jest preset inlines the
react-jsx and module: commonjs overrides directly into the ts-jest
config since the old tsconfig-jest.json no longer exists.
* Migrate @woocommerce/product-editor to internal-build
Uses runPackageBuilder's assets option to copy block.json files
alongside the JS output so the runtime block.json imports resolve.
* Retarget WordPress Type Augmentation Imports to internal-build
Ten monorepo-enhancements.d.ts files imported from
@woocommerce/internal-ts-config/types/@wordpress/...; redirect to
@woocommerce/internal-build/type-overrides/@wordpress/...
* Clean Up Syncpack Rules and Admin and Blocks Hoist Lists
Drop the chokidar, esbuild, and glob pin rules now that the only
declarer is @woocommerce/internal-build, and loosen its version ranges
to syncpack's defaults. Swap @woocommerce/internal-ts-config for
@woocommerce/internal-build as a workspace dep on admin and blocks,
and retarget their node_modules hoist entries plus a typings file in
blocks that the stage 3d sweep missed.
* Swap @woocommerce/internal-style-build for the style-build Subpath
Rename internal-build's src/webpack directory to src/style-build and
expose it under the @woocommerce/internal-build/style-build export.
Retarget all 13 consumer webpack configs and drop the
@woocommerce/internal-style-build workspace dep from 11 package.json
files. The legacy admin.scss comment is updated for accuracy.
* Drop @woocommerce/data Deep Imports From Admin Homescreen
Two admin homescreen files reached past the package boundary with
import { createErrorNotice } from '@woocommerce/data/src/plugins/actions'.
Replace with useDispatch( 'core/notices' ), which has been a top-level
action on the notices store since @wordpress/notices shipped its
public API. Equivalent behavior; no deep import; works through the new
conditional exports field that @woocommerce/data now carries.
* Delete @woocommerce/internal-style-build and @woocommerce/internal-ts-config
Both packages have been hollowed out across stages 1 through 4 — their
SCSS abstracts, webpack helpers, shared tsconfig, WordPress type
overrides, and generate-types script all live in
@woocommerce/internal-build now. Delete the husks, retarget the pnpm
hook marker that gates TypeScript project-reference syncing, scrub
syncpack and codecov references, and update the blocks RTL plugin
docs.
* Fix --cjs Flag in Two Migrated Packages
@woocommerce/e2e-utils-playwright and @woocommerce/integrate-plugin
were missed by the stage 3 migration script because their CJS build
script lives at build:project:cjs (rather than build:publish:project:cjs
like every other package). Both still passed --cjs to build.mjs, which
the runPackageBuilder lib does not recognize; the build silently fell
back to esmodules and wrote the CJS output to the ESM directory.
Rename to --commonjs.
* Fix Failing Tests
* Migrate @woocommerce/settings-ui-sdk to internal-build
* Linting Fixes
* Removed Fake Condition Export
* Use `wc-source`
In practice, `"source"` might collide with other
projects. This prevents that.
* Monorepo: resolve merge conflicts.
---------
Co-authored-by: kalessil <kalessil@gmail.com>
diff --git a/.codecov.yml b/.codecov.yml
index f631b4d57ae..4cf81e57f86 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -8,8 +8,8 @@ ignore:
- 'tools/**'
- 'packages/js/create-woo-extension'
- 'packages/js/eslint-plugin'
+ - 'packages/js/internal-build'
- 'packages/js/internal-js-tests'
- - 'packages/js/internal-style-build'
- '**/*.test.*'
coverage:
diff --git a/.pnpmfile.cjs b/.pnpmfile.cjs
index cbe684e8006..f5158263d8c 100644
--- a/.pnpmfile.cjs
+++ b/.pnpmfile.cjs
@@ -84,9 +84,9 @@ function writeTsconfig( tsconfigPath, tsconfig ) {
}
/**
- * Identify workspace packages that consume @woocommerce/internal-ts-config.
+ * Identify workspace packages that consume @woocommerce/internal-build.
*
- * A TS consumer has @woocommerce/internal-ts-config in dependencies or
+ * A TS consumer has @woocommerce/internal-build in dependencies or
* devDependencies. Whether the package has a tsconfig.json on disk is
* verified by loadTsconfig later in syncTsReferences.
*
@@ -102,7 +102,7 @@ function identifyTsConsumers( lockfile ) {
...( packageFile.dependencies || {} ),
...( packageFile.devDependencies || {} ),
};
- if ( ! ( '@woocommerce/internal-ts-config' in allDeps ) ) {
+ if ( ! ( '@woocommerce/internal-build' in allDeps ) ) {
continue;
}
diff --git a/.syncpackrc b/.syncpackrc
index 02a712124ba..3c75a26c57a 100644
--- a/.syncpackrc
+++ b/.syncpackrc
@@ -9,7 +9,7 @@
},
"versionGroups": [
{
- "label": "Banned dependencies: classnames(->clsx), concurrently(->pnpm), cross-env(->wsl),@automattic/webpack-rtl-plugin(->internal-style-build)",
+ "label": "Banned dependencies: classnames(->clsx), concurrently(->pnpm), cross-env(->wsl),@automattic/webpack-rtl-plugin(->internal-build)",
"dependencies": [
"classnames",
"concurrently",
@@ -64,15 +64,16 @@
"isIgnored": true
},
{
- "label": "internal-ts-config generates version-constrained vendored types for these dependencies",
+ "label": "internal-build generates version-constrained vendored types for these dependencies",
"dependencies": [
"@wordpress/core-data",
"@wordpress/data",
"@wordpress/editor",
- "@wordpress/notices"
+ "@wordpress/notices",
+ "@wordpress/postcss-plugins-preset"
],
"packages": [
- "@woocommerce/internal-ts-config"
+ "@woocommerce/internal-build"
],
"isIgnored": true
},
@@ -497,15 +498,6 @@
],
"pinVersion": "2.1.x"
},
- {
- "dependencies": [
- "glob"
- ],
- "packages": [
- "**"
- ],
- "pinVersion": "^10.3.10"
- },
{
"dependencies": [
"postcss-loader"
@@ -642,24 +634,6 @@
],
"pinVersion": "0.14.12"
},
- {
- "dependencies": [
- "esbuild"
- ],
- "packages": [
- "**"
- ],
- "pinVersion": "0.24.x"
- },
- {
- "dependencies": [
- "chokidar"
- ],
- "packages": [
- "**"
- ],
- "pinVersion": "3.6.x"
- },
{
"dependencies": [
"dompurify"
diff --git a/packages/js/admin-layout/build.mjs b/packages/js/admin-layout/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/admin-layout/build.mjs
+++ b/packages/js/admin-layout/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/admin-layout/package.json b/packages/js/admin-layout/package.json
index 6be9fd88a0a..e0d97ab6516 100644
--- a/packages/js/admin-layout/package.json
+++ b/packages/js/admin-layout/package.json
@@ -16,9 +16,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,15 +39,22 @@
"src/**/*.scss"
],
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -63,14 +78,10 @@
"devDependencies": {
"@types/react": "18.3.x",
"@woocommerce/eslint-plugin": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"postcss-loader": "4.3.x",
diff --git a/packages/js/admin-layout/tsconfig-cjs.json b/packages/js/admin-layout/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/admin-layout/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/admin-layout/tsconfig.json b/packages/js/admin-layout/tsconfig.json
index f041e96649d..7f7e2b3dfe1 100644
--- a/packages/js/admin-layout/tsconfig.json
+++ b/packages/js/admin-layout/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/admin-layout/webpack.config.js b/packages/js/admin-layout/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/admin-layout/webpack.config.js
+++ b/packages/js/admin-layout/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/block-templates/build.mjs b/packages/js/block-templates/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/block-templates/build.mjs
+++ b/packages/js/block-templates/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/block-templates/package.json b/packages/js/block-templates/package.json
index 6243b93479c..0d9135825e7 100644
--- a/packages/js/block-templates/package.json
+++ b/packages/js/block-templates/package.json
@@ -16,9 +16,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -32,11 +40,11 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -72,16 +80,12 @@
"@types/wordpress__block-editor": "catalog:wp-min",
"@types/wordpress__blocks": "catalog:wp-min",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"copy-webpack-plugin": "13.0.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -103,7 +107,14 @@
"react-dom": "18.3.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"config": {
"ci": {
diff --git a/packages/js/block-templates/tsconfig-cjs.json b/packages/js/block-templates/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/block-templates/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/block-templates/tsconfig.json b/packages/js/block-templates/tsconfig.json
index c66fb29617e..ae9029b5e06 100644
--- a/packages/js/block-templates/tsconfig.json
+++ b/packages/js/block-templates/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/block-templates/typings/monorepo-enhancements.d.ts b/packages/js/block-templates/typings/monorepo-enhancements.d.ts
index db9ce864929..6871fc81e6b 100644
--- a/packages/js/block-templates/typings/monorepo-enhancements.d.ts
+++ b/packages/js/block-templates/typings/monorepo-enhancements.d.ts
@@ -1,3 +1,3 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
-import '@woocommerce/internal-ts-config/types/@wordpress/block-editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/block-editor';
diff --git a/packages/js/block-templates/webpack.config.js b/packages/js/block-templates/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/block-templates/webpack.config.js
+++ b/packages/js/block-templates/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/components/build.mjs b/packages/js/components/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/components/build.mjs
+++ b/packages/js/components/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/components/package.json b/packages/js/components/package.json
index c916779a338..4795e7d1168 100644
--- a/packages/js/components/package.json
+++ b/packages/js/components/package.json
@@ -20,6 +20,14 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
"react-native": "src/index",
@@ -33,14 +41,14 @@
"build-style/**",
"src/**/*.scss"
],
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -130,7 +138,14 @@
"react-dom": "18.3.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
@@ -151,16 +166,12 @@
"@types/uuid": "^8.3.4",
"@types/wordpress__viewport": "catalog:wp-min",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/babel-preset-default": "next",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/components/tsconfig-cjs.json b/packages/js/components/tsconfig-cjs.json
deleted file mode 100644
index 247b557c04c..00000000000
--- a/packages/js/components/tsconfig-cjs.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**",
- "**/stories/**"
- ]
-}
diff --git a/packages/js/components/tsconfig.json b/packages/js/components/tsconfig.json
index 5bcd6b93a13..63de96a3577 100644
--- a/packages/js/components/tsconfig.json
+++ b/packages/js/components/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/components/typings/monorepo-enhancements.d.ts b/packages/js/components/typings/monorepo-enhancements.d.ts
index dc453ab911e..8d3d6bdc1e4 100644
--- a/packages/js/components/typings/monorepo-enhancements.d.ts
+++ b/packages/js/components/typings/monorepo-enhancements.d.ts
@@ -1 +1 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
diff --git a/packages/js/components/webpack.config.js b/packages/js/components/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/components/webpack.config.js
+++ b/packages/js/components/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/csv-export/build.mjs b/packages/js/csv-export/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/csv-export/build.mjs
+++ b/packages/js/csv-export/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/csv-export/package.json b/packages/js/csv-export/package.json
index f7ea174766c..89a66b9dcb5 100644
--- a/packages/js/csv-export/package.json
+++ b/packages/js/csv-export/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,10 +39,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -58,12 +66,9 @@
"@babel/core": "7.25.7",
"@types/jest": "29.5.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -78,7 +83,14 @@
]
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"config": {
"ci": {
diff --git a/packages/js/csv-export/tsconfig-cjs.json b/packages/js/csv-export/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/csv-export/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/csv-export/tsconfig.json b/packages/js/csv-export/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/csv-export/tsconfig.json
+++ b/packages/js/csv-export/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/currency/build.mjs b/packages/js/currency/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/currency/build.mjs
+++ b/packages/js/currency/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/currency/package.json b/packages/js/currency/package.json
index 03bade432c9..75dba674c08 100644
--- a/packages/js/currency/package.json
+++ b/packages/js/currency/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,10 +39,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -65,19 +73,23 @@
"@wordpress/i18n": "catalog:wp-min"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
"@types/jest": "29.5.x",
"@types/react": "18.3.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/currency/tsconfig-cjs.json b/packages/js/currency/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/currency/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/currency/tsconfig.json b/packages/js/currency/tsconfig.json
index c16f73fed50..07c2df3c2b5 100644
--- a/packages/js/currency/tsconfig.json
+++ b/packages/js/currency/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/customer-effort-score/build.mjs b/packages/js/customer-effort-score/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/customer-effort-score/build.mjs
+++ b/packages/js/customer-effort-score/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/customer-effort-score/package.json b/packages/js/customer-effort-score/package.json
index f9971f8ba45..f2ef6406cd8 100644
--- a/packages/js/customer-effort-score/package.json
+++ b/packages/js/customer-effort-score/package.json
@@ -19,9 +19,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,11 +39,11 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -70,7 +78,14 @@
"react-transition-group": "^4.4.5"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
@@ -81,17 +96,13 @@
"@types/testing-library__jest-dom": "^5.14.9",
"@woocommerce/data": "workspace:*",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@woocommerce/navigation": "workspace:*",
"@woocommerce/tracks": "workspace:*",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/customer-effort-score/tsconfig-cjs.json b/packages/js/customer-effort-score/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/customer-effort-score/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/customer-effort-score/tsconfig.json b/packages/js/customer-effort-score/tsconfig.json
index 63b95b60eeb..1b557625d3a 100644
--- a/packages/js/customer-effort-score/tsconfig.json
+++ b/packages/js/customer-effort-score/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/customer-effort-score/typings/monorepo-enhancements.d.ts b/packages/js/customer-effort-score/typings/monorepo-enhancements.d.ts
index dc453ab911e..8d3d6bdc1e4 100644
--- a/packages/js/customer-effort-score/typings/monorepo-enhancements.d.ts
+++ b/packages/js/customer-effort-score/typings/monorepo-enhancements.d.ts
@@ -1 +1 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
diff --git a/packages/js/customer-effort-score/webpack.config.js b/packages/js/customer-effort-score/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/customer-effort-score/webpack.config.js
+++ b/packages/js/customer-effort-score/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/data/build.mjs b/packages/js/data/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/data/build.mjs
+++ b/packages/js/data/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/data/package.json b/packages/js/data/package.json
index 497845646e1..a47967b25f2 100644
--- a/packages/js/data/package.json
+++ b/packages/js/data/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"files": [
"build",
"build-module",
@@ -30,10 +38,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -73,7 +81,14 @@
"rememo": "^4.0.2"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
@@ -87,12 +102,9 @@
"@types/qs": "^6.9.10",
"@types/react": "18.3.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/data/tsconfig-cjs.json b/packages/js/data/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/data/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/data/tsconfig.json b/packages/js/data/tsconfig.json
index 570ed1b3c5d..755bc3ddcea 100644
--- a/packages/js/data/tsconfig.json
+++ b/packages/js/data/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/data/typings/monorepo-enhancements.d.ts b/packages/js/data/typings/monorepo-enhancements.d.ts
index aaae7212f72..11ed4b931a1 100644
--- a/packages/js/data/typings/monorepo-enhancements.d.ts
+++ b/packages/js/data/typings/monorepo-enhancements.d.ts
@@ -1,2 +1,2 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
diff --git a/packages/js/date/build.mjs b/packages/js/date/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/date/build.mjs
+++ b/packages/js/date/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/date/package.json b/packages/js/date/package.json
index 095a90761c6..ec923f4bbeb 100644
--- a/packages/js/date/package.json
+++ b/packages/js/date/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -44,13 +52,10 @@
"@types/node": "^24.1.0",
"@types/qs": "^6.9.10",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
"d3-time-format": "^2.3.0",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -62,14 +67,21 @@
"lodash": "^4.17.0"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
diff --git a/packages/js/date/tsconfig-cjs.json b/packages/js/date/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/date/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/date/tsconfig.json b/packages/js/date/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/date/tsconfig.json
+++ b/packages/js/date/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/e2e-utils-playwright/build.mjs b/packages/js/e2e-utils-playwright/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/e2e-utils-playwright/build.mjs
+++ b/packages/js/e2e-utils-playwright/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/e2e-utils-playwright/package.json b/packages/js/e2e-utils-playwright/package.json
index 3dd6eec4578..7f19a77a9ee 100644
--- a/packages/js/e2e-utils-playwright/package.json
+++ b/packages/js/e2e-utils-playwright/package.json
@@ -11,9 +11,6 @@
"engines": {
"node": "^24.15.0"
},
- "main": "build/index.js",
- "module": "build-module/index.js",
- "types": "build-types/index.d.ts",
"exports": {
".": {
"types": "./build-types/index.d.ts",
@@ -21,6 +18,9 @@
"require": "./build/index.js"
}
},
+ "main": "build/index.js",
+ "module": "build-module/index.js",
+ "types": "build-types/index.d.ts",
"files": [
"build",
"build-module",
@@ -28,8 +28,8 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
- "build:project:cjs": "node build.mjs --cjs",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
+ "build:project:cjs": "node build.mjs --commonjs",
"build:project:esm": "node build.mjs",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
"lint": "eslint --ext=js,ts,tsx src",
@@ -41,7 +41,7 @@
"update:php": "XDEBUG_MODE=off composer update --quiet",
"watch:build": "pnpm --if-present --workspace-concurrency=Infinity --filter=\"$npm_package_name...\" --parallel '/^watch:build:project:.*$/'",
"watch:build:project": "pnpm --if-present run '/^watch:build:project:.*$/'",
- "watch:build:project:cjs": "node build.mjs --cjs --watch",
+ "watch:build:project:cjs": "node build.mjs --commonjs --watch",
"watch:build:project:esm": "node build.mjs --watch"
},
"config": {
@@ -72,12 +72,9 @@
"@types/jest": "29.5.x",
"@types/node": "^24.1.0",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"ts-jest": "29.1.x",
@@ -88,6 +85,13 @@
"oauth-1.0a": "^2.2.6"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
}
}
diff --git a/packages/js/e2e-utils-playwright/tsconfig-cjs.json b/packages/js/e2e-utils-playwright/tsconfig-cjs.json
deleted file mode 100644
index f9d6e810b31..00000000000
--- a/packages/js/e2e-utils-playwright/tsconfig-cjs.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "../tsconfig-cjs",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": ["./node_modules/@types"]
- },
- "include": ["src/**/*"],
- "exclude": ["**/test/**"]
-}
diff --git a/packages/js/e2e-utils-playwright/tsconfig.json b/packages/js/e2e-utils-playwright/tsconfig.json
index 3864127388e..e711ed46c21 100644
--- a/packages/js/e2e-utils-playwright/tsconfig.json
+++ b/packages/js/e2e-utils-playwright/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/email-editor/build.mjs b/packages/js/email-editor/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/email-editor/build.mjs
+++ b/packages/js/email-editor/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/email-editor/package.json b/packages/js/email-editor/package.json
index 47ae6ee58fb..25bc959c820 100644
--- a/packages/js/email-editor/package.json
+++ b/packages/js/email-editor/package.json
@@ -17,9 +17,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"files": [
"build",
"build-module",
@@ -28,7 +36,14 @@
"assets"
],
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"sideEffects": [
"build-style/**",
@@ -36,11 +51,11 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -121,16 +136,12 @@
"@types/wordpress__blocks": "catalog:wp-min",
"@types/wordpress__edit-post": "catalog:wp-min",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/browserslist-config": "next",
"@wordpress/prettier-config": "2.17.0",
"@wordpress/stylelint-config": "^21.0.0",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/email-editor/tsconfig-cjs.json b/packages/js/email-editor/tsconfig-cjs.json
deleted file mode 100644
index a2112660f05..00000000000
--- a/packages/js/email-editor/tsconfig-cjs.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "module": "commonjs",
- "outDir": "build",
- "declaration": false,
- "declarationMap": false,
- "declarationDir": null
- }
-}
\ No newline at end of file
diff --git a/packages/js/email-editor/tsconfig.json b/packages/js/email-editor/tsconfig.json
index 62a5e98089a..7b5bb530b68 100644
--- a/packages/js/email-editor/tsconfig.json
+++ b/packages/js/email-editor/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/email-editor/typings/monorepo-enhancements.d.ts b/packages/js/email-editor/typings/monorepo-enhancements.d.ts
index 97d793c920a..9f66f5ca4f5 100644
--- a/packages/js/email-editor/typings/monorepo-enhancements.d.ts
+++ b/packages/js/email-editor/typings/monorepo-enhancements.d.ts
@@ -1,5 +1,5 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
-import '@woocommerce/internal-ts-config/types/@wordpress/block-editor';
-import '@woocommerce/internal-ts-config/types/@wordpress/notices';
-import '@woocommerce/internal-ts-config/types/@wordpress/notices';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/block-editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/notices';
+import '@woocommerce/internal-build/type-overrides/@wordpress/notices';
diff --git a/packages/js/email-editor/webpack.config.js b/packages/js/email-editor/webpack.config.js
index 7e67ce57262..4e7063977fb 100644
--- a/packages/js/email-editor/webpack.config.js
+++ b/packages/js/email-editor/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/experimental-products-app/build.mjs b/packages/js/experimental-products-app/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/experimental-products-app/build.mjs
+++ b/packages/js/experimental-products-app/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/experimental-products-app/package.json b/packages/js/experimental-products-app/package.json
index f4567c3a3c8..31a74cf10a6 100644
--- a/packages/js/experimental-products-app/package.json
+++ b/packages/js/experimental-products-app/package.json
@@ -17,9 +17,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -32,7 +40,14 @@
"src/**/*.scss"
],
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"dependencies": {
"@base-ui/react": "1.4.1",
@@ -75,14 +90,10 @@
"@types/react": "18.3.x",
"@types/testing-library__jest-dom": "^5.14.9",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "^3.6.0",
"css-loader": "6.11.x",
- "esbuild": "^0.24.0",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -98,11 +109,11 @@
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
diff --git a/packages/js/experimental-products-app/tsconfig-cjs.json b/packages/js/experimental-products-app/tsconfig-cjs.json
deleted file mode 100644
index da0d647649a..00000000000
--- a/packages/js/experimental-products-app/tsconfig-cjs.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "extends": "../internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "noCheck": false,
- "resolveJsonModule": true,
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**",
- "**/stories/**",
- "**/*.test.ts",
- "**/*.test.tsx"
- ]
-}
diff --git a/packages/js/experimental-products-app/tsconfig.json b/packages/js/experimental-products-app/tsconfig.json
index b1bfb675b22..f0fa036ac32 100644
--- a/packages/js/experimental-products-app/tsconfig.json
+++ b/packages/js/experimental-products-app/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/experimental-products-app/webpack.config.js b/packages/js/experimental-products-app/webpack.config.js
index 6b4b56b1a6b..29e8b19870d 100644
--- a/packages/js/experimental-products-app/webpack.config.js
+++ b/packages/js/experimental-products-app/webpack.config.js
@@ -12,7 +12,7 @@ const {
plugin,
StyleAssetPlugin,
WebpackRTLPlugin
-} = require( '@woocommerce/internal-style-build' );
+} = require( '@woocommerce/internal-build/style-build' );
const NODE_ENV = process.env.NODE_ENV || 'development';
@@ -28,7 +28,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/experimental/build.mjs b/packages/js/experimental/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/experimental/build.mjs
+++ b/packages/js/experimental/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/experimental/package.json b/packages/js/experimental/package.json
index 1ba6b302693..44f750215ad 100644
--- a/packages/js/experimental/package.json
+++ b/packages/js/experimental/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.js",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -49,7 +57,14 @@
"react-transition-group": "^4.4.5"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
@@ -64,15 +79,11 @@
"@types/react-transition-group": "^4.4.10",
"@types/testing-library__jest-dom": "^5.14.9",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -91,11 +102,11 @@
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
diff --git a/packages/js/experimental/tsconfig-cjs.json b/packages/js/experimental/tsconfig-cjs.json
deleted file mode 100644
index 247b557c04c..00000000000
--- a/packages/js/experimental/tsconfig-cjs.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**",
- "**/stories/**"
- ]
-}
diff --git a/packages/js/experimental/tsconfig.json b/packages/js/experimental/tsconfig.json
index fbd555398a3..0db42f1fe26 100644
--- a/packages/js/experimental/tsconfig.json
+++ b/packages/js/experimental/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/experimental/webpack.config.js b/packages/js/experimental/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/experimental/webpack.config.js
+++ b/packages/js/experimental/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/explat/build.mjs b/packages/js/explat/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/explat/build.mjs
+++ b/packages/js/explat/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/explat/package.json b/packages/js/explat/package.json
index cf7d73412b2..31a04e504f2 100644
--- a/packages/js/explat/package.json
+++ b/packages/js/explat/package.json
@@ -21,9 +21,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"files": [
"build",
"build-module",
@@ -31,10 +39,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -72,12 +80,9 @@
"@types/qs": "^6.9.10",
"@types/react": "18.3.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -86,7 +91,14 @@
"typescript": "5.7.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"config": {
"ci": {
diff --git a/packages/js/explat/tsconfig-cjs.json b/packages/js/explat/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/explat/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/explat/tsconfig.json b/packages/js/explat/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/explat/tsconfig.json
+++ b/packages/js/explat/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/expression-evaluation/build.mjs b/packages/js/expression-evaluation/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/expression-evaluation/build.mjs
+++ b/packages/js/expression-evaluation/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/expression-evaluation/package.json b/packages/js/expression-evaluation/package.json
index bf9f54c815d..051c12ff6fe 100644
--- a/packages/js/expression-evaluation/package.json
+++ b/packages/js/expression-evaluation/package.json
@@ -21,9 +21,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -35,14 +43,21 @@
"peggy": "^3.0.2"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -61,12 +76,9 @@
"@babel/core": "7.25.7",
"@types/jest": "29.5.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/expression-evaluation/tsconfig-cjs.json b/packages/js/expression-evaluation/tsconfig-cjs.json
deleted file mode 100644
index 8bb9e43ef3b..00000000000
--- a/packages/js/expression-evaluation/tsconfig-cjs.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "declaration": true,
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/expression-evaluation/tsconfig.json b/packages/js/expression-evaluation/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/expression-evaluation/tsconfig.json
+++ b/packages/js/expression-evaluation/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/internal-style-build/.eslintrc.js b/packages/js/internal-build/.eslintrc.cjs
similarity index 100%
rename from packages/js/internal-style-build/.eslintrc.js
rename to packages/js/internal-build/.eslintrc.cjs
diff --git a/packages/js/internal-build/.gitignore b/packages/js/internal-build/.gitignore
new file mode 100644
index 00000000000..686ca67be0a
--- /dev/null
+++ b/packages/js/internal-build/.gitignore
@@ -0,0 +1,6 @@
+# Auto-generated by scripts/generate-types.mjs — only the .patch file is committed.
+type-overrides/@wordpress/block-editor/
+type-overrides/@wordpress/core-data/
+type-overrides/@wordpress/data/
+type-overrides/@wordpress/editor/
+type-overrides/@wordpress/notices/
diff --git a/packages/js/internal-ts-config/tsconfig.json b/packages/js/internal-build/configs/tsconfig.json
similarity index 100%
rename from packages/js/internal-ts-config/tsconfig.json
rename to packages/js/internal-build/configs/tsconfig.json
diff --git a/packages/js/internal-build/package.json b/packages/js/internal-build/package.json
new file mode 100644
index 00000000000..540df7924ce
--- /dev/null
+++ b/packages/js/internal-build/package.json
@@ -0,0 +1,89 @@
+{
+ "name": "@woocommerce/internal-build",
+ "version": "1.0.0",
+ "description": "Shared build tooling for the WooCommerce monorepo: esbuild helpers, webpack/SCSS config, shared tsconfig, and WordPress ambient type overrides.",
+ "author": "Automattic",
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": "^24.15.0"
+ },
+ "private": true,
+ "type": "module",
+ "homepage": "https://github.com/woocommerce/woocommerce/tree/trunk/packages/js/internal-build/README.md",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/woocommerce/woocommerce.git"
+ },
+ "bugs": {
+ "url": "https://github.com/woocommerce/woocommerce/issues"
+ },
+ "module": "build-module/index.js",
+ "types": "build-types/index.d.ts",
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js"
+ },
+ "./style-build": {
+ "require": "./src/style-build/index.cjs"
+ },
+ "./configs/tsconfig.json": "./configs/tsconfig.json",
+ "./type-overrides/*": "./type-overrides/*",
+ "./styles/*": "./styles/*"
+ },
+ "files": [
+ "build-module",
+ "build-types",
+ "configs",
+ "src/style-build",
+ "styles",
+ "type-overrides",
+ "scripts"
+ ],
+ "scripts": {
+ "build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
+ "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project:lib": "tsc --build src/tsconfig.json",
+ "build:project:type-overrides": "node scripts/generate-types.mjs generate",
+ "postinstall": "pnpm build:project",
+ "type-overrides:update-patch": "node scripts/generate-types.mjs update-patch",
+ "lint": "pnpm --if-present '/^lint:lang:.*$/'",
+ "lint:fix": "pnpm --if-present '/^lint:fix:lang:.*$/'",
+ "lint:fix:lang:js": "eslint src --fix",
+ "lint:lang:js": "eslint src"
+ },
+ "dependencies": {
+ "@automattic/color-studio": "^4.0.0",
+ "@wordpress/base-styles": "catalog:wp-min",
+ "@wordpress/postcss-plugins-preset": "catalog:wp-min",
+ "chokidar": "^3.6.0",
+ "css-loader": "6.11.x",
+ "esbuild": "^0.24.0",
+ "glob": "^10.3.10",
+ "json2php": "^0.0.7",
+ "mini-css-extract-plugin": "2.9.x",
+ "postcss-loader": "4.3.x",
+ "rtlcss": "4.3.x",
+ "sass-loader": "10.5.x",
+ "webpack-remove-empty-scripts": "1.0.x"
+ },
+ "devDependencies": {
+ "@types/wordpress__block-editor": "14.21.8",
+ "@woocommerce/eslint-plugin": "workspace:*",
+ "@wordpress/core-data": "7.19.6",
+ "@wordpress/data": "10.19.2",
+ "@wordpress/editor": "14.19.7",
+ "@wordpress/notices": "5.19.2",
+ "eslint": "^8.55.0",
+ "typescript": "5.7.x"
+ },
+ "config": {
+ "ci": {
+ "lint": {
+ "command": "lint",
+ "changes": "src/**/*.{js,jsx,ts,tsx,cjs}"
+ }
+ }
+ }
+}
diff --git a/packages/js/internal-ts-config/scripts/generate-types.mjs b/packages/js/internal-build/scripts/generate-types.mjs
similarity index 98%
rename from packages/js/internal-ts-config/scripts/generate-types.mjs
rename to packages/js/internal-build/scripts/generate-types.mjs
index 99566184bb8..22fb4daea71 100644
--- a/packages/js/internal-ts-config/scripts/generate-types.mjs
+++ b/packages/js/internal-build/scripts/generate-types.mjs
@@ -43,7 +43,7 @@ const PACKAGE_NAMES = [
];
const PKG_ROOT = resolve( dirname( new URL( import.meta.url ).pathname ), '..' );
-const TYPES_DIR = join( PKG_ROOT, 'types' );
+const TYPES_DIR = join( PKG_ROOT, 'type-overrides' );
function dtPackageName( packageName ) {
return '@types/' + packageName.slice( 1 ).replace( '/', '__' );
@@ -422,7 +422,7 @@ function generate( outputDir ) {
/**
* Apply a patch file if it exists.
*
- * Patch paths are relative to PKG_ROOT (e.g. `types/@wordpress/core-data/index.d.ts`),
+ * Patch paths are relative to PKG_ROOT (e.g. `type-overrides/@wordpress/core-data/index.d.ts`),
* so `git apply` runs from PKG_ROOT without `--directory`.
*
* @param {string} patchFile - Path to the patch file.
@@ -496,8 +496,8 @@ function runUpdatePatch() {
// diff returns 1 when files differ — this is our patch content.
// Rewrite paths so the patch applies from the package root.
const patchContent = error.stdout
- .replaceAll( cleanPkgDir, `a/types/${ pkg.name }` )
- .replaceAll( currentPkgDir, `b/types/${ pkg.name }` )
+ .replaceAll( cleanPkgDir, `a/type-overrides/${ pkg.name }` )
+ .replaceAll( currentPkgDir, `b/type-overrides/${ pkg.name }` )
// Strip timestamps from diff headers to avoid noisy diffs.
.replace( /^(---\s+\S+)\t.+$/gm, '$1' )
.replace( /^(\+\+\+\s+\S+)\t.+$/gm, '$1' );
diff --git a/packages/js/internal-build/src/esbuild/args.ts b/packages/js/internal-build/src/esbuild/args.ts
new file mode 100644
index 00000000000..a0f1fa66708
--- /dev/null
+++ b/packages/js/internal-build/src/esbuild/args.ts
@@ -0,0 +1,15 @@
+export interface ParsedArgs {
+ watch: boolean;
+ format: 'esmodules' | 'commonjs';
+ debug: boolean;
+}
+
+export function parseBuildArgs(
+ argv: readonly string[] = process.argv
+): ParsedArgs {
+ return {
+ watch: argv.includes( '--watch' ),
+ format: argv.includes( '--commonjs' ) ? 'commonjs' : 'esmodules',
+ debug: argv.includes( '--debug' ),
+ };
+}
diff --git a/packages/js/internal-build/src/esbuild/assets.ts b/packages/js/internal-build/src/esbuild/assets.ts
new file mode 100644
index 00000000000..9b412b76959
--- /dev/null
+++ b/packages/js/internal-build/src/esbuild/assets.ts
@@ -0,0 +1,19 @@
+/**
+ * External dependencies
+ */
+import { copyFile, mkdir } from 'node:fs/promises';
+import { dirname, join, relative } from 'node:path';
+import { glob } from 'glob';
+
+export async function copyAssets(
+ patterns: readonly string[],
+ outdir: string
+): Promise< void > {
+ for ( const pattern of patterns ) {
+ for ( const src of await glob( pattern ) ) {
+ const dest = join( outdir, relative( 'src', src ) );
+ await mkdir( dirname( dest ), { recursive: true } );
+ await copyFile( src, dest );
+ }
+ }
+}
diff --git a/packages/js/internal-build/src/esbuild/index.ts b/packages/js/internal-build/src/esbuild/index.ts
new file mode 100644
index 00000000000..eadb563e68a
--- /dev/null
+++ b/packages/js/internal-build/src/esbuild/index.ts
@@ -0,0 +1,228 @@
+/**
+ * External dependencies
+ */
+import { build, context } from 'esbuild';
+import type { BuildResult } from 'esbuild';
+import { glob } from 'glob';
+import { rm } from 'node:fs/promises';
+import chokidar from 'chokidar';
+
+/**
+ * Internal dependencies
+ */
+import { parseBuildArgs } from './args.js';
+import {
+ DEFAULT_IGNORE,
+ prepareEsbuildOptions,
+ type BuildOptions,
+} from './options.js';
+import { copyAssets } from './assets.js';
+import { log, setDebugEnabled } from './logger.js';
+
+export type { BuildOptions } from './options.js';
+export { parseBuildArgs } from './args.js';
+
+const RESTART_DEBOUNCE_MS = 200;
+
+async function resolveEntryPoints(
+ entryPoints: string | string[],
+ ignore: readonly string[]
+): Promise< string[] > {
+ const patterns = Array.isArray( entryPoints )
+ ? entryPoints
+ : [ entryPoints ];
+ const results = await Promise.all(
+ patterns.map( ( pattern ) =>
+ glob( pattern, { ignore: [ ...ignore ] } )
+ )
+ );
+ return Array.from( new Set( results.flat() ) ).sort();
+}
+
+function summarize( result: BuildResult ): string {
+ const parts: string[] = [];
+ if ( result.errors.length )
+ parts.push( `${ result.errors.length } error(s)` );
+ if ( result.warnings.length )
+ parts.push( `${ result.warnings.length } warning(s)` );
+ return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
+}
+
+function errorMessage( error: unknown ): string {
+ return error && typeof error === 'object' && 'message' in error
+ ? String( ( error as { message: unknown } ).message )
+ : String( error );
+}
+
+export async function buildPackage( options: BuildOptions ): Promise< void > {
+ const format = options.format ?? 'esmodules';
+ const ignore = [ ...DEFAULT_IGNORE, ...( options.ignore ?? [] ) ];
+ const outdir = format === 'commonjs' ? 'build' : 'build-module';
+
+ await rm( outdir, { recursive: true, force: true } );
+ const entryPoints = await resolveEntryPoints( options.entryPoints, ignore );
+
+ log.debug( 'build', `format: ${ format }, outdir: ${ outdir }` );
+ for ( const entry of entryPoints )
+ log.debug( 'build', `entry: ${ entry }` );
+
+ const t0 = Date.now();
+ log.info( 'build', `${ entryPoints.length } entry point(s)...` );
+ const result = await build(
+ prepareEsbuildOptions( format, entryPoints, options.esbuild )
+ );
+ if ( options.assets?.length ) await copyAssets( options.assets, outdir );
+ log.info( 'ok', `done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
+}
+
+export async function watchPackage( options: BuildOptions ): Promise< void > {
+ const format = options.format ?? 'esmodules';
+ const ignore = [ ...DEFAULT_IGNORE, ...( options.ignore ?? [] ) ];
+ const assets = options.assets ?? [];
+ const outdir = format === 'commonjs' ? 'build' : 'build-module';
+ const watchedPatterns = [
+ ...( Array.isArray( options.entryPoints )
+ ? options.entryPoints
+ : [ options.entryPoints ] ),
+ ...assets,
+ ];
+
+ const startupT0 = Date.now();
+ await rm( outdir, { recursive: true, force: true } );
+
+ let entryPoints = await resolveEntryPoints( options.entryPoints, ignore );
+ let ctx = await context(
+ prepareEsbuildOptions( format, entryPoints, options.esbuild )
+ );
+
+ log.debug( 'watch', `format: ${ format }, outdir: ${ outdir }` );
+ log.debug( 'watch', `watching: ${ watchedPatterns.join( ', ' ) }` );
+ for ( const entry of entryPoints )
+ log.debug( 'watch', `entry: ${ entry }` );
+
+ try {
+ const initial = await ctx.rebuild();
+ if ( assets.length ) await copyAssets( assets, outdir );
+ log.info(
+ 'watch',
+ `ready in ${ Date.now() - startupT0 }ms — ${
+ entryPoints.length
+ } entry point(s)${ summarize( initial ) }`
+ );
+ } catch ( error ) {
+ log.error(
+ 'watch',
+ `startup build failed: ${ errorMessage( error ) }`
+ );
+ }
+
+ // esbuild's own watcher polls the filesystem, which can miss or delay
+ // changes (especially edits to files added after context creation).
+ // chokidar uses OS-level events and drives rebuilds directly: changes
+ // call ctx.rebuild() (preserves the AST cache), add/unlink trigger a
+ // debounced context restart (entry list changed).
+ let pending: NodeJS.Timeout | undefined;
+ const pendingChanges = new Set< string >();
+
+ const restart = ( path: string, kind: string ): void => {
+ pendingChanges.add( `${ path } (${ kind })` );
+ log.debug( 'watch', `${ kind }: ${ path }` );
+ if ( pending ) clearTimeout( pending );
+ pending = setTimeout( () => {
+ void ( async () => {
+ const changes = [ ...pendingChanges ];
+ pendingChanges.clear();
+ const preview = changes.slice( 0, 3 ).join( ', ' );
+ const suffix =
+ changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
+ log.info( 'watch', `restarting (${ preview }${ suffix })` );
+ const t0 = Date.now();
+ try {
+ await ctx.dispose();
+ await rm( outdir, { recursive: true, force: true } );
+ entryPoints = await resolveEntryPoints(
+ options.entryPoints,
+ ignore
+ );
+ ctx = await context(
+ prepareEsbuildOptions(
+ format,
+ entryPoints,
+ options.esbuild
+ )
+ );
+ const result = await ctx.rebuild();
+ if ( assets.length ) await copyAssets( assets, outdir );
+ log.info(
+ 'ok',
+ `rebuilt in ${ Date.now() - t0 }ms — ${
+ entryPoints.length
+ } entry point(s)${ summarize( result ) }`
+ );
+ } catch ( error ) {
+ log.error(
+ 'watch',
+ `restart failed: ${ errorMessage( error ) }`
+ );
+ }
+ } )();
+ }, RESTART_DEBOUNCE_MS );
+ };
+
+ const watcher = chokidar
+ .watch( watchedPatterns, {
+ ignored: [ ...ignore ],
+ ignoreInitial: true,
+ awaitWriteFinish: { stabilityThreshold: 50, pollInterval: 20 },
+ } )
+ .on( 'add', ( path ) => restart( path, 'added' ) )
+ .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
+ .on( 'change', ( path ) => {
+ void ( async () => {
+ log.debug( 'watch', `changed: ${ path }` );
+ const t0 = Date.now();
+ try {
+ const result = await ctx.rebuild();
+ if ( assets.length && path.endsWith( '.json' ) ) {
+ await copyAssets( assets, outdir );
+ }
+ log.info(
+ 'ok',
+ `rebuilt ${ path } in ${
+ Date.now() - t0
+ }ms${ summarize( result ) }`
+ );
+ } catch ( error ) {
+ log.error(
+ 'watch',
+ `rebuild ${ path } failed: ${ errorMessage( error ) }`
+ );
+ }
+ } )();
+ } );
+
+ const shutdown = async (): Promise< void > => {
+ log.info( 'watch', 'shutting down' );
+ await watcher.close();
+ await ctx.dispose();
+ process.exit( 0 );
+ };
+ process.once( 'SIGINT', () => void shutdown() );
+ process.once( 'SIGTERM', () => void shutdown() );
+}
+
+export async function runPackageBuilder(
+ options: BuildOptions
+): Promise< void > {
+ const args = parseBuildArgs();
+ setDebugEnabled( args.debug );
+ const merged: BuildOptions = {
+ ...options,
+ format: options.format ?? args.format,
+ };
+ if ( args.watch ) {
+ await watchPackage( merged );
+ } else {
+ await buildPackage( merged );
+ }
+}
diff --git a/packages/js/internal-build/src/esbuild/logger.ts b/packages/js/internal-build/src/esbuild/logger.ts
new file mode 100644
index 00000000000..bbe9eaf2b64
--- /dev/null
+++ b/packages/js/internal-build/src/esbuild/logger.ts
@@ -0,0 +1,59 @@
+/* eslint-disable no-console -- This module is the build logger; console output is its purpose. */
+
+const PRETTY =
+ Boolean( process.stdout.isTTY ) &&
+ ! process.env.NO_COLOR &&
+ ! process.env.CI;
+
+const COLOR = {
+ reset: PRETTY ? '\x1b[0m' : '',
+ dim: PRETTY ? '\x1b[2m' : '',
+ red: PRETTY ? '\x1b[31m' : '',
+ green: PRETTY ? '\x1b[32m' : '',
+ yellow: PRETTY ? '\x1b[33m' : '',
+ blue: PRETTY ? '\x1b[34m' : '',
+ cyan: PRETTY ? '\x1b[36m' : '',
+};
+
+const PREFIXES = {
+ build: { icon: '📦', color: COLOR.cyan },
+ watch: { icon: '👀', color: COLOR.blue },
+ ok: { icon: '✓', color: COLOR.green },
+ warn: { icon: 'âš ', color: COLOR.yellow },
+ error: { icon: '✗', color: COLOR.red },
+ debug: { icon: '·', color: COLOR.dim },
+};
+
+export type LoggerPrefix = keyof typeof PREFIXES;
+
+let debugEnabled = false;
+
+export function setDebugEnabled( enabled: boolean ): void {
+ debugEnabled = enabled;
+}
+
+function format( prefix: LoggerPrefix, message: string ): string {
+ const style = PREFIXES[ prefix ];
+ return PRETTY
+ ? `${ style.color }${ style.icon } ${ prefix }${ COLOR.reset } ${ message }`
+ : `[${ prefix }] ${ message }`;
+}
+
+export const log = {
+ info( prefix: LoggerPrefix, message: string ): void {
+ console.log( format( prefix, message ) );
+ },
+ debug( context: string, message: string ): void {
+ if ( debugEnabled )
+ console.log( format( 'debug', `${ context }: ${ message }` ) );
+ },
+ warn( prefix: LoggerPrefix, message: string ): void {
+ console.warn( format( prefix, message ) );
+ },
+ error( prefix: LoggerPrefix, message: string ): void {
+ console.error( format( prefix, message ) );
+ },
+ dim( message: string ): string {
+ return `${ COLOR.dim }${ message }${ COLOR.reset }`;
+ },
+};
diff --git a/packages/js/internal-build/src/esbuild/options.ts b/packages/js/internal-build/src/esbuild/options.ts
new file mode 100644
index 00000000000..fdba9f8850a
--- /dev/null
+++ b/packages/js/internal-build/src/esbuild/options.ts
@@ -0,0 +1,42 @@
+/**
+ * External dependencies
+ */
+import type { BuildOptions as EsbuildOptions } from 'esbuild';
+
+export interface BuildOptions {
+ entryPoints: string | string[];
+ ignore?: string[];
+ format?: 'esmodules' | 'commonjs';
+ assets?: string[];
+ esbuild?: EsbuildOptions;
+}
+
+export const DEFAULT_IGNORE: readonly string[] = [
+ '**/test/**',
+ '**/stories/**',
+ '**/*.test.{ts,tsx,js,jsx}',
+ '**/*.d.ts',
+];
+
+export function prepareEsbuildOptions(
+ format: 'esmodules' | 'commonjs',
+ entryPoints: string[],
+ overrides: EsbuildOptions = {}
+): EsbuildOptions {
+ return {
+ entryPoints,
+ outdir: format === 'commonjs' ? 'build' : 'build-module',
+ outbase: 'src',
+ bundle: false,
+ format: format === 'commonjs' ? 'cjs' : 'esm',
+ platform: 'neutral',
+ target: 'esnext',
+ loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
+ jsx: 'transform',
+ jsxFactory: 'createElement',
+ jsxFragment: 'Fragment',
+ logLevel: 'warning',
+ sourcemap: false,
+ ...overrides,
+ };
+}
diff --git a/packages/js/internal-build/src/index.ts b/packages/js/internal-build/src/index.ts
new file mode 100644
index 00000000000..cdf5514f016
--- /dev/null
+++ b/packages/js/internal-build/src/index.ts
@@ -0,0 +1,6 @@
+export {
+ runPackageBuilder,
+ buildPackage,
+ watchPackage,
+} from './esbuild/index.js';
+export type { BuildOptions } from './esbuild/index.js';
diff --git a/packages/js/internal-style-build/index.js b/packages/js/internal-build/src/style-build/index.cjs
similarity index 89%
rename from packages/js/internal-style-build/index.js
rename to packages/js/internal-build/src/style-build/index.cjs
index ab223d4a5bd..aa2ded78499 100644
--- a/packages/js/internal-style-build/index.js
+++ b/packages/js/internal-build/src/style-build/index.cjs
@@ -5,8 +5,8 @@ const MiniCssExtractPlugin = require( 'mini-css-extract-plugin' );
const path = require( 'path' );
const RemoveEmptyScriptsPlugin = require( 'webpack-remove-empty-scripts' );
const postcssPlugins = require( '@wordpress/postcss-plugins-preset' );
-const StyleAssetPlugin = require( './style-asset-plugin' );
-const WebpackRTLPlugin = require( './webpack-rtl-plugin' );
+const StyleAssetPlugin = require( './style-asset-plugin.cjs' );
+const WebpackRTLPlugin = require( './webpack-rtl-plugin.cjs' );
module.exports = {
plugin: MiniCssExtractPlugin,
@@ -40,7 +40,12 @@ module.exports = {
options: {
sassOptions: {
includePaths: [
- path.resolve( __dirname, 'abstracts' ),
+ path.resolve(
+ __dirname,
+ '..',
+ '..',
+ 'styles'
+ ),
],
},
webpackImporter: true,
diff --git a/packages/js/internal-style-build/style-asset-plugin.js b/packages/js/internal-build/src/style-build/style-asset-plugin.cjs
similarity index 100%
rename from packages/js/internal-style-build/style-asset-plugin.js
rename to packages/js/internal-build/src/style-build/style-asset-plugin.cjs
diff --git a/packages/js/internal-style-build/webpack-rtl-plugin.js b/packages/js/internal-build/src/style-build/webpack-rtl-plugin.cjs
similarity index 100%
rename from packages/js/internal-style-build/webpack-rtl-plugin.js
rename to packages/js/internal-build/src/style-build/webpack-rtl-plugin.cjs
diff --git a/packages/js/internal-build/src/tsconfig.json b/packages/js/internal-build/src/tsconfig.json
new file mode 100644
index 00000000000..f42028648c1
--- /dev/null
+++ b/packages/js/internal-build/src/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "target": "es2022",
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "lib": [ "es2022" ],
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "isolatedModules": true,
+ "declaration": true,
+ "declarationMap": true,
+ "declarationDir": "../build-types",
+ "outDir": "../build-module",
+ "rootDir": ".",
+ "resolveJsonModule": true
+ },
+ "include": [ "**/*.ts" ],
+ "exclude": [ "style-build/**" ]
+}
diff --git a/packages/js/internal-style-build/abstracts/_breakpoints.scss b/packages/js/internal-build/styles/_breakpoints.scss
similarity index 100%
rename from packages/js/internal-style-build/abstracts/_breakpoints.scss
rename to packages/js/internal-build/styles/_breakpoints.scss
diff --git a/packages/js/internal-style-build/abstracts/_colors.scss b/packages/js/internal-build/styles/_colors.scss
similarity index 100%
rename from packages/js/internal-style-build/abstracts/_colors.scss
rename to packages/js/internal-build/styles/_colors.scss
diff --git a/packages/js/internal-style-build/abstracts/_mixins.scss b/packages/js/internal-build/styles/_mixins.scss
similarity index 100%
rename from packages/js/internal-style-build/abstracts/_mixins.scss
rename to packages/js/internal-build/styles/_mixins.scss
diff --git a/packages/js/internal-style-build/abstracts/_variables.scss b/packages/js/internal-build/styles/_variables.scss
similarity index 100%
rename from packages/js/internal-style-build/abstracts/_variables.scss
rename to packages/js/internal-build/styles/_variables.scss
diff --git a/packages/js/internal-ts-config/types/@wordpress/block-editor.patch b/packages/js/internal-build/type-overrides/@wordpress/block-editor.patch
similarity index 93%
rename from packages/js/internal-ts-config/types/@wordpress/block-editor.patch
rename to packages/js/internal-build/type-overrides/@wordpress/block-editor.patch
index 8a2b420a90a..68d356b3bbf 100644
--- a/packages/js/internal-ts-config/types/@wordpress/block-editor.patch
+++ b/packages/js/internal-build/type-overrides/@wordpress/block-editor.patch
@@ -1,6 +1,6 @@
-diff -ruN a/types/@wordpress/block-editor/index.d.ts b/types/@wordpress/block-editor/index.d.ts
---- a/types/@wordpress/block-editor/index.d.ts
-+++ b/types/@wordpress/block-editor/index.d.ts
+diff -ruN a/type-overrides/@wordpress/block-editor/index.d.ts b/type-overrides/@wordpress/block-editor/index.d.ts
+--- a/type-overrides/@wordpress/block-editor/index.d.ts
++++ b/type-overrides/@wordpress/block-editor/index.d.ts
@@ -6,9 +6,26 @@
/// <reference path="./store/selectors.d.ts" />
/// <reference path="./utils/index.d.ts" />
diff --git a/packages/js/internal-ts-config/types/@wordpress/core-data.patch b/packages/js/internal-build/type-overrides/@wordpress/core-data.patch
similarity index 95%
rename from packages/js/internal-ts-config/types/@wordpress/core-data.patch
rename to packages/js/internal-build/type-overrides/@wordpress/core-data.patch
index 30252f45fc9..a723b7753e4 100644
--- a/packages/js/internal-ts-config/types/@wordpress/core-data.patch
+++ b/packages/js/internal-build/type-overrides/@wordpress/core-data.patch
@@ -1,6 +1,6 @@
-diff -ruN a/types/@wordpress/core-data/dynamic-entities.d.ts b/types/@wordpress/core-data/dynamic-entities.d.ts
---- a/types/@wordpress/core-data/dynamic-entities.d.ts
-+++ b/types/@wordpress/core-data/dynamic-entities.d.ts
+diff -ruN a/type-overrides/@wordpress/core-data/dynamic-entities.d.ts b/type-overrides/@wordpress/core-data/dynamic-entities.d.ts
+--- a/type-overrides/@wordpress/core-data/dynamic-entities.d.ts
++++ b/type-overrides/@wordpress/core-data/dynamic-entities.d.ts
@@ -60,10 +60,10 @@
};
type DeleteRecordsHttpQuery = Record<string, any>;
@@ -14,9 +14,9 @@ diff -ruN a/types/@wordpress/core-data/dynamic-entities.d.ts b/types/@wordpress/
};
export declare let dynamicActions: SaveActions & DeleteActions;
export declare let dynamicSelectors: SingularGetters & PluralGetters;
-diff -ruN a/types/@wordpress/core-data/hooks/use-entity-prop.d.ts b/types/@wordpress/core-data/hooks/use-entity-prop.d.ts
---- a/types/@wordpress/core-data/hooks/use-entity-prop.d.ts
-+++ b/types/@wordpress/core-data/hooks/use-entity-prop.d.ts
+diff -ruN a/type-overrides/@wordpress/core-data/hooks/use-entity-prop.d.ts b/type-overrides/@wordpress/core-data/hooks/use-entity-prop.d.ts
+--- a/type-overrides/@wordpress/core-data/hooks/use-entity-prop.d.ts
++++ b/type-overrides/@wordpress/core-data/hooks/use-entity-prop.d.ts
@@ -16,5 +16,5 @@
* information like `raw`, `rendered` and
* `protected` props.
@@ -24,9 +24,9 @@ diff -ruN a/types/@wordpress/core-data/hooks/use-entity-prop.d.ts b/types/@wordp
- export default function useEntityProp(kind: string, name: string, prop: string, _id?: number | string): [any, Function, any];
+ export default function useEntityProp<PropType>(kind: string, name: string, prop: string, _id?: number | string): [PropType, (value: PropType) => void, PropType];
}
-diff -ruN a/types/@wordpress/core-data/index.d.ts b/types/@wordpress/core-data/index.d.ts
---- a/types/@wordpress/core-data/index.d.ts
-+++ b/types/@wordpress/core-data/index.d.ts
+diff -ruN a/type-overrides/@wordpress/core-data/index.d.ts b/type-overrides/@wordpress/core-data/index.d.ts
+--- a/type-overrides/@wordpress/core-data/index.d.ts
++++ b/type-overrides/@wordpress/core-data/index.d.ts
@@ -80,156 +80,156 @@
}) => Promise<void>;
saveMenu: (data: Partial<import("@wordpress/core-data/build-types/entity-types").NavMenu<"edit">>, options?: {
diff --git a/packages/js/internal-ts-config/types/@wordpress/data.patch b/packages/js/internal-build/type-overrides/@wordpress/data.patch
similarity index 92%
rename from packages/js/internal-ts-config/types/@wordpress/data.patch
rename to packages/js/internal-build/type-overrides/@wordpress/data.patch
index e2b6e30014e..8c71a5ec430 100644
--- a/packages/js/internal-ts-config/types/@wordpress/data.patch
+++ b/packages/js/internal-build/type-overrides/@wordpress/data.patch
@@ -1,6 +1,6 @@
-diff -ruN a/types/@wordpress/data/components/registry-provider/use-registry.d.ts b/types/@wordpress/data/components/registry-provider/use-registry.d.ts
---- a/types/@wordpress/data/components/registry-provider/use-registry.d.ts
-+++ b/types/@wordpress/data/components/registry-provider/use-registry.d.ts
+diff -ruN a/type-overrides/@wordpress/data/components/registry-provider/use-registry.d.ts b/type-overrides/@wordpress/data/components/registry-provider/use-registry.d.ts
+--- a/type-overrides/@wordpress/data/components/registry-provider/use-registry.d.ts
++++ b/type-overrides/@wordpress/data/components/registry-provider/use-registry.d.ts
@@ -1,4 +1,7 @@
+/// <reference path="../../registry.d.ts" />
+
@@ -16,9 +16,9 @@ diff -ruN a/types/@wordpress/data/components/registry-provider/use-registry.d.ts
- export default function useRegistry(): Function;
+ export default function useRegistry(): WPDataRegistry;
}
-diff -ruN a/types/@wordpress/data/components/use-dispatch/use-dispatch.d.ts b/types/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
---- a/types/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
-+++ b/types/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
+diff -ruN a/type-overrides/@wordpress/data/components/use-dispatch/use-dispatch.d.ts b/type-overrides/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
+--- a/type-overrides/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
++++ b/type-overrides/@wordpress/data/components/use-dispatch/use-dispatch.d.ts
@@ -1,62 +1,17 @@
/// <reference path="../../types.d.ts" />
+/// <reference path="../../registry.d.ts" />
@@ -89,9 +89,9 @@ diff -ruN a/types/@wordpress/data/components/use-dispatch/use-dispatch.d.ts b/ty
+ declare function useDispatch(storeNameOrDescriptor: StoreNameOrDescriptor): ActionCreatorsOf<StoreDescriptor>;
+ export default useDispatch;
}
-diff -ruN a/types/@wordpress/data/components/use-select/index.d.ts b/types/@wordpress/data/components/use-select/index.d.ts
---- a/types/@wordpress/data/components/use-select/index.d.ts
-+++ b/types/@wordpress/data/components/use-select/index.d.ts
+diff -ruN a/type-overrides/@wordpress/data/components/use-select/index.d.ts b/type-overrides/@wordpress/data/components/use-select/index.d.ts
+--- a/type-overrides/@wordpress/data/components/use-select/index.d.ts
++++ b/type-overrides/@wordpress/data/components/use-select/index.d.ts
@@ -1,93 +1,29 @@
/// <reference path="../../types.d.ts" />
@@ -197,9 +197,9 @@ diff -ruN a/types/@wordpress/data/components/use-select/index.d.ts b/types/@word
- export type UseSelectReturn<T extends MapSelect | StoreDescriptor<any>> = import("@wordpress/data/build-types/types").UseSelectReturn<T>;
+ export function useSuspenseSelect<T extends MapSelect>(mapSelect: T, deps: unknown[]): ReturnType<T>;
}
-diff -ruN a/types/@wordpress/data/components/with-dispatch/index.d.ts b/types/@wordpress/data/components/with-dispatch/index.d.ts
---- a/types/@wordpress/data/components/with-dispatch/index.d.ts
-+++ b/types/@wordpress/data/components/with-dispatch/index.d.ts
+diff -ruN a/type-overrides/@wordpress/data/components/with-dispatch/index.d.ts b/type-overrides/@wordpress/data/components/with-dispatch/index.d.ts
+--- a/type-overrides/@wordpress/data/components/with-dispatch/index.d.ts
++++ b/type-overrides/@wordpress/data/components/with-dispatch/index.d.ts
@@ -1,4 +1,8 @@
+/// <reference path="../../types.d.ts" />
+/// <reference path="../../registry.d.ts" />
@@ -216,9 +216,9 @@ diff -ruN a/types/@wordpress/data/components/with-dispatch/index.d.ts b/types/@w
- declare function withDispatch(mapDispatchToProps: Function): ComponentType;
+ declare const withDispatch: (mapDispatchToProps: (dispatch: WPDataRegistry['dispatch'], ownProps: Record<string, unknown>, registry: WPDataRegistry) => Record<string, (...args: unknown[]) => unknown>) => (Inner: ComponentType<any>) => (ownProps: Record<string, unknown>) => import("react").JSX.Element;
}
-diff -ruN a/types/@wordpress/data/components/with-select/index.d.ts b/types/@wordpress/data/components/with-select/index.d.ts
---- a/types/@wordpress/data/components/with-select/index.d.ts
-+++ b/types/@wordpress/data/components/with-select/index.d.ts
+diff -ruN a/type-overrides/@wordpress/data/components/with-select/index.d.ts b/type-overrides/@wordpress/data/components/with-select/index.d.ts
+--- a/type-overrides/@wordpress/data/components/with-select/index.d.ts
++++ b/type-overrides/@wordpress/data/components/with-select/index.d.ts
@@ -1,4 +1,8 @@
+/// <reference path="../../types.d.ts" />
+/// <reference path="../../registry.d.ts" />
@@ -235,9 +235,9 @@ diff -ruN a/types/@wordpress/data/components/with-select/index.d.ts b/types/@wor
- declare function withSelect(mapSelectToProps: Function): ComponentType;
+ declare const withSelect: (mapSelectToProps: (select: WPDataRegistry['select'], ownProps: Record<string, unknown>, registry: WPDataRegistry) => Record<string, unknown>) => (Inner: ComponentType<any>) => ComponentType<Record<string, unknown>>;
}
-diff -ruN a/types/@wordpress/data/dispatch.d.ts b/types/@wordpress/data/dispatch.d.ts
---- a/types/@wordpress/data/dispatch.d.ts
-+++ b/types/@wordpress/data/dispatch.d.ts
+diff -ruN a/type-overrides/@wordpress/data/dispatch.d.ts b/type-overrides/@wordpress/data/dispatch.d.ts
+--- a/type-overrides/@wordpress/data/dispatch.d.ts
++++ b/type-overrides/@wordpress/data/dispatch.d.ts
@@ -4,7 +4,7 @@
/**
* Internal dependencies
@@ -266,9 +266,9 @@ diff -ruN a/types/@wordpress/data/dispatch.d.ts b/types/@wordpress/data/dispatch
+ export declare function dispatch<K extends keyof StoreRegistry>(storeName: K): ActionCreatorsOf<StoreRegistry[K]>;
+ export declare function dispatch(storeNameOrDescriptor: StoreNameOrDescriptor): ActionCreatorsOf<StoreDescriptor>;
}
-diff -ruN a/types/@wordpress/data/factory.d.ts b/types/@wordpress/data/factory.d.ts
---- a/types/@wordpress/data/factory.d.ts
-+++ b/types/@wordpress/data/factory.d.ts
+diff -ruN a/type-overrides/@wordpress/data/factory.d.ts b/type-overrides/@wordpress/data/factory.d.ts
+--- a/type-overrides/@wordpress/data/factory.d.ts
++++ b/type-overrides/@wordpress/data/factory.d.ts
@@ -1,3 +1,4 @@
+/// <reference path="./types.d.ts" />
/// <reference path="./select.d.ts" />
@@ -291,9 +291,9 @@ diff -ruN a/types/@wordpress/data/factory.d.ts b/types/@wordpress/data/factory.d
isRegistryControl?: boolean;
}): T & {
isRegistryControl?: boolean;
-diff -ruN a/types/@wordpress/data/index.d.ts b/types/@wordpress/data/index.d.ts
---- a/types/@wordpress/data/index.d.ts
-+++ b/types/@wordpress/data/index.d.ts
+diff -ruN a/type-overrides/@wordpress/data/index.d.ts b/type-overrides/@wordpress/data/index.d.ts
+--- a/type-overrides/@wordpress/data/index.d.ts
++++ b/type-overrides/@wordpress/data/index.d.ts
@@ -16,6 +16,15 @@
/// <reference path="./types.d.ts" />
@@ -355,9 +355,9 @@ diff -ruN a/types/@wordpress/data/index.d.ts b/types/@wordpress/data/index.d.ts
+ export type StoreDescriptor = import("@wordpress/data/build-types/types").StoreDescriptor<any>;
+ export { StoreRegistry } from "@wordpress/data/build-types/types";
}
-diff -ruN a/types/@wordpress/data/registry.d.ts b/types/@wordpress/data/registry.d.ts
---- a/types/@wordpress/data/registry.d.ts
-+++ b/types/@wordpress/data/registry.d.ts
+diff -ruN a/type-overrides/@wordpress/data/registry.d.ts b/type-overrides/@wordpress/data/registry.d.ts
+--- a/type-overrides/@wordpress/data/registry.d.ts
++++ b/type-overrides/@wordpress/data/registry.d.ts
@@ -1,59 +1,62 @@
/// <reference path="./types.d.ts" />
@@ -461,9 +461,9 @@ diff -ruN a/types/@wordpress/data/registry.d.ts b/types/@wordpress/data/registry
+ options?: Record<string, unknown>
+ ) => Partial<WPDataRegistry>;
}
-diff -ruN a/types/@wordpress/data/select.d.ts b/types/@wordpress/data/select.d.ts
---- a/types/@wordpress/data/select.d.ts
-+++ b/types/@wordpress/data/select.d.ts
+diff -ruN a/type-overrides/@wordpress/data/select.d.ts b/type-overrides/@wordpress/data/select.d.ts
+--- a/type-overrides/@wordpress/data/select.d.ts
++++ b/type-overrides/@wordpress/data/select.d.ts
@@ -4,16 +4,12 @@
/**
* Internal dependencies
@@ -491,9 +491,9 @@ diff -ruN a/types/@wordpress/data/select.d.ts b/types/@wordpress/data/select.d.t
+ export declare function select<K extends keyof StoreRegistry>(storeName: K): CurriedSelectorsOf<StoreRegistry[K]>;
+ export declare function select(storeNameOrDescriptor: StoreNameOrDescriptor): CurriedSelectorsOf<StoreDescriptor>;
}
-diff -ruN a/types/@wordpress/data/types.d.ts b/types/@wordpress/data/types.d.ts
---- a/types/@wordpress/data/types.d.ts
-+++ b/types/@wordpress/data/types.d.ts
+diff -ruN a/type-overrides/@wordpress/data/types.d.ts b/type-overrides/@wordpress/data/types.d.ts
+--- a/type-overrides/@wordpress/data/types.d.ts
++++ b/type-overrides/@wordpress/data/types.d.ts
@@ -15,7 +15,7 @@
getActions: () => ActionCreatorsOf<Config>;
subscribe: (listener: () => void) => () => void;
diff --git a/packages/js/internal-ts-config/types/@wordpress/editor.patch b/packages/js/internal-build/type-overrides/@wordpress/editor.patch
similarity index 60%
rename from packages/js/internal-ts-config/types/@wordpress/editor.patch
rename to packages/js/internal-build/type-overrides/@wordpress/editor.patch
index 8c79b73f212..af3f8e1cf1d 100644
--- a/packages/js/internal-ts-config/types/@wordpress/editor.patch
+++ b/packages/js/internal-build/type-overrides/@wordpress/editor.patch
@@ -1,6 +1,6 @@
-diff -ruN a/types/@wordpress/editor/index.d.ts b/types/@wordpress/editor/index.d.ts
---- a/types/@wordpress/editor/index.d.ts
-+++ b/types/@wordpress/editor/index.d.ts
+diff -ruN a/type-overrides/@wordpress/editor/index.d.ts b/type-overrides/@wordpress/editor/index.d.ts
+--- a/type-overrides/@wordpress/editor/index.d.ts
++++ b/type-overrides/@wordpress/editor/index.d.ts
@@ -11,3 +11,9 @@
export * from "@wordpress/editor/build-types/dataviews/api";
export { storeConfig, store } from "@wordpress/editor/build-types/store";
diff --git a/packages/js/internal-ts-config/types/@wordpress/notices.patch b/packages/js/internal-build/type-overrides/@wordpress/notices.patch
similarity index 57%
rename from packages/js/internal-ts-config/types/@wordpress/notices.patch
rename to packages/js/internal-build/type-overrides/@wordpress/notices.patch
index d8d3ef0e5e7..ca24ea18975 100644
--- a/packages/js/internal-ts-config/types/@wordpress/notices.patch
+++ b/packages/js/internal-build/type-overrides/@wordpress/notices.patch
@@ -1,6 +1,6 @@
-diff -ruN a/types/@wordpress/notices/index.d.ts b/types/@wordpress/notices/index.d.ts
---- a/types/@wordpress/notices/index.d.ts
-+++ b/types/@wordpress/notices/index.d.ts
+diff -ruN a/type-overrides/@wordpress/notices/index.d.ts b/type-overrides/@wordpress/notices/index.d.ts
+--- a/type-overrides/@wordpress/notices/index.d.ts
++++ b/type-overrides/@wordpress/notices/index.d.ts
@@ -3,3 +3,9 @@
declare module '@wordpress/notices' {
export { store } from "@wordpress/notices/build-types/store";
diff --git a/packages/js/internal-js-tests/build.mjs b/packages/js/internal-js-tests/build.mjs
index 302b9874aaf..32ab366d2e0 100644
--- a/packages/js/internal-js-tests/build.mjs
+++ b/packages/js/internal-js-tests/build.mjs
@@ -1,114 +1,6 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
- 'src/setup-*.js',
- 'src/mocks/**',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( {
+ entryPoints: 'src/**/*.{ts,tsx,js,jsx}',
+ ignore: [ 'src/setup-*.js', 'src/mocks/**' ],
+} );
diff --git a/packages/js/internal-js-tests/jest-preset.js b/packages/js/internal-js-tests/jest-preset.js
index 7b888d6d260..3d6145d1f5e 100644
--- a/packages/js/internal-js-tests/jest-preset.js
+++ b/packages/js/internal-js-tests/jest-preset.js
@@ -31,6 +31,7 @@ const transformModules = {
*/
const mapWpModules = [
'@wordpress/private-apis',
+ '@wordpress/data',
'@wordpress/core-data',
'@wordpress/components',
'@wordpress/html-entities',
@@ -127,16 +128,12 @@ module.exports = {
'(?:src|client|assets/js)/.*\\.[jt]sx?$': [
'ts-jest',
{
- // A dedicated test tsconfig sidesteps per-package
- // include/exclude/rootDir restrictions that block
- // ts-jest from compiling cross-package source files
- // (resolved via the @woocommerce/* moduleNameMapper).
- // The compiler emits CJS so Jest's runtime can execute
- // it; package builds keep their own tsconfigs for
- // publishing.
- tsconfig: require.resolve(
- '@woocommerce/internal-ts-config/tsconfig-jest.json'
- ),
+ // Dedicated jest tsconfig flips jsx to the automatic
+ // runtime and emits CJS for jest's runtime. Sidesteps
+ // per-package include/exclude/rootDir restrictions that
+ // block ts-jest from compiling cross-package source
+ // files (resolved via the @woocommerce/* moduleNameMapper).
+ tsconfig: path.resolve( __dirname, 'tsconfig-jest.json' ),
diagnostics: false,
},
],
diff --git a/packages/js/internal-js-tests/package.json b/packages/js/internal-js-tests/package.json
index e7d75f9c127..1839e06e4f4 100644
--- a/packages/js/internal-js-tests/package.json
+++ b/packages/js/internal-js-tests/package.json
@@ -17,19 +17,29 @@
"url": "https://github.com/woocommerce/woocommerce/issues"
},
"private": true,
+ "exports": {
+ ".": {
+ "wc-source": "./src/util/index.js",
+ "types": "./build-types/util/index.d.ts",
+ "import": "./build-module/util/index.js",
+ "require": "./build/util/index.js"
+ }
+ },
"main": "build/util/index.js",
"module": "build-module/util/index.js",
+ "types": "build-types/util/index.d.ts",
"files": [
"build",
"build-module",
+ "build-types",
"jest-preset.js"
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -54,12 +64,9 @@
"devDependencies": {
"@babel/core": "7.25.7",
"@woocommerce/eslint-plugin": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"babel-jest": "29.5.x",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -74,6 +81,15 @@
"react": "18.3.x",
"react-dom": "18.3.x"
},
+ "publishConfig": {
+ "exports": {
+ ".": {
+ "types": "./build-types/util/index.d.ts",
+ "import": "./build-module/util/index.js",
+ "require": "./build/util/index.js"
+ }
+ }
+ },
"lint-staged": {
"*.(t|j)s?(x)": [
"pnpm lint:fix"
diff --git a/packages/js/internal-js-tests/tsconfig-cjs.json b/packages/js/internal-js-tests/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/internal-js-tests/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/internal-js-tests/tsconfig-jest.json b/packages/js/internal-js-tests/tsconfig-jest.json
new file mode 100644
index 00000000000..c0de0f592a5
--- /dev/null
+++ b/packages/js/internal-js-tests/tsconfig-jest.json
@@ -0,0 +1,10 @@
+{
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
+ "compilerOptions": {
+ "module": "commonjs",
+ "declaration": false,
+ "declarationMap": false,
+ "declarationDir": null,
+ "jsx": "react-jsx"
+ }
+}
diff --git a/packages/js/internal-js-tests/tsconfig.json b/packages/js/internal-js-tests/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/internal-js-tests/tsconfig.json
+++ b/packages/js/internal-js-tests/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/internal-js-tests/typings/monorepo-enhancements.d.ts b/packages/js/internal-js-tests/typings/monorepo-enhancements.d.ts
index dc453ab911e..8d3d6bdc1e4 100644
--- a/packages/js/internal-js-tests/typings/monorepo-enhancements.d.ts
+++ b/packages/js/internal-js-tests/typings/monorepo-enhancements.d.ts
@@ -1 +1 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
diff --git a/packages/js/internal-style-build/.npmrc b/packages/js/internal-style-build/.npmrc
deleted file mode 100644
index 43c97e719a5..00000000000
--- a/packages/js/internal-style-build/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-package-lock=false
diff --git a/packages/js/internal-style-build/README.md b/packages/js/internal-style-build/README.md
deleted file mode 100644
index c347847a5c5..00000000000
--- a/packages/js/internal-style-build/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Style Build Helper
-
-This is a partial [Webpack](https://webpack.js.org/) config for building WooCommerce component styles using base styles from Gutenberg. It is used to replace the [`bin/packages/build.js`](https://github.com/woocommerce/woocommerce-admin/blob/6859249/bin/packages/build.js) script.
-
-
-## Usage
-
-Create a `webpack.config.js` in your package root that defines the `entry` and `output`, making use of the `rules` and `plugins` from `@woocommerce/internal-style-build`.
-
-***Note:*** The `entry` should be named `'build-style'` so the CSS will get picked up by the main `client/` application's `CopyWebpackPlugin` config.
-
-```js
-// packages/<package-name>/webpack.config.js
-
-import { webpackConfig } from '@woocommerce/internal-style-build';
-
-module.exports = {
- mode: process.env.NODE_ENV || 'development',
- entry: {
- 'build-style': __dirname + '/src/style.scss',
- },
- output: {
- path: __dirname,
- },
- module: {
- rules: webpackConfig.rules,
- },
- plugins: webpackConfig.plugins,
-};
-```
diff --git a/packages/js/internal-style-build/changelog/.gitkeep b/packages/js/internal-style-build/changelog/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/js/internal-style-build/changelog/64838-dev-esbuild-package-builds b/packages/js/internal-style-build/changelog/64838-dev-esbuild-package-builds
deleted file mode 100644
index 8c5062a7c61..00000000000
--- a/packages/js/internal-style-build/changelog/64838-dev-esbuild-package-builds
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: dev
-
-Removed stray wireit devDependency.
diff --git a/packages/js/internal-style-build/changelog/add-js-packages-changelogger b/packages/js/internal-style-build/changelog/add-js-packages-changelogger
deleted file mode 100644
index 34c7e271ae2..00000000000
--- a/packages/js/internal-style-build/changelog/add-js-packages-changelogger
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: dev
-
-Add Jetpack Changelogger
diff --git a/packages/js/internal-style-build/changelog/add-require-turbo b/packages/js/internal-style-build/changelog/add-require-turbo
deleted file mode 100644
index 083b604a06d..00000000000
--- a/packages/js/internal-style-build/changelog/add-require-turbo
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: dev
-Comment: This PR updates repository tooling and doesn't require a changelog entry.
-
-
diff --git a/packages/js/internal-style-build/changelog/bump-a8c-color-studio-version b/packages/js/internal-style-build/changelog/bump-a8c-color-studio-version
deleted file mode 100644
index b381b3b550a..00000000000
--- a/packages/js/internal-style-build/changelog/bump-a8c-color-studio-version
+++ /dev/null
@@ -1,5 +0,0 @@
-Significance: patch
-Type: dev
-Comment: Update the A8c color studio package to version 4.0.0 to use the latest Woo branding.
-
-
diff --git a/packages/js/internal-style-build/changelog/enhancement-35565 b/packages/js/internal-style-build/changelog/enhancement-35565
deleted file mode 100644
index c69b2129169..00000000000
--- a/packages/js/internal-style-build/changelog/enhancement-35565
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: enhancement
-
-Add updated versions of screen-reader-only and not-screen-reader-only mixins
diff --git a/packages/js/internal-style-build/changelog/enhancement-46501 b/packages/js/internal-style-build/changelog/enhancement-46501
deleted file mode 100644
index 8ad44e6ac3d..00000000000
--- a/packages/js/internal-style-build/changelog/enhancement-46501
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: minor
-Type: performance
-
-Remove duplicate css code from any woo scss file
diff --git a/packages/js/internal-style-build/changelog/fix-standardize-lint-monorepo b/packages/js/internal-style-build/changelog/fix-standardize-lint-monorepo
deleted file mode 100644
index 684cc6c8fd3..00000000000
--- a/packages/js/internal-style-build/changelog/fix-standardize-lint-monorepo
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: dev
-
-Standardize lint scripts: add lint:fix
diff --git a/packages/js/internal-style-build/changelog/sprinkle-adminbar-height-from-base-styles b/packages/js/internal-style-build/changelog/sprinkle-adminbar-height-from-base-styles
deleted file mode 100644
index 4008260ff21..00000000000
--- a/packages/js/internal-style-build/changelog/sprinkle-adminbar-height-from-base-styles
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: tweak
-
-Alias the four WordPress-defaults SCSS variables ($adminbar-height, $adminbar-height-mobile, $admin-menu-width, $admin-menu-width-collapsed) to their @wordpress/base-styles equivalents instead of hardcoding raw px values, so they track Core automatically.
diff --git a/packages/js/internal-style-build/changelog/sprinkle-header-tokens-alignment b/packages/js/internal-style-build/changelog/sprinkle-header-tokens-alignment
deleted file mode 100644
index b64d30fa88a..00000000000
--- a/packages/js/internal-style-build/changelog/sprinkle-header-tokens-alignment
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: tweak
-
-Rewrite `$header-scroll-shadow` to a 4-layer subtle drop matching Gutenberg's `--wpds-elevation-xs` aesthetic, replacing the previous single heavy rgba shadow.
diff --git a/packages/js/internal-style-build/changelog/update-wp-68-packages b/packages/js/internal-style-build/changelog/update-wp-68-packages
deleted file mode 100644
index 866d7f6ed70..00000000000
--- a/packages/js/internal-style-build/changelog/update-wp-68-packages
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: major
-Type: update
-
-Update @wordpress/* dependencies to wp-6.8 minimum.
diff --git a/packages/js/internal-style-build/package.json b/packages/js/internal-style-build/package.json
deleted file mode 100644
index 998fa29bbd0..00000000000
--- a/packages/js/internal-style-build/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "name": "@woocommerce/internal-style-build",
- "version": "1.0.0",
- "description": "WooCommerce Components SASS Build",
- "author": "Automattic",
- "license": "GPL-2.0-or-later",
- "engines": {
- "node": "^24.15.0"
- },
- "keywords": [
- "wordpress",
- "woocommerce"
- ],
- "homepage": "https://github.com/woocommerce/woocommerce/tree/trunk/packages/js/internal-style-build/README.md",
- "repository": {
- "type": "git",
- "url": "https://github.com/woocommerce/woocommerce.git"
- },
- "bugs": {
- "url": "https://github.com/woocommerce/woocommerce/issues"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "webpack-rtl-plugin.js",
- "style-asset-plugin.js",
- "abstracts"
- ],
- "scripts": {
- "lint": "pnpm --if-present '/^lint:lang:.*$/'",
- "lint:fix": "pnpm --if-present '/^lint:fix:lang:.*$/'",
- "lint:fix:lang:js": "eslint index.js --fix",
- "lint:lang:js": "eslint index.js"
- },
- "lint-staged": {
- "*.(t|j)s?(x)": [
- "pnpm lint:fix"
- ]
- },
- "dependencies": {
- "@automattic/color-studio": "^4.0.0",
- "@wordpress/base-styles": "catalog:wp-min",
- "@wordpress/postcss-plugins-preset": "next",
- "css-loader": "6.11.x",
- "fork-ts-checker-webpack-plugin": "9.0.x",
- "json2php": "^0.0.7",
- "mini-css-extract-plugin": "2.9.x",
- "postcss-loader": "4.3.x",
- "rtlcss": "4.3.x",
- "sass-loader": "10.5.x",
- "webpack-remove-empty-scripts": "1.0.x"
- },
- "private": true,
- "devDependencies": {
- "@babel/core": "7.25.7",
- "@woocommerce/eslint-plugin": "workspace:*",
- "eslint": "^8.55.0",
- "jest": "29.5.x",
- "jest-cli": "29.5.x",
- "rimraf": "5.0.5",
- "ts-jest": "29.1.x",
- "typescript": "5.7.x",
- "webpack": "5.97.x"
- },
- "config": {
- "ci": {
- "lint": {
- "command": "lint",
- "changes": "index.js"
- }
- }
- }
-}
diff --git a/packages/js/internal-ts-config/.gitignore b/packages/js/internal-ts-config/.gitignore
deleted file mode 100644
index 9f34ba92cf6..00000000000
--- a/packages/js/internal-ts-config/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# Auto-generated by scripts/generate-types.mjs — only the .patch file is committed.
-types/@wordpress/block-editor/
-types/@wordpress/core-data/
-types/@wordpress/data/
-types/@wordpress/editor/
-types/@wordpress/notices/
diff --git a/packages/js/internal-ts-config/changelog/64838-dev-esbuild-package-builds b/packages/js/internal-ts-config/changelog/64838-dev-esbuild-package-builds
deleted file mode 100644
index ce3980e55d8..00000000000
--- a/packages/js/internal-ts-config/changelog/64838-dev-esbuild-package-builds
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: dev
-
-Inlined the wireit-wrapped types generator command into the build script.
diff --git a/packages/js/internal-ts-config/changelog/dev-64837-type-check-only-on-lint b/packages/js/internal-ts-config/changelog/dev-64837-type-check-only-on-lint
deleted file mode 100644
index 8185199ba80..00000000000
--- a/packages/js/internal-ts-config/changelog/dev-64837-type-check-only-on-lint
+++ /dev/null
@@ -1,4 +0,0 @@
-Significance: patch
-Type: dev
-
-Add postinstall hook so that generated `@wordpress/*` type declarations exist immediately after a fresh install.
diff --git a/packages/js/internal-ts-config/package.json b/packages/js/internal-ts-config/package.json
deleted file mode 100644
index 1f1d7bbe673..00000000000
--- a/packages/js/internal-ts-config/package.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "@woocommerce/internal-ts-config",
- "version": "1.0.0",
- "description": "Shared TypeScript configuration and typings for the WooCommerce monorepo.",
- "author": "Automattic",
- "license": "GPL-2.0-or-later",
- "engines": {
- "node": "^24.15.0"
- },
- "private": true,
- "files": [
- "tsconfig.json",
- "tsconfig-cjs.json",
- "tsconfig-jest.json",
- "types"
- ],
- "scripts": {
- "build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
- "build:project:types": "node scripts/generate-types.mjs generate",
- "postinstall": "pnpm build:project:types",
- "types:update-patch": "node scripts/generate-types.mjs update-patch"
- },
- "devDependencies": {
- "@types/wordpress__block-editor": "14.21.8",
- "@wordpress/core-data": "7.19.6",
- "@wordpress/data": "10.19.2",
- "@wordpress/editor": "14.19.7",
- "@wordpress/notices": "5.19.2",
- "typescript": "5.7.x"
- }
-}
diff --git a/packages/js/internal-ts-config/tsconfig-cjs.json b/packages/js/internal-ts-config/tsconfig-cjs.json
deleted file mode 100644
index 77e611d145a..00000000000
--- a/packages/js/internal-ts-config/tsconfig-cjs.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "module": "commonjs",
- "declaration": false,
- "declarationMap": false,
- "declarationDir": null
- }
-}
diff --git a/packages/js/internal-ts-config/tsconfig-jest.json b/packages/js/internal-ts-config/tsconfig-jest.json
deleted file mode 100644
index c1764ea37f7..00000000000
--- a/packages/js/internal-ts-config/tsconfig-jest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "extends": "./tsconfig-cjs.json",
- "compilerOptions": {
- "jsx": "react-jsx"
- }
-}
diff --git a/packages/js/navigation/build.mjs b/packages/js/navigation/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/navigation/build.mjs
+++ b/packages/js/navigation/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/navigation/package.json b/packages/js/navigation/package.json
index 44d6ff8312b..915078960d0 100644
--- a/packages/js/navigation/package.json
+++ b/packages/js/navigation/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.js",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,10 +39,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -73,7 +81,14 @@
"lodash": "^4.17.0"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"devDependencies": {
"@babel/core": "7.25.7",
@@ -81,12 +96,9 @@
"@types/jest": "29.5.x",
"@types/qs": "^6.9.10",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/navigation/tsconfig-cjs.json b/packages/js/navigation/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/navigation/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/navigation/tsconfig.json b/packages/js/navigation/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/navigation/tsconfig.json
+++ b/packages/js/navigation/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/notices/build.mjs b/packages/js/notices/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/notices/build.mjs
+++ b/packages/js/notices/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/notices/package.json b/packages/js/notices/package.json
index 1bcd7764e9d..999e4e9b9cb 100644
--- a/packages/js/notices/package.json
+++ b/packages/js/notices/package.json
@@ -21,9 +21,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -32,10 +40,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -67,18 +75,22 @@
"react-dom": "18.3.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"private": true,
"devDependencies": {
"@babel/core": "7.25.7",
"@types/lodash": "^4.14.202",
"@woocommerce/eslint-plugin": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
+ "@woocommerce/internal-build": "workspace:*",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"redux": "^4.2.1",
diff --git a/packages/js/notices/tsconfig-cjs.json b/packages/js/notices/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/notices/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/notices/tsconfig.json b/packages/js/notices/tsconfig.json
index f4ce33ca5b8..c1f3e6716e8 100644
--- a/packages/js/notices/tsconfig.json
+++ b/packages/js/notices/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/notices/typings/monorepo-enhancements.d.ts b/packages/js/notices/typings/monorepo-enhancements.d.ts
index dc453ab911e..8d3d6bdc1e4 100644
--- a/packages/js/notices/typings/monorepo-enhancements.d.ts
+++ b/packages/js/notices/typings/monorepo-enhancements.d.ts
@@ -1 +1 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
diff --git a/packages/js/number/build.mjs b/packages/js/number/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/number/build.mjs
+++ b/packages/js/number/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/number/package.json b/packages/js/number/package.json
index a4a1cb30a47..3031725e584 100644
--- a/packages/js/number/package.json
+++ b/packages/js/number/package.json
@@ -19,9 +19,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -32,14 +40,21 @@
"locutus": "^3.0.14"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -61,12 +76,9 @@
"@types/jest": "29.5.x",
"@types/lodash": "^4.14.202",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/number/tsconfig-cjs.json b/packages/js/number/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/number/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/number/tsconfig.json b/packages/js/number/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/number/tsconfig.json
+++ b/packages/js/number/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/onboarding/build.mjs b/packages/js/onboarding/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/onboarding/build.mjs
+++ b/packages/js/onboarding/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/onboarding/package.json b/packages/js/onboarding/package.json
index b3570ee08f4..231e605db6e 100644
--- a/packages/js/onboarding/package.json
+++ b/packages/js/onboarding/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -32,11 +40,11 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -80,15 +88,11 @@
"@types/react": "18.3.x",
"@types/string-similarity": "4.0.0",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -102,7 +106,14 @@
"webpack-cli": "5.1.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"config": {
"ci": {
diff --git a/packages/js/onboarding/tsconfig-cjs.json b/packages/js/onboarding/tsconfig-cjs.json
deleted file mode 100644
index 247b557c04c..00000000000
--- a/packages/js/onboarding/tsconfig-cjs.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**",
- "**/stories/**"
- ]
-}
diff --git a/packages/js/onboarding/tsconfig.json b/packages/js/onboarding/tsconfig.json
index 5072b058f70..f27f4fd28ed 100644
--- a/packages/js/onboarding/tsconfig.json
+++ b/packages/js/onboarding/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/onboarding/typings/monorepo-enhancements.d.ts b/packages/js/onboarding/typings/monorepo-enhancements.d.ts
index dc453ab911e..8d3d6bdc1e4 100644
--- a/packages/js/onboarding/typings/monorepo-enhancements.d.ts
+++ b/packages/js/onboarding/typings/monorepo-enhancements.d.ts
@@ -1 +1 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
diff --git a/packages/js/onboarding/webpack.config.js b/packages/js/onboarding/webpack.config.js
index 9d696e6b37f..0f8dbd47654 100644
--- a/packages/js/onboarding/webpack.config.js
+++ b/packages/js/onboarding/webpack.config.js
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-const { webpackConfig } = require( '@woocommerce/internal-style-build' );
+const { webpackConfig } = require( '@woocommerce/internal-build/style-build' );
/**
* External dependencies
@@ -22,7 +22,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/product-editor/build.mjs b/packages/js/product-editor/build.mjs
index 09753307811..781434f810b 100644
--- a/packages/js/product-editor/build.mjs
+++ b/packages/js/product-editor/build.mjs
@@ -1,125 +1,6 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { copyFile, mkdir, rm } from 'node:fs/promises';
-import { dirname, join, relative } from 'node:path';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-const BLOCK_JSON_GLOB = 'src/**/block.json';
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-// block.json files are runtime-imported by src/blocks/**/index.ts. esbuild in
-// transpile mode preserves the `import './block.json'` statements as-is, so
-// the .json files must sit next to the emitted .js for those imports to
-// resolve.
-async function copyBlockJson() {
- for ( const src of await glob( BLOCK_JSON_GLOB ) ) {
- const dest = join( outdir, relative( 'src', src ) );
- await mkdir( dirname( dest ), { recursive: true } );
- await copyFile( src, dest );
- }
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- await safe( 'startup block.json copy', copyBlockJson );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- await copyBlockJson();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( [ ENTRY_GLOB, BLOCK_JSON_GLOB ], { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( path.endsWith( '.json' ) ) await safe( 'block.json copy', copyBlockJson );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- await copyBlockJson();
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( {
+ entryPoints: 'src/**/*.{ts,tsx,js,jsx}',
+ assets: [ 'src/**/block.json' ],
+} );
diff --git a/packages/js/product-editor/package.json b/packages/js/product-editor/package.json
index 148d26271cb..9de870f6455 100644
--- a/packages/js/product-editor/package.json
+++ b/packages/js/product-editor/package.json
@@ -16,9 +16,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -31,7 +39,14 @@
"src/**/*.scss"
],
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"dependencies": {
"@types/lodash": "^4.14.202",
@@ -96,17 +111,13 @@
"@types/wordpress__blocks": "catalog:wp-min",
"@types/wordpress__edit-post": "catalog:wp-min",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/block-editor": "catalog:wp-min",
"@wordpress/browserslist-config": "next",
- "chokidar": "3.6.x",
"copy-webpack-plugin": "13.0.x",
"css-loader": "6.11.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -126,9 +137,9 @@
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:bundle": "NODE_ENV=production webpack",
- "build:project:cjs": "node build.mjs --cjs",
+ "build:project:cjs": "node build.mjs --commonjs",
"build:project:esm": "node build.mjs",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
"lint": "pnpm --if-present '/^lint:lang:.*$/'",
@@ -143,7 +154,7 @@
"watch:build": "pnpm --if-present --workspace-concurrency=Infinity --filter=\"$npm_package_name...\" --parallel '/^watch:build:project:.*$/'",
"watch:build:project": "pnpm --if-present run '/^watch:build:project:.*$/'",
"watch:build:project:bundle": "NODE_ENV=development webpack --watch",
- "watch:build:project:cjs": "node build.mjs --cjs --watch",
+ "watch:build:project:cjs": "node build.mjs --commonjs --watch",
"watch:build:project:esm": "node build.mjs --watch"
},
"peerDependencies": {
diff --git a/packages/js/product-editor/tsconfig-cjs.json b/packages/js/product-editor/tsconfig-cjs.json
deleted file mode 100644
index fa37ff1c0b4..00000000000
--- a/packages/js/product-editor/tsconfig-cjs.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "noCheck": false,
- "resolveJsonModule": true,
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**",
- "**/stories/**"
- ]
-}
diff --git a/packages/js/product-editor/tsconfig.json b/packages/js/product-editor/tsconfig.json
index 535464397c8..76fe9472c41 100644
--- a/packages/js/product-editor/tsconfig.json
+++ b/packages/js/product-editor/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/product-editor/typings/monorepo-enhancements.d.ts b/packages/js/product-editor/typings/monorepo-enhancements.d.ts
index 696161e42a5..96d21882977 100644
--- a/packages/js/product-editor/typings/monorepo-enhancements.d.ts
+++ b/packages/js/product-editor/typings/monorepo-enhancements.d.ts
@@ -1,5 +1,5 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
-import '@woocommerce/internal-ts-config/types/@wordpress/block-editor';
-import '@woocommerce/internal-ts-config/types/@wordpress/editor';
-import '@woocommerce/internal-ts-config/types/@wordpress/notices';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/block-editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/notices';
diff --git a/packages/js/product-editor/webpack.config.js b/packages/js/product-editor/webpack.config.js
index 0eb9535e071..1d29a3e722f 100644
--- a/packages/js/product-editor/webpack.config.js
+++ b/packages/js/product-editor/webpack.config.js
@@ -13,7 +13,7 @@ const {
plugin,
StyleAssetPlugin,
WebpackRTLPlugin,
-} = require( '@woocommerce/internal-style-build' );
+} = require( '@woocommerce/internal-build/style-build' );
const {
blockEntryPoints,
getBlockMetaData,
@@ -34,7 +34,7 @@ module.exports = {
config: [
__filename,
path.resolve( __dirname, '../../../pnpm-lock.yaml' ),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve( '@woocommerce/internal-build/style-build' ),
],
},
},
diff --git a/packages/js/remote-logging/build.mjs b/packages/js/remote-logging/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/remote-logging/build.mjs
+++ b/packages/js/remote-logging/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/remote-logging/package.json b/packages/js/remote-logging/package.json
index 453032afc84..e16b53fa9c4 100644
--- a/packages/js/remote-logging/package.json
+++ b/packages/js/remote-logging/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"files": [
"build",
"build-module",
@@ -30,10 +38,10 @@
],
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -67,13 +75,10 @@
"@types/jest": "29.5.x",
"@types/node": "^24.1.0",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/jest-console": "^5.4.0",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -82,7 +87,14 @@
"typescript": "5.7.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"config": {
"ci": {
diff --git a/packages/js/remote-logging/tsconfig-cjs.json b/packages/js/remote-logging/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/remote-logging/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/remote-logging/tsconfig.json b/packages/js/remote-logging/tsconfig.json
index 5ebf3e08a8a..5366adbfc4b 100644
--- a/packages/js/remote-logging/tsconfig.json
+++ b/packages/js/remote-logging/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/packages/js/sanitize/build.mjs b/packages/js/sanitize/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/sanitize/build.mjs
+++ b/packages/js/sanitize/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/sanitize/package.json b/packages/js/sanitize/package.json
index a93d13c35e6..a9500688d4c 100644
--- a/packages/js/sanitize/package.json
+++ b/packages/js/sanitize/package.json
@@ -2,6 +2,14 @@
"name": "@woocommerce/sanitize",
"version": "1.0.0",
"description": "WooCommerce HTML sanitization utilities.",
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
"types": "build-types/index.d.ts",
@@ -38,13 +46,10 @@
"@types/jest": "29.5.x",
"@types/trusted-types": "^2.0.7",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@wordpress/scripts": "^27.0.0",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -59,14 +64,21 @@
"react-dom": "18.3.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
diff --git a/packages/js/sanitize/tsconfig-cjs.json b/packages/js/sanitize/tsconfig-cjs.json
deleted file mode 100644
index b9a31b8c427..00000000000
--- a/packages/js/sanitize/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/sanitize/tsconfig.json b/packages/js/sanitize/tsconfig.json
index 344c7e4527e..a6eed2b6ec5 100644
--- a/packages/js/sanitize/tsconfig.json
+++ b/packages/js/sanitize/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/settings-ui-sdk/build.mjs b/packages/js/settings-ui-sdk/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/settings-ui-sdk/build.mjs
+++ b/packages/js/settings-ui-sdk/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/settings-ui-sdk/package.json b/packages/js/settings-ui-sdk/package.json
index 01e7899ce93..5a8a32c949d 100644
--- a/packages/js/settings-ui-sdk/package.json
+++ b/packages/js/settings-ui-sdk/package.json
@@ -17,9 +17,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -38,12 +46,9 @@
"@types/jest": "29.5.x",
"@types/react": "18.3.x",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
@@ -57,14 +62,21 @@
"react-dom": "18.3.x"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"lint": "pnpm --if-present '/^lint:lang:.*$/'",
diff --git a/packages/js/settings-ui-sdk/tsconfig-cjs.json b/packages/js/settings-ui-sdk/tsconfig-cjs.json
deleted file mode 100644
index 78af0d193db..00000000000
--- a/packages/js/settings-ui-sdk/tsconfig-cjs.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [ "./node_modules/@types" ]
- },
- "include": [ "src/**/*" ],
- "exclude": [ "**/test/**" ]
-}
diff --git a/packages/js/settings-ui-sdk/tsconfig.json b/packages/js/settings-ui-sdk/tsconfig.json
index aaf85323f16..3a58bca52cf 100644
--- a/packages/js/settings-ui-sdk/tsconfig.json
+++ b/packages/js/settings-ui-sdk/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"noCheck": false,
diff --git a/packages/js/tracks/build.mjs b/packages/js/tracks/build.mjs
index 746bc61fc4b..2d76d01222e 100644
--- a/packages/js/tracks/build.mjs
+++ b/packages/js/tracks/build.mjs
@@ -1,112 +1,3 @@
-import { build, context } from 'esbuild';
-import { glob } from 'glob';
-import { rm } from 'node:fs/promises';
-import chokidar from 'chokidar';
+import { runPackageBuilder } from '@woocommerce/internal-build';
-const watch = process.argv.includes( '--watch' );
-const format = process.argv.includes( '--cjs' ) ? 'cjs' : 'esm';
-const outdir = format === 'cjs' ? 'build' : 'build-module';
-
-const ENTRY_GLOB = 'src/**/*.{ts,tsx,js,jsx}';
-const ENTRY_IGNORE = [
- '**/test/**',
- '**/stories/**',
- '**/*.test.{ts,tsx,js,jsx}',
- '**/*.d.ts',
-];
-
-async function resolveEntryPoints() {
- return glob( ENTRY_GLOB, { ignore: ENTRY_IGNORE } );
-}
-
-function makeOptions( entryPoints ) {
- return {
- entryPoints,
- outdir,
- outbase: 'src',
- bundle: false,
- format,
- platform: 'neutral',
- target: 'esnext',
- loader: { '.js': 'jsx', '.jsx': 'jsx', '.ts': 'ts', '.tsx': 'tsx' },
- jsx: 'transform',
- jsxFactory: 'createElement',
- jsxFragment: 'Fragment',
- logLevel: 'warning',
- sourcemap: false,
- };
-}
-
-function summarize( result ) {
- const errors = result.errors.length;
- const warnings = result.warnings.length;
- const parts = [];
- if ( errors ) parts.push( `${ errors } error(s)` );
- if ( warnings ) parts.push( `${ warnings } warning(s)` );
- return parts.length ? ` — ${ parts.join( ', ' ) }` : '';
-}
-
-// Wrap a watch-mode step so a single failure (disk error, build crash, etc.)
-// doesn't take the watcher process down. Errors are surfaced; the loop survives.
-async function safe( label, fn ) {
- try {
- return await fn();
- } catch ( error ) {
- console.error( `[watch] ${ label } failed:`, error?.message ?? error );
- return null;
- }
-}
-
-await rm( outdir, { recursive: true, force: true } );
-
-if ( watch ) {
- const startupT0 = Date.now();
- let entryPoints = await resolveEntryPoints();
- let ctx = await context( makeOptions( entryPoints ) );
- const initial = await safe( 'startup build', () => ctx.rebuild() );
- console.log( `[watch] ready in ${ Date.now() - startupT0 }ms — ${ entryPoints.length } entry point(s)${ initial ? summarize( initial ) : '' }` );
-
- // esbuild's own watcher polls the filesystem, which can miss or delay
- // changes (especially edits to files added after context creation).
- // chokidar uses OS-level events (fsevents/inotify) and drives rebuilds
- // directly: changes call ctx.rebuild() (preserves the AST cache),
- // add/unlink trigger a debounced context restart (entry list changed).
- let pending;
- const pendingChanges = new Set();
- const restart = ( path, kind ) => {
- pendingChanges.add( `${ path } (${ kind })` );
- clearTimeout( pending );
- pending = setTimeout( () => safe( 'restart', async () => {
- const changes = [ ...pendingChanges ];
- pendingChanges.clear();
- const preview = changes.slice( 0, 3 ).join( ', ' );
- const suffix = changes.length > 3 ? `, +${ changes.length - 3 } more` : '';
- console.log( `[watch] restarting (${ preview }${ suffix })` );
- const t0 = Date.now();
- await ctx.dispose();
- await rm( outdir, { recursive: true, force: true } );
- entryPoints = await resolveEntryPoints();
- ctx = await context( makeOptions( entryPoints ) );
- const result = await ctx.rebuild();
- console.log( `[watch] rebuilt in ${ Date.now() - t0 }ms — ${ entryPoints.length } entry point(s)${ summarize( result ) }` );
- } ), 200 );
- };
-
- chokidar
- .watch( ENTRY_GLOB, { ignored: ENTRY_IGNORE, ignoreInitial: true } )
- .on( 'add', ( path ) => restart( path, 'added' ) )
- .on( 'unlink', ( path ) => restart( path, 'deleted' ) )
- .on( 'change', async ( path ) => {
- const t0 = Date.now();
- const result = await safe( `rebuild ${ path }`, () => ctx.rebuild() );
- if ( result ) {
- console.log( `[watch] rebuilt ${ path } in ${ Date.now() - t0 }ms${ summarize( result ) }` );
- }
- } );
-} else {
- const entryPoints = await resolveEntryPoints();
- const t0 = Date.now();
- console.log( `[build] ${ entryPoints.length } entry point(s)...` );
- const result = await build( makeOptions( entryPoints ) );
- console.log( `[build] done in ${ Date.now() - t0 }ms${ summarize( result ) }` );
-}
+await runPackageBuilder( { entryPoints: 'src/**/*.{ts,tsx,js,jsx}' } );
diff --git a/packages/js/tracks/package.json b/packages/js/tracks/package.json
index c4910f1bb6a..5f526f5af19 100644
--- a/packages/js/tracks/package.json
+++ b/packages/js/tracks/package.json
@@ -20,9 +20,17 @@
"bugs": {
"url": "https://github.com/woocommerce/woocommerce/issues"
},
+ "exports": {
+ ".": {
+ "wc-source": "./src/index.ts",
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ },
"main": "build/index.js",
"module": "build-module/index.js",
- "types": "build-types",
+ "types": "build-types/index.d.ts",
"react-native": "src/index",
"files": [
"build",
@@ -33,14 +41,21 @@
"debug": "^4.3.4"
},
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "exports": {
+ ".": {
+ "types": "./build-types/index.d.ts",
+ "import": "./build-module/index.js",
+ "require": "./build/index.js"
+ }
+ }
},
"scripts": {
"build": "pnpm --if-present --workspace-concurrency=Infinity --stream --filter=\"$npm_package_name...\" '/^build:project:.*$/'",
- "build:project": "pnpm --if-present '/^build:project:.*$/'",
+ "build:project": "pnpm --stream --if-present '/^build:project:.*$/'",
"build:project:esm": "node build.mjs",
"build:publish:project": "pnpm --if-present '/^build:publish:project:.*$/'",
- "build:publish:project:cjs": "node build.mjs --cjs",
+ "build:publish:project:cjs": "node build.mjs --commonjs",
"build:publish:project:types": "tsc --build --emitDeclarationOnly",
"build:publish:project:deps": "pnpm build",
"changelog": "XDEBUG_MODE=off composer install --quiet && composer exec -- changelogger",
@@ -62,12 +77,9 @@
"@types/jest": "29.5.x",
"@types/node": "^24.1.0",
"@woocommerce/eslint-plugin": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
- "chokidar": "3.6.x",
- "esbuild": "0.24.x",
"eslint": "^8.55.0",
- "glob": "^10.3.10",
"jest": "29.5.x",
"jest-cli": "29.5.x",
"jest-environment-jsdom": "29.5.x",
diff --git a/packages/js/tracks/tsconfig-cjs.json b/packages/js/tracks/tsconfig-cjs.json
deleted file mode 100644
index 5a4f74e214d..00000000000
--- a/packages/js/tracks/tsconfig-cjs.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "compilerOptions": {
- "rootDir": "src",
- "outDir": "build",
- "typeRoots": [
- "./typings",
- "./node_modules/@types"
- ]
- },
- "include": [
- "typings/**/*",
- "src/**/*"
- ],
- "exclude": [
- "**/test/**"
- ]
-}
diff --git a/packages/js/tracks/tsconfig.json b/packages/js/tracks/tsconfig.json
index 2cb6f5a848f..be24cae4c13 100644
--- a/packages/js/tracks/tsconfig.json
+++ b/packages/js/tracks/tsconfig.json
@@ -1,5 +1,5 @@
{
- "extends": "@woocommerce/internal-ts-config/tsconfig.json",
+ "extends": "@woocommerce/internal-build/configs/tsconfig.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "build-module",
diff --git a/plugins/woocommerce/client/admin/client/homescreen/mobile-app-modal/components/useJetpackPluginState.tsx b/plugins/woocommerce/client/admin/client/homescreen/mobile-app-modal/components/useJetpackPluginState.tsx
index 928e768cd59..fe2b63a5e00 100644
--- a/plugins/woocommerce/client/admin/client/homescreen/mobile-app-modal/components/useJetpackPluginState.tsx
+++ b/plugins/woocommerce/client/admin/client/homescreen/mobile-app-modal/components/useJetpackPluginState.tsx
@@ -4,7 +4,6 @@
import { useState, useEffect, useCallback } from '@wordpress/element';
import { useSelect, useDispatch } from '@wordpress/data';
import { pluginsStore, useUser } from '@woocommerce/data';
-import { createErrorNotice } from '@woocommerce/data/src/plugins/actions';
export const JetpackPluginStates = {
/** Jetpack plugin is not installed, can use installHandler() to install */
@@ -53,6 +52,7 @@ export const useJetpackPluginState = () => {
);
const { installJetpackAndConnect } = useDispatch( pluginsStore );
+ const { createErrorNotice } = useDispatch( 'core/notices' );
const [ pluginState, setPluginState ] = useState< JetpackPluginStates >(
JetpackPluginStates.INITIALIZING
@@ -68,7 +68,7 @@ export const useJetpackPluginState = () => {
() => thisUrl + '&jetpackState=returning'
);
setPluginState( JetpackPluginStates.INSTALLING );
- }, [ installJetpackAndConnect ] );
+ }, [ installJetpackAndConnect, createErrorNotice ] );
useEffect( () => {
if ( ! canUserInstallPlugins ) {
diff --git a/plugins/woocommerce/client/admin/client/homescreen/stats-overview/install-jetpack-cta.js b/plugins/woocommerce/client/admin/client/homescreen/stats-overview/install-jetpack-cta.js
index c5e06fecdb4..ba766d9633a 100644
--- a/plugins/woocommerce/client/admin/client/homescreen/stats-overview/install-jetpack-cta.js
+++ b/plugins/woocommerce/client/admin/client/homescreen/stats-overview/install-jetpack-cta.js
@@ -8,7 +8,6 @@ import { pluginsStore, useUser, useUserPreferences } from '@woocommerce/data';
import { H } from '@woocommerce/components';
import { recordEvent } from '@woocommerce/tracks';
import { getAdminLink } from '@woocommerce/settings';
-import { createErrorNotice } from '@woocommerce/data/src/plugins/actions';
const getJetpackInstallText = ( jetpackInstallState ) => {
return (
@@ -89,6 +88,7 @@ export const InstallJetpackCTA = () => {
);
const { installJetpackAndConnect } = useDispatch( pluginsStore );
+ const { createErrorNotice } = useDispatch( 'core/notices' );
if ( ! canUserInstallPlugins ) {
return null;
diff --git a/plugins/woocommerce/client/admin/client/settings-payments/components/buttons/test/enable-gateway-button.test.tsx b/plugins/woocommerce/client/admin/client/settings-payments/components/buttons/test/enable-gateway-button.test.tsx
index 6a53c4127c7..806081f3e35 100644
--- a/plugins/woocommerce/client/admin/client/settings-payments/components/buttons/test/enable-gateway-button.test.tsx
+++ b/plugins/woocommerce/client/admin/client/settings-payments/components/buttons/test/enable-gateway-button.test.tsx
@@ -21,6 +21,7 @@ jest.mock( '@woocommerce/data', () => ( {
} ) );
jest.mock( '@wordpress/data', () => ( {
+ ...jest.requireActual( '@wordpress/data' ),
dispatch: jest.fn( () => ( {
createErrorNotice: mockCreateErrorNotice,
} ) ),
diff --git a/plugins/woocommerce/client/admin/client/typings/monorepo-enhancements.d.ts b/plugins/woocommerce/client/admin/client/typings/monorepo-enhancements.d.ts
index 0672096c4ba..df7b2aa1306 100644
--- a/plugins/woocommerce/client/admin/client/typings/monorepo-enhancements.d.ts
+++ b/plugins/woocommerce/client/admin/client/typings/monorepo-enhancements.d.ts
@@ -1,3 +1,3 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
-import '@woocommerce/internal-ts-config/types/@wordpress/editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/editor';
diff --git a/plugins/woocommerce/client/admin/package.json b/plugins/woocommerce/client/admin/package.json
index 4eb56a73d92..2f03e67f8e2 100644
--- a/plugins/woocommerce/client/admin/package.json
+++ b/plugins/woocommerce/client/admin/package.json
@@ -160,9 +160,8 @@
"@woocommerce/dependency-extraction-webpack-plugin": "workspace:*",
"@woocommerce/eslint-plugin": "workspace:*",
"@woocommerce/experimental-products-app": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/internal-js-tests": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
- "@woocommerce/internal-ts-config": "workspace:*",
"@woocommerce/notices": "workspace:*",
"@wordpress/babel-preset-default": "next",
"@wordpress/block-editor": "catalog:wp-min",
@@ -347,17 +346,15 @@
"node_modules/@woocommerce/experimental-products-app/build",
"node_modules/@woocommerce/experimental-products-app/build-style",
"node_modules/@woocommerce/experimental-products-app/build-types",
+ "node_modules/@woocommerce/internal-build/build-types",
+ "node_modules/@woocommerce/internal-build/configs",
+ "node_modules/@woocommerce/internal-build/src/style-build",
+ "node_modules/@woocommerce/internal-build/styles",
+ "node_modules/@woocommerce/internal-build/type-overrides",
+ "node_modules/@woocommerce/internal-build/scripts",
"node_modules/@woocommerce/internal-js-tests/build",
- "node_modules/@woocommerce/internal-js-tests/build-module",
+ "node_modules/@woocommerce/internal-js-tests/build-types",
"node_modules/@woocommerce/internal-js-tests/jest-preset.js",
- "node_modules/@woocommerce/internal-style-build/index.js",
- "node_modules/@woocommerce/internal-style-build/webpack-rtl-plugin.js",
- "node_modules/@woocommerce/internal-style-build/style-asset-plugin.js",
- "node_modules/@woocommerce/internal-style-build/abstracts",
- "node_modules/@woocommerce/internal-ts-config/tsconfig.json",
- "node_modules/@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "node_modules/@woocommerce/internal-ts-config/tsconfig-jest.json",
- "node_modules/@woocommerce/internal-ts-config/types",
"node_modules/@woocommerce/notices/build",
"node_modules/@woocommerce/notices/build-types"
]
diff --git a/plugins/woocommerce/client/admin/webpack.config.js b/plugins/woocommerce/client/admin/webpack.config.js
index 9e96f337171..46346bb4b20 100644
--- a/plugins/woocommerce/client/admin/webpack.config.js
+++ b/plugins/woocommerce/client/admin/webpack.config.js
@@ -16,7 +16,7 @@ const CustomTemplatedPathPlugin = require( './bin/custom-templated-path-webpack-
const UnminifyWebpackPlugin = require( './bin/unminify-webpack-plugin.js' );
const {
webpackConfig: styleConfig,
-} = require( '@woocommerce/internal-style-build' );
+} = require( '@woocommerce/internal-build/style-build' );
const WooCommerceDependencyExtractionWebpackPlugin = require( '@woocommerce/dependency-extraction-webpack-plugin/src/index' );
const NODE_ENV = process.env.NODE_ENV || 'development';
@@ -106,7 +106,7 @@ const webpackConfig = {
'@woocommerce/dependency-extraction-webpack-plugin'
),
require.resolve(
- '@woocommerce/internal-style-build'
+ '@woocommerce/internal-build/style-build'
),
],
},
diff --git a/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js b/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
index 5a0eeee4004..e6ff03045cd 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-config-interactive-blocks.js
@@ -14,7 +14,9 @@ const RemoveFilesPlugin = require( './remove-files-webpack-plugin' );
*/
const DependencyExtractionWebpackPlugin = require( '@woocommerce/dependency-extraction-webpack-plugin' );
const FilesystemCacheWarningsPlugin = require( './filesystem-cache-warnings-webpack-plugin.js' );
-const { WebpackRTLPlugin } = require( '@woocommerce/internal-style-build' );
+const {
+ WebpackRTLPlugin,
+} = require( '@woocommerce/internal-build/style-build' );
const { sharedOptimizationConfig } = require( './webpack-shared-config' );
const {
scriptModuleEntries,
diff --git a/plugins/woocommerce/client/blocks/bin/webpack-configs.js b/plugins/woocommerce/client/blocks/bin/webpack-configs.js
index a863661681f..2d3f0d675b0 100644
--- a/plugins/woocommerce/client/blocks/bin/webpack-configs.js
+++ b/plugins/woocommerce/client/blocks/bin/webpack-configs.js
@@ -17,7 +17,9 @@ const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
*/
const DependencyExtractionWebpackPlugin = require( '@woocommerce/dependency-extraction-webpack-plugin' );
const FilesystemCacheWarningsPlugin = require( './filesystem-cache-warnings-webpack-plugin.js' );
-const { WebpackRTLPlugin } = require( '@woocommerce/internal-style-build' );
+const {
+ WebpackRTLPlugin,
+} = require( '@woocommerce/internal-build/style-build' );
const { getEntryConfig, genericBlocks } = require( './webpack-entries' );
const {
ASSET_CHECK,
diff --git a/plugins/woocommerce/client/blocks/docs/contributors/coding-guidelines.md b/plugins/woocommerce/client/blocks/docs/contributors/coding-guidelines.md
index 8e88ec7cac2..e435df629af 100644
--- a/plugins/woocommerce/client/blocks/docs/contributors/coding-guidelines.md
+++ b/plugins/woocommerce/client/blocks/docs/contributors/coding-guidelines.md
@@ -68,7 +68,7 @@ Naming is not strictly tied to the DOM so it **doesn’t matter how many nested
## RTL Styles
-Blocks uses the internal `@woocommerce/internal-style-build/webpack-rtl-plugin` package to generate styles for Right-to-Left languages. These are generated automatically.
+Blocks uses the internal `WebpackRTLPlugin` exported from `@woocommerce/internal-build/style-build` to generate styles for Right-to-Left languages. These are generated automatically.
To make adjustments to the generated RTL styles, for example, excluding certain rules from the RTL stylesheets, you should use the [control directives here](https://rtlcss.com/learn/usage-guide/control-directives/index.html).
diff --git a/plugins/woocommerce/client/blocks/docs/contributors/css-build-system.md b/plugins/woocommerce/client/blocks/docs/contributors/css-build-system.md
index 099d1c11727..8d1356d4b21 100644
--- a/plugins/woocommerce/client/blocks/docs/contributors/css-build-system.md
+++ b/plugins/woocommerce/client/blocks/docs/contributors/css-build-system.md
@@ -15,7 +15,7 @@ CSS files are built with Webpack, which gathers all SCSS files in the app and pr
## Right-to-left
-All files described above are generated in a LTR version and a RTL version. The RTL version is generated automatically with the internal `@woocommerce/internal-style-build/webpack-rtl-plugin` and has a `-rtl.css` suffix at the end of the file name.
+All files described above are generated in a LTR version and a RTL version. The RTL version is generated automatically with the internal `WebpackRTLPlugin` exported from `@woocommerce/internal-build/style-build` and has a `-rtl.css` suffix at the end of the file name.
## Relevant files
diff --git a/plugins/woocommerce/client/blocks/package.json b/plugins/woocommerce/client/blocks/package.json
index ba79699affe..5892487115c 100644
--- a/plugins/woocommerce/client/blocks/package.json
+++ b/plugins/woocommerce/client/blocks/package.json
@@ -104,7 +104,6 @@
},
"devDependencies": {
"@automattic/color-studio": "4.0.0",
- "@woocommerce/internal-ts-config": "workspace:*",
"@babel/cli": "7.25.7",
"@babel/core": "7.25.7",
"@babel/plugin-syntax-jsx": "7.25.7",
@@ -144,7 +143,7 @@
"@woocommerce/customer-effort-score": "workspace:*",
"@woocommerce/data": "workspace:*",
"@woocommerce/dependency-extraction-webpack-plugin": "workspace:*",
- "@woocommerce/internal-style-build": "workspace:*",
+ "@woocommerce/internal-build": "workspace:*",
"@woocommerce/eslint-plugin": "workspace:*",
"@wordpress/api-fetch": "catalog:wp-min",
"@wordpress/babel-preset-default": "next",
@@ -445,10 +444,6 @@
"node_modules/@woocommerce/sanitize/build-types",
"node_modules/@woocommerce/tracks/build",
"node_modules/@woocommerce/tracks/build-types",
- "node_modules/@woocommerce/internal-ts-config/tsconfig.json",
- "node_modules/@woocommerce/internal-ts-config/tsconfig-cjs.json",
- "node_modules/@woocommerce/internal-ts-config/tsconfig-jest.json",
- "node_modules/@woocommerce/internal-ts-config/types",
"node_modules/@woocommerce/customer-effort-score/build",
"node_modules/@woocommerce/customer-effort-score/build-style",
"node_modules/@woocommerce/customer-effort-score/build-types",
@@ -456,10 +451,12 @@
"node_modules/@woocommerce/data/build-types",
"node_modules/@woocommerce/dependency-extraction-webpack-plugin/src/",
"node_modules/@woocommerce/dependency-extraction-webpack-plugin/assets/",
- "node_modules/@woocommerce/internal-style-build/index.js",
- "node_modules/@woocommerce/internal-style-build/webpack-rtl-plugin.js",
- "node_modules/@woocommerce/internal-style-build/style-asset-plugin.js",
- "node_modules/@woocommerce/internal-style-build/abstracts",
+ "node_modules/@woocommerce/internal-build/build-types",
+ "node_modules/@woocommerce/internal-build/configs",
+ "node_modules/@woocommerce/internal-build/src/style-build",
+ "node_modules/@woocommerce/internal-build/styles",
+ "node_modules/@woocommerce/internal-build/type-overrides",
+ "node_modules/@woocommerce/internal-build/scripts",
"node_modules/@woocommerce/eslint-plugin/configs",
"node_modules/@woocommerce/eslint-plugin/rules",
"node_modules/@woocommerce/eslint-plugin/index.js"
diff --git a/plugins/woocommerce/client/blocks/typings/monorepo-enhancements.d.ts b/plugins/woocommerce/client/blocks/typings/monorepo-enhancements.d.ts
index 2000ac9d7b1..a7161ffdb4c 100644
--- a/plugins/woocommerce/client/blocks/typings/monorepo-enhancements.d.ts
+++ b/plugins/woocommerce/client/blocks/typings/monorepo-enhancements.d.ts
@@ -1,4 +1,4 @@
-import '@woocommerce/internal-ts-config/types/@wordpress/data';
-import '@woocommerce/internal-ts-config/types/@wordpress/core-data';
-import '@woocommerce/internal-ts-config/types/@wordpress/block-editor';
-import '@woocommerce/internal-ts-config/types/@wordpress/editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/core-data';
+import '@woocommerce/internal-build/type-overrides/@wordpress/block-editor';
+import '@woocommerce/internal-build/type-overrides/@wordpress/editor';
diff --git a/plugins/woocommerce/client/blocks/webpack.config.js b/plugins/woocommerce/client/blocks/webpack.config.js
index efa76c99f10..e428ee262ab 100644
--- a/plugins/woocommerce/client/blocks/webpack.config.js
+++ b/plugins/woocommerce/client/blocks/webpack.config.js
@@ -39,7 +39,9 @@ const getCacheConfig = ( name, configPaths = [] ) =>
require.resolve(
'@woocommerce/dependency-extraction-webpack-plugin'
),
- require.resolve( '@woocommerce/internal-style-build' ),
+ require.resolve(
+ '@woocommerce/internal-build/style-build'
+ ),
...configPaths.map( ( configPath ) =>
path.resolve( __dirname, configPath )
),
diff --git a/plugins/woocommerce/client/legacy/css/admin.scss b/plugins/woocommerce/client/legacy/css/admin.scss
index b277a1e2554..ec2af865e34 100644
--- a/plugins/woocommerce/client/legacy/css/admin.scss
+++ b/plugins/woocommerce/client/legacy/css/admin.scss
@@ -9499,7 +9499,7 @@ body.woocommerce_page_wc-settings {
// Tab strip inherits the wp-admin body bg so it reads as one
// continuous title region with the floating header above. Bottom
// border colour matches the rest of the wp-admin chrome borders
- // ($wp-admin-border in packages/js/internal-style-build); kept as
+ // ($wp-admin-border in packages/js/internal-build/styles); kept as
// a literal here because legacy admin.scss doesn't import the
// shared variables file.
border-bottom: 1px solid #dcdcde;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a53e969b95d..605917a8f6b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -129,6 +129,9 @@ catalogs:
'@wordpress/plugins':
specifier: 7.19.4
version: 7.19.4
+ '@wordpress/postcss-plugins-preset':
+ specifier: 4.42.0
+ version: 4.42.0
'@wordpress/preferences':
specifier: 4.19.4
version: 4.19.4
@@ -167,7 +170,7 @@ overrides:
react-resize-aware: 3.1.1
sass: 1.69.5
-pnpmfileChecksum: sha256-ofqgayQfdORNdNWxdnzBUzzKBo1Y72+rVI+d7hI5LT0=
+pnpmfileChecksum: sha256-0mGO2uxSzpGcsYJBjrnH8vcgzXYYgU2kSQKpHvcFKPM=
patchedDependencies:
'@wordpress/edit-site@5.15.0':
@@ -214,7 +217,7 @@ importers:
version: 2.17.0(wp-prettier@2.8.5)
babel-loader:
specifier: 9.2.x
- version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
chalk:
specifier: ^4.1.2
version: 4.1.2
@@ -226,7 +229,7 @@ importers:
version: 3.49.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
glob:
specifier: ^10.3.10
version: 10.5.0
@@ -250,7 +253,7 @@ importers:
version: 1.15.0
postcss-loader:
specifier: 4.3.x
- version: 4.3.0(postcss@8.5.9)(webpack@5.97.1(@swc/core@1.15.24))
+ version: 4.3.0(postcss@8.5.9)(webpack@5.97.1)
prettier:
specifier: npm:wp-prettier@^2.8.5
version: wp-prettier@2.8.5
@@ -277,7 +280,7 @@ importers:
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
packages/js/admin-layout:
dependencies:
@@ -297,30 +300,18 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
- '@woocommerce/internal-style-build':
+ '@woocommerce/internal-build':
specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
+ version: link:../internal-build
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -341,16 +332,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -409,36 +400,24 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.1(webpack@5.97.1)
+ version: 13.0.1(webpack@5.97.1(@swc/core@1.15.24))
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -465,16 +444,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -540,7 +519,7 @@ importers:
version: 14.14.6(@babel/core@7.25.7)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack-virtual-modules@0.6.2)(webpack@5.97.1)
'@wordpress/block-library':
specifier: catalog:wp-min
- version: 9.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ version: 9.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/blocks':
specifier: catalog:wp-min
version: 14.8.2(react@18.3.1)
@@ -682,7 +661,7 @@ importers:
version: 7.6.19(react@18.3.1)
'@storybook/react':
specifier: 6.5.17-alpha.0
- version: 6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(esbuild@0.24.2)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)
+ version: 6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)
'@testing-library/dom':
specifier: 8.11.3
version: 8.11.3
@@ -719,36 +698,24 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/babel-preset-default':
specifier: next
version: 8.43.1-next.v.202604091042.0
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -778,10 +745,10 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -790,7 +757,7 @@ importers:
version: 9.0.1
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1)
@@ -817,24 +784,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -849,7 +807,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -887,24 +845,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -919,7 +868,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -987,15 +936,12 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@woocommerce/navigation':
specifier: workspace:*
version: link:../navigation
@@ -1005,21 +951,12 @@ importers:
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1040,16 +977,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -1147,24 +1084,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1182,7 +1110,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -1229,27 +1157,18 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
d3-time-format:
specifier: ^2.3.0
version: 2.3.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1264,7 +1183,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -1295,7 +1214,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -1327,24 +1246,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1353,7 +1263,7 @@ importers:
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -1517,15 +1427,12 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
@@ -1535,18 +1442,9 @@ importers:
'@wordpress/stylelint-config':
specifier: ^21.0.0
version: 21.41.0(postcss@8.5.9)(stylelint@14.16.1)
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1567,7 +1465,7 @@ importers:
version: 14.16.1
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
ts-loader:
specifier: 9.5.x
version: 9.5.7(typescript@5.7.3)(webpack@5.97.1)
@@ -1576,7 +1474,7 @@ importers:
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -1619,7 +1517,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -1683,7 +1581,7 @@ importers:
version: 1.2.3(@storybook/addon-actions@6.5.17-alpha.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
'@storybook/react':
specifier: 6.5.17-alpha.0
- version: 6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(esbuild@0.24.2)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)
+ version: 6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)
'@testing-library/dom':
specifier: 8.11.3
version: 8.11.3
@@ -1705,33 +1603,21 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1752,16 +1638,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1)
@@ -1770,7 +1656,7 @@ importers:
dependencies:
'@base-ui/react':
specifier: 1.4.1
- version: 1.4.1(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 1.4.1(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@dnd-kit/react':
specifier: 0.4.0
version: 0.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1785,7 +1671,7 @@ importers:
version: 1.0.0
'@wordpress/admin-ui':
specifier: 1.12.0
- version: 1.12.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ version: 1.12.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/api-fetch':
specifier: 7.44.0
version: 7.44.0
@@ -1839,7 +1725,7 @@ importers:
version: 0.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/ui':
specifier: next
- version: 0.13.1-next.v.202605131032.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ version: 0.13.1-next.v.202605131032.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/url':
specifier: catalog:wp-min
version: 4.19.2
@@ -1883,30 +1769,18 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: ^3.6.0
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: ^0.24.0
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -1927,16 +1801,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -1986,24 +1860,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2018,7 +1883,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2041,24 +1906,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2073,13 +1929,80 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
packages/js/extend-cart-checkout-block: {}
+ packages/js/internal-build:
+ dependencies:
+ '@automattic/color-studio':
+ specifier: ^4.0.0
+ version: 4.0.0
+ '@wordpress/base-styles':
+ specifier: catalog:wp-min
+ version: 5.19.1
+ '@wordpress/postcss-plugins-preset':
+ specifier: catalog:wp-min
+ version: 4.42.0(postcss@8.5.9)
+ chokidar:
+ specifier: ^3.6.0
+ version: 3.6.0
+ css-loader:
+ specifier: 6.11.x
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
+ esbuild:
+ specifier: ^0.24.0
+ version: 0.24.2
+ glob:
+ specifier: ^10.3.10
+ version: 10.5.0
+ json2php:
+ specifier: ^0.0.7
+ version: 0.0.7
+ mini-css-extract-plugin:
+ specifier: 2.9.x
+ version: 2.9.4(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
+ postcss-loader:
+ specifier: 4.3.x
+ version: 4.3.0(postcss@8.5.9)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
+ rtlcss:
+ specifier: 4.3.x
+ version: 4.3.0
+ sass-loader:
+ specifier: 10.5.x
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
+ webpack-remove-empty-scripts:
+ specifier: 1.0.x
+ version: 1.0.4(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
+ devDependencies:
+ '@types/wordpress__block-editor':
+ specifier: 14.21.8
+ version: 14.21.8(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@woocommerce/eslint-plugin':
+ specifier: workspace:*
+ version: link:../eslint-plugin
+ '@wordpress/core-data':
+ specifier: 7.19.6
+ version: 7.19.6(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/data':
+ specifier: 10.19.2
+ version: 10.19.2(react@18.3.1)
+ '@wordpress/editor':
+ specifier: 14.19.7
+ version: 14.19.7(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/notices':
+ specifier: 5.19.2
+ version: 5.19.2(react@18.3.1)
+ eslint:
+ specifier: ^8.55.0
+ version: 8.57.1
+ typescript:
+ specifier: 5.7.x
+ version: 5.7.3
+
packages/js/internal-js-tests:
dependencies:
'@testing-library/jest-dom':
@@ -2113,24 +2036,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
- '@woocommerce/internal-ts-config':
+ '@woocommerce/internal-build':
specifier: workspace:*
- version: link:../internal-ts-config
+ version: link:../internal-build
babel-jest:
specifier: 29.5.x
version: 29.5.0(@babel/core@7.25.7)
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2151,92 +2065,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
- typescript:
- specifier: 5.7.x
- version: 5.7.3
-
- packages/js/internal-style-build:
- dependencies:
- '@automattic/color-studio':
- specifier: ^4.0.0
- version: 4.0.0
- '@wordpress/base-styles':
- specifier: catalog:wp-min
- version: 5.19.1
- '@wordpress/postcss-plugins-preset':
- specifier: next
- version: 5.43.1-next.v.202604091042.0(postcss@8.5.9)
- css-loader:
- specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
- fork-ts-checker-webpack-plugin:
- specifier: 9.0.x
- version: 9.0.3(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.15.24))
- json2php:
- specifier: ^0.0.7
- version: 0.0.7
- mini-css-extract-plugin:
- specifier: 2.9.x
- version: 2.9.4(webpack@5.97.1(@swc/core@1.15.24))
- postcss-loader:
- specifier: 4.3.x
- version: 4.3.0(postcss@8.5.9)(webpack@5.97.1(@swc/core@1.15.24))
- rtlcss:
- specifier: 4.3.x
- version: 4.3.0
- sass-loader:
- specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
- webpack-remove-empty-scripts:
- specifier: 1.0.x
- version: 1.0.4(webpack@5.97.1(@swc/core@1.15.24))
- devDependencies:
- '@babel/core':
- specifier: 7.25.7
- version: 7.25.7
- '@woocommerce/eslint-plugin':
- specifier: workspace:*
- version: link:../eslint-plugin
- eslint:
- specifier: ^8.55.0
- version: 8.57.1
- jest:
- specifier: 29.5.x
- version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
- jest-cli:
- specifier: 29.5.x
- version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
- rimraf:
- specifier: 5.0.5
- version: 5.0.5
- ts-jest:
- specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
- typescript:
- specifier: 5.7.x
- version: 5.7.3
- webpack:
- specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)
-
- packages/js/internal-ts-config:
- devDependencies:
- '@types/wordpress__block-editor':
- specifier: 14.21.8
- version: 14.21.8(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/core-data':
- specifier: 7.19.6
- version: 7.19.6(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data':
- specifier: 10.19.2
- version: 10.19.2(react@18.3.1)
- '@wordpress/editor':
- specifier: 14.19.7
- version: 14.19.7(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/notices':
- specifier: 5.19.2
- version: 5.19.2(react@18.3.1)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2295,24 +2124,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2327,7 +2147,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2365,21 +2185,12 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
- '@woocommerce/internal-ts-config':
+ '@woocommerce/internal-build':
specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: link:../internal-build
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2394,7 +2205,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2420,24 +2231,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2452,7 +2254,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2514,33 +2316,21 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2561,16 +2351,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -2660,7 +2450,7 @@ importers:
version: 8.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/editor':
specifier: catalog:wp-min
- version: 14.19.7(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ version: 14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/element':
specifier: catalog:wp-min
version: 6.19.1
@@ -2758,36 +2548,24 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/browserslist-config':
specifier: next
version: 6.43.1-next.v.202604091042.0
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.1(webpack@5.97.1)
+ version: 13.0.1(webpack@5.97.1(@swc/core@1.15.24))
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2820,16 +2598,16 @@ importers:
version: 5.0.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli:
specifier: 5.1.x
version: 5.1.4(webpack@5.97.1)
@@ -2867,27 +2645,18 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/jest-console':
specifier: ^5.4.0
version: 5.4.0(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2902,7 +2671,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -2940,27 +2709,18 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
'@wordpress/scripts':
specifier: ^27.0.0
- version: 27.9.0(@playwright/test@1.59.1)(@swc/core@1.15.24)(@types/eslint@9.6.1)(@types/node@24.12.2)(@types/webpack@4.41.40)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(esbuild@0.24.2)(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)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))(type-fest@4.41.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
+ version: 27.9.0(@playwright/test@1.59.1)(@swc/core@1.15.24)(@types/eslint@9.6.1)(@types/node@24.12.2)(@types/webpack@4.41.40)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(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)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))(type-fest@4.41.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -2975,7 +2735,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -3016,24 +2776,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -3048,7 +2799,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -3074,24 +2825,15 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../eslint-plugin
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../internal-js-tests
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../internal-ts-config
- chokidar:
- specifier: 3.6.x
- version: 3.6.0
- esbuild:
- specifier: 0.24.x
- version: 0.24.2
eslint:
specifier: ^8.55.0
version: 8.57.1
- glob:
- specifier: ^10.3.10
- version: 10.5.0
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -3106,7 +2848,7 @@ importers:
version: 5.0.5
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -3170,7 +2912,7 @@ importers:
version: 6.43.1-next.v.202604091042.0(webpack@5.97.1)
babel-loader:
specifier: 9.2.x
- version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
jest:
specifier: 29.5.x
version: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
@@ -3762,15 +3504,12 @@ importers:
'@woocommerce/experimental-products-app':
specifier: workspace:*
version: link:../../../../packages/js/experimental-products-app
+ '@woocommerce/internal-build':
+ specifier: workspace:*
+ version: link:../../../../packages/js/internal-build
'@woocommerce/internal-js-tests':
specifier: workspace:*
version: link:../../../../packages/js/internal-js-tests
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../../../../packages/js/internal-style-build
- '@woocommerce/internal-ts-config':
- specifier: workspace:*
- version: link:../../../../packages/js/internal-ts-config
'@woocommerce/notices':
specifier: workspace:*
version: link:../../../../packages/js/notices
@@ -3815,7 +3554,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)
+ version: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
babel-plugin-transform-react-remove-prop-types:
specifier: 0.4.24
version: 0.4.24
@@ -3830,10 +3569,10 @@ importers:
version: 3.3.7
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.1(webpack@5.97.1)
+ version: 13.0.1(webpack@5.97.1(@swc/core@1.15.24))
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
@@ -3923,13 +3662,13 @@ importers:
version: 1.69.5
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
stylelint:
specifier: ^14.16.1
version: 14.16.1
ts-jest:
specifier: 29.1.x
- version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
+ version: 29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
typescript:
specifier: 5.7.x
version: 5.7.3
@@ -4237,12 +3976,9 @@ importers:
'@woocommerce/eslint-plugin':
specifier: workspace:*
version: link:../../../../packages/js/eslint-plugin
- '@woocommerce/internal-style-build':
- specifier: workspace:*
- version: link:../../../../packages/js/internal-style-build
- '@woocommerce/internal-ts-config':
+ '@woocommerce/internal-build':
specifier: workspace:*
- version: link:../../../../packages/js/internal-ts-config
+ version: link:../../../../packages/js/internal-build
'@wordpress/api-fetch':
specifier: catalog:wp-min
version: 7.19.2
@@ -4374,13 +4110,13 @@ importers:
version: 5.2.2(webpack@5.97.1)
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.1(webpack@5.97.1)
+ version: 13.0.1(webpack@5.97.1(@swc/core@1.15.24))
core-js:
specifier: 3.25.0
version: 3.25.0
css-loader:
specifier: 6.11.x
- version: 6.11.0(webpack@5.97.1)
+ version: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano:
specifier: 5.1.12
version: 5.1.12(postcss@8.4.49)
@@ -4503,7 +4239,7 @@ importers:
version: 4.3.0
sass-loader:
specifier: 10.5.x
- version: 10.5.2(sass@1.69.5)(webpack@5.97.1)
+ version: 10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24))
storybook:
specifier: ^7.6.4
version: 7.6.19(encoding@0.1.13)
@@ -4850,7 +4586,7 @@ importers:
version: link:../../packages/js/eslint-plugin
copy-webpack-plugin:
specifier: 13.0.x
- version: 13.0.1(webpack@5.97.1)
+ version: 13.0.1(webpack@5.97.1(@swc/core@1.15.24))
eslint:
specifier: ^8.55.0
version: 8.57.1
@@ -5083,7 +4819,7 @@ importers:
version: 5.7.3
webpack:
specifier: 5.97.x
- version: 5.97.1(@swc/core@1.15.24)
+ version: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
wireit:
specifier: 0.14.12
version: 0.14.12
@@ -10737,9 +10473,6 @@ packages:
resolution: {integrity: sha512-6EQW8ysiQkct2MolHlhyqXfZ/Vgl0Cu9dCeHfPEf7S/8575qua1GnuDSFzEqU/8TIrEG88f2e2qP/R7VRB+EwQ==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
- '@wordpress/base-styles@3.6.0':
- resolution: {integrity: sha512-6/vXAmc9FSX7Y17UjKgUJoVU++Pv1U1G8uMx7iClRUaLetc7/jj2DD9PTyX/cdJjHr32e3yXuLVT9wfEbo6SEg==}
-
'@wordpress/base-styles@4.49.0':
resolution: {integrity: sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==}
@@ -11522,6 +11255,11 @@ packages:
resolution: {integrity: sha512-6I400T3iMrlsQW9s7H+vQVPWhS7EkWQbcAJCw4XHvqpyWi5NpCrH0fCmbbm9PrQ1hPZbqjspZsYg2o7JqOJJGA==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+ '@wordpress/interactivity@https://codeload.github.com/woocommerce/gutenberg/tar.gz/96b89ddfd6344b417a6e2fcd3748be856bb55b16#path:/packages/interactivity':
+ resolution: {path: /packages/interactivity, tarball: https://codeload.github.com/woocommerce/gutenberg/tar.gz/96b89ddfd6344b417a6e2fcd3748be856bb55b16}
+ version: 6.23.0
+ engines: {node: '>=18.12.0', npm: '>=8.19.2'}
+
'@wordpress/interface@5.35.0':
resolution: {integrity: sha512-ClRQQVZQ6dpMwlcFLigdtqLdc8rXRwW4c2MUQTHctnU4Y9Lean+PV4ZhX/QN32gS/vhseCDzO0hg+gjQY6cdjQ==}
engines: {node: '>=12'}
@@ -11761,10 +11499,6 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
- '@wordpress/postcss-plugins-preset@1.6.0':
- resolution: {integrity: sha512-WPToVlX99PiUSSxSbwAR2wJtIpbcnnRkB48sIIkDvw7rCpSWkh6OLuzfj0o5g+JCYuNL1OnQXFA8EtydNEZ9Sw==}
- engines: {node: '>=10'}
-
'@wordpress/postcss-plugins-preset@3.10.0':
resolution: {integrity: sha512-vBXy+8e6BpUvmxcIFgldvFlTFA6kAlC+J86GcDEoIq/IFVoqSJlnX1s1QHXgG3CzTHjIlN/FNJxGxYinSMJhng==}
engines: {node: '>=12'}
@@ -11789,10 +11523,6 @@ packages:
peerDependencies:
postcss: ^8.0.0
- '@wordpress/postcss-themes@2.6.0':
- resolution: {integrity: sha512-Q22s1KSVdtoK0Z0ND06V2QwTx/U4KvJhWFmoI8IzYW/LGlk8BkQJhHH157Y9vFliwpMlQpqfXW6/zOg2XtvHzQ==}
- engines: {node: '>=8'}
-
'@wordpress/postcss-themes@6.43.1-next.v.202604091042.0':
resolution: {integrity: sha512-xTg4tQYuoKGHNh312kP+KgKp5o7J7caqEU+gDmkrx6MuIiiOcwOLl0bfMkJda4qhEF/TbVP9Nejf97qxrEII9w==}
engines: {node: '>=18.12.0', npm: '>=8.19.2'}
@@ -16093,13 +15823,6 @@ packages:
typescript: '>3.6.0'
webpack: ^5.11.0
- fork-ts-checker-webpack-plugin@9.0.3:
- resolution: {integrity: sha512-zUE6ABwfybBbSH5TIsdAFiR2kfy0nm2yT0DEtujNM4vHbKhbrIsfoC5cPfJa4vqlmcSBPxqIED+EWVPWEw1hTw==}
- engines: {node: '>=12.13.0'}
- peerDependencies:
- typescript: '>3.6.0'
- webpack: ^5.11.0
-
form-data@2.3.3:
resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==}
engines: {node: '>= 0.12'}
@@ -17623,10 +17346,6 @@ packages:
is-upper-case@1.1.2:
resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==}
- is-url-superb@4.0.0:
- resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==}
- engines: {node: '>=10'}
-
is-utf8@0.2.1:
resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==}
@@ -20249,10 +19968,6 @@ packages:
peerDependencies:
postcss: ^8.4.31
- postcss-custom-properties@10.0.0:
- resolution: {integrity: sha512-55BPj5FudpCiPZzBaO+MOeqmwMDa+nV9/0QBJBfhZjYg6D9hE+rW9lpMBLTJoF4OTXnS5Po4yM1nMlgkPbCxFg==}
- engines: {node: '>=10.0.0'}
-
postcss-discard-comments@5.1.2:
resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
engines: {node: ^10 || ^12 || >=14.0}
@@ -20701,10 +20416,6 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
- postcss-values-parser@4.0.0:
- resolution: {integrity: sha512-R9x2D87FcbhwXUmoCXJR85M1BLII5suXRuXibGYyBJ7lVDEpRIdKZh4+8q5S+/+A4m0IoG1U5tFw39asyhX/Hw==}
- engines: {node: '>=10'}
-
postcss@6.0.23:
resolution: {integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==}
engines: {node: '>=4.0.0'}
@@ -28376,30 +28087,13 @@ snapshots:
react-refresh: 0.11.0
schema-utils: 4.3.3
source-map: 0.7.6
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
'@types/webpack': 4.41.40
type-fest: 4.41.0
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
webpack-hot-middleware: 2.26.1
- '@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2(webpack@5.97.1(@swc/core@1.15.24)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(@swc/core@1.15.24))':
- dependencies:
- ansi-html: 0.0.9
- core-js-pure: 3.49.0
- error-stack-parser: 2.1.4
- html-entities: 2.6.0
- loader-utils: 2.0.4
- react-refresh: 0.14.2
- schema-utils: 4.3.3
- source-map: 0.7.6
- webpack: 5.97.1(@swc/core@1.15.24)
- optionalDependencies:
- '@types/webpack': 4.41.40
- type-fest: 4.41.0
- webpack-dev-server: 4.15.2(webpack@5.97.1(@swc/core@1.15.24))
- webpack-hot-middleware: 2.26.1
-
'@pmmmwh/react-refresh-webpack-plugin@0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.97.1)':
dependencies:
ansi-html: 0.0.9
@@ -29916,12 +29610,12 @@ snapshots:
'@swc/core': 1.15.24
'@types/node': 18.19.130
'@types/semver': 7.7.1
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
browser-assert: 1.2.1
case-sensitive-paths-webpack-plugin: 2.4.0
cjs-module-lexer: 1.4.3
constants-browserify: 1.0.0
- css-loader: 6.11.0(webpack@5.97.1)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
es-module-lexer: 1.7.0
express: 4.22.1
fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.3)(webpack@5.97.1)
@@ -29984,12 +29678,12 @@ snapshots:
semver: 7.7.4
style-loader: 3.3.4(webpack@5.97.1(@swc/core@1.15.24))
swc-loader: 0.2.7(@swc/core@1.15.24)(webpack@5.97.1(@swc/core@1.15.24))
- terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(webpack@5.97.1(@swc/core@1.15.24))
+ terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(webpack@5.97.1)
ts-dedent: 2.2.0
url: 0.11.4
util: 0.12.5
util-deprecate: 1.0.2
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-dev-middleware: 6.1.3(webpack@5.97.1(@swc/core@1.15.24))
webpack-hot-middleware: 2.26.1
webpack-virtual-modules: 0.5.0
@@ -30270,7 +29964,7 @@ snapshots:
ts-dedent: 2.2.0
unfetch: 4.2.0
util-deprecate: 1.0.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
typescript: 5.7.3
@@ -30550,7 +30244,7 @@ snapshots:
'@storybook/core-server': 6.5.17-alpha.0(encoding@0.1.13)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(webpack-cli@5.1.4)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
typescript: 5.7.3
transitivePeerDependencies:
@@ -30852,7 +30546,7 @@ snapshots:
dependencies:
'@babel/preset-flow': 7.27.1(@babel/core@7.25.7)
'@babel/preset-react': 7.25.7(@babel/core@7.25.7)
- '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2(webpack@5.97.1(@swc/core@1.15.24)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(@swc/core@1.15.24))
+ '@pmmmwh/react-refresh-webpack-plugin': 0.5.17(@types/webpack@4.41.40)(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)(webpack@5.97.1)
'@storybook/core-webpack': 7.6.19(encoding@0.1.13)
'@storybook/docs-tools': 7.6.19(encoding@0.1.13)
'@storybook/node-logger': 7.6.19
@@ -30868,7 +30562,7 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
react-refresh: 0.14.2
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
'@babel/core': 7.25.7
typescript: 5.7.3
@@ -30970,7 +30664,7 @@ snapshots:
react-docgen-typescript: 2.4.0(typescript@5.7.3)
tslib: 2.8.1
typescript: 5.7.3
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
transitivePeerDependencies:
- supports-color
@@ -30998,7 +30692,7 @@ snapshots:
react-docgen-typescript: 2.4.0(typescript@5.7.3)
tslib: 2.8.1
typescript: 5.7.3
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
transitivePeerDependencies:
- supports-color
@@ -31066,7 +30760,7 @@ snapshots:
- webpack-hot-middleware
- webpack-plugin-serve
- '@storybook/react@6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(esbuild@0.24.2)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)':
+ '@storybook/react@6.5.17-alpha.0(@babel/core@7.25.7)(@swc/core@1.15.24)(@types/webpack@4.41.40)(encoding@0.1.13)(eslint@8.57.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(require-from-string@2.0.2)(type-fest@4.41.0)(typescript@5.7.3)(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack-hot-middleware@2.26.1)':
dependencies:
'@babel/preset-flow': 7.27.1(@babel/core@7.25.7)
'@babel/preset-react': 7.25.7(@babel/core@7.25.7)
@@ -31105,7 +30799,7 @@ snapshots:
require-from-string: 2.0.2
ts-dedent: 2.2.0
util-deprecate: 1.0.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
'@babel/core': 7.25.7
typescript: 5.7.3
@@ -32278,7 +31972,7 @@ snapshots:
'@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/global-styles-engine': 1.11.0(react@18.3.1)
- '@wordpress/keycodes': 4.44.0
+ '@wordpress/keycodes': 4.45.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'
@@ -32318,8 +32012,8 @@ snapshots:
dependencies:
'@types/react': 18.3.28
'@wordpress/components': 28.13.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/editor': 14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/editor': 14.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/element': 6.44.0
transitivePeerDependencies:
- '@date-fns/tz'
@@ -32334,8 +32028,8 @@ snapshots:
dependencies:
'@types/react': 18.3.28
'@wordpress/components': 28.13.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/editor': 14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/editor': 14.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/element': 6.44.0
transitivePeerDependencies:
- '@date-fns/tz'
@@ -32898,10 +32592,10 @@ snapshots:
'@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.2)(webpack@5.97.1)':
dependencies:
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
optionalDependencies:
- webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.2(debug@4.4.3)(webpack-cli@5.1.4)(webpack@5.97.1)
'@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.97.1)':
dependencies:
@@ -33157,8 +32851,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@wordpress/base-styles@3.6.0': {}
-
'@wordpress/base-styles@4.49.0': {}
'@wordpress/base-styles@5.19.1': {}
@@ -33248,7 +32940,7 @@ snapshots:
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/date': 5.44.0
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
@@ -33261,7 +32953,7 @@ snapshots:
'@wordpress/is-shallow-equal': 5.44.0
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
- '@wordpress/notices': 5.19.2(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/priority-queue': 3.44.0
'@wordpress/private-apis': 1.44.0
@@ -33733,8 +33425,8 @@ snapshots:
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/date': 5.44.0
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
@@ -33748,7 +33440,7 @@ snapshots:
'@wordpress/interactivity-router': 2.19.1
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
- '@wordpress/notices': 5.19.2(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/primitives': 4.44.0(react@18.3.1)
'@wordpress/private-apis': 1.44.0
@@ -33788,8 +33480,8 @@ snapshots:
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/date': 5.44.0
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
@@ -33803,7 +33495,7 @@ snapshots:
'@wordpress/interactivity-router': 2.19.1
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
- '@wordpress/notices': 5.19.2(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/primitives': 4.44.0(react@18.3.1)
'@wordpress/private-apis': 1.44.0
@@ -33840,11 +33532,11 @@ snapshots:
'@wordpress/autop': 4.44.0
'@wordpress/base-styles': 6.20.0
'@wordpress/blob': 4.44.0
- '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/blocks': 15.17.0(react@18.3.1)
'@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/date': 5.45.0
'@wordpress/deprecated': 4.45.0
@@ -33861,10 +33553,10 @@ snapshots:
'@wordpress/keycodes': 4.45.0
'@wordpress/latex-to-mathml': 1.12.0
'@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/primitives': 4.45.0(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/server-side-render': 6.20.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/upload-media': 0.29.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -33964,7 +33656,7 @@ snapshots:
'@wordpress/autop': 4.44.0
'@wordpress/blob': 4.44.0
'@wordpress/block-serialization-default-parser': 5.44.0
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
'@wordpress/element': 6.44.0
@@ -34073,7 +33765,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/i18n': 5.26.0
'@wordpress/icons': 10.32.0(react@18.3.1)
@@ -35002,10 +34694,10 @@ snapshots:
'@wordpress/core-commands@1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
- '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/html-entities': 4.45.0
@@ -35064,18 +34756,18 @@ snapshots:
'@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/deprecated': 4.44.0
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/deprecated': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
- '@wordpress/is-shallow-equal': 5.44.0
+ '@wordpress/is-shallow-equal': 5.45.0
'@wordpress/private-apis': 1.44.0
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/sync': 1.44.0
- '@wordpress/undo-manager': 1.44.0
+ '@wordpress/undo-manager': 1.45.0
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
change-case: 4.1.2
equivalent-key-map: 0.2.2
fast-deep-equal: 3.1.3
@@ -35096,18 +34788,18 @@ snapshots:
'@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/deprecated': 4.44.0
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/deprecated': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
- '@wordpress/is-shallow-equal': 5.44.0
+ '@wordpress/is-shallow-equal': 5.45.0
'@wordpress/private-apis': 1.44.0
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/sync': 1.44.0
- '@wordpress/undo-manager': 1.44.0
+ '@wordpress/undo-manager': 1.45.0
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
change-case: 4.1.2
equivalent-key-map: 0.2.2
fast-deep-equal: 3.1.3
@@ -35128,18 +34820,18 @@ snapshots:
'@wordpress/block-editor': 14.21.0(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/deprecated': 4.44.0
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/deprecated': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
- '@wordpress/is-shallow-equal': 5.44.0
+ '@wordpress/is-shallow-equal': 5.45.0
'@wordpress/private-apis': 1.44.0
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/sync': 1.44.0
- '@wordpress/undo-manager': 1.44.0
+ '@wordpress/undo-manager': 1.45.0
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
change-case: 4.1.2
equivalent-key-map: 0.2.2
fast-deep-equal: 3.1.3
@@ -35264,12 +34956,12 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/deprecated': 4.44.0
+ '@wordpress/deprecated': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/is-shallow-equal': 5.44.0
- '@wordpress/priority-queue': 3.44.0
+ '@wordpress/is-shallow-equal': 5.45.0
+ '@wordpress/priority-queue': 3.45.0
'@wordpress/private-apis': 1.44.0
- '@wordpress/redux-routine': 5.44.0(redux@5.0.1)
+ '@wordpress/redux-routine': 5.45.0(redux@5.0.1)
deepmerge: 4.3.1
equivalent-key-map: 0.2.2
is-plain-object: 5.0.0
@@ -35544,7 +35236,7 @@ snapshots:
'@wordpress/dependency-extraction-webpack-plugin@5.9.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.7
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
'@wordpress/dependency-extraction-webpack-plugin@6.43.1-next.v.202604091042.0(webpack@5.97.1)':
dependencies:
@@ -35554,7 +35246,7 @@ snapshots:
'@wordpress/dependency-extraction-webpack-plugin@6.44.0(webpack@5.97.1)':
dependencies:
json2php: 0.0.7
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
'@wordpress/deprecated@3.58.0':
dependencies:
@@ -35680,7 +35372,7 @@ snapshots:
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
'@wordpress/core-commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
@@ -35842,32 +35534,32 @@ snapshots:
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/date': 5.44.0
- '@wordpress/deprecated': 4.44.0
- '@wordpress/dom': 4.44.0
+ '@wordpress/date': 5.45.0
+ '@wordpress/deprecated': 4.45.0
+ '@wordpress/dom': 4.45.0
'@wordpress/element': 6.44.0
'@wordpress/fields': 0.11.6(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/hooks': 4.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
'@wordpress/icons': 10.32.0(react@18.3.1)
'@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
- '@wordpress/keycodes': 4.44.0
+ '@wordpress/keycodes': 4.45.0
'@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/notices': 5.19.2(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.44.0
'@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/server-side-render': 5.23.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
'@wordpress/wordcount': 4.44.0
change-case: 4.1.2
client-zip: 2.5.0
@@ -35901,32 +35593,32 @@ snapshots:
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/date': 5.44.0
- '@wordpress/deprecated': 4.44.0
- '@wordpress/dom': 4.44.0
+ '@wordpress/date': 5.45.0
+ '@wordpress/deprecated': 4.45.0
+ '@wordpress/dom': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.11.6(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/hooks': 4.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/fields': 0.11.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
'@wordpress/icons': 10.32.0(react@18.3.1)
'@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
- '@wordpress/keycodes': 4.44.0
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/notices': 5.19.2(react@18.3.1)
- '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/keycodes': 4.45.0
+ '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/server-side-render': 5.23.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
'@wordpress/wordcount': 4.44.0
change-case: 4.1.2
client-zip: 2.5.0
@@ -35949,7 +35641,7 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/editor@14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)':
+ '@wordpress/editor@14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.19.1
@@ -35960,32 +35652,32 @@ snapshots:
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/date': 5.44.0
- '@wordpress/deprecated': 4.44.0
- '@wordpress/dom': 4.44.0
+ '@wordpress/date': 5.45.0
+ '@wordpress/deprecated': 4.45.0
+ '@wordpress/dom': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.11.6(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/hooks': 4.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/fields': 0.11.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
'@wordpress/icons': 10.32.0(react@18.3.1)
- '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
- '@wordpress/keycodes': 4.44.0
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/notices': 5.19.2(react@18.3.1)
- '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/keycodes': 4.45.0
+ '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/server-side-render': 5.23.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
'@wordpress/wordcount': 4.44.0
change-case: 4.1.2
client-zip: 2.5.0
@@ -36008,43 +35700,43 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/editor@14.19.7(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
+ '@wordpress/editor@14.19.7(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.19.1
'@wordpress/api-fetch': 7.44.0
'@wordpress/blob': 4.44.0
- '@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/date': 5.44.0
- '@wordpress/deprecated': 4.44.0
- '@wordpress/dom': 4.44.0
+ '@wordpress/date': 5.45.0
+ '@wordpress/deprecated': 4.45.0
+ '@wordpress/dom': 4.45.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.11.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
- '@wordpress/hooks': 4.44.0
- '@wordpress/html-entities': 4.44.0
+ '@wordpress/fields': 0.11.6(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
'@wordpress/i18n': 5.26.0
'@wordpress/icons': 10.32.0(react@18.3.1)
- '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/interface': 9.29.0(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
- '@wordpress/keycodes': 4.44.0
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
- '@wordpress/notices': 5.19.2(react@18.3.1)
- '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/keycodes': 4.45.0
+ '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
- '@wordpress/rich-text': 7.44.0(react@18.3.1)
+ '@wordpress/reusable-blocks': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/rich-text': 7.45.0(react@18.3.1)
'@wordpress/server-side-render': 5.23.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.44.0
- '@wordpress/warning': 3.44.0
+ '@wordpress/warning': 3.45.0
'@wordpress/wordcount': 4.44.0
change-case: 4.1.2
client-zip: 2.5.0
@@ -36067,51 +35759,59 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/editor@14.19.7(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/editor@14.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
dependencies:
- '@babel/runtime': 7.25.7
- '@wordpress/a11y': 4.19.1
+ '@floating-ui/react-dom': 2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/a11y': 4.45.0
'@wordpress/api-fetch': 7.44.0
+ '@wordpress/base-styles': 6.20.0
'@wordpress/blob': 4.44.0
- '@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/blocks': 14.15.0(react@18.3.1)
+ '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/block-serialization-default-parser': 5.44.0
+ '@wordpress/blocks': 15.17.0(react@18.3.1)
'@wordpress/commands': 1.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.19.6(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
- '@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/dataviews': 14.2.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/date': 5.44.0
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.11.6(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/fields': 0.36.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/global-styles-engine': 1.11.0(react@18.3.1)
+ '@wordpress/global-styles-ui': 1.11.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/hooks': 4.44.0
'@wordpress/html-entities': 4.44.0
- '@wordpress/i18n': 5.26.0
- '@wordpress/icons': 10.32.0(react@18.3.1)
- '@wordpress/interface': 9.29.0(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/i18n': 6.18.0
+ '@wordpress/icons': 12.2.0(react@18.3.1)
+ '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
- '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@wordpress/notices': 5.19.2(react@18.3.1)
- '@wordpress/patterns': 2.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/media-editor': 0.7.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/media-fields': 0.9.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/preferences': 4.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/reusable-blocks': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/reusable-blocks': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/rich-text': 7.44.0(react@18.3.1)
- '@wordpress/server-side-render': 5.23.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/server-side-render': 6.20.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/upload-media': 0.29.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/url': 4.44.0
+ '@wordpress/views': 1.11.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/warning': 3.44.0
'@wordpress/wordcount': 4.44.0
change-case: 4.1.2
client-zip: 2.5.0
clsx: 2.1.1
+ colord: 2.9.3
date-fns: 3.6.0
- deepmerge: 4.3.1
+ diff: 4.0.4
fast-deep-equal: 3.1.3
- is-plain-object: 5.0.0
memize: 2.1.1
react: 18.3.1
react-autosize-textarea: 7.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36126,7 +35826,7 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/editor@14.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
+ '@wordpress/editor@14.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/react-dom': 2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/a11y': 4.45.0
@@ -36146,19 +35846,19 @@ snapshots:
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.36.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/fields': 0.36.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/global-styles-engine': 1.11.0(react@18.3.1)
'@wordpress/global-styles-ui': 1.11.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/hooks': 4.44.0
'@wordpress/html-entities': 4.44.0
'@wordpress/i18n': 6.18.0
'@wordpress/icons': 12.2.0(react@18.3.1)
- '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
'@wordpress/media-editor': 0.7.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/media-fields': 0.9.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
- '@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/plugins': 7.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36193,7 +35893,7 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/editor@14.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/editor@14.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)':
dependencies:
'@floating-ui/react-dom': 2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/a11y': 4.45.0
@@ -36213,9 +35913,9 @@ snapshots:
'@wordpress/deprecated': 4.44.0
'@wordpress/dom': 4.44.0
'@wordpress/element': 6.44.0
- '@wordpress/fields': 0.36.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/fields': 0.36.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/global-styles-engine': 1.11.0(react@18.3.1)
- '@wordpress/global-styles-ui': 1.11.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/global-styles-ui': 1.11.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/hooks': 4.44.0
'@wordpress/html-entities': 4.44.0
'@wordpress/i18n': 6.18.0
@@ -36223,7 +35923,7 @@ snapshots:
'@wordpress/interface': 9.29.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/keyboard-shortcuts': 5.44.0(react@18.3.1)
'@wordpress/keycodes': 4.44.0
- '@wordpress/media-editor': 0.7.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/media-editor': 0.7.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/media-fields': 0.9.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/media-utils': 5.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
'@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -36376,7 +36076,7 @@ snapshots:
cosmiconfig: 7.1.0
eslint: 8.57.1
eslint-config-prettier: 8.10.2(eslint@8.57.1)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.11)(eslint@8.57.1)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@4.4.4)(eslint-import-resolver-webpack@0.13.2)(eslint@8.57.1)
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
eslint-plugin-jsdoc: 39.9.1(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
@@ -36405,7 +36105,7 @@ snapshots:
cosmiconfig: 7.1.0
eslint: 8.57.1
eslint-config-prettier: 8.10.2(eslint@8.57.1)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.11)(eslint@8.57.1)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@4.4.4)(eslint-import-resolver-webpack@0.13.2)(eslint@8.57.1)
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
eslint-plugin-jsdoc: 39.9.1(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
@@ -36434,7 +36134,7 @@ snapshots:
cosmiconfig: 7.1.0
eslint: 8.57.1
eslint-config-prettier: 8.10.2(eslint@8.57.1)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.11)(eslint@8.57.1)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@4.4.4)(eslint-import-resolver-webpack@0.13.2)(eslint@8.57.1)
eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)
eslint-plugin-jsdoc: 39.9.1(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
@@ -36586,6 +36286,47 @@ snapshots:
- stylelint
- supports-color
+ '@wordpress/fields@0.11.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.25.7
+ '@wordpress/api-fetch': 7.44.0
+ '@wordpress/blob': 4.44.0
+ '@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/blocks': 14.15.0(react@18.3.1)
+ '@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.44.0(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/dataviews': 4.22.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/date': 5.45.0
+ '@wordpress/element': 6.44.0
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
+ '@wordpress/i18n': 5.26.0
+ '@wordpress/icons': 10.32.0(react@18.3.1)
+ '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/primitives': 4.45.0(react@18.3.1)
+ '@wordpress/private-apis': 1.44.0
+ '@wordpress/router': 1.44.0(react@18.3.1)
+ '@wordpress/url': 4.44.0
+ '@wordpress/warning': 3.45.0
+ change-case: 4.1.2
+ client-zip: 2.5.0
+ clsx: 2.1.1
+ react: 18.3.1
+ remove-accents: 0.5.0
+ transitivePeerDependencies:
+ - '@date-fns/tz'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - date-fns
+ - react-dom
+ - stylelint
+ - supports-color
+
'@wordpress/fields@0.11.6(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
dependencies:
'@babel/runtime': 7.25.7
@@ -36711,6 +36452,48 @@ snapshots:
- supports-color
'@wordpress/fields@0.36.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-spring/web': 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/api-fetch': 7.44.0
+ '@wordpress/base-styles': 6.20.0
+ '@wordpress/blob': 4.44.0
+ '@wordpress/blocks': 15.17.0(react@18.3.1)
+ '@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/compose': 7.44.0(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/dataviews': 14.2.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/date': 5.45.0
+ '@wordpress/element': 6.44.0
+ '@wordpress/hooks': 4.45.0
+ '@wordpress/html-entities': 4.45.0
+ '@wordpress/i18n': 6.18.0
+ '@wordpress/icons': 12.2.0(react@18.3.1)
+ '@wordpress/media-utils': 5.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/patterns': 2.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/primitives': 4.45.0(react@18.3.1)
+ '@wordpress/private-apis': 1.44.0
+ '@wordpress/router': 1.44.0(react@18.3.1)
+ '@wordpress/url': 4.44.0
+ '@wordpress/warning': 3.45.0
+ '@wordpress/wordcount': 4.44.0
+ change-case: 4.1.2
+ client-zip: 2.5.0
+ clsx: 2.1.1
+ react: 18.3.1
+ remove-accents: 0.5.0
+ transitivePeerDependencies:
+ - '@date-fns/tz'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - date-fns
+ - react-dom
+ - stylelint
+ - supports-color
+
+ '@wordpress/fields@0.36.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)':
dependencies:
'@react-spring/web': 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/api-fetch': 7.44.0
@@ -36759,7 +36542,7 @@ snapshots:
'@wordpress/block-editor': 14.21.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/html-entities': 4.44.0
'@wordpress/i18n': 5.26.0
@@ -36820,7 +36603,7 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/global-styles-ui@1.11.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/global-styles-ui@1.11.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)':
dependencies:
'@wordpress/a11y': 4.45.0
'@wordpress/api-fetch': 7.44.0
@@ -37012,7 +36795,7 @@ snapshots:
'@wordpress/interactivity-router@2.19.1':
dependencies:
'@wordpress/a11y': 4.45.0
- '@wordpress/interactivity': 6.19.1
+ '@wordpress/interactivity': https://codeload.github.com/woocommerce/gutenberg/tar.gz/96b89ddfd6344b417a6e2fcd3748be856bb55b16#path:/packages/interactivity
'@wordpress/interactivity-router@2.44.0':
dependencies:
@@ -37039,6 +36822,11 @@ snapshots:
'@preact/signals': 1.3.4(preact@10.29.1)
preact: 10.29.1
+ '@wordpress/interactivity@https://codeload.github.com/woocommerce/gutenberg/tar.gz/96b89ddfd6344b417a6e2fcd3748be856bb55b16#path:/packages/interactivity':
+ dependencies:
+ '@preact/signals': 1.3.4(preact@10.29.1)
+ preact: 10.29.1
+
'@wordpress/interface@5.35.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
@@ -37146,7 +36934,7 @@ snapshots:
'@wordpress/a11y': 4.45.0
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/element': 6.44.0
'@wordpress/i18n': 5.26.0
@@ -37201,7 +36989,7 @@ snapshots:
jest-matcher-utils: 29.7.0
jest-mock: 29.7.0
- '@wordpress/jest-console@8.44.0(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))':
+ '@wordpress/jest-console@8.44.0(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))':
dependencies:
jest: 29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
jest-matcher-utils: 29.7.0
@@ -37219,7 +37007,7 @@ snapshots:
'@wordpress/jest-preset-default@12.22.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))':
dependencies:
'@babel/core': 7.25.7
- '@wordpress/jest-console': 8.44.0(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
+ '@wordpress/jest-console': 8.44.0(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
babel-jest: 29.7.0(@babel/core@7.25.7)
jest: 29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
transitivePeerDependencies:
@@ -37234,10 +37022,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@wordpress/jest-preset-default@12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))':
+ '@wordpress/jest-preset-default@12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))':
dependencies:
'@babel/core': 7.25.7
- '@wordpress/jest-console': 8.44.0(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
+ '@wordpress/jest-console': 8.44.0(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
babel-jest: 29.7.0(@babel/core@7.25.7)
jest: 29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
transitivePeerDependencies:
@@ -37268,7 +37056,7 @@ snapshots:
'@wordpress/keyboard-shortcuts@5.19.2(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.7
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/keycodes': 4.44.0
react: 18.3.1
@@ -37322,7 +37110,7 @@ snapshots:
- stylelint
- supports-color
- '@wordpress/media-editor@0.7.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ '@wordpress/media-editor@0.7.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)':
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -37488,6 +37276,35 @@ snapshots:
- stylelint
- supports-color
+ '@wordpress/media-utils@5.44.0(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@wordpress/api-fetch': 7.44.0
+ '@wordpress/base-styles': 6.20.0
+ '@wordpress/blob': 4.44.0
+ '@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/data': 10.44.0(react@18.3.1)
+ '@wordpress/dataviews': 14.2.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/element': 6.44.0
+ '@wordpress/i18n': 6.18.0
+ '@wordpress/icons': 12.2.0(react@18.3.1)
+ '@wordpress/media-fields': 0.9.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ '@wordpress/notices': 5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wordpress/private-apis': 1.44.0
+ '@wordpress/ui': 0.11.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/views': 1.11.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
+ clsx: 2.1.1
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@date-fns/tz'
+ - '@emotion/is-prop-valid'
+ - '@types/react'
+ - '@types/react-dom'
+ - date-fns
+ - react-dom
+ - stylelint
+ - supports-color
+
'@wordpress/media-utils@5.44.0(@emotion/is-prop-valid@1.4.0)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@wordpress/api-fetch': 7.44.0
@@ -37528,7 +37345,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.19.1
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
react: 18.3.1
'@wordpress/notices@5.44.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
@@ -37752,13 +37569,6 @@ snapshots:
- '@emotion/is-prop-valid'
- supports-color
- '@wordpress/postcss-plugins-preset@1.6.0':
- dependencies:
- '@wordpress/base-styles': 3.6.0
- '@wordpress/postcss-themes': 2.6.0
- autoprefixer: 9.8.6
- postcss-custom-properties: 10.0.0
-
'@wordpress/postcss-plugins-preset@3.10.0(postcss@8.4.49)':
dependencies:
'@wordpress/base-styles': 4.49.0
@@ -37771,6 +37581,12 @@ snapshots:
autoprefixer: 10.5.0(postcss@8.4.49)
postcss: 8.4.49
+ '@wordpress/postcss-plugins-preset@4.42.0(postcss@8.5.9)':
+ dependencies:
+ '@wordpress/base-styles': 4.49.0
+ autoprefixer: 10.5.0(postcss@8.5.9)
+ postcss: 8.5.9
+
'@wordpress/postcss-plugins-preset@5.43.1-next.v.202604091042.0(postcss@8.4.49)':
dependencies:
'@wordpress/base-styles': 6.20.0
@@ -37778,13 +37594,6 @@ snapshots:
postcss: 8.4.49
postcss-import: 16.1.1(postcss@8.4.49)
- '@wordpress/postcss-plugins-preset@5.43.1-next.v.202604091042.0(postcss@8.5.9)':
- dependencies:
- '@wordpress/base-styles': 6.20.0
- autoprefixer: 10.5.0(postcss@8.5.9)
- postcss: 8.5.9
- postcss-import: 16.1.1(postcss@8.5.9)
-
'@wordpress/postcss-plugins-preset@5.44.0(postcss@8.4.49)':
dependencies:
'@wordpress/base-styles': 6.20.0
@@ -37792,10 +37601,6 @@ snapshots:
postcss: 8.4.49
postcss-import: 16.1.1(postcss@8.4.49)
- '@wordpress/postcss-themes@2.6.0':
- dependencies:
- postcss: 7.0.39
-
'@wordpress/postcss-themes@6.43.1-next.v.202604091042.0(postcss@8.4.49)':
dependencies:
postcss: 8.4.49
@@ -37826,7 +37631,7 @@ snapshots:
'@wordpress/a11y': 4.45.0
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/element': 6.44.0
'@wordpress/i18n': 5.26.0
@@ -38130,7 +37935,7 @@ snapshots:
'@babel/runtime': 7.25.7
'@wordpress/a11y': 4.45.0
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/element': 6.44.0
'@wordpress/escape-html': 3.44.0
@@ -38227,7 +38032,7 @@ snapshots:
check-node-version: 4.2.1
clean-webpack-plugin: 3.0.0(webpack@5.97.1)
cross-spawn: 5.1.0
- css-loader: 6.11.0(webpack@5.97.1)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano: 5.1.12(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38288,7 +38093,7 @@ snapshots:
- utf-8-validate
- webpack-dev-server
- '@wordpress/scripts@27.9.0(@playwright/test@1.59.1)(@swc/core@1.15.24)(@types/eslint@9.6.1)(@types/node@24.12.2)(@types/webpack@4.41.40)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(esbuild@0.24.2)(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)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))(type-fest@4.41.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)':
+ '@wordpress/scripts@27.9.0(@playwright/test@1.59.1)(@swc/core@1.15.24)(@types/eslint@9.6.1)(@types/node@24.12.2)(@types/webpack@4.41.40)(babel-plugin-macros@3.1.0)(encoding@0.1.13)(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)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))(type-fest@4.41.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)':
dependencies:
'@babel/core': 7.25.7
'@playwright/test': 1.59.1
@@ -38313,7 +38118,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)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38345,9 +38150,9 @@ 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.4.0(@swc/core@1.15.24)(esbuild@0.24.2)(webpack@5.97.1)
+ terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(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.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
@@ -38395,21 +38200,21 @@ snapshots:
'@wordpress/dependency-extraction-webpack-plugin': 6.44.0(webpack@5.97.1)
'@wordpress/e2e-test-utils-playwright': 1.44.0(@playwright/test@1.59.1)(@types/node@24.12.2)
'@wordpress/eslint-plugin': 22.22.0(@babel/core@7.25.7)(@types/eslint@9.6.1)(eslint-import-resolver-webpack@0.13.2)(eslint@8.57.1)(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)(wp-prettier@3.0.3)
- '@wordpress/jest-preset-default': 12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
+ '@wordpress/jest-preset-default': 12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
'@wordpress/npm-package-json-lint-config': 5.44.0(npm-package-json-lint@6.4.0(typescript@5.7.3))
'@wordpress/postcss-plugins-preset': 5.44.0(postcss@8.4.49)
'@wordpress/prettier-config': 4.44.0(wp-prettier@3.0.3)
'@wordpress/stylelint-config': 23.36.0(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@5.7.3)))(stylelint@16.26.1(typescript@5.7.3))
adm-zip: 0.5.17
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
browserslist: 4.28.2
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)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38492,20 +38297,20 @@ snapshots:
'@wordpress/dependency-extraction-webpack-plugin': 6.44.0(webpack@5.97.1)
'@wordpress/e2e-test-utils-playwright': 1.44.0(@playwright/test@1.59.1)(@types/node@24.12.2)
'@wordpress/eslint-plugin': 22.22.0(@babel/core@7.25.7)(@types/eslint@9.6.1)(eslint@8.57.1)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)(wp-prettier@3.0.3)
- '@wordpress/jest-preset-default': 12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
+ '@wordpress/jest-preset-default': 12.44.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
'@wordpress/npm-package-json-lint-config': 5.44.0(npm-package-json-lint@6.4.0(typescript@5.7.3))
'@wordpress/postcss-plugins-preset': 5.44.0(postcss@8.4.49)
'@wordpress/prettier-config': 4.44.0(wp-prettier@3.0.3)
'@wordpress/stylelint-config': 23.36.0(postcss@8.4.49)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint-scss@6.14.0(stylelint@14.16.1))(stylelint@16.26.1(typescript@5.7.3))
adm-zip: 0.5.17
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
browserslist: 4.28.2
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)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38541,7 +38346,7 @@ snapshots:
stylelint: 16.26.1(typescript@5.7.3)
terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(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.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
@@ -38590,19 +38395,19 @@ snapshots:
'@wordpress/eslint-plugin': 14.7.0(@babel/core@7.25.7)(eslint@8.57.1)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3)(wp-prettier@3.0.3)
'@wordpress/jest-preset-default': 12.22.0(@babel/core@7.25.7)(jest@29.7.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))
'@wordpress/npm-package-json-lint-config': 5.44.0(npm-package-json-lint@6.4.0(typescript@5.7.3))
- '@wordpress/postcss-plugins-preset': 1.6.0
+ '@wordpress/postcss-plugins-preset': 5.44.0(postcss@8.4.49)
'@wordpress/prettier-config': 2.17.0(wp-prettier@3.0.3)
'@wordpress/stylelint-config': 21.41.0(postcss@8.4.49)(stylelint@16.26.1(typescript@5.7.3))
adm-zip: 0.5.17
babel-jest: 29.7.0(@babel/core@7.25.7)
- babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1)
+ babel-loader: 9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24))
browserslist: 4.28.2
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: 5.1.0
- css-loader: 6.11.0(webpack@5.97.1)
+ css-loader: 6.11.0(webpack@5.97.1(@swc/core@1.15.24))
cssnano: 6.1.2(postcss@8.4.49)
cwd: 0.10.0
dir-glob: 3.0.1
@@ -38638,7 +38443,7 @@ snapshots:
stylelint: 16.26.1(typescript@5.7.3)
terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(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.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-bundle-analyzer: 4.9.1
webpack-cli: 5.1.4(webpack-bundle-analyzer@4.9.1)(webpack-dev-server@4.15.2)(webpack@5.97.1)
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
@@ -38700,7 +38505,7 @@ snapshots:
'@wordpress/blocks': 14.15.0(react@18.3.1)
'@wordpress/components': 29.12.0(@emotion/is-prop-valid@1.4.0)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/deprecated': 4.44.0
'@wordpress/element': 6.44.0
'@wordpress/i18n': 5.26.0
@@ -39083,7 +38888,7 @@ snapshots:
'@wordpress/keycodes': 4.45.0
'@wordpress/primitives': 4.45.0(react@18.3.1)
'@wordpress/private-apis': 1.44.0
- '@wordpress/theme': 0.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/theme': 0.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
clsx: 2.1.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -39094,9 +38899,9 @@ snapshots:
- date-fns
- stylelint
- '@wordpress/ui@0.13.1-next.v.202605131032.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
+ '@wordpress/ui@0.13.1-next.v.202605131032.0(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))':
dependencies:
- '@base-ui/react': 1.4.1(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@4.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@base-ui/react': 1.4.1(@date-fns/tz@1.4.1)(@types/react@18.3.28)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/a11y': 4.45.1-next.v.202605131032.0
'@wordpress/compose': 7.45.1-next.v.202605131032.0(react@18.3.1)
'@wordpress/element': 6.45.1-next.v.202605131032.0
@@ -39239,7 +39044,7 @@ snapshots:
dependencies:
'@babel/runtime': 7.25.7
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/data': 10.19.2(react@18.3.1)
+ '@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
react: 18.3.1
@@ -39348,11 +39153,11 @@ snapshots:
dependencies:
'@wordpress/api-fetch': 7.44.0
'@wordpress/base-styles': 6.20.0
- '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/block-editor': 15.17.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/blocks': 15.17.0(react@18.3.1)
'@wordpress/components': 32.6.0(@emotion/is-prop-valid@1.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@wordpress/compose': 7.44.0(react@18.3.1)
- '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@14.16.1)
+ '@wordpress/core-data': 7.44.0(@date-fns/tz@1.4.1)(@emotion/is-prop-valid@1.4.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(stylelint@16.26.1(typescript@5.7.3))
'@wordpress/data': 10.44.0(react@18.3.1)
'@wordpress/element': 6.44.0
'@wordpress/i18n': 6.18.0
@@ -40283,16 +40088,9 @@ snapshots:
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
babel-loader@9.2.1(@babel/core@7.25.7)(webpack@5.97.1(@swc/core@1.15.24)):
- dependencies:
- '@babel/core': 7.25.7
- find-cache-dir: 4.0.0
- schema-utils: 4.3.3
- webpack: 5.97.1(@swc/core@1.15.24)
-
- 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
@@ -41246,7 +41044,7 @@ snapshots:
dependencies:
'@types/webpack': 4.41.40
del: 4.1.1
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
cli-boxes@1.0.0: {}
@@ -41656,7 +41454,7 @@ snapshots:
normalize-path: 3.0.0
schema-utils: 4.3.3
serialize-javascript: 6.0.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
copy-webpack-plugin@13.0.1(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
@@ -41665,16 +41463,7 @@ snapshots:
schema-utils: 4.3.3
serialize-javascript: 6.0.2
tinyglobby: 0.2.16
- webpack: 5.97.1(@swc/core@1.15.24)
-
- copy-webpack-plugin@13.0.1(webpack@5.97.1):
- dependencies:
- glob-parent: 6.0.2
- normalize-path: 3.0.0
- schema-utils: 4.3.3
- serialize-javascript: 6.0.2
- tinyglobby: 0.2.16
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
core-js-compat@3.49.0:
dependencies:
@@ -41896,7 +41685,7 @@ snapshots:
semver: 6.3.1
webpack: 4.47.0(webpack-cli@5.1.4)
- css-loader@6.11.0(webpack@5.97.1(@swc/core@1.15.24)):
+ css-loader@6.11.0(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
icss-utils: 5.1.0(postcss@8.4.49)
postcss: 8.4.49
@@ -41907,9 +41696,9 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.7.4
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
- css-loader@6.11.0(webpack@5.97.1):
+ css-loader@6.11.0(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
icss-utils: 5.1.0(postcss@8.4.49)
postcss: 8.4.49
@@ -41920,7 +41709,7 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.7.4
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
css-select-base-adapter@0.1.1: {}
@@ -44206,7 +43995,7 @@ snapshots:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optional: true
file-sync-cmp@0.1.1: {}
@@ -44469,7 +44258,7 @@ snapshots:
semver: 7.7.4
tapable: 2.3.2
typescript: 5.7.3
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.3)(webpack@5.97.1):
dependencies:
@@ -44488,23 +44277,6 @@ snapshots:
typescript: 5.7.3
webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
- fork-ts-checker-webpack-plugin@9.0.3(typescript@5.7.3)(webpack@5.97.1(@swc/core@1.15.24)):
- dependencies:
- '@babel/code-frame': 7.29.0
- chalk: 4.1.2
- chokidar: 3.6.0
- cosmiconfig: 8.3.6(typescript@5.7.3)
- deepmerge: 4.3.1
- fs-extra: 10.1.0
- memfs: 3.5.3
- minimatch: 3.1.5
- node-abort-controller: 3.1.1
- schema-utils: 3.3.0
- semver: 7.7.4
- tapable: 2.3.2
- typescript: 5.7.3
- webpack: 5.97.1(@swc/core@1.15.24)
-
form-data@2.3.3:
dependencies:
asynckit: 0.4.0
@@ -45536,7 +45308,7 @@ snapshots:
pretty-error: 4.0.0
tapable: 2.3.2
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
html-webpack-plugin@5.6.6(webpack@5.97.1):
dependencies:
@@ -46251,8 +46023,6 @@ snapshots:
dependencies:
upper-case: 1.1.3
- is-url-superb@4.0.0: {}
-
is-utf8@0.2.1: {}
is-weakmap@2.0.2: {}
@@ -48553,17 +48323,17 @@ snapshots:
min-indent@1.0.1: {}
- mini-css-extract-plugin@2.9.4(webpack@5.97.1(@swc/core@1.15.24)):
+ mini-css-extract-plugin@2.9.4(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
schema-utils: 4.3.3
tapable: 2.3.2
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
mini-css-extract-plugin@2.9.4(webpack@5.97.1):
dependencies:
schema-utils: 4.3.3
tapable: 2.3.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
minimalistic-assert@1.0.1: {}
@@ -49084,7 +48854,7 @@ snapshots:
dependencies:
hosted-git-info: 6.1.3
proc-log: 3.0.0
- semver: 7.7.4
+ semver: 7.5.4
validate-npm-package-name: 5.0.1
npm-package-arg@8.1.5:
@@ -50045,11 +49815,6 @@ snapshots:
postcss: 8.4.49
postcss-value-parser: 4.2.0
- postcss-custom-properties@10.0.0:
- dependencies:
- postcss: 7.0.39
- postcss-values-parser: 4.0.0
-
postcss-discard-comments@5.1.2(postcss@8.4.49):
dependencies:
postcss: 8.4.49
@@ -50099,13 +49864,6 @@ snapshots:
read-cache: 1.0.0
resolve: 1.22.12
- postcss-import@16.1.1(postcss@8.5.9):
- dependencies:
- postcss: 8.5.9
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.12
-
postcss-less@3.1.4:
dependencies:
postcss: 7.0.39
@@ -50128,9 +49886,9 @@ snapshots:
postcss: 8.4.49
schema-utils: 3.3.0
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
- postcss-loader@4.3.0(postcss@8.5.9)(webpack@5.97.1(@swc/core@1.15.24)):
+ postcss-loader@4.3.0(postcss@8.5.9)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
cosmiconfig: 7.1.0
klona: 2.0.6
@@ -50138,7 +49896,7 @@ snapshots:
postcss: 8.5.9
schema-utils: 3.3.0
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
postcss-loader@4.3.0(postcss@8.5.9)(webpack@5.97.1):
dependencies:
@@ -50148,7 +49906,7 @@ snapshots:
postcss: 8.5.9
schema-utils: 3.3.0
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
postcss-loader@6.2.1(postcss@8.4.49)(webpack@5.97.1):
dependencies:
@@ -50156,7 +49914,7 @@ snapshots:
klona: 2.0.6
postcss: 8.4.49
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
postcss-media-query-parser@0.2.3: {}
@@ -50489,12 +50247,6 @@ snapshots:
postcss-value-parser@4.2.0: {}
- postcss-values-parser@4.0.0:
- dependencies:
- color-name: 1.1.4
- is-url-superb: 4.0.0
- postcss: 7.0.39
-
postcss@6.0.23:
dependencies:
chalk: 2.4.2
@@ -52086,25 +51838,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
- sass-loader@10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24)):
+ sass-loader@10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
klona: 2.0.6
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
optionalDependencies:
sass: 1.69.5
- sass-loader@10.5.2(sass@1.69.5)(webpack@5.97.1):
+ sass-loader@10.5.2(sass@1.69.5)(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
klona: 2.0.6
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
semver: 7.7.4
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
sass: 1.69.5
@@ -52112,7 +51864,7 @@ snapshots:
dependencies:
klona: 2.0.6
neo-async: 2.6.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
sass: 1.69.5
@@ -52121,7 +51873,7 @@ snapshots:
neo-async: 2.6.2
optionalDependencies:
sass: 1.69.5
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
sass@1.69.5:
dependencies:
@@ -52578,7 +52330,7 @@ snapshots:
abab: 2.0.6
iconv-lite: 0.6.3
source-map-js: 1.2.1
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
source-map-resolve@0.5.3:
dependencies:
@@ -52995,7 +52747,7 @@ snapshots:
style-loader@3.3.4(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
style-loader@3.3.4(webpack@5.97.1):
dependencies:
@@ -53388,7 +53140,7 @@ snapshots:
dependencies:
'@swc/core': 1.15.24
'@swc/counter': 0.1.3
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
swc-loader@0.2.7(@swc/core@1.15.24)(webpack@5.97.1):
dependencies:
@@ -53625,13 +53377,13 @@ snapshots:
'@swc/core': 1.15.24
esbuild: 0.18.20
- terser-webpack-plugin@5.4.0(@swc/core@1.15.24)(esbuild@0.24.2)(webpack@5.97.1):
+ terser-webpack-plugin@5.4.0(@swc/core@1.15.24)(esbuild@0.24.2)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
schema-utils: 4.3.3
terser: 5.46.1
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
optionalDependencies:
'@swc/core': 1.15.24
esbuild: 0.24.2
@@ -53647,16 +53399,6 @@ snapshots:
'@swc/core': 1.15.24
uglify-js: 3.19.3
- terser-webpack-plugin@5.4.0(@swc/core@1.15.24)(webpack@5.97.1(@swc/core@1.15.24)):
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- jest-worker: 27.5.1
- schema-utils: 4.3.3
- terser: 5.46.1
- webpack: 5.97.1(@swc/core@1.15.24)
- optionalDependencies:
- '@swc/core': 1.15.24
-
terser-webpack-plugin@5.4.0(@swc/core@1.15.24)(webpack@5.97.1):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
@@ -53862,7 +53604,7 @@ snapshots:
ts-dedent@2.2.0: {}
- ts-jest@29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3):
+ ts-jest@29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.5.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -53879,26 +53621,6 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
babel-jest: 29.5.0(@babel/core@7.25.7)
- esbuild: 0.24.2
-
- ts-jest@29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.24.2)(jest@29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3):
- dependencies:
- bs-logger: 0.2.6
- fast-json-stable-stringify: 2.1.0
- jest: 29.5.0(@types/node@24.12.2)(babel-plugin-macros@3.1.0)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3))
- jest-util: 29.7.0
- json5: 2.2.3
- lodash.memoize: 4.1.2
- make-error: 1.3.6
- semver: 7.7.4
- typescript: 5.7.3
- yargs-parser: 21.1.1
- optionalDependencies:
- '@babel/core': 7.25.7
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.25.7)
- esbuild: 0.24.2
ts-jest@29.1.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.5.0(@types/node@24.12.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.15.24)(@types/node@24.12.2)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
@@ -54354,7 +54076,7 @@ snapshots:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
optionalDependencies:
file-loader: 6.2.0(webpack@5.97.1)
@@ -54733,11 +54455,11 @@ snapshots:
import-local: 3.2.0
interpret: 3.1.1
rechoir: 0.8.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-merge: 5.10.0
optionalDependencies:
webpack-bundle-analyzer: 4.9.1
- webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
+ webpack-dev-server: 4.15.2(debug@4.4.3)(webpack-cli@5.1.4)(webpack@5.97.1)
webpack-cli@5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1):
dependencies:
@@ -54753,7 +54475,7 @@ snapshots:
import-local: 3.2.0
interpret: 3.1.1
rechoir: 0.8.0
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-merge: 5.10.0
optionalDependencies:
webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.97.1)
@@ -54785,16 +54507,6 @@ snapshots:
webpack-log: 2.0.0
webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.15.24)):
- dependencies:
- colorette: 2.0.20
- memfs: 3.5.3
- mime-types: 2.1.35
- range-parser: 1.2.1
- schema-utils: 4.3.3
- webpack: 5.97.1(@swc/core@1.15.24)
- optional: true
-
- webpack-dev-middleware@5.3.4(webpack@5.97.1):
dependencies:
colorette: 2.0.20
memfs: 3.5.3
@@ -54811,7 +54523,7 @@ snapshots:
range-parser: 1.2.1
schema-utils: 4.3.3
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-dev-middleware@6.1.3(webpack@5.97.1):
dependencies:
@@ -54853,7 +54565,7 @@ snapshots:
serve-index: 1.9.2
sockjs: 0.3.24
spdy: 4.0.2
- webpack-dev-middleware: 5.3.4(webpack@5.97.1)
+ webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.15.24))
ws: 8.20.0
optionalDependencies:
webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
@@ -54865,47 +54577,6 @@ snapshots:
- utf-8-validate
webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.97.1):
- dependencies:
- '@types/bonjour': 3.5.13
- '@types/connect-history-api-fallback': 1.5.4
- '@types/express': 4.17.25
- '@types/serve-index': 1.9.4
- '@types/serve-static': 1.15.10
- '@types/sockjs': 0.3.36
- '@types/ws': 8.18.1
- ansi-html-community: 0.0.8
- bonjour-service: 1.3.0
- chokidar: 3.6.0
- colorette: 2.0.20
- compression: 1.8.1
- connect-history-api-fallback: 2.0.0
- default-gateway: 6.0.3
- express: 4.22.1
- graceful-fs: 4.2.11
- html-entities: 2.6.0
- http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3)
- ipaddr.js: 2.3.0
- launch-editor: 2.13.2
- open: 8.4.2
- p-retry: 4.6.2
- rimraf: 3.0.2
- schema-utils: 4.3.3
- selfsigned: 2.4.1
- serve-index: 1.9.2
- sockjs: 0.3.24
- spdy: 4.0.2
- webpack-dev-middleware: 5.3.4(webpack@5.97.1)
- ws: 8.20.0
- optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
- webpack-cli: 5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1)
- transitivePeerDependencies:
- - bufferutil
- - debug
- - supports-color
- - utf-8-validate
-
- webpack-dev-server@4.15.2(webpack@5.97.1(@swc/core@1.15.24)):
dependencies:
'@types/bonjour': 3.5.13
'@types/connect-history-api-fallback': 1.5.4
@@ -54938,13 +54609,13 @@ snapshots:
webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.15.24))
ws: 8.20.0
optionalDependencies:
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
+ webpack-cli: 5.1.4(webpack-dev-server@4.15.2)(webpack@5.97.1)
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- utf-8-validate
- optional: true
webpack-filter-warnings-plugin@1.2.1(webpack@4.47.0(webpack-cli@5.1.4)):
dependencies:
@@ -54979,15 +54650,15 @@ snapshots:
flat: 5.0.2
wildcard: 2.0.1
- webpack-remove-empty-scripts@1.0.4(webpack@5.97.1(@swc/core@1.15.24)):
+ webpack-remove-empty-scripts@1.0.4(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)):
dependencies:
ansis: 1.5.2
- webpack: 5.97.1(@swc/core@1.15.24)
+ webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)
webpack-remove-empty-scripts@1.0.4(webpack@5.97.1):
dependencies:
ansis: 1.5.2
- webpack: 5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4)
+ webpack: 5.97.1(@swc/core@1.15.24)(webpack-cli@5.1.4)
webpack-sources@1.4.3:
dependencies:
@@ -55036,36 +54707,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- webpack@5.97.1(@swc/core@1.15.24):
- 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.4
- 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.15.24)(webpack@5.97.1(@swc/core@1.15.24))
- watchpack: 2.5.1
- webpack-sources: 3.3.4
- transitivePeerDependencies:
- - '@swc/core'
- - esbuild
- - uglify-js
-
webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.18.20)(webpack-cli@5.1.4):
dependencies:
'@types/eslint-scope': 3.7.7
@@ -55098,7 +54739,7 @@ snapshots:
- esbuild
- uglify-js
- webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2)(webpack-cli@5.1.4):
+ webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -55120,11 +54761,9 @@ snapshots:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.3.2
- terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(esbuild@0.24.2)(webpack@5.97.1)
+ terser-webpack-plugin: 5.4.0(@swc/core@1.15.24)(esbuild@0.24.2)(webpack@5.97.1(@swc/core@1.15.24)(esbuild@0.24.2))
watchpack: 2.5.1
webpack-sources: 3.3.4
- optionalDependencies:
- webpack-cli: 5.1.4(webpack@5.97.1)
transitivePeerDependencies:
- '@swc/core'
- esbuild
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 0ccb6766dab..8190325717a 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -45,6 +45,7 @@ catalogs:
'@wordpress/notices': 5.19.2
'@wordpress/patterns': 2.19.6
'@wordpress/plugins': 7.19.4
+ '@wordpress/postcss-plugins-preset': 4.42.0
'@wordpress/preferences': 4.19.4
'@wordpress/primitives': 4.19.1
'@wordpress/priority-queue': 3.19.1