From d46fe268c74ab31b21851f6ce8d47f801b04e3c3 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Thu, 9 Oct 2025 10:21:08 +0100 Subject: [PATCH 1/5] Build V2: Support JSX and JSON --- bin/packages/build-v2.mjs | 134 ++-- bin/packages/v2-packages.js | 12 + package-lock.json | 819 +++++++++++++++++---- package.json | 2 +- packages/annotations/package.json | 9 +- packages/babel-preset-default/index.js | 1 + packages/babel-preset-default/package.json | 1 + packages/blocks/package.json | 9 +- packages/blocks/src/api/registration.js | 2 +- packages/compose/package.json | 10 +- packages/data-controls/package.json | 10 +- packages/data/package.json | 10 +- packages/keyboard-shortcuts/package.json | 9 +- packages/media-utils/package.json | 9 +- packages/notices/package.json | 10 +- packages/react-i18n/package.json | 10 +- packages/rich-text/package.json | 10 +- packages/router/package.json | 10 +- packages/viewport/package.json | 9 +- 19 files changed, 901 insertions(+), 185 deletions(-) diff --git a/bin/packages/build-v2.mjs b/bin/packages/build-v2.mjs index fbf54e9f1cc162..90d4cf3bbb6494 100644 --- a/bin/packages/build-v2.mjs +++ b/bin/packages/build-v2.mjs @@ -3,7 +3,7 @@ /** * External dependencies */ -import { readFile, writeFile } from 'fs/promises'; +import { readFile, writeFile, copyFile, mkdir } from 'fs/promises'; import path from 'path'; import { fileURLToPath } from 'url'; import { parseArgs } from 'node:util'; @@ -113,10 +113,14 @@ function momentTimezoneAliasPlugin() { * WordPress externals and asset plugin. * Inspired by wp-build's wordpressExternalsAndAssetPlugin. * - * @param {string} assetName Optional. The name of the asset file to generate (without .asset.php extension). Defaults to 'index.min'. + * @param {string} assetName Optional. The name of the asset file to generate (without .asset.php extension). Defaults to 'index.min'. + * @param {string} buildFormat Optional. The build format: 'iife' for scripts or 'esm' for script modules. Defaults to 'iife'. * @return {Object} esbuild plugin. */ -function wordpressExternalsPlugin( assetName = 'index.min' ) { +function wordpressExternalsPlugin( + assetName = 'index.min', + buildFormat = 'iife' +) { return { name: 'wordpress-externals', setup( build ) { @@ -257,11 +261,17 @@ function wordpressExternalsPlugin( assetName = 'index.min' ) { return undefined; } - // Check if this is a script module - const isScriptModule = isScriptModuleImport( + // Check if this is a script module or a script dependency. + let isScriptModule = isScriptModuleImport( packageJson, subpath ); + let isScript = packageJson.wpScript; + if ( isScriptModule && isScript ) { + // If the package is both a script and a script module, we should rely on the format being built + isScript = buildFormat === 'iife'; + isScriptModule = buildFormat === 'esm'; + } // Determine import kind: dynamic or static const kind = @@ -283,7 +293,7 @@ function wordpressExternalsPlugin( assetName = 'index.min' ) { } // If it has wpScript, convert to global variable - if ( packageJson.wpScript ) { + if ( isScript ) { // Track regular script dependency using wp- handle format dependencies.add( wpHandle ); @@ -426,14 +436,17 @@ async function bundlePackage( packageName ) { minify: true, plugins: [ momentTimezoneAliasPlugin(), - wordpressExternalsPlugin( 'index.min' ), + wordpressExternalsPlugin( 'index.min', 'iife' ), ], } ), esbuild.build( { ...baseConfig, outfile: path.join( outputDir, 'index.js' ), minify: false, - plugins: [ momentTimezoneAliasPlugin() ], + plugins: [ + momentTimezoneAliasPlugin(), + wordpressExternalsPlugin( 'index.min', 'iife' ), + ], } ) ); } @@ -477,7 +490,7 @@ async function bundlePackage( packageName ) { platform: 'browser', minify: true, plugins: [ - wordpressExternalsPlugin( `${ fileName }.min` ), + wordpressExternalsPlugin( `${ fileName }.min`, 'esm' ), ], } ) ); @@ -494,76 +507,109 @@ async function bundlePackage( packageName ) { } /** - * Transpile source files for a package (both CJS and ESM). + * Transpile a single package's source files and copy JSON files. * - * @param {string} packageDir Package directory path. - * @param {string[]} srcFiles Array of source file paths. - * @param {Object} packageJson Package.json contents. + * @param {string} packageName Package name. + * @return {Promise} Build time in milliseconds. */ -async function transpilePackage( packageDir, srcFiles, packageJson ) { +async function transpilePackage( packageName ) { + const startTime = Date.now(); + const packageDir = path.join( PACKAGES_DIR, packageName ); + const packageJsonPath = path.join( packageDir, 'package.json' ); + const packageJson = JSON.parse( await readFile( packageJsonPath, 'utf8' ) ); + + // Find source files to transpile + const srcFiles = await glob( + normalizePath( + path.join( packageDir, `src/**/*.${ SOURCE_EXTENSIONS }` ) + ), + { + ignore: IGNORE_PATTERNS, + } + ); + + // Find JSON files to copy + const jsonFiles = await glob( + normalizePath( path.join( packageDir, 'src/**/*.json' ) ), + { + ignore: IGNORE_PATTERNS, + } + ); + const buildDir = path.join( packageDir, 'build' ); const buildModuleDir = path.join( packageDir, 'build-module' ); + const srcDir = path.join( packageDir, 'src' ); const target = browserslistToEsbuild(); const builds = []; - // Only build CJS if package has 'main' property + // Build CJS and copy JSON files to build directory if ( packageJson.main ) { builds.push( esbuild.build( { entryPoints: srcFiles, outdir: buildDir, - outbase: path.join( packageDir, 'src' ), + outbase: srcDir, bundle: false, platform: 'node', format: 'cjs', sourcemap: true, target, + jsx: 'automatic', + jsxImportSource: 'react', + loader: { + '.js': 'jsx', + }, } ) ); + + // Copy JSON files to build directory + for ( const jsonFile of jsonFiles ) { + const relativePath = path.relative( srcDir, jsonFile ); + const destPath = path.join( buildDir, relativePath ); + const destDir = path.dirname( destPath ); + builds.push( + mkdir( destDir, { recursive: true } ).then( () => + copyFile( jsonFile, destPath ) + ) + ); + } } - // Only build ESM if package has 'module' property + // Build ESM and copy JSON files to build-module directory if ( packageJson.module ) { builds.push( esbuild.build( { entryPoints: srcFiles, outdir: buildModuleDir, - outbase: path.join( packageDir, 'src' ), + outbase: srcDir, bundle: false, platform: 'neutral', format: 'esm', sourcemap: true, target, + jsx: 'automatic', + jsxImportSource: 'react', + loader: { + '.js': 'jsx', + }, } ) ); - } - await Promise.all( builds ); -} - -/** - * Transpile a single package's source files. - * - * @param {string} packageName Package name. - * @return {Promise} Build time in milliseconds. - */ -async function transpilePackageFiles( packageName ) { - const startTime = Date.now(); - const packageDir = path.join( PACKAGES_DIR, packageName ); - const packageJsonPath = path.join( packageDir, 'package.json' ); - const packageJson = JSON.parse( await readFile( packageJsonPath, 'utf8' ) ); - - const srcFiles = await glob( - normalizePath( - path.join( packageDir, `src/**/*.${ SOURCE_EXTENSIONS }` ) - ), - { - ignore: IGNORE_PATTERNS, + // Copy JSON files to build-module directory + for ( const jsonFile of jsonFiles ) { + const relativePath = path.relative( srcDir, jsonFile ); + const destPath = path.join( buildModuleDir, relativePath ); + const destDir = path.dirname( destPath ); + builds.push( + mkdir( destDir, { recursive: true } ).then( () => + copyFile( jsonFile, destPath ) + ) + ); } - ); + } - await transpilePackage( packageDir, srcFiles, packageJson ); + await Promise.all( builds ); return Date.now() - startTime; } @@ -631,7 +677,7 @@ async function buildAll() { console.log( '📝 Phase 1: Transpiling packages...\n' ); await Promise.all( V2_PACKAGES.map( async ( packageName ) => { - const buildTime = await transpilePackageFiles( packageName ); + const buildTime = await transpilePackage( packageName ); console.log( `✔ Transpiled ${ packageName } (${ buildTime }ms)` ); } ) ); @@ -674,7 +720,7 @@ async function watchMode() { try { const startTime = Date.now(); - await transpilePackageFiles( packageName ); + await transpilePackage( packageName ); await bundlePackage( packageName ); const buildTime = Date.now() - startTime; diff --git a/bin/packages/v2-packages.js b/bin/packages/v2-packages.js index a097a7cbd363a4..347ba377a57fd4 100644 --- a/bin/packages/v2-packages.js +++ b/bin/packages/v2-packages.js @@ -7,10 +7,15 @@ */ const V2_PACKAGES = [ 'a11y', + 'annotations', 'api-fetch', 'autop', 'blob', 'block-serialization-default-parser', + 'blocks', + 'compose', + 'data', + 'data-controls', 'date', 'deprecated', 'dom', @@ -25,18 +30,25 @@ const V2_PACKAGES = [ 'is-shallow-equal', 'jest-console', 'jest-puppeteer-axe', + 'keyboard-shortcuts', 'keycodes', + 'media-utils', + 'notices', 'preferences-persistence', 'priority-queue', 'private-apis', + 'react-i18n', 'redux-routine', 'report-flaky-tests', + 'rich-text', + 'router', 'shortcode', 'style-engine', 'sync', 'token-list', 'undo-manager', 'url', + 'viewport', 'warning', 'wordcount', ]; diff --git a/package-lock.json b/package-lock.json index d21fdeec74fb4d..8df580ae6a3da1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,7 +92,7 @@ "cssnano": "6.0.1", "deep-freeze": "0.0.1", "equivalent-key-map": "0.2.2", - "esbuild": "0.18.20", + "esbuild": "0.25.10", "escape-html": "1.0.3", "eslint-import-resolver-node": "0.3.4", "eslint-plugin-eslint-comments": "3.1.2", @@ -4683,356 +4683,446 @@ "node": ">=16" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -12036,6 +12126,472 @@ "dev": true, "license": "MIT" }, + "node_modules/@storybook/core/node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@storybook/core/node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, "node_modules/@storybook/core/node_modules/recast": { "version": "0.23.9", "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", @@ -23312,40 +23868,45 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" } }, "node_modules/esbuild-register": { @@ -48836,7 +49397,6 @@ "version": "3.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/data": "file:../data", "@wordpress/hooks": "file:../hooks", "@wordpress/i18n": "file:../i18n", @@ -48908,6 +49468,7 @@ "license": "GPL-2.0-or-later", "dependencies": { "@babel/core": "7.25.7", + "@babel/plugin-syntax-import-attributes": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.7", "@babel/plugin-transform-runtime": "7.25.7", "@babel/preset-env": "7.25.7", @@ -49000,6 +49561,21 @@ "node": ">=6.9.0" } }, + "packages/babel-preset-default/node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "packages/babel-preset-default/node_modules/@babel/plugin-syntax-typescript": { "version": "7.25.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz", @@ -49813,7 +50389,6 @@ "version": "15.5.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/autop": "file:../autop", "@wordpress/blob": "file:../blob", "@wordpress/block-serialization-default-parser": "file:../block-serialization-default-parser", @@ -50200,7 +50775,6 @@ "version": "7.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@types/mousetrap": "^1.6.8", "@wordpress/deprecated": "file:../deprecated", "@wordpress/dom": "file:../dom", @@ -50386,7 +50960,6 @@ "version": "10.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/deprecated": "file:../deprecated", "@wordpress/element": "file:../element", @@ -50415,7 +50988,6 @@ "version": "4.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/api-fetch": "file:../api-fetch", "@wordpress/data": "file:../data", "@wordpress/deprecated": "file:../deprecated" @@ -51217,7 +51789,6 @@ "version": "5.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/data": "file:../data", "@wordpress/element": "file:../element", "@wordpress/keycodes": "file:../keycodes" @@ -51284,7 +51855,6 @@ "version": "5.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/api-fetch": "file:../api-fetch", "@wordpress/blob": "file:../blob", "@wordpress/element": "file:../element", @@ -51301,7 +51871,6 @@ "version": "5.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/a11y": "file:../a11y", "@wordpress/data": "file:../data" }, @@ -51604,7 +52173,6 @@ "version": "4.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/element": "file:../element", "@wordpress/i18n": "file:../i18n", "utility-types": "^3.10.0" @@ -51841,7 +52409,6 @@ "version": "7.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/a11y": "file:../a11y", "@wordpress/compose": "file:../compose", "@wordpress/data": "file:../data", @@ -51866,7 +52433,6 @@ "version": "1.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/element": "file:../element", "@wordpress/private-apis": "file:../private-apis", @@ -52270,7 +52836,6 @@ "version": "6.32.0", "license": "GPL-2.0-or-later", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/data": "file:../data", "@wordpress/element": "file:../element" diff --git a/package.json b/package.json index b6921b909acb00..d9b028f9e1548a 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "cssnano": "6.0.1", "deep-freeze": "0.0.1", "equivalent-key-map": "0.2.2", - "esbuild": "0.18.20", + "esbuild": "0.25.10", "escape-html": "1.0.3", "eslint-import-resolver-node": "0.3.4", "eslint-plugin-eslint-comments": "3.1.2", diff --git a/packages/annotations/package.json b/packages/annotations/package.json index 38b11845b3ed27..43f5a6793ef73f 100644 --- a/packages/annotations/package.json +++ b/packages/annotations/package.json @@ -24,10 +24,17 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/data": "file:../data", "@wordpress/hooks": "file:../hooks", "@wordpress/i18n": "file:../i18n", diff --git a/packages/babel-preset-default/index.js b/packages/babel-preset-default/index.js index 468c2cce812f69..b6aece3cf028b8 100644 --- a/packages/babel-preset-default/index.js +++ b/packages/babel-preset-default/index.js @@ -87,6 +87,7 @@ module.exports = ( api ) => { require.resolve( '@babel/preset-typescript' ), ], plugins: [ + require.resolve( '@babel/plugin-syntax-import-attributes' ), require.resolve( '@wordpress/warning/babel-plugin' ), [ require.resolve( '@babel/plugin-transform-react-jsx' ), diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index a909ca0bc4c29c..f409f6d75dc3fe 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -33,6 +33,7 @@ "main": "index.js", "dependencies": { "@babel/core": "7.25.7", + "@babel/plugin-syntax-import-attributes": "7.26.0", "@babel/plugin-transform-react-jsx": "7.25.7", "@babel/plugin-transform-runtime": "7.25.7", "@babel/preset-env": "7.25.7", diff --git a/packages/blocks/package.json b/packages/blocks/package.json index 02eb205ef4e51c..cca97cafbe07c3 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -24,13 +24,20 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "sideEffects": [ "{src,build,build-module}/{index.js,store/index.js}" ], "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/autop": "file:../autop", "@wordpress/blob": "file:../blob", "@wordpress/block-serialization-default-parser": "file:../block-serialization-default-parser", diff --git a/packages/blocks/src/api/registration.js b/packages/blocks/src/api/registration.js index 93e47280f39319..30d360648292c6 100644 --- a/packages/blocks/src/api/registration.js +++ b/packages/blocks/src/api/registration.js @@ -8,7 +8,7 @@ import warning from '@wordpress/warning'; /** * Internal dependencies */ -import i18nBlockSchema from './i18n-block.json'; +import i18nBlockSchema from './i18n-block.json' with { type: 'json' }; import { store as blocksStore } from '../store'; import { unlock } from '../lock-unlock'; diff --git a/packages/compose/package.json b/packages/compose/package.json index 37e0c7995de7b4..de8a03da35bb5e 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -26,12 +26,20 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "sideEffects": false, "dependencies": { - "@babel/runtime": "7.25.7", "@types/mousetrap": "^1.6.8", "@wordpress/deprecated": "file:../deprecated", "@wordpress/dom": "file:../dom", diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json index b154038b2d9055..8c84ed91edfd0e 100644 --- a/packages/data-controls/package.json +++ b/packages/data-controls/package.json @@ -25,11 +25,19 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/api-fetch": "file:../api-fetch", "@wordpress/data": "file:../data", "@wordpress/deprecated": "file:../deprecated" diff --git a/packages/data/package.json b/packages/data/package.json index beca602e1c4596..b1a0a9db405cd0 100644 --- a/packages/data/package.json +++ b/packages/data/package.json @@ -25,12 +25,20 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "sideEffects": false, "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/deprecated": "file:../deprecated", "@wordpress/element": "file:../element", diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json index 3345d9a81b49e2..cca1d759f9d903 100644 --- a/packages/keyboard-shortcuts/package.json +++ b/packages/keyboard-shortcuts/package.json @@ -24,10 +24,17 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/data": "file:../data", "@wordpress/element": "file:../element", "@wordpress/keycodes": "file:../keycodes" diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json index fa50780b7caa59..52b26403e94b59 100644 --- a/packages/media-utils/package.json +++ b/packages/media-utils/package.json @@ -25,10 +25,17 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "wpScript": true, "types": "build-types", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/api-fetch": "file:../api-fetch", "@wordpress/blob": "file:../blob", "@wordpress/element": "file:../element", diff --git a/packages/notices/package.json b/packages/notices/package.json index aa2e92e2b2519a..8305f6560d406b 100644 --- a/packages/notices/package.json +++ b/packages/notices/package.json @@ -24,11 +24,19 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/a11y": "file:../a11y", "@wordpress/data": "file:../data" }, diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json index 9559765b2e7eb7..3718d403e299ac 100644 --- a/packages/react-i18n/package.json +++ b/packages/react-i18n/package.json @@ -24,12 +24,20 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "sideEffects": false, "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/element": "file:../element", "@wordpress/i18n": "file:../i18n", "utility-types": "^3.10.0" diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json index 285509bd9270c7..c8a7682f707a05 100644 --- a/packages/rich-text/package.json +++ b/packages/rich-text/package.json @@ -24,6 +24,15 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", @@ -32,7 +41,6 @@ "{src,build,build-module}/{index.js,store/index.js}" ], "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/a11y": "file:../a11y", "@wordpress/compose": "file:../compose", "@wordpress/data": "file:../data", diff --git a/packages/router/package.json b/packages/router/package.json index 94ca1207c49f7f..96da63b0b3f7f8 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -24,11 +24,19 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "types": "./build-types/index.d.ts", + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "types": "build-types", "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/element": "file:../element", "@wordpress/private-apis": "file:../private-apis", diff --git a/packages/viewport/package.json b/packages/viewport/package.json index 1988d33e0f5e40..640afa643722c5 100644 --- a/packages/viewport/package.json +++ b/packages/viewport/package.json @@ -24,10 +24,17 @@ }, "main": "build/index.js", "module": "build-module/index.js", + "exports": { + ".": { + "react-native": "./src/index.js", + "import": "./build-module/index.js", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, "react-native": "src/index", "wpScript": true, "dependencies": { - "@babel/runtime": "7.25.7", "@wordpress/compose": "file:../compose", "@wordpress/data": "file:../data", "@wordpress/element": "file:../element" From 4cd8e8b0e6c855e4aebcd26b9dd65024d1169366 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Thu, 9 Oct 2025 10:57:43 +0100 Subject: [PATCH 2/5] Fix unit tests --- test/unit/scripts/resolver.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unit/scripts/resolver.js b/test/unit/scripts/resolver.js index 7672bb723e1248..3ce5cfb68be2e3 100644 --- a/test/unit/scripts/resolver.js +++ b/test/unit/scripts/resolver.js @@ -25,7 +25,8 @@ module.exports = ( path, options ) => { pkg.name === 'react-colorful' || pkg.name === '@eslint/eslintrc' || pkg.name === 'expect' || - pkg.name === 'nanoid' + pkg.name === 'nanoid' || + pkg.name?.startsWith( '@wordpress/' ) ) { delete pkg.exports; delete pkg.module; From 1e752f426b55f087fa79a716477e91fd0aff6b99 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Thu, 9 Oct 2025 11:36:26 +0100 Subject: [PATCH 3/5] Fix TS errors --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d9b028f9e1548a..06f6be4feabc6c 100644 --- a/package.json +++ b/package.json @@ -185,8 +185,8 @@ "build:profile-types": "rimraf ./ts-traces && npm run clean:package-types && node ./bin/packages/validate-typescript-version.js && ( tsc --build --extendedDiagnostics --generateTrace ./ts-traces || ( echo 'tsc failed.'; exit 1 ) ) && node ./bin/packages/check-build-type-declaration-files.js && npx --yes @typescript/analyze-trace ts-traces > ts-traces/analysis.txt && node -p \"'\\n\\nDone! Build traces saved to ts-traces/ directory.\\nTrace analysis saved to ts-traces/analysis.txt.'\"", "build:packages:v2": "node ./bin/packages/build-v2.mjs", "dev:packages:v2": "node ./bin/packages/build-v2.mjs --watch", - "prebuild:packages": "npm run clean:packages && npm run build:packages:v2 && npm run --if-present --workspaces build", - "build:packages": "npm run --silent build:package-types && node ./bin/packages/build.js", + "prebuild:packages": "npm run clean:packages && npm run --if-present --workspaces build", + "build:packages": "npm run --silent build:package-types && npm run build:packages:v2 && node ./bin/packages/build.js", "postbuild:packages": " npm run --if-present --workspaces build:wp", "build:plugin-zip": "bash ./bin/build-plugin-zip.sh", "clean:package-types": "tsc --build --clean && rimraf --glob \"./packages/*/build-types\"", From e0de32f6f229644b94c0d15bd7bc0446de7fa13c Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Thu, 9 Oct 2025 12:00:50 +0100 Subject: [PATCH 4/5] Fix phpunit test --- phpunit/script-dependencies-test.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/phpunit/script-dependencies-test.php b/phpunit/script-dependencies-test.php index 8b7b619e596208..0338882115139e 100644 --- a/phpunit/script-dependencies-test.php +++ b/phpunit/script-dependencies-test.php @@ -39,10 +39,8 @@ public function test_polyfill_dependents() { 'react', 'wp-block-editor', 'wp-block-library', - 'wp-blocks', 'wp-edit-site', 'wp-editor', - 'wp-router', 'wp-widgets', ); From a8efab99606fcac72aac8e28f10dba5a364d60d6 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Fri, 10 Oct 2025 09:39:03 +0100 Subject: [PATCH 5/5] Define the env variables properly --- bin/packages/build-v2.mjs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bin/packages/build-v2.mjs b/bin/packages/build-v2.mjs index 90d4cf3bbb6494..3a41d6423a90f4 100644 --- a/bin/packages/build-v2.mjs +++ b/bin/packages/build-v2.mjs @@ -35,6 +35,19 @@ const TEST_FILE_PATTERNS = [ /\.(spec|test)\.(js|ts|tsx)$/, ]; +// Define global variables for feature flagging, matching webpack's DefinePlugin behavior +const define = { + 'globalThis.IS_GUTENBERG_PLUGIN': JSON.stringify( + Boolean( process.env.npm_package_config_IS_GUTENBERG_PLUGIN ) + ), + 'globalThis.IS_WORDPRESS_CORE': JSON.stringify( + Boolean( process.env.npm_package_config_IS_WORDPRESS_CORE ) + ), + 'globalThis.SCRIPT_DEBUG': JSON.stringify( + process.env.NODE_ENV === 'development' + ), +}; + /** * Normalize path separators for cross-platform compatibility. * @@ -434,6 +447,7 @@ async function bundlePackage( packageName ) { ...baseConfig, outfile: path.join( outputDir, 'index.min.js' ), minify: true, + define, plugins: [ momentTimezoneAliasPlugin(), wordpressExternalsPlugin( 'index.min', 'iife' ), @@ -443,6 +457,7 @@ async function bundlePackage( packageName ) { ...baseConfig, outfile: path.join( outputDir, 'index.js' ), minify: false, + define, plugins: [ momentTimezoneAliasPlugin(), wordpressExternalsPlugin( 'index.min', 'iife' ), @@ -489,6 +504,7 @@ async function bundlePackage( packageName ) { target, platform: 'browser', minify: true, + define, plugins: [ wordpressExternalsPlugin( `${ fileName }.min`, 'esm' ), ],